commit 0e3cc5be2a71586395320ddf08747144720b5e8a Author: Sergey Date: Fri Jul 4 01:41:11 2025 +0300 1.21.1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..74b8bb1c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.png filter=lfs diff=lfs merge=lfs -text +*.nbt filter=lfs diff=lfs merge=lfs -text diff --git a/assets/.mcassetsroot b/assets/.mcassetsroot new file mode 100644 index 00000000..e69de29b diff --git a/assets/minecraft/atlases/armor_trims.json b/assets/minecraft/atlases/armor_trims.json new file mode 100644 index 00000000..74f41956 --- /dev/null +++ b/assets/minecraft/atlases/armor_trims.json @@ -0,0 +1,62 @@ +{ + "sources": [ + { + "type": "paletted_permutations", + "textures": [ + "trims/models/armor/coast", + "trims/models/armor/coast_leggings", + "trims/models/armor/sentry", + "trims/models/armor/sentry_leggings", + "trims/models/armor/dune", + "trims/models/armor/dune_leggings", + "trims/models/armor/wild", + "trims/models/armor/wild_leggings", + "trims/models/armor/ward", + "trims/models/armor/ward_leggings", + "trims/models/armor/eye", + "trims/models/armor/eye_leggings", + "trims/models/armor/vex", + "trims/models/armor/vex_leggings", + "trims/models/armor/tide", + "trims/models/armor/tide_leggings", + "trims/models/armor/snout", + "trims/models/armor/snout_leggings", + "trims/models/armor/rib", + "trims/models/armor/rib_leggings", + "trims/models/armor/spire", + "trims/models/armor/spire_leggings", + "trims/models/armor/wayfinder", + "trims/models/armor/wayfinder_leggings", + "trims/models/armor/shaper", + "trims/models/armor/shaper_leggings", + "trims/models/armor/silence", + "trims/models/armor/silence_leggings", + "trims/models/armor/raiser", + "trims/models/armor/raiser_leggings", + "trims/models/armor/host", + "trims/models/armor/host_leggings", + "trims/models/armor/flow", + "trims/models/armor/flow_leggings", + "trims/models/armor/bolt", + "trims/models/armor/bolt_leggings" + ], + "palette_key": "trims/color_palettes/trim_palette", + "permutations": { + "quartz": "trims/color_palettes/quartz", + "iron": "trims/color_palettes/iron", + "gold": "trims/color_palettes/gold", + "diamond": "trims/color_palettes/diamond", + "netherite": "trims/color_palettes/netherite", + "redstone": "trims/color_palettes/redstone", + "copper": "trims/color_palettes/copper", + "emerald": "trims/color_palettes/emerald", + "lapis": "trims/color_palettes/lapis", + "amethyst": "trims/color_palettes/amethyst", + "iron_darker": "trims/color_palettes/iron_darker", + "gold_darker": "trims/color_palettes/gold_darker", + "diamond_darker": "trims/color_palettes/diamond_darker", + "netherite_darker": "trims/color_palettes/netherite_darker" + } + } + ] +} diff --git a/assets/minecraft/atlases/banner_patterns.json b/assets/minecraft/atlases/banner_patterns.json new file mode 100644 index 00000000..e9f9dce7 --- /dev/null +++ b/assets/minecraft/atlases/banner_patterns.json @@ -0,0 +1,13 @@ +{ + "sources": [ + { + "type": "single", + "resource": "entity/banner_base" + }, + { + "type": "directory", + "source": "entity/banner", + "prefix": "entity/banner/" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/beds.json b/assets/minecraft/atlases/beds.json new file mode 100644 index 00000000..7d552c51 --- /dev/null +++ b/assets/minecraft/atlases/beds.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "entity/bed", + "prefix": "entity/bed/" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/blocks.json b/assets/minecraft/atlases/blocks.json new file mode 100644 index 00000000..d426b692 --- /dev/null +++ b/assets/minecraft/atlases/blocks.json @@ -0,0 +1,57 @@ +{ + "sources": [ + { + "type": "directory", + "source": "block", + "prefix": "block/" + }, + { + "type": "directory", + "source": "item", + "prefix": "item/" + }, + { + "type": "directory", + "source": "entity/conduit", + "prefix": "entity/conduit/" + }, + { + "type": "single", + "resource": "entity/bell/bell_body" + }, + { + "type": "single", + "resource": "entity/decorated_pot/decorated_pot_side" + }, + { + "type": "single", + "resource": "entity/enchanting_table_book" + }, + { + "type": "paletted_permutations", + "textures": [ + "trims/items/leggings_trim", + "trims/items/chestplate_trim", + "trims/items/helmet_trim", + "trims/items/boots_trim" + ], + "palette_key": "trims/color_palettes/trim_palette", + "permutations": { + "quartz": "trims/color_palettes/quartz", + "iron": "trims/color_palettes/iron", + "gold": "trims/color_palettes/gold", + "diamond": "trims/color_palettes/diamond", + "netherite": "trims/color_palettes/netherite", + "redstone": "trims/color_palettes/redstone", + "copper": "trims/color_palettes/copper", + "emerald": "trims/color_palettes/emerald", + "lapis": "trims/color_palettes/lapis", + "amethyst": "trims/color_palettes/amethyst", + "iron_darker": "trims/color_palettes/iron_darker", + "gold_darker": "trims/color_palettes/gold_darker", + "diamond_darker": "trims/color_palettes/diamond_darker", + "netherite_darker": "trims/color_palettes/netherite_darker" + } + } + ] +} diff --git a/assets/minecraft/atlases/chests.json b/assets/minecraft/atlases/chests.json new file mode 100644 index 00000000..963ff39c --- /dev/null +++ b/assets/minecraft/atlases/chests.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "entity/chest", + "prefix": "entity/chest/" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/decorated_pot.json b/assets/minecraft/atlases/decorated_pot.json new file mode 100644 index 00000000..0eb56e55 --- /dev/null +++ b/assets/minecraft/atlases/decorated_pot.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "entity/decorated_pot", + "prefix": "entity/decorated_pot/" + } + ] +} diff --git a/assets/minecraft/atlases/gui.json b/assets/minecraft/atlases/gui.json new file mode 100644 index 00000000..b76173f0 --- /dev/null +++ b/assets/minecraft/atlases/gui.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "gui/sprites", + "prefix": "" + } + ] +} diff --git a/assets/minecraft/atlases/map_decorations.json b/assets/minecraft/atlases/map_decorations.json new file mode 100644 index 00000000..2bd4ced9 --- /dev/null +++ b/assets/minecraft/atlases/map_decorations.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "map/decorations", + "prefix": "" + } + ] +} diff --git a/assets/minecraft/atlases/mob_effects.json b/assets/minecraft/atlases/mob_effects.json new file mode 100644 index 00000000..cb14804c --- /dev/null +++ b/assets/minecraft/atlases/mob_effects.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "mob_effect", + "prefix": "" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/paintings.json b/assets/minecraft/atlases/paintings.json new file mode 100644 index 00000000..4153b347 --- /dev/null +++ b/assets/minecraft/atlases/paintings.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "painting", + "prefix": "" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/particles.json b/assets/minecraft/atlases/particles.json new file mode 100644 index 00000000..896f5af1 --- /dev/null +++ b/assets/minecraft/atlases/particles.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "particle", + "prefix": "" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/shield_patterns.json b/assets/minecraft/atlases/shield_patterns.json new file mode 100644 index 00000000..94486579 --- /dev/null +++ b/assets/minecraft/atlases/shield_patterns.json @@ -0,0 +1,17 @@ +{ + "sources": [ + { + "type": "single", + "resource": "entity/shield_base" + }, + { + "type": "single", + "resource": "entity/shield_base_nopattern" + }, + { + "type": "directory", + "source": "entity/shield", + "prefix": "entity/shield/" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/shulker_boxes.json b/assets/minecraft/atlases/shulker_boxes.json new file mode 100644 index 00000000..2e519094 --- /dev/null +++ b/assets/minecraft/atlases/shulker_boxes.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "entity/shulker", + "prefix": "entity/shulker/" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/atlases/signs.json b/assets/minecraft/atlases/signs.json new file mode 100644 index 00000000..dc198756 --- /dev/null +++ b/assets/minecraft/atlases/signs.json @@ -0,0 +1,9 @@ +{ + "sources": [ + { + "type": "directory", + "source": "entity/signs", + "prefix": "entity/signs/" + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_button.json b/assets/minecraft/blockstates/acacia_button.json new file mode 100644 index 00000000..5b33b992 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/acacia_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/acacia_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/acacia_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/acacia_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/acacia_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/acacia_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/acacia_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/acacia_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/acacia_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/acacia_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/acacia_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/acacia_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/acacia_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/acacia_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_door.json b/assets/minecraft/blockstates/acacia_door.json new file mode 100644 index 00000000..8ed15c35 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/acacia_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/acacia_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/acacia_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/acacia_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_fence.json b/assets/minecraft/blockstates/acacia_fence.json new file mode 100644 index 00000000..179ca6ae --- /dev/null +++ b/assets/minecraft/blockstates/acacia_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/acacia_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/acacia_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/acacia_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/acacia_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/acacia_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_fence_gate.json b/assets/minecraft/blockstates/acacia_fence_gate.json new file mode 100644 index 00000000..39af376d --- /dev/null +++ b/assets/minecraft/blockstates/acacia_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/acacia_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/acacia_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/acacia_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/acacia_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/acacia_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/acacia_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/acacia_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/acacia_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/acacia_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/acacia_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/acacia_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/acacia_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/acacia_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/acacia_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/acacia_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/acacia_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_hanging_sign.json b/assets/minecraft/blockstates/acacia_hanging_sign.json new file mode 100644 index 00000000..57024f8f --- /dev/null +++ b/assets/minecraft/blockstates/acacia_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/acacia_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_leaves.json b/assets/minecraft/blockstates/acacia_leaves.json new file mode 100644 index 00000000..0d99aafa --- /dev/null +++ b/assets/minecraft/blockstates/acacia_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/acacia_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_log.json b/assets/minecraft/blockstates/acacia_log.json new file mode 100644 index 00000000..97c6b502 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/acacia_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/acacia_log" + }, + "axis=z": { + "model": "minecraft:block/acacia_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_planks.json b/assets/minecraft/blockstates/acacia_planks.json new file mode 100644 index 00000000..529c1609 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/acacia_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_pressure_plate.json b/assets/minecraft/blockstates/acacia_pressure_plate.json new file mode 100644 index 00000000..6572988b --- /dev/null +++ b/assets/minecraft/blockstates/acacia_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/acacia_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/acacia_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_sapling.json b/assets/minecraft/blockstates/acacia_sapling.json new file mode 100644 index 00000000..8f2fec96 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/acacia_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_sign.json b/assets/minecraft/blockstates/acacia_sign.json new file mode 100644 index 00000000..c663452f --- /dev/null +++ b/assets/minecraft/blockstates/acacia_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/acacia_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_slab.json b/assets/minecraft/blockstates/acacia_slab.json new file mode 100644 index 00000000..4816cdb8 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/acacia_slab" + }, + "type=double": { + "model": "minecraft:block/acacia_planks" + }, + "type=top": { + "model": "minecraft:block/acacia_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_stairs.json b/assets/minecraft/blockstates/acacia_stairs.json new file mode 100644 index 00000000..fb8b6e13 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/acacia_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/acacia_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/acacia_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/acacia_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/acacia_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/acacia_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/acacia_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/acacia_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/acacia_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/acacia_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_trapdoor.json b/assets/minecraft/blockstates/acacia_trapdoor.json new file mode 100644 index 00000000..b91b2fc0 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/acacia_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/acacia_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/acacia_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/acacia_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/acacia_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/acacia_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/acacia_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/acacia_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/acacia_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/acacia_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/acacia_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/acacia_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/acacia_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/acacia_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/acacia_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/acacia_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_wall_hanging_sign.json b/assets/minecraft/blockstates/acacia_wall_hanging_sign.json new file mode 100644 index 00000000..57024f8f --- /dev/null +++ b/assets/minecraft/blockstates/acacia_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/acacia_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_wall_sign.json b/assets/minecraft/blockstates/acacia_wall_sign.json new file mode 100644 index 00000000..c663452f --- /dev/null +++ b/assets/minecraft/blockstates/acacia_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/acacia_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/acacia_wood.json b/assets/minecraft/blockstates/acacia_wood.json new file mode 100644 index 00000000..f064d5c6 --- /dev/null +++ b/assets/minecraft/blockstates/acacia_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/acacia_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/acacia_wood" + }, + "axis=z": { + "model": "minecraft:block/acacia_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/activator_rail.json b/assets/minecraft/blockstates/activator_rail.json new file mode 100644 index 00000000..5c5354b5 --- /dev/null +++ b/assets/minecraft/blockstates/activator_rail.json @@ -0,0 +1,46 @@ +{ + "variants": { + "powered=false,shape=ascending_east": { + "model": "minecraft:block/activator_rail_raised_ne", + "y": 90 + }, + "powered=false,shape=ascending_north": { + "model": "minecraft:block/activator_rail_raised_ne" + }, + "powered=false,shape=ascending_south": { + "model": "minecraft:block/activator_rail_raised_sw" + }, + "powered=false,shape=ascending_west": { + "model": "minecraft:block/activator_rail_raised_sw", + "y": 90 + }, + "powered=false,shape=east_west": { + "model": "minecraft:block/activator_rail", + "y": 90 + }, + "powered=false,shape=north_south": { + "model": "minecraft:block/activator_rail" + }, + "powered=true,shape=ascending_east": { + "model": "minecraft:block/activator_rail_on_raised_ne", + "y": 90 + }, + "powered=true,shape=ascending_north": { + "model": "minecraft:block/activator_rail_on_raised_ne" + }, + "powered=true,shape=ascending_south": { + "model": "minecraft:block/activator_rail_on_raised_sw" + }, + "powered=true,shape=ascending_west": { + "model": "minecraft:block/activator_rail_on_raised_sw", + "y": 90 + }, + "powered=true,shape=east_west": { + "model": "minecraft:block/activator_rail_on", + "y": 90 + }, + "powered=true,shape=north_south": { + "model": "minecraft:block/activator_rail_on" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/air.json b/assets/minecraft/blockstates/air.json new file mode 100644 index 00000000..2c8f02f0 --- /dev/null +++ b/assets/minecraft/blockstates/air.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/air" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/allium.json b/assets/minecraft/blockstates/allium.json new file mode 100644 index 00000000..6c0aa835 --- /dev/null +++ b/assets/minecraft/blockstates/allium.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/allium" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/amethyst_block.json b/assets/minecraft/blockstates/amethyst_block.json new file mode 100644 index 00000000..388d6a42 --- /dev/null +++ b/assets/minecraft/blockstates/amethyst_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/amethyst_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/amethyst_cluster.json b/assets/minecraft/blockstates/amethyst_cluster.json new file mode 100644 index 00000000..09e6b985 --- /dev/null +++ b/assets/minecraft/blockstates/amethyst_cluster.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/amethyst_cluster", + "x": 180 + }, + "facing=east": { + "model": "minecraft:block/amethyst_cluster", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/amethyst_cluster", + "x": 90 + }, + "facing=south": { + "model": "minecraft:block/amethyst_cluster", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "minecraft:block/amethyst_cluster" + }, + "facing=west": { + "model": "minecraft:block/amethyst_cluster", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/ancient_debris.json b/assets/minecraft/blockstates/ancient_debris.json new file mode 100644 index 00000000..dd6b0594 --- /dev/null +++ b/assets/minecraft/blockstates/ancient_debris.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/ancient_debris" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/andesite.json b/assets/minecraft/blockstates/andesite.json new file mode 100644 index 00000000..8248d30d --- /dev/null +++ b/assets/minecraft/blockstates/andesite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/andesite" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/andesite_slab.json b/assets/minecraft/blockstates/andesite_slab.json new file mode 100644 index 00000000..9afe0305 --- /dev/null +++ b/assets/minecraft/blockstates/andesite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/andesite_slab" + }, + "type=double": { + "model": "minecraft:block/andesite" + }, + "type=top": { + "model": "minecraft:block/andesite_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/andesite_stairs.json b/assets/minecraft/blockstates/andesite_stairs.json new file mode 100644 index 00000000..4a05cd55 --- /dev/null +++ b/assets/minecraft/blockstates/andesite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/andesite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/andesite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/andesite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/andesite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/andesite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/andesite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/andesite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/andesite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/andesite_wall.json b/assets/minecraft/blockstates/andesite_wall.json new file mode 100644 index 00000000..ae896411 --- /dev/null +++ b/assets/minecraft/blockstates/andesite_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/andesite_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/andesite_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/anvil.json b/assets/minecraft/blockstates/anvil.json new file mode 100644 index 00000000..16586bb3 --- /dev/null +++ b/assets/minecraft/blockstates/anvil.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/anvil", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/anvil", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/anvil" + }, + "facing=west": { + "model": "minecraft:block/anvil", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/attached_melon_stem.json b/assets/minecraft/blockstates/attached_melon_stem.json new file mode 100644 index 00000000..bc8c0345 --- /dev/null +++ b/assets/minecraft/blockstates/attached_melon_stem.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/attached_melon_stem", + "y": 180 + }, + "facing=north": { + "model": "minecraft:block/attached_melon_stem", + "y": 90 + }, + "facing=south": { + "model": "minecraft:block/attached_melon_stem", + "y": 270 + }, + "facing=west": { + "model": "minecraft:block/attached_melon_stem" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/attached_pumpkin_stem.json b/assets/minecraft/blockstates/attached_pumpkin_stem.json new file mode 100644 index 00000000..1324bcd8 --- /dev/null +++ b/assets/minecraft/blockstates/attached_pumpkin_stem.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/attached_pumpkin_stem", + "y": 180 + }, + "facing=north": { + "model": "minecraft:block/attached_pumpkin_stem", + "y": 90 + }, + "facing=south": { + "model": "minecraft:block/attached_pumpkin_stem", + "y": 270 + }, + "facing=west": { + "model": "minecraft:block/attached_pumpkin_stem" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/azalea.json b/assets/minecraft/blockstates/azalea.json new file mode 100644 index 00000000..8fa18403 --- /dev/null +++ b/assets/minecraft/blockstates/azalea.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/azalea" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/azalea_leaves.json b/assets/minecraft/blockstates/azalea_leaves.json new file mode 100644 index 00000000..091af72e --- /dev/null +++ b/assets/minecraft/blockstates/azalea_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/azalea_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/azure_bluet.json b/assets/minecraft/blockstates/azure_bluet.json new file mode 100644 index 00000000..ddea5056 --- /dev/null +++ b/assets/minecraft/blockstates/azure_bluet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/azure_bluet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo.json b/assets/minecraft/blockstates/bamboo.json new file mode 100644 index 00000000..3f56d331 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo.json @@ -0,0 +1,58 @@ +{ + "multipart": [ + { + "apply": [ + { + "model": "minecraft:block/bamboo1_age0" + }, + { + "model": "minecraft:block/bamboo2_age0" + }, + { + "model": "minecraft:block/bamboo3_age0" + }, + { + "model": "minecraft:block/bamboo4_age0" + } + ], + "when": { + "age": "0" + } + }, + { + "apply": [ + { + "model": "minecraft:block/bamboo1_age1" + }, + { + "model": "minecraft:block/bamboo2_age1" + }, + { + "model": "minecraft:block/bamboo3_age1" + }, + { + "model": "minecraft:block/bamboo4_age1" + } + ], + "when": { + "age": "1" + } + }, + { + "apply": { + "model": "minecraft:block/bamboo_small_leaves" + }, + "when": { + "leaves": "small" + } + }, + { + "apply": { + "model": "minecraft:block/bamboo_large_leaves" + }, + "when": { + "leaves": "large" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_block.json b/assets/minecraft/blockstates/bamboo_block.json new file mode 100644 index 00000000..26021a56 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_block.json @@ -0,0 +1,13 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/bamboo_block_x" + }, + "axis=y": { + "model": "minecraft:block/bamboo_block_y" + }, + "axis=z": { + "model": "minecraft:block/bamboo_block_z" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_button.json b/assets/minecraft/blockstates/bamboo_button.json new file mode 100644 index 00000000..c3918bce --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/bamboo_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/bamboo_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/bamboo_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/bamboo_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/bamboo_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/bamboo_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/bamboo_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/bamboo_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/bamboo_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/bamboo_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/bamboo_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/bamboo_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/bamboo_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/bamboo_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_door.json b/assets/minecraft/blockstates/bamboo_door.json new file mode 100644 index 00000000..95afed11 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/bamboo_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/bamboo_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/bamboo_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/bamboo_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_fence.json b/assets/minecraft/blockstates/bamboo_fence.json new file mode 100644 index 00000000..8160db97 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_fence.json @@ -0,0 +1,45 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/bamboo_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/bamboo_fence_side_north", + "uvlock": false + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/bamboo_fence_side_east", + "uvlock": false + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/bamboo_fence_side_south", + "uvlock": false + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/bamboo_fence_side_west", + "uvlock": false + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_fence_gate.json b/assets/minecraft/blockstates/bamboo_fence_gate.json new file mode 100644 index 00000000..12111baf --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/bamboo_fence_gate", + "uvlock": false, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/bamboo_fence_gate_open", + "uvlock": false, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/bamboo_fence_gate_wall", + "uvlock": false, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/bamboo_fence_gate_wall_open", + "uvlock": false, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/bamboo_fence_gate", + "uvlock": false, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/bamboo_fence_gate_open", + "uvlock": false, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/bamboo_fence_gate_wall", + "uvlock": false, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/bamboo_fence_gate_wall_open", + "uvlock": false, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/bamboo_fence_gate", + "uvlock": false + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/bamboo_fence_gate_open", + "uvlock": false + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/bamboo_fence_gate_wall", + "uvlock": false + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/bamboo_fence_gate_wall_open", + "uvlock": false + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/bamboo_fence_gate", + "uvlock": false, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/bamboo_fence_gate_open", + "uvlock": false, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/bamboo_fence_gate_wall", + "uvlock": false, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/bamboo_fence_gate_wall_open", + "uvlock": false, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_hanging_sign.json b/assets/minecraft/blockstates/bamboo_hanging_sign.json new file mode 100644 index 00000000..28145407 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bamboo_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_mosaic.json b/assets/minecraft/blockstates/bamboo_mosaic.json new file mode 100644 index 00000000..c9b6ece4 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_mosaic.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bamboo_mosaic" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_mosaic_slab.json b/assets/minecraft/blockstates/bamboo_mosaic_slab.json new file mode 100644 index 00000000..1b743dfa --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_mosaic_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/bamboo_mosaic_slab" + }, + "type=double": { + "model": "minecraft:block/bamboo_mosaic" + }, + "type=top": { + "model": "minecraft:block/bamboo_mosaic_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_mosaic_stairs.json b/assets/minecraft/blockstates/bamboo_mosaic_stairs.json new file mode 100644 index 00000000..79036430 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_mosaic_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_mosaic_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/bamboo_mosaic_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_planks.json b/assets/minecraft/blockstates/bamboo_planks.json new file mode 100644 index 00000000..f4f47811 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bamboo_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_pressure_plate.json b/assets/minecraft/blockstates/bamboo_pressure_plate.json new file mode 100644 index 00000000..6d4c18a9 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/bamboo_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/bamboo_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_sapling.json b/assets/minecraft/blockstates/bamboo_sapling.json new file mode 100644 index 00000000..b16a0c27 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bamboo_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_sign.json b/assets/minecraft/blockstates/bamboo_sign.json new file mode 100644 index 00000000..0648ee3c --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bamboo_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_slab.json b/assets/minecraft/blockstates/bamboo_slab.json new file mode 100644 index 00000000..0888e771 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/bamboo_slab" + }, + "type=double": { + "model": "minecraft:block/bamboo_planks" + }, + "type=top": { + "model": "minecraft:block/bamboo_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_stairs.json b/assets/minecraft/blockstates/bamboo_stairs.json new file mode 100644 index 00000000..649d2b70 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/bamboo_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/bamboo_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/bamboo_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/bamboo_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/bamboo_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/bamboo_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/bamboo_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_trapdoor.json b/assets/minecraft/blockstates/bamboo_trapdoor.json new file mode 100644 index 00000000..6b5d03b5 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/bamboo_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/bamboo_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/bamboo_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/bamboo_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/bamboo_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/bamboo_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/bamboo_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/bamboo_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/bamboo_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_wall_hanging_sign.json b/assets/minecraft/blockstates/bamboo_wall_hanging_sign.json new file mode 100644 index 00000000..28145407 --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bamboo_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bamboo_wall_sign.json b/assets/minecraft/blockstates/bamboo_wall_sign.json new file mode 100644 index 00000000..0648ee3c --- /dev/null +++ b/assets/minecraft/blockstates/bamboo_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bamboo_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/barrel.json b/assets/minecraft/blockstates/barrel.json new file mode 100644 index 00000000..3ed4f406 --- /dev/null +++ b/assets/minecraft/blockstates/barrel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "facing=down,open=false": { + "model": "minecraft:block/barrel", + "x": 180 + }, + "facing=down,open=true": { + "model": "minecraft:block/barrel_open", + "x": 180 + }, + "facing=east,open=false": { + "model": "minecraft:block/barrel", + "x": 90, + "y": 90 + }, + "facing=east,open=true": { + "model": "minecraft:block/barrel_open", + "x": 90, + "y": 90 + }, + "facing=north,open=false": { + "model": "minecraft:block/barrel", + "x": 90 + }, + "facing=north,open=true": { + "model": "minecraft:block/barrel_open", + "x": 90 + }, + "facing=south,open=false": { + "model": "minecraft:block/barrel", + "x": 90, + "y": 180 + }, + "facing=south,open=true": { + "model": "minecraft:block/barrel_open", + "x": 90, + "y": 180 + }, + "facing=up,open=false": { + "model": "minecraft:block/barrel" + }, + "facing=up,open=true": { + "model": "minecraft:block/barrel_open" + }, + "facing=west,open=false": { + "model": "minecraft:block/barrel", + "x": 90, + "y": 270 + }, + "facing=west,open=true": { + "model": "minecraft:block/barrel_open", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/barrier.json b/assets/minecraft/blockstates/barrier.json new file mode 100644 index 00000000..a8194d26 --- /dev/null +++ b/assets/minecraft/blockstates/barrier.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/barrier" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/basalt.json b/assets/minecraft/blockstates/basalt.json new file mode 100644 index 00000000..12bc2d6a --- /dev/null +++ b/assets/minecraft/blockstates/basalt.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/basalt", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/basalt" + }, + "axis=z": { + "model": "minecraft:block/basalt", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/beacon.json b/assets/minecraft/blockstates/beacon.json new file mode 100644 index 00000000..dc3a36b1 --- /dev/null +++ b/assets/minecraft/blockstates/beacon.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/beacon" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bedrock.json b/assets/minecraft/blockstates/bedrock.json new file mode 100644 index 00000000..cb107bd0 --- /dev/null +++ b/assets/minecraft/blockstates/bedrock.json @@ -0,0 +1,20 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/bedrock" + }, + { + "model": "minecraft:block/bedrock_mirrored" + }, + { + "model": "minecraft:block/bedrock", + "y": 180 + }, + { + "model": "minecraft:block/bedrock_mirrored", + "y": 180 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bee_nest.json b/assets/minecraft/blockstates/bee_nest.json new file mode 100644 index 00000000..0f9836da --- /dev/null +++ b/assets/minecraft/blockstates/bee_nest.json @@ -0,0 +1,94 @@ +{ + "variants": { + "facing=east,honey_level=0": { + "model": "minecraft:block/bee_nest", + "y": 90 + }, + "facing=east,honey_level=1": { + "model": "minecraft:block/bee_nest", + "y": 90 + }, + "facing=east,honey_level=2": { + "model": "minecraft:block/bee_nest", + "y": 90 + }, + "facing=east,honey_level=3": { + "model": "minecraft:block/bee_nest", + "y": 90 + }, + "facing=east,honey_level=4": { + "model": "minecraft:block/bee_nest", + "y": 90 + }, + "facing=east,honey_level=5": { + "model": "minecraft:block/bee_nest_honey", + "y": 90 + }, + "facing=north,honey_level=0": { + "model": "minecraft:block/bee_nest" + }, + "facing=north,honey_level=1": { + "model": "minecraft:block/bee_nest" + }, + "facing=north,honey_level=2": { + "model": "minecraft:block/bee_nest" + }, + "facing=north,honey_level=3": { + "model": "minecraft:block/bee_nest" + }, + "facing=north,honey_level=4": { + "model": "minecraft:block/bee_nest" + }, + "facing=north,honey_level=5": { + "model": "minecraft:block/bee_nest_honey" + }, + "facing=south,honey_level=0": { + "model": "minecraft:block/bee_nest", + "y": 180 + }, + "facing=south,honey_level=1": { + "model": "minecraft:block/bee_nest", + "y": 180 + }, + "facing=south,honey_level=2": { + "model": "minecraft:block/bee_nest", + "y": 180 + }, + "facing=south,honey_level=3": { + "model": "minecraft:block/bee_nest", + "y": 180 + }, + "facing=south,honey_level=4": { + "model": "minecraft:block/bee_nest", + "y": 180 + }, + "facing=south,honey_level=5": { + "model": "minecraft:block/bee_nest_honey", + "y": 180 + }, + "facing=west,honey_level=0": { + "model": "minecraft:block/bee_nest", + "y": 270 + }, + "facing=west,honey_level=1": { + "model": "minecraft:block/bee_nest", + "y": 270 + }, + "facing=west,honey_level=2": { + "model": "minecraft:block/bee_nest", + "y": 270 + }, + "facing=west,honey_level=3": { + "model": "minecraft:block/bee_nest", + "y": 270 + }, + "facing=west,honey_level=4": { + "model": "minecraft:block/bee_nest", + "y": 270 + }, + "facing=west,honey_level=5": { + "model": "minecraft:block/bee_nest_honey", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/beehive.json b/assets/minecraft/blockstates/beehive.json new file mode 100644 index 00000000..f39b70b4 --- /dev/null +++ b/assets/minecraft/blockstates/beehive.json @@ -0,0 +1,94 @@ +{ + "variants": { + "facing=east,honey_level=0": { + "model": "minecraft:block/beehive", + "y": 90 + }, + "facing=east,honey_level=1": { + "model": "minecraft:block/beehive", + "y": 90 + }, + "facing=east,honey_level=2": { + "model": "minecraft:block/beehive", + "y": 90 + }, + "facing=east,honey_level=3": { + "model": "minecraft:block/beehive", + "y": 90 + }, + "facing=east,honey_level=4": { + "model": "minecraft:block/beehive", + "y": 90 + }, + "facing=east,honey_level=5": { + "model": "minecraft:block/beehive_honey", + "y": 90 + }, + "facing=north,honey_level=0": { + "model": "minecraft:block/beehive" + }, + "facing=north,honey_level=1": { + "model": "minecraft:block/beehive" + }, + "facing=north,honey_level=2": { + "model": "minecraft:block/beehive" + }, + "facing=north,honey_level=3": { + "model": "minecraft:block/beehive" + }, + "facing=north,honey_level=4": { + "model": "minecraft:block/beehive" + }, + "facing=north,honey_level=5": { + "model": "minecraft:block/beehive_honey" + }, + "facing=south,honey_level=0": { + "model": "minecraft:block/beehive", + "y": 180 + }, + "facing=south,honey_level=1": { + "model": "minecraft:block/beehive", + "y": 180 + }, + "facing=south,honey_level=2": { + "model": "minecraft:block/beehive", + "y": 180 + }, + "facing=south,honey_level=3": { + "model": "minecraft:block/beehive", + "y": 180 + }, + "facing=south,honey_level=4": { + "model": "minecraft:block/beehive", + "y": 180 + }, + "facing=south,honey_level=5": { + "model": "minecraft:block/beehive_honey", + "y": 180 + }, + "facing=west,honey_level=0": { + "model": "minecraft:block/beehive", + "y": 270 + }, + "facing=west,honey_level=1": { + "model": "minecraft:block/beehive", + "y": 270 + }, + "facing=west,honey_level=2": { + "model": "minecraft:block/beehive", + "y": 270 + }, + "facing=west,honey_level=3": { + "model": "minecraft:block/beehive", + "y": 270 + }, + "facing=west,honey_level=4": { + "model": "minecraft:block/beehive", + "y": 270 + }, + "facing=west,honey_level=5": { + "model": "minecraft:block/beehive_honey", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/beetroots.json b/assets/minecraft/blockstates/beetroots.json new file mode 100644 index 00000000..98e30758 --- /dev/null +++ b/assets/minecraft/blockstates/beetroots.json @@ -0,0 +1,16 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/beetroots_stage0" + }, + "age=1": { + "model": "minecraft:block/beetroots_stage1" + }, + "age=2": { + "model": "minecraft:block/beetroots_stage2" + }, + "age=3": { + "model": "minecraft:block/beetroots_stage3" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bell.json b/assets/minecraft/blockstates/bell.json new file mode 100644 index 00000000..2af4b5dd --- /dev/null +++ b/assets/minecraft/blockstates/bell.json @@ -0,0 +1,64 @@ +{ + "variants": { + "attachment=ceiling,facing=east": { + "model": "minecraft:block/bell_ceiling", + "y": 90 + }, + "attachment=ceiling,facing=north": { + "model": "minecraft:block/bell_ceiling" + }, + "attachment=ceiling,facing=south": { + "model": "minecraft:block/bell_ceiling", + "y": 180 + }, + "attachment=ceiling,facing=west": { + "model": "minecraft:block/bell_ceiling", + "y": 270 + }, + "attachment=double_wall,facing=east": { + "model": "minecraft:block/bell_between_walls" + }, + "attachment=double_wall,facing=north": { + "model": "minecraft:block/bell_between_walls", + "y": 270 + }, + "attachment=double_wall,facing=south": { + "model": "minecraft:block/bell_between_walls", + "y": 90 + }, + "attachment=double_wall,facing=west": { + "model": "minecraft:block/bell_between_walls", + "y": 180 + }, + "attachment=floor,facing=east": { + "model": "minecraft:block/bell_floor", + "y": 90 + }, + "attachment=floor,facing=north": { + "model": "minecraft:block/bell_floor" + }, + "attachment=floor,facing=south": { + "model": "minecraft:block/bell_floor", + "y": 180 + }, + "attachment=floor,facing=west": { + "model": "minecraft:block/bell_floor", + "y": 270 + }, + "attachment=single_wall,facing=east": { + "model": "minecraft:block/bell_wall" + }, + "attachment=single_wall,facing=north": { + "model": "minecraft:block/bell_wall", + "y": 270 + }, + "attachment=single_wall,facing=south": { + "model": "minecraft:block/bell_wall", + "y": 90 + }, + "attachment=single_wall,facing=west": { + "model": "minecraft:block/bell_wall", + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/big_dripleaf.json b/assets/minecraft/blockstates/big_dripleaf.json new file mode 100644 index 00000000..06aefac0 --- /dev/null +++ b/assets/minecraft/blockstates/big_dripleaf.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=east,tilt=full": { + "model": "minecraft:block/big_dripleaf_full_tilt", + "y": 90 + }, + "facing=east,tilt=none": { + "model": "minecraft:block/big_dripleaf", + "y": 90 + }, + "facing=east,tilt=partial": { + "model": "minecraft:block/big_dripleaf_partial_tilt", + "y": 90 + }, + "facing=east,tilt=unstable": { + "model": "minecraft:block/big_dripleaf", + "y": 90 + }, + "facing=north,tilt=full": { + "model": "minecraft:block/big_dripleaf_full_tilt" + }, + "facing=north,tilt=none": { + "model": "minecraft:block/big_dripleaf" + }, + "facing=north,tilt=partial": { + "model": "minecraft:block/big_dripleaf_partial_tilt" + }, + "facing=north,tilt=unstable": { + "model": "minecraft:block/big_dripleaf" + }, + "facing=south,tilt=full": { + "model": "minecraft:block/big_dripleaf_full_tilt", + "y": 180 + }, + "facing=south,tilt=none": { + "model": "minecraft:block/big_dripleaf", + "y": 180 + }, + "facing=south,tilt=partial": { + "model": "minecraft:block/big_dripleaf_partial_tilt", + "y": 180 + }, + "facing=south,tilt=unstable": { + "model": "minecraft:block/big_dripleaf", + "y": 180 + }, + "facing=west,tilt=full": { + "model": "minecraft:block/big_dripleaf_full_tilt", + "y": 270 + }, + "facing=west,tilt=none": { + "model": "minecraft:block/big_dripleaf", + "y": 270 + }, + "facing=west,tilt=partial": { + "model": "minecraft:block/big_dripleaf_partial_tilt", + "y": 270 + }, + "facing=west,tilt=unstable": { + "model": "minecraft:block/big_dripleaf", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/big_dripleaf_stem.json b/assets/minecraft/blockstates/big_dripleaf_stem.json new file mode 100644 index 00000000..91951208 --- /dev/null +++ b/assets/minecraft/blockstates/big_dripleaf_stem.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/big_dripleaf_stem", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/big_dripleaf_stem" + }, + "facing=south": { + "model": "minecraft:block/big_dripleaf_stem", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/big_dripleaf_stem", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_button.json b/assets/minecraft/blockstates/birch_button.json new file mode 100644 index 00000000..db0c5889 --- /dev/null +++ b/assets/minecraft/blockstates/birch_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/birch_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/birch_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/birch_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/birch_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/birch_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/birch_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/birch_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/birch_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/birch_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/birch_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/birch_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/birch_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/birch_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/birch_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_door.json b/assets/minecraft/blockstates/birch_door.json new file mode 100644 index 00000000..9657be97 --- /dev/null +++ b/assets/minecraft/blockstates/birch_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/birch_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/birch_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/birch_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/birch_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/birch_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/birch_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/birch_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/birch_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/birch_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/birch_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/birch_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/birch_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/birch_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/birch_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/birch_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/birch_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/birch_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/birch_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/birch_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/birch_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/birch_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/birch_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/birch_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/birch_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/birch_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/birch_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/birch_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/birch_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/birch_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/birch_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/birch_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/birch_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_fence.json b/assets/minecraft/blockstates/birch_fence.json new file mode 100644 index 00000000..afd6e1d0 --- /dev/null +++ b/assets/minecraft/blockstates/birch_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/birch_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/birch_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/birch_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/birch_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/birch_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_fence_gate.json b/assets/minecraft/blockstates/birch_fence_gate.json new file mode 100644 index 00000000..aca8f697 --- /dev/null +++ b/assets/minecraft/blockstates/birch_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/birch_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/birch_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/birch_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/birch_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/birch_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/birch_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/birch_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/birch_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/birch_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/birch_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/birch_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/birch_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/birch_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/birch_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/birch_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/birch_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_hanging_sign.json b/assets/minecraft/blockstates/birch_hanging_sign.json new file mode 100644 index 00000000..f5173003 --- /dev/null +++ b/assets/minecraft/blockstates/birch_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/birch_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_leaves.json b/assets/minecraft/blockstates/birch_leaves.json new file mode 100644 index 00000000..45a5921d --- /dev/null +++ b/assets/minecraft/blockstates/birch_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/birch_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_log.json b/assets/minecraft/blockstates/birch_log.json new file mode 100644 index 00000000..24ba8da3 --- /dev/null +++ b/assets/minecraft/blockstates/birch_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/birch_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/birch_log" + }, + "axis=z": { + "model": "minecraft:block/birch_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_planks.json b/assets/minecraft/blockstates/birch_planks.json new file mode 100644 index 00000000..b5b2e8dc --- /dev/null +++ b/assets/minecraft/blockstates/birch_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/birch_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_pressure_plate.json b/assets/minecraft/blockstates/birch_pressure_plate.json new file mode 100644 index 00000000..0f5fb7a4 --- /dev/null +++ b/assets/minecraft/blockstates/birch_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/birch_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/birch_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_sapling.json b/assets/minecraft/blockstates/birch_sapling.json new file mode 100644 index 00000000..10737054 --- /dev/null +++ b/assets/minecraft/blockstates/birch_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/birch_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_sign.json b/assets/minecraft/blockstates/birch_sign.json new file mode 100644 index 00000000..dec6f07d --- /dev/null +++ b/assets/minecraft/blockstates/birch_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/birch_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_slab.json b/assets/minecraft/blockstates/birch_slab.json new file mode 100644 index 00000000..28e4f33d --- /dev/null +++ b/assets/minecraft/blockstates/birch_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/birch_slab" + }, + "type=double": { + "model": "minecraft:block/birch_planks" + }, + "type=top": { + "model": "minecraft:block/birch_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_stairs.json b/assets/minecraft/blockstates/birch_stairs.json new file mode 100644 index 00000000..1a7881d0 --- /dev/null +++ b/assets/minecraft/blockstates/birch_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/birch_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/birch_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/birch_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/birch_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/birch_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/birch_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/birch_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/birch_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/birch_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/birch_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_trapdoor.json b/assets/minecraft/blockstates/birch_trapdoor.json new file mode 100644 index 00000000..47b471d6 --- /dev/null +++ b/assets/minecraft/blockstates/birch_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/birch_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/birch_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/birch_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/birch_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/birch_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/birch_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/birch_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/birch_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/birch_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/birch_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/birch_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/birch_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/birch_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/birch_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/birch_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/birch_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_wall_hanging_sign.json b/assets/minecraft/blockstates/birch_wall_hanging_sign.json new file mode 100644 index 00000000..f5173003 --- /dev/null +++ b/assets/minecraft/blockstates/birch_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/birch_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_wall_sign.json b/assets/minecraft/blockstates/birch_wall_sign.json new file mode 100644 index 00000000..dec6f07d --- /dev/null +++ b/assets/minecraft/blockstates/birch_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/birch_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/birch_wood.json b/assets/minecraft/blockstates/birch_wood.json new file mode 100644 index 00000000..4bda7ed3 --- /dev/null +++ b/assets/minecraft/blockstates/birch_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/birch_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/birch_wood" + }, + "axis=z": { + "model": "minecraft:block/birch_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_banner.json b/assets/minecraft/blockstates/black_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/black_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_bed.json b/assets/minecraft/blockstates/black_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/black_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_candle.json b/assets/minecraft/blockstates/black_candle.json new file mode 100644 index 00000000..3fcbe004 --- /dev/null +++ b/assets/minecraft/blockstates/black_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/black_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/black_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/black_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/black_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/black_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/black_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/black_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/black_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_candle_cake.json b/assets/minecraft/blockstates/black_candle_cake.json new file mode 100644 index 00000000..f02ecb76 --- /dev/null +++ b/assets/minecraft/blockstates/black_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/black_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/black_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_carpet.json b/assets/minecraft/blockstates/black_carpet.json new file mode 100644 index 00000000..043c7fc5 --- /dev/null +++ b/assets/minecraft/blockstates/black_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/black_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_concrete.json b/assets/minecraft/blockstates/black_concrete.json new file mode 100644 index 00000000..797f0358 --- /dev/null +++ b/assets/minecraft/blockstates/black_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/black_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_concrete_powder.json b/assets/minecraft/blockstates/black_concrete_powder.json new file mode 100644 index 00000000..56a53d03 --- /dev/null +++ b/assets/minecraft/blockstates/black_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/black_concrete_powder" + }, + { + "model": "minecraft:block/black_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/black_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/black_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_glazed_terracotta.json b/assets/minecraft/blockstates/black_glazed_terracotta.json new file mode 100644 index 00000000..e20988dc --- /dev/null +++ b/assets/minecraft/blockstates/black_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/black_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/black_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/black_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/black_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_shulker_box.json b/assets/minecraft/blockstates/black_shulker_box.json new file mode 100644 index 00000000..289aec04 --- /dev/null +++ b/assets/minecraft/blockstates/black_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/black_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_stained_glass.json b/assets/minecraft/blockstates/black_stained_glass.json new file mode 100644 index 00000000..728f216b --- /dev/null +++ b/assets/minecraft/blockstates/black_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/black_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_stained_glass_pane.json b/assets/minecraft/blockstates/black_stained_glass_pane.json new file mode 100644 index 00000000..655588da --- /dev/null +++ b/assets/minecraft/blockstates/black_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/black_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_terracotta.json b/assets/minecraft/blockstates/black_terracotta.json new file mode 100644 index 00000000..7ae0ad87 --- /dev/null +++ b/assets/minecraft/blockstates/black_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/black_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_wall_banner.json b/assets/minecraft/blockstates/black_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/black_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/black_wool.json b/assets/minecraft/blockstates/black_wool.json new file mode 100644 index 00000000..18b2cb6c --- /dev/null +++ b/assets/minecraft/blockstates/black_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/black_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blackstone.json b/assets/minecraft/blockstates/blackstone.json new file mode 100644 index 00000000..5b6e6a41 --- /dev/null +++ b/assets/minecraft/blockstates/blackstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blackstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blackstone_slab.json b/assets/minecraft/blockstates/blackstone_slab.json new file mode 100644 index 00000000..41cada96 --- /dev/null +++ b/assets/minecraft/blockstates/blackstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/blackstone_slab" + }, + "type=double": { + "model": "minecraft:block/blackstone" + }, + "type=top": { + "model": "minecraft:block/blackstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blackstone_stairs.json b/assets/minecraft/blockstates/blackstone_stairs.json new file mode 100644 index 00000000..f533ccb3 --- /dev/null +++ b/assets/minecraft/blockstates/blackstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/blackstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/blackstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/blackstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/blackstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/blackstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/blackstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/blackstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/blackstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blackstone_wall.json b/assets/minecraft/blockstates/blackstone_wall.json new file mode 100644 index 00000000..537f206f --- /dev/null +++ b/assets/minecraft/blockstates/blackstone_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/blackstone_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/blackstone_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blast_furnace.json b/assets/minecraft/blockstates/blast_furnace.json new file mode 100644 index 00000000..63dbedd7 --- /dev/null +++ b/assets/minecraft/blockstates/blast_furnace.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,lit=false": { + "model": "minecraft:block/blast_furnace", + "y": 90 + }, + "facing=east,lit=true": { + "model": "minecraft:block/blast_furnace_on", + "y": 90 + }, + "facing=north,lit=false": { + "model": "minecraft:block/blast_furnace" + }, + "facing=north,lit=true": { + "model": "minecraft:block/blast_furnace_on" + }, + "facing=south,lit=false": { + "model": "minecraft:block/blast_furnace", + "y": 180 + }, + "facing=south,lit=true": { + "model": "minecraft:block/blast_furnace_on", + "y": 180 + }, + "facing=west,lit=false": { + "model": "minecraft:block/blast_furnace", + "y": 270 + }, + "facing=west,lit=true": { + "model": "minecraft:block/blast_furnace_on", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_banner.json b/assets/minecraft/blockstates/blue_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/blue_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_bed.json b/assets/minecraft/blockstates/blue_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/blue_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_candle.json b/assets/minecraft/blockstates/blue_candle.json new file mode 100644 index 00000000..75e30d08 --- /dev/null +++ b/assets/minecraft/blockstates/blue_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/blue_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/blue_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/blue_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/blue_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/blue_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/blue_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/blue_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/blue_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_candle_cake.json b/assets/minecraft/blockstates/blue_candle_cake.json new file mode 100644 index 00000000..869c55f1 --- /dev/null +++ b/assets/minecraft/blockstates/blue_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/blue_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/blue_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_carpet.json b/assets/minecraft/blockstates/blue_carpet.json new file mode 100644 index 00000000..082b9f34 --- /dev/null +++ b/assets/minecraft/blockstates/blue_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_concrete.json b/assets/minecraft/blockstates/blue_concrete.json new file mode 100644 index 00000000..7c63116c --- /dev/null +++ b/assets/minecraft/blockstates/blue_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_concrete_powder.json b/assets/minecraft/blockstates/blue_concrete_powder.json new file mode 100644 index 00000000..92d2724a --- /dev/null +++ b/assets/minecraft/blockstates/blue_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/blue_concrete_powder" + }, + { + "model": "minecraft:block/blue_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/blue_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/blue_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_glazed_terracotta.json b/assets/minecraft/blockstates/blue_glazed_terracotta.json new file mode 100644 index 00000000..063c11c4 --- /dev/null +++ b/assets/minecraft/blockstates/blue_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/blue_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/blue_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/blue_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/blue_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_ice.json b/assets/minecraft/blockstates/blue_ice.json new file mode 100644 index 00000000..79ce6ac4 --- /dev/null +++ b/assets/minecraft/blockstates/blue_ice.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_ice" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_orchid.json b/assets/minecraft/blockstates/blue_orchid.json new file mode 100644 index 00000000..4cdb3149 --- /dev/null +++ b/assets/minecraft/blockstates/blue_orchid.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_orchid" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_shulker_box.json b/assets/minecraft/blockstates/blue_shulker_box.json new file mode 100644 index 00000000..9f05ab96 --- /dev/null +++ b/assets/minecraft/blockstates/blue_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_stained_glass.json b/assets/minecraft/blockstates/blue_stained_glass.json new file mode 100644 index 00000000..e495d004 --- /dev/null +++ b/assets/minecraft/blockstates/blue_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_stained_glass_pane.json b/assets/minecraft/blockstates/blue_stained_glass_pane.json new file mode 100644 index 00000000..f86fce7b --- /dev/null +++ b/assets/minecraft/blockstates/blue_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/blue_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_terracotta.json b/assets/minecraft/blockstates/blue_terracotta.json new file mode 100644 index 00000000..972492b1 --- /dev/null +++ b/assets/minecraft/blockstates/blue_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_wall_banner.json b/assets/minecraft/blockstates/blue_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/blue_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/blue_wool.json b/assets/minecraft/blockstates/blue_wool.json new file mode 100644 index 00000000..1b65b8e6 --- /dev/null +++ b/assets/minecraft/blockstates/blue_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/blue_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bone_block.json b/assets/minecraft/blockstates/bone_block.json new file mode 100644 index 00000000..284e15b2 --- /dev/null +++ b/assets/minecraft/blockstates/bone_block.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/bone_block", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/bone_block" + }, + "axis=z": { + "model": "minecraft:block/bone_block", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bookshelf.json b/assets/minecraft/blockstates/bookshelf.json new file mode 100644 index 00000000..a0198c08 --- /dev/null +++ b/assets/minecraft/blockstates/bookshelf.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bookshelf" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brain_coral.json b/assets/minecraft/blockstates/brain_coral.json new file mode 100644 index 00000000..7b100296 --- /dev/null +++ b/assets/minecraft/blockstates/brain_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brain_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brain_coral_block.json b/assets/minecraft/blockstates/brain_coral_block.json new file mode 100644 index 00000000..2c133d41 --- /dev/null +++ b/assets/minecraft/blockstates/brain_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brain_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brain_coral_fan.json b/assets/minecraft/blockstates/brain_coral_fan.json new file mode 100644 index 00000000..353ec6b5 --- /dev/null +++ b/assets/minecraft/blockstates/brain_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brain_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brain_coral_wall_fan.json b/assets/minecraft/blockstates/brain_coral_wall_fan.json new file mode 100644 index 00000000..76fa0a4a --- /dev/null +++ b/assets/minecraft/blockstates/brain_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/brain_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/brain_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/brain_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/brain_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brewing_stand.json b/assets/minecraft/blockstates/brewing_stand.json new file mode 100644 index 00000000..dfdffcd8 --- /dev/null +++ b/assets/minecraft/blockstates/brewing_stand.json @@ -0,0 +1,57 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/brewing_stand" + } + }, + { + "apply": { + "model": "minecraft:block/brewing_stand_bottle0" + }, + "when": { + "has_bottle_0": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brewing_stand_bottle1" + }, + "when": { + "has_bottle_1": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brewing_stand_bottle2" + }, + "when": { + "has_bottle_2": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brewing_stand_empty0" + }, + "when": { + "has_bottle_0": "false" + } + }, + { + "apply": { + "model": "minecraft:block/brewing_stand_empty1" + }, + "when": { + "has_bottle_1": "false" + } + }, + { + "apply": { + "model": "minecraft:block/brewing_stand_empty2" + }, + "when": { + "has_bottle_2": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brick_slab.json b/assets/minecraft/blockstates/brick_slab.json new file mode 100644 index 00000000..dc9f2cce --- /dev/null +++ b/assets/minecraft/blockstates/brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/brick_slab" + }, + "type=double": { + "model": "minecraft:block/bricks" + }, + "type=top": { + "model": "minecraft:block/brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brick_stairs.json b/assets/minecraft/blockstates/brick_stairs.json new file mode 100644 index 00000000..7e673826 --- /dev/null +++ b/assets/minecraft/blockstates/brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brick_wall.json b/assets/minecraft/blockstates/brick_wall.json new file mode 100644 index 00000000..140062a5 --- /dev/null +++ b/assets/minecraft/blockstates/brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bricks.json b/assets/minecraft/blockstates/bricks.json new file mode 100644 index 00000000..7b54ff6a --- /dev/null +++ b/assets/minecraft/blockstates/bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_banner.json b/assets/minecraft/blockstates/brown_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/brown_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_bed.json b/assets/minecraft/blockstates/brown_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/brown_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_candle.json b/assets/minecraft/blockstates/brown_candle.json new file mode 100644 index 00000000..66979471 --- /dev/null +++ b/assets/minecraft/blockstates/brown_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/brown_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/brown_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/brown_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/brown_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/brown_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/brown_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/brown_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/brown_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_candle_cake.json b/assets/minecraft/blockstates/brown_candle_cake.json new file mode 100644 index 00000000..e92e8083 --- /dev/null +++ b/assets/minecraft/blockstates/brown_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/brown_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/brown_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_carpet.json b/assets/minecraft/blockstates/brown_carpet.json new file mode 100644 index 00000000..7273224e --- /dev/null +++ b/assets/minecraft/blockstates/brown_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brown_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_concrete.json b/assets/minecraft/blockstates/brown_concrete.json new file mode 100644 index 00000000..6841a73c --- /dev/null +++ b/assets/minecraft/blockstates/brown_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brown_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_concrete_powder.json b/assets/minecraft/blockstates/brown_concrete_powder.json new file mode 100644 index 00000000..49ef7837 --- /dev/null +++ b/assets/minecraft/blockstates/brown_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/brown_concrete_powder" + }, + { + "model": "minecraft:block/brown_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/brown_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/brown_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_glazed_terracotta.json b/assets/minecraft/blockstates/brown_glazed_terracotta.json new file mode 100644 index 00000000..d78b6954 --- /dev/null +++ b/assets/minecraft/blockstates/brown_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/brown_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/brown_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/brown_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/brown_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_mushroom.json b/assets/minecraft/blockstates/brown_mushroom.json new file mode 100644 index 00000000..9a2fb1c6 --- /dev/null +++ b/assets/minecraft/blockstates/brown_mushroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brown_mushroom" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_mushroom_block.json b/assets/minecraft/blockstates/brown_mushroom_block.json new file mode 100644 index 00000000..be4820b4 --- /dev/null +++ b/assets/minecraft/blockstates/brown_mushroom_block.json @@ -0,0 +1,120 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/brown_mushroom_block" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_mushroom_block", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_mushroom_block", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_mushroom_block", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_mushroom_block", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_mushroom_block", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 90 + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 180 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 270 + }, + "when": { + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "x": 270 + }, + "when": { + "up": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "x": 90 + }, + "when": { + "down": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_shulker_box.json b/assets/minecraft/blockstates/brown_shulker_box.json new file mode 100644 index 00000000..c4f723bb --- /dev/null +++ b/assets/minecraft/blockstates/brown_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brown_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_stained_glass.json b/assets/minecraft/blockstates/brown_stained_glass.json new file mode 100644 index 00000000..723e232e --- /dev/null +++ b/assets/minecraft/blockstates/brown_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brown_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_stained_glass_pane.json b/assets/minecraft/blockstates/brown_stained_glass_pane.json new file mode 100644 index 00000000..17abeae4 --- /dev/null +++ b/assets/minecraft/blockstates/brown_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/brown_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_terracotta.json b/assets/minecraft/blockstates/brown_terracotta.json new file mode 100644 index 00000000..6a618f17 --- /dev/null +++ b/assets/minecraft/blockstates/brown_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brown_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_wall_banner.json b/assets/minecraft/blockstates/brown_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/brown_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/brown_wool.json b/assets/minecraft/blockstates/brown_wool.json new file mode 100644 index 00000000..4c378d5e --- /dev/null +++ b/assets/minecraft/blockstates/brown_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/brown_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bubble_column.json b/assets/minecraft/blockstates/bubble_column.json new file mode 100644 index 00000000..99fd360b --- /dev/null +++ b/assets/minecraft/blockstates/bubble_column.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/water" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bubble_coral.json b/assets/minecraft/blockstates/bubble_coral.json new file mode 100644 index 00000000..3e068e64 --- /dev/null +++ b/assets/minecraft/blockstates/bubble_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bubble_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bubble_coral_block.json b/assets/minecraft/blockstates/bubble_coral_block.json new file mode 100644 index 00000000..4f6abebe --- /dev/null +++ b/assets/minecraft/blockstates/bubble_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bubble_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bubble_coral_fan.json b/assets/minecraft/blockstates/bubble_coral_fan.json new file mode 100644 index 00000000..e91a669f --- /dev/null +++ b/assets/minecraft/blockstates/bubble_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bubble_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/bubble_coral_wall_fan.json b/assets/minecraft/blockstates/bubble_coral_wall_fan.json new file mode 100644 index 00000000..5310027a --- /dev/null +++ b/assets/minecraft/blockstates/bubble_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/bubble_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/bubble_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/bubble_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/bubble_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/budding_amethyst.json b/assets/minecraft/blockstates/budding_amethyst.json new file mode 100644 index 00000000..a6e222b6 --- /dev/null +++ b/assets/minecraft/blockstates/budding_amethyst.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/budding_amethyst" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cactus.json b/assets/minecraft/blockstates/cactus.json new file mode 100644 index 00000000..c1623fbc --- /dev/null +++ b/assets/minecraft/blockstates/cactus.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cactus" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cake.json b/assets/minecraft/blockstates/cake.json new file mode 100644 index 00000000..c905f118 --- /dev/null +++ b/assets/minecraft/blockstates/cake.json @@ -0,0 +1,25 @@ +{ + "variants": { + "bites=0": { + "model": "minecraft:block/cake" + }, + "bites=1": { + "model": "minecraft:block/cake_slice1" + }, + "bites=2": { + "model": "minecraft:block/cake_slice2" + }, + "bites=3": { + "model": "minecraft:block/cake_slice3" + }, + "bites=4": { + "model": "minecraft:block/cake_slice4" + }, + "bites=5": { + "model": "minecraft:block/cake_slice5" + }, + "bites=6": { + "model": "minecraft:block/cake_slice6" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/calcite.json b/assets/minecraft/blockstates/calcite.json new file mode 100644 index 00000000..c9ff836d --- /dev/null +++ b/assets/minecraft/blockstates/calcite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/calcite" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/calibrated_sculk_sensor.json b/assets/minecraft/blockstates/calibrated_sculk_sensor.json new file mode 100644 index 00000000..7f619758 --- /dev/null +++ b/assets/minecraft/blockstates/calibrated_sculk_sensor.json @@ -0,0 +1,49 @@ +{ + "variants": { + "facing=east,sculk_sensor_phase=active": { + "model": "minecraft:block/calibrated_sculk_sensor_active", + "y": 90 + }, + "facing=east,sculk_sensor_phase=cooldown": { + "model": "minecraft:block/calibrated_sculk_sensor_active", + "y": 90 + }, + "facing=east,sculk_sensor_phase=inactive": { + "model": "minecraft:block/calibrated_sculk_sensor_inactive", + "y": 90 + }, + "facing=north,sculk_sensor_phase=active": { + "model": "minecraft:block/calibrated_sculk_sensor_active" + }, + "facing=north,sculk_sensor_phase=cooldown": { + "model": "minecraft:block/calibrated_sculk_sensor_active" + }, + "facing=north,sculk_sensor_phase=inactive": { + "model": "minecraft:block/calibrated_sculk_sensor_inactive" + }, + "facing=south,sculk_sensor_phase=active": { + "model": "minecraft:block/calibrated_sculk_sensor_active", + "y": 180 + }, + "facing=south,sculk_sensor_phase=cooldown": { + "model": "minecraft:block/calibrated_sculk_sensor_active", + "y": 180 + }, + "facing=south,sculk_sensor_phase=inactive": { + "model": "minecraft:block/calibrated_sculk_sensor_inactive", + "y": 180 + }, + "facing=west,sculk_sensor_phase=active": { + "model": "minecraft:block/calibrated_sculk_sensor_active", + "y": 270 + }, + "facing=west,sculk_sensor_phase=cooldown": { + "model": "minecraft:block/calibrated_sculk_sensor_active", + "y": 270 + }, + "facing=west,sculk_sensor_phase=inactive": { + "model": "minecraft:block/calibrated_sculk_sensor_inactive", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/campfire.json b/assets/minecraft/blockstates/campfire.json new file mode 100644 index 00000000..d5751b85 --- /dev/null +++ b/assets/minecraft/blockstates/campfire.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,lit=false": { + "model": "minecraft:block/campfire_off", + "y": 270 + }, + "facing=east,lit=true": { + "model": "minecraft:block/campfire", + "y": 270 + }, + "facing=north,lit=false": { + "model": "minecraft:block/campfire_off", + "y": 180 + }, + "facing=north,lit=true": { + "model": "minecraft:block/campfire", + "y": 180 + }, + "facing=south,lit=false": { + "model": "minecraft:block/campfire_off" + }, + "facing=south,lit=true": { + "model": "minecraft:block/campfire" + }, + "facing=west,lit=false": { + "model": "minecraft:block/campfire_off", + "y": 90 + }, + "facing=west,lit=true": { + "model": "minecraft:block/campfire", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/candle.json b/assets/minecraft/blockstates/candle.json new file mode 100644 index 00000000..9e867034 --- /dev/null +++ b/assets/minecraft/blockstates/candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/candle_cake.json b/assets/minecraft/blockstates/candle_cake.json new file mode 100644 index 00000000..4e1e1181 --- /dev/null +++ b/assets/minecraft/blockstates/candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/candle_cake" + }, + "lit=true": { + "model": "minecraft:block/candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/carrots.json b/assets/minecraft/blockstates/carrots.json new file mode 100644 index 00000000..8acf220f --- /dev/null +++ b/assets/minecraft/blockstates/carrots.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/carrots_stage0" + }, + "age=1": { + "model": "minecraft:block/carrots_stage0" + }, + "age=2": { + "model": "minecraft:block/carrots_stage1" + }, + "age=3": { + "model": "minecraft:block/carrots_stage1" + }, + "age=4": { + "model": "minecraft:block/carrots_stage2" + }, + "age=5": { + "model": "minecraft:block/carrots_stage2" + }, + "age=6": { + "model": "minecraft:block/carrots_stage2" + }, + "age=7": { + "model": "minecraft:block/carrots_stage3" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cartography_table.json b/assets/minecraft/blockstates/cartography_table.json new file mode 100644 index 00000000..6feb4018 --- /dev/null +++ b/assets/minecraft/blockstates/cartography_table.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cartography_table" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/carved_pumpkin.json b/assets/minecraft/blockstates/carved_pumpkin.json new file mode 100644 index 00000000..f98dc9f9 --- /dev/null +++ b/assets/minecraft/blockstates/carved_pumpkin.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/carved_pumpkin", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/carved_pumpkin" + }, + "facing=south": { + "model": "minecraft:block/carved_pumpkin", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/carved_pumpkin", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cauldron.json b/assets/minecraft/blockstates/cauldron.json new file mode 100644 index 00000000..9908cf5d --- /dev/null +++ b/assets/minecraft/blockstates/cauldron.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cauldron" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cave_air.json b/assets/minecraft/blockstates/cave_air.json new file mode 100644 index 00000000..2c8f02f0 --- /dev/null +++ b/assets/minecraft/blockstates/cave_air.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/air" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cave_vines.json b/assets/minecraft/blockstates/cave_vines.json new file mode 100644 index 00000000..684555ff --- /dev/null +++ b/assets/minecraft/blockstates/cave_vines.json @@ -0,0 +1,10 @@ +{ + "variants": { + "berries=false": { + "model": "minecraft:block/cave_vines" + }, + "berries=true": { + "model": "minecraft:block/cave_vines_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cave_vines_plant.json b/assets/minecraft/blockstates/cave_vines_plant.json new file mode 100644 index 00000000..a07870ef --- /dev/null +++ b/assets/minecraft/blockstates/cave_vines_plant.json @@ -0,0 +1,10 @@ +{ + "variants": { + "berries=false": { + "model": "minecraft:block/cave_vines_plant" + }, + "berries=true": { + "model": "minecraft:block/cave_vines_plant_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chain.json b/assets/minecraft/blockstates/chain.json new file mode 100644 index 00000000..9ae0f964 --- /dev/null +++ b/assets/minecraft/blockstates/chain.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/chain", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/chain" + }, + "axis=z": { + "model": "minecraft:block/chain", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chain_command_block.json b/assets/minecraft/blockstates/chain_command_block.json new file mode 100644 index 00000000..ede14429 --- /dev/null +++ b/assets/minecraft/blockstates/chain_command_block.json @@ -0,0 +1,50 @@ +{ + "variants": { + "conditional=false,facing=down": { + "model": "minecraft:block/chain_command_block", + "x": 90 + }, + "conditional=false,facing=east": { + "model": "minecraft:block/chain_command_block", + "y": 90 + }, + "conditional=false,facing=north": { + "model": "minecraft:block/chain_command_block" + }, + "conditional=false,facing=south": { + "model": "minecraft:block/chain_command_block", + "y": 180 + }, + "conditional=false,facing=up": { + "model": "minecraft:block/chain_command_block", + "x": 270 + }, + "conditional=false,facing=west": { + "model": "minecraft:block/chain_command_block", + "y": 270 + }, + "conditional=true,facing=down": { + "model": "minecraft:block/chain_command_block_conditional", + "x": 90 + }, + "conditional=true,facing=east": { + "model": "minecraft:block/chain_command_block_conditional", + "y": 90 + }, + "conditional=true,facing=north": { + "model": "minecraft:block/chain_command_block_conditional" + }, + "conditional=true,facing=south": { + "model": "minecraft:block/chain_command_block_conditional", + "y": 180 + }, + "conditional=true,facing=up": { + "model": "minecraft:block/chain_command_block_conditional", + "x": 270 + }, + "conditional=true,facing=west": { + "model": "minecraft:block/chain_command_block_conditional", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_button.json b/assets/minecraft/blockstates/cherry_button.json new file mode 100644 index 00000000..89686b63 --- /dev/null +++ b/assets/minecraft/blockstates/cherry_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/cherry_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/cherry_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/cherry_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/cherry_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/cherry_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/cherry_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/cherry_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/cherry_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/cherry_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/cherry_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/cherry_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/cherry_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/cherry_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/cherry_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_door.json b/assets/minecraft/blockstates/cherry_door.json new file mode 100644 index 00000000..73fb6c3b --- /dev/null +++ b/assets/minecraft/blockstates/cherry_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/cherry_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/cherry_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/cherry_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/cherry_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_fence.json b/assets/minecraft/blockstates/cherry_fence.json new file mode 100644 index 00000000..a67bdd8e --- /dev/null +++ b/assets/minecraft/blockstates/cherry_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/cherry_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/cherry_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cherry_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cherry_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cherry_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_fence_gate.json b/assets/minecraft/blockstates/cherry_fence_gate.json new file mode 100644 index 00000000..e92e638c --- /dev/null +++ b/assets/minecraft/blockstates/cherry_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/cherry_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/cherry_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/cherry_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/cherry_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/cherry_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/cherry_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/cherry_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/cherry_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/cherry_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/cherry_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/cherry_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/cherry_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/cherry_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/cherry_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/cherry_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/cherry_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_hanging_sign.json b/assets/minecraft/blockstates/cherry_hanging_sign.json new file mode 100644 index 00000000..f6cd312b --- /dev/null +++ b/assets/minecraft/blockstates/cherry_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cherry_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_leaves.json b/assets/minecraft/blockstates/cherry_leaves.json new file mode 100644 index 00000000..de7a3c88 --- /dev/null +++ b/assets/minecraft/blockstates/cherry_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cherry_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_log.json b/assets/minecraft/blockstates/cherry_log.json new file mode 100644 index 00000000..a35c0d9f --- /dev/null +++ b/assets/minecraft/blockstates/cherry_log.json @@ -0,0 +1,13 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/cherry_log_x" + }, + "axis=y": { + "model": "minecraft:block/cherry_log_y" + }, + "axis=z": { + "model": "minecraft:block/cherry_log_z" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_planks.json b/assets/minecraft/blockstates/cherry_planks.json new file mode 100644 index 00000000..02915c93 --- /dev/null +++ b/assets/minecraft/blockstates/cherry_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cherry_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_pressure_plate.json b/assets/minecraft/blockstates/cherry_pressure_plate.json new file mode 100644 index 00000000..619b8c70 --- /dev/null +++ b/assets/minecraft/blockstates/cherry_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/cherry_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/cherry_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_sapling.json b/assets/minecraft/blockstates/cherry_sapling.json new file mode 100644 index 00000000..cab2fb40 --- /dev/null +++ b/assets/minecraft/blockstates/cherry_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cherry_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_sign.json b/assets/minecraft/blockstates/cherry_sign.json new file mode 100644 index 00000000..e9f5111a --- /dev/null +++ b/assets/minecraft/blockstates/cherry_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cherry_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_slab.json b/assets/minecraft/blockstates/cherry_slab.json new file mode 100644 index 00000000..3c192c1b --- /dev/null +++ b/assets/minecraft/blockstates/cherry_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/cherry_slab" + }, + "type=double": { + "model": "minecraft:block/cherry_planks" + }, + "type=top": { + "model": "minecraft:block/cherry_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_stairs.json b/assets/minecraft/blockstates/cherry_stairs.json new file mode 100644 index 00000000..0de5122b --- /dev/null +++ b/assets/minecraft/blockstates/cherry_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/cherry_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/cherry_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/cherry_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/cherry_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/cherry_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/cherry_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/cherry_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/cherry_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/cherry_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/cherry_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_trapdoor.json b/assets/minecraft/blockstates/cherry_trapdoor.json new file mode 100644 index 00000000..aa843d3f --- /dev/null +++ b/assets/minecraft/blockstates/cherry_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/cherry_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/cherry_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/cherry_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/cherry_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/cherry_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/cherry_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/cherry_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/cherry_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/cherry_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/cherry_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/cherry_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/cherry_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/cherry_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/cherry_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/cherry_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/cherry_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_wall_hanging_sign.json b/assets/minecraft/blockstates/cherry_wall_hanging_sign.json new file mode 100644 index 00000000..f6cd312b --- /dev/null +++ b/assets/minecraft/blockstates/cherry_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cherry_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_wall_sign.json b/assets/minecraft/blockstates/cherry_wall_sign.json new file mode 100644 index 00000000..e9f5111a --- /dev/null +++ b/assets/minecraft/blockstates/cherry_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cherry_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cherry_wood.json b/assets/minecraft/blockstates/cherry_wood.json new file mode 100644 index 00000000..5c180b3f --- /dev/null +++ b/assets/minecraft/blockstates/cherry_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/cherry_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/cherry_wood" + }, + "axis=z": { + "model": "minecraft:block/cherry_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chest.json b/assets/minecraft/blockstates/chest.json new file mode 100644 index 00000000..f78fa579 --- /dev/null +++ b/assets/minecraft/blockstates/chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chest" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chipped_anvil.json b/assets/minecraft/blockstates/chipped_anvil.json new file mode 100644 index 00000000..466eb4c7 --- /dev/null +++ b/assets/minecraft/blockstates/chipped_anvil.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/chipped_anvil", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/chipped_anvil", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/chipped_anvil" + }, + "facing=west": { + "model": "minecraft:block/chipped_anvil", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_bookshelf.json b/assets/minecraft/blockstates/chiseled_bookshelf.json new file mode 100644 index 00000000..85ec035a --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_bookshelf.json @@ -0,0 +1,812 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf", + "uvlock": true, + "y": 0 + }, + "when": { + "facing": "north" + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_left", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_0_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_left", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_0_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_mid", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_1_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_mid", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_1_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_right", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_2_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_right", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_2_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_left", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_3_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_left", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_3_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_mid", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_4_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_mid", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_4_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_right", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_5_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_right", + "y": 0 + }, + "when": { + "AND": [ + { + "facing": "north" + }, + { + "slot_5_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf", + "uvlock": true, + "y": 90 + }, + "when": { + "facing": "east" + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_left", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_0_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_left", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_0_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_mid", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_1_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_mid", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_1_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_right", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_2_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_right", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_2_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_left", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_3_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_left", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_3_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_mid", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_4_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_mid", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_4_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_right", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_5_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_right", + "y": 90 + }, + "when": { + "AND": [ + { + "facing": "east" + }, + { + "slot_5_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf", + "uvlock": true, + "y": 180 + }, + "when": { + "facing": "south" + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_left", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_0_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_left", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_0_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_mid", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_1_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_mid", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_1_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_right", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_2_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_right", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_2_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_left", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_3_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_left", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_3_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_mid", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_4_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_mid", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_4_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_right", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_5_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_right", + "y": 180 + }, + "when": { + "AND": [ + { + "facing": "south" + }, + { + "slot_5_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf", + "uvlock": true, + "y": 270 + }, + "when": { + "facing": "west" + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_left", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_0_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_left", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_0_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_mid", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_1_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_mid", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_1_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_top_right", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_2_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_top_right", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_2_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_left", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_3_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_left", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_3_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_mid", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_4_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_mid", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_4_occupied": "false" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_occupied_slot_bottom_right", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_5_occupied": "true" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/chiseled_bookshelf_empty_slot_bottom_right", + "y": 270 + }, + "when": { + "AND": [ + { + "facing": "west" + }, + { + "slot_5_occupied": "false" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_copper.json b/assets/minecraft/blockstates/chiseled_copper.json new file mode 100644 index 00000000..6b2ccc85 --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_deepslate.json b/assets/minecraft/blockstates/chiseled_deepslate.json new file mode 100644 index 00000000..e7edb5a6 --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_deepslate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_deepslate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_nether_bricks.json b/assets/minecraft/blockstates/chiseled_nether_bricks.json new file mode 100644 index 00000000..c2748322 --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_nether_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_nether_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_polished_blackstone.json b/assets/minecraft/blockstates/chiseled_polished_blackstone.json new file mode 100644 index 00000000..66a2f35f --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_polished_blackstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_polished_blackstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_quartz_block.json b/assets/minecraft/blockstates/chiseled_quartz_block.json new file mode 100644 index 00000000..2e9192c7 --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_quartz_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_quartz_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_red_sandstone.json b/assets/minecraft/blockstates/chiseled_red_sandstone.json new file mode 100644 index 00000000..c1f7cc6e --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_red_sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_red_sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_sandstone.json b/assets/minecraft/blockstates/chiseled_sandstone.json new file mode 100644 index 00000000..7a5de569 --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_stone_bricks.json b/assets/minecraft/blockstates/chiseled_stone_bricks.json new file mode 100644 index 00000000..4034c11b --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_tuff.json b/assets/minecraft/blockstates/chiseled_tuff.json new file mode 100644 index 00000000..d4afccd7 --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_tuff.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_tuff" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chiseled_tuff_bricks.json b/assets/minecraft/blockstates/chiseled_tuff_bricks.json new file mode 100644 index 00000000..6c565446 --- /dev/null +++ b/assets/minecraft/blockstates/chiseled_tuff_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_tuff_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chorus_flower.json b/assets/minecraft/blockstates/chorus_flower.json new file mode 100644 index 00000000..0bf05806 --- /dev/null +++ b/assets/minecraft/blockstates/chorus_flower.json @@ -0,0 +1,22 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/chorus_flower" + }, + "age=1": { + "model": "minecraft:block/chorus_flower" + }, + "age=2": { + "model": "minecraft:block/chorus_flower" + }, + "age=3": { + "model": "minecraft:block/chorus_flower" + }, + "age=4": { + "model": "minecraft:block/chorus_flower" + }, + "age=5": { + "model": "minecraft:block/chorus_flower_dead" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/chorus_plant.json b/assets/minecraft/blockstates/chorus_plant.json new file mode 100644 index 00000000..c84cff18 --- /dev/null +++ b/assets/minecraft/blockstates/chorus_plant.json @@ -0,0 +1,222 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/chorus_plant_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/chorus_plant_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/chorus_plant_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/chorus_plant_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/chorus_plant_side", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/chorus_plant_side", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": [ + { + "model": "minecraft:block/chorus_plant_noside", + "weight": 2 + }, + { + "model": "minecraft:block/chorus_plant_noside1" + }, + { + "model": "minecraft:block/chorus_plant_noside2" + }, + { + "model": "minecraft:block/chorus_plant_noside3" + } + ], + "when": { + "north": "false" + } + }, + { + "apply": [ + { + "model": "minecraft:block/chorus_plant_noside1", + "uvlock": true, + "y": 90 + }, + { + "model": "minecraft:block/chorus_plant_noside2", + "uvlock": true, + "y": 90 + }, + { + "model": "minecraft:block/chorus_plant_noside3", + "uvlock": true, + "y": 90 + }, + { + "model": "minecraft:block/chorus_plant_noside", + "uvlock": true, + "weight": 2, + "y": 90 + } + ], + "when": { + "east": "false" + } + }, + { + "apply": [ + { + "model": "minecraft:block/chorus_plant_noside2", + "uvlock": true, + "y": 180 + }, + { + "model": "minecraft:block/chorus_plant_noside3", + "uvlock": true, + "y": 180 + }, + { + "model": "minecraft:block/chorus_plant_noside", + "uvlock": true, + "weight": 2, + "y": 180 + }, + { + "model": "minecraft:block/chorus_plant_noside1", + "uvlock": true, + "y": 180 + } + ], + "when": { + "south": "false" + } + }, + { + "apply": [ + { + "model": "minecraft:block/chorus_plant_noside3", + "uvlock": true, + "y": 270 + }, + { + "model": "minecraft:block/chorus_plant_noside", + "uvlock": true, + "weight": 2, + "y": 270 + }, + { + "model": "minecraft:block/chorus_plant_noside1", + "uvlock": true, + "y": 270 + }, + { + "model": "minecraft:block/chorus_plant_noside2", + "uvlock": true, + "y": 270 + } + ], + "when": { + "west": "false" + } + }, + { + "apply": [ + { + "model": "minecraft:block/chorus_plant_noside", + "uvlock": true, + "weight": 2, + "x": 270 + }, + { + "model": "minecraft:block/chorus_plant_noside3", + "uvlock": true, + "x": 270 + }, + { + "model": "minecraft:block/chorus_plant_noside1", + "uvlock": true, + "x": 270 + }, + { + "model": "minecraft:block/chorus_plant_noside2", + "uvlock": true, + "x": 270 + } + ], + "when": { + "up": "false" + } + }, + { + "apply": [ + { + "model": "minecraft:block/chorus_plant_noside3", + "uvlock": true, + "x": 90 + }, + { + "model": "minecraft:block/chorus_plant_noside2", + "uvlock": true, + "x": 90 + }, + { + "model": "minecraft:block/chorus_plant_noside1", + "uvlock": true, + "x": 90 + }, + { + "model": "minecraft:block/chorus_plant_noside", + "uvlock": true, + "weight": 2, + "x": 90 + } + ], + "when": { + "down": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/clay.json b/assets/minecraft/blockstates/clay.json new file mode 100644 index 00000000..d22f313b --- /dev/null +++ b/assets/minecraft/blockstates/clay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/clay" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/coal_block.json b/assets/minecraft/blockstates/coal_block.json new file mode 100644 index 00000000..266adaad --- /dev/null +++ b/assets/minecraft/blockstates/coal_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/coal_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/coal_ore.json b/assets/minecraft/blockstates/coal_ore.json new file mode 100644 index 00000000..9fa7c00d --- /dev/null +++ b/assets/minecraft/blockstates/coal_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/coal_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/coarse_dirt.json b/assets/minecraft/blockstates/coarse_dirt.json new file mode 100644 index 00000000..1f87e5c1 --- /dev/null +++ b/assets/minecraft/blockstates/coarse_dirt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/coarse_dirt" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobbled_deepslate.json b/assets/minecraft/blockstates/cobbled_deepslate.json new file mode 100644 index 00000000..d44144f1 --- /dev/null +++ b/assets/minecraft/blockstates/cobbled_deepslate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cobbled_deepslate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobbled_deepslate_slab.json b/assets/minecraft/blockstates/cobbled_deepslate_slab.json new file mode 100644 index 00000000..65a49dcc --- /dev/null +++ b/assets/minecraft/blockstates/cobbled_deepslate_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/cobbled_deepslate_slab" + }, + "type=double": { + "model": "minecraft:block/cobbled_deepslate" + }, + "type=top": { + "model": "minecraft:block/cobbled_deepslate_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobbled_deepslate_stairs.json b/assets/minecraft/blockstates/cobbled_deepslate_stairs.json new file mode 100644 index 00000000..1c243b1d --- /dev/null +++ b/assets/minecraft/blockstates/cobbled_deepslate_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/cobbled_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/cobbled_deepslate_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobbled_deepslate_wall.json b/assets/minecraft/blockstates/cobbled_deepslate_wall.json new file mode 100644 index 00000000..baa3cbb9 --- /dev/null +++ b/assets/minecraft/blockstates/cobbled_deepslate_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/cobbled_deepslate_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobblestone.json b/assets/minecraft/blockstates/cobblestone.json new file mode 100644 index 00000000..e94cf882 --- /dev/null +++ b/assets/minecraft/blockstates/cobblestone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cobblestone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobblestone_slab.json b/assets/minecraft/blockstates/cobblestone_slab.json new file mode 100644 index 00000000..8164d9ed --- /dev/null +++ b/assets/minecraft/blockstates/cobblestone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/cobblestone_slab" + }, + "type=double": { + "model": "minecraft:block/cobblestone" + }, + "type=top": { + "model": "minecraft:block/cobblestone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobblestone_stairs.json b/assets/minecraft/blockstates/cobblestone_stairs.json new file mode 100644 index 00000000..e018cb30 --- /dev/null +++ b/assets/minecraft/blockstates/cobblestone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/cobblestone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/cobblestone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/cobblestone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/cobblestone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/cobblestone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/cobblestone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/cobblestone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/cobblestone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobblestone_wall.json b/assets/minecraft/blockstates/cobblestone_wall.json new file mode 100644 index 00000000..ea2f6761 --- /dev/null +++ b/assets/minecraft/blockstates/cobblestone_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/cobblestone_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/cobblestone_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cobweb.json b/assets/minecraft/blockstates/cobweb.json new file mode 100644 index 00000000..30a165e4 --- /dev/null +++ b/assets/minecraft/blockstates/cobweb.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cobweb" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cocoa.json b/assets/minecraft/blockstates/cocoa.json new file mode 100644 index 00000000..d12aa4ec --- /dev/null +++ b/assets/minecraft/blockstates/cocoa.json @@ -0,0 +1,49 @@ +{ + "variants": { + "age=0,facing=east": { + "model": "minecraft:block/cocoa_stage0", + "y": 270 + }, + "age=0,facing=north": { + "model": "minecraft:block/cocoa_stage0", + "y": 180 + }, + "age=0,facing=south": { + "model": "minecraft:block/cocoa_stage0" + }, + "age=0,facing=west": { + "model": "minecraft:block/cocoa_stage0", + "y": 90 + }, + "age=1,facing=east": { + "model": "minecraft:block/cocoa_stage1", + "y": 270 + }, + "age=1,facing=north": { + "model": "minecraft:block/cocoa_stage1", + "y": 180 + }, + "age=1,facing=south": { + "model": "minecraft:block/cocoa_stage1" + }, + "age=1,facing=west": { + "model": "minecraft:block/cocoa_stage1", + "y": 90 + }, + "age=2,facing=east": { + "model": "minecraft:block/cocoa_stage2", + "y": 270 + }, + "age=2,facing=north": { + "model": "minecraft:block/cocoa_stage2", + "y": 180 + }, + "age=2,facing=south": { + "model": "minecraft:block/cocoa_stage2" + }, + "age=2,facing=west": { + "model": "minecraft:block/cocoa_stage2", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/command_block.json b/assets/minecraft/blockstates/command_block.json new file mode 100644 index 00000000..dbda5cf3 --- /dev/null +++ b/assets/minecraft/blockstates/command_block.json @@ -0,0 +1,50 @@ +{ + "variants": { + "conditional=false,facing=down": { + "model": "minecraft:block/command_block", + "x": 90 + }, + "conditional=false,facing=east": { + "model": "minecraft:block/command_block", + "y": 90 + }, + "conditional=false,facing=north": { + "model": "minecraft:block/command_block" + }, + "conditional=false,facing=south": { + "model": "minecraft:block/command_block", + "y": 180 + }, + "conditional=false,facing=up": { + "model": "minecraft:block/command_block", + "x": 270 + }, + "conditional=false,facing=west": { + "model": "minecraft:block/command_block", + "y": 270 + }, + "conditional=true,facing=down": { + "model": "minecraft:block/command_block_conditional", + "x": 90 + }, + "conditional=true,facing=east": { + "model": "minecraft:block/command_block_conditional", + "y": 90 + }, + "conditional=true,facing=north": { + "model": "minecraft:block/command_block_conditional" + }, + "conditional=true,facing=south": { + "model": "minecraft:block/command_block_conditional", + "y": 180 + }, + "conditional=true,facing=up": { + "model": "minecraft:block/command_block_conditional", + "x": 270 + }, + "conditional=true,facing=west": { + "model": "minecraft:block/command_block_conditional", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/comparator.json b/assets/minecraft/blockstates/comparator.json new file mode 100644 index 00000000..13f9f214 --- /dev/null +++ b/assets/minecraft/blockstates/comparator.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=east,mode=compare,powered=false": { + "model": "minecraft:block/comparator", + "y": 270 + }, + "facing=east,mode=compare,powered=true": { + "model": "minecraft:block/comparator_on", + "y": 270 + }, + "facing=east,mode=subtract,powered=false": { + "model": "minecraft:block/comparator_subtract", + "y": 270 + }, + "facing=east,mode=subtract,powered=true": { + "model": "minecraft:block/comparator_on_subtract", + "y": 270 + }, + "facing=north,mode=compare,powered=false": { + "model": "minecraft:block/comparator", + "y": 180 + }, + "facing=north,mode=compare,powered=true": { + "model": "minecraft:block/comparator_on", + "y": 180 + }, + "facing=north,mode=subtract,powered=false": { + "model": "minecraft:block/comparator_subtract", + "y": 180 + }, + "facing=north,mode=subtract,powered=true": { + "model": "minecraft:block/comparator_on_subtract", + "y": 180 + }, + "facing=south,mode=compare,powered=false": { + "model": "minecraft:block/comparator" + }, + "facing=south,mode=compare,powered=true": { + "model": "minecraft:block/comparator_on" + }, + "facing=south,mode=subtract,powered=false": { + "model": "minecraft:block/comparator_subtract" + }, + "facing=south,mode=subtract,powered=true": { + "model": "minecraft:block/comparator_on_subtract" + }, + "facing=west,mode=compare,powered=false": { + "model": "minecraft:block/comparator", + "y": 90 + }, + "facing=west,mode=compare,powered=true": { + "model": "minecraft:block/comparator_on", + "y": 90 + }, + "facing=west,mode=subtract,powered=false": { + "model": "minecraft:block/comparator_subtract", + "y": 90 + }, + "facing=west,mode=subtract,powered=true": { + "model": "minecraft:block/comparator_on_subtract", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/composter.json b/assets/minecraft/blockstates/composter.json new file mode 100644 index 00000000..219eea9c --- /dev/null +++ b/assets/minecraft/blockstates/composter.json @@ -0,0 +1,73 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/composter" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents1" + }, + "when": { + "level": "1" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents2" + }, + "when": { + "level": "2" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents3" + }, + "when": { + "level": "3" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents4" + }, + "when": { + "level": "4" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents5" + }, + "when": { + "level": "5" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents6" + }, + "when": { + "level": "6" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents7" + }, + "when": { + "level": "7" + } + }, + { + "apply": { + "model": "minecraft:block/composter_contents_ready" + }, + "when": { + "level": "8" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/conduit.json b/assets/minecraft/blockstates/conduit.json new file mode 100644 index 00000000..f6841bed --- /dev/null +++ b/assets/minecraft/blockstates/conduit.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/conduit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/copper_block.json b/assets/minecraft/blockstates/copper_block.json new file mode 100644 index 00000000..b440184d --- /dev/null +++ b/assets/minecraft/blockstates/copper_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/copper_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/copper_bulb.json b/assets/minecraft/blockstates/copper_bulb.json new file mode 100644 index 00000000..5929d9b4 --- /dev/null +++ b/assets/minecraft/blockstates/copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/copper_door.json b/assets/minecraft/blockstates/copper_door.json new file mode 100644 index 00000000..44dcbdef --- /dev/null +++ b/assets/minecraft/blockstates/copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/copper_grate.json b/assets/minecraft/blockstates/copper_grate.json new file mode 100644 index 00000000..2f7bc9ec --- /dev/null +++ b/assets/minecraft/blockstates/copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/copper_ore.json b/assets/minecraft/blockstates/copper_ore.json new file mode 100644 index 00000000..c8cd05c4 --- /dev/null +++ b/assets/minecraft/blockstates/copper_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/copper_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/copper_trapdoor.json b/assets/minecraft/blockstates/copper_trapdoor.json new file mode 100644 index 00000000..837c01b9 --- /dev/null +++ b/assets/minecraft/blockstates/copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cornflower.json b/assets/minecraft/blockstates/cornflower.json new file mode 100644 index 00000000..2d787937 --- /dev/null +++ b/assets/minecraft/blockstates/cornflower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cornflower" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cracked_deepslate_bricks.json b/assets/minecraft/blockstates/cracked_deepslate_bricks.json new file mode 100644 index 00000000..008daf0d --- /dev/null +++ b/assets/minecraft/blockstates/cracked_deepslate_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cracked_deepslate_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cracked_deepslate_tiles.json b/assets/minecraft/blockstates/cracked_deepslate_tiles.json new file mode 100644 index 00000000..99ddace6 --- /dev/null +++ b/assets/minecraft/blockstates/cracked_deepslate_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cracked_deepslate_tiles" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cracked_nether_bricks.json b/assets/minecraft/blockstates/cracked_nether_bricks.json new file mode 100644 index 00000000..42f44bba --- /dev/null +++ b/assets/minecraft/blockstates/cracked_nether_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cracked_nether_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cracked_polished_blackstone_bricks.json b/assets/minecraft/blockstates/cracked_polished_blackstone_bricks.json new file mode 100644 index 00000000..2fe33ddc --- /dev/null +++ b/assets/minecraft/blockstates/cracked_polished_blackstone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cracked_polished_blackstone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cracked_stone_bricks.json b/assets/minecraft/blockstates/cracked_stone_bricks.json new file mode 100644 index 00000000..6e194be2 --- /dev/null +++ b/assets/minecraft/blockstates/cracked_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cracked_stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crafter.json b/assets/minecraft/blockstates/crafter.json new file mode 100644 index 00000000..2de2b178 --- /dev/null +++ b/assets/minecraft/blockstates/crafter.json @@ -0,0 +1,216 @@ +{ + "variants": { + "crafting=false,orientation=down_east,triggered=false": { + "model": "minecraft:block/crafter", + "x": 90, + "y": 90 + }, + "crafting=false,orientation=down_east,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 90, + "y": 90 + }, + "crafting=false,orientation=down_north,triggered=false": { + "model": "minecraft:block/crafter", + "x": 90 + }, + "crafting=false,orientation=down_north,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 90 + }, + "crafting=false,orientation=down_south,triggered=false": { + "model": "minecraft:block/crafter", + "x": 90, + "y": 180 + }, + "crafting=false,orientation=down_south,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 90, + "y": 180 + }, + "crafting=false,orientation=down_west,triggered=false": { + "model": "minecraft:block/crafter", + "x": 90, + "y": 270 + }, + "crafting=false,orientation=down_west,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 90, + "y": 270 + }, + "crafting=false,orientation=east_up,triggered=false": { + "model": "minecraft:block/crafter", + "y": 90 + }, + "crafting=false,orientation=east_up,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "y": 90 + }, + "crafting=false,orientation=north_up,triggered=false": { + "model": "minecraft:block/crafter" + }, + "crafting=false,orientation=north_up,triggered=true": { + "model": "minecraft:block/crafter_triggered" + }, + "crafting=false,orientation=south_up,triggered=false": { + "model": "minecraft:block/crafter", + "y": 180 + }, + "crafting=false,orientation=south_up,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "y": 180 + }, + "crafting=false,orientation=up_east,triggered=false": { + "model": "minecraft:block/crafter", + "x": 270, + "y": 270 + }, + "crafting=false,orientation=up_east,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 270, + "y": 270 + }, + "crafting=false,orientation=up_north,triggered=false": { + "model": "minecraft:block/crafter", + "x": 270, + "y": 180 + }, + "crafting=false,orientation=up_north,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 270, + "y": 180 + }, + "crafting=false,orientation=up_south,triggered=false": { + "model": "minecraft:block/crafter", + "x": 270 + }, + "crafting=false,orientation=up_south,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 270 + }, + "crafting=false,orientation=up_west,triggered=false": { + "model": "minecraft:block/crafter", + "x": 270, + "y": 90 + }, + "crafting=false,orientation=up_west,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "x": 270, + "y": 90 + }, + "crafting=false,orientation=west_up,triggered=false": { + "model": "minecraft:block/crafter", + "y": 270 + }, + "crafting=false,orientation=west_up,triggered=true": { + "model": "minecraft:block/crafter_triggered", + "y": 270 + }, + "crafting=true,orientation=down_east,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 90, + "y": 90 + }, + "crafting=true,orientation=down_east,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 90, + "y": 90 + }, + "crafting=true,orientation=down_north,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 90 + }, + "crafting=true,orientation=down_north,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 90 + }, + "crafting=true,orientation=down_south,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 90, + "y": 180 + }, + "crafting=true,orientation=down_south,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 90, + "y": 180 + }, + "crafting=true,orientation=down_west,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 90, + "y": 270 + }, + "crafting=true,orientation=down_west,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 90, + "y": 270 + }, + "crafting=true,orientation=east_up,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "y": 90 + }, + "crafting=true,orientation=east_up,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "y": 90 + }, + "crafting=true,orientation=north_up,triggered=false": { + "model": "minecraft:block/crafter_crafting" + }, + "crafting=true,orientation=north_up,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered" + }, + "crafting=true,orientation=south_up,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "y": 180 + }, + "crafting=true,orientation=south_up,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "y": 180 + }, + "crafting=true,orientation=up_east,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 270, + "y": 270 + }, + "crafting=true,orientation=up_east,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 270, + "y": 270 + }, + "crafting=true,orientation=up_north,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 270, + "y": 180 + }, + "crafting=true,orientation=up_north,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 270, + "y": 180 + }, + "crafting=true,orientation=up_south,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 270 + }, + "crafting=true,orientation=up_south,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 270 + }, + "crafting=true,orientation=up_west,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "x": 270, + "y": 90 + }, + "crafting=true,orientation=up_west,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "x": 270, + "y": 90 + }, + "crafting=true,orientation=west_up,triggered=false": { + "model": "minecraft:block/crafter_crafting", + "y": 270 + }, + "crafting=true,orientation=west_up,triggered=true": { + "model": "minecraft:block/crafter_crafting_triggered", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crafting_table.json b/assets/minecraft/blockstates/crafting_table.json new file mode 100644 index 00000000..46adc790 --- /dev/null +++ b/assets/minecraft/blockstates/crafting_table.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crafting_table" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/creeper_head.json b/assets/minecraft/blockstates/creeper_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/creeper_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/creeper_wall_head.json b/assets/minecraft/blockstates/creeper_wall_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/creeper_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_button.json b/assets/minecraft/blockstates/crimson_button.json new file mode 100644 index 00000000..bccd1097 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/crimson_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/crimson_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/crimson_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/crimson_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/crimson_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/crimson_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/crimson_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/crimson_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/crimson_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/crimson_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/crimson_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/crimson_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/crimson_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/crimson_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_door.json b/assets/minecraft/blockstates/crimson_door.json new file mode 100644 index 00000000..4e60e7b9 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/crimson_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/crimson_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/crimson_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/crimson_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_fence.json b/assets/minecraft/blockstates/crimson_fence.json new file mode 100644 index 00000000..8f5a2735 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/crimson_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/crimson_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/crimson_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/crimson_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/crimson_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_fence_gate.json b/assets/minecraft/blockstates/crimson_fence_gate.json new file mode 100644 index 00000000..f53ea9c2 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/crimson_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/crimson_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/crimson_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/crimson_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/crimson_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/crimson_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/crimson_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/crimson_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/crimson_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/crimson_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/crimson_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/crimson_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/crimson_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/crimson_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/crimson_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/crimson_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_fungus.json b/assets/minecraft/blockstates/crimson_fungus.json new file mode 100644 index 00000000..4ee39fd2 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_fungus.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_fungus" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_hanging_sign.json b/assets/minecraft/blockstates/crimson_hanging_sign.json new file mode 100644 index 00000000..2c48d46f --- /dev/null +++ b/assets/minecraft/blockstates/crimson_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_hyphae.json b/assets/minecraft/blockstates/crimson_hyphae.json new file mode 100644 index 00000000..115ed635 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_hyphae.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/crimson_hyphae", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/crimson_hyphae" + }, + "axis=z": { + "model": "minecraft:block/crimson_hyphae", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_nylium.json b/assets/minecraft/blockstates/crimson_nylium.json new file mode 100644 index 00000000..e3ecaf60 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_nylium.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_nylium" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_planks.json b/assets/minecraft/blockstates/crimson_planks.json new file mode 100644 index 00000000..9cd4ff65 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_pressure_plate.json b/assets/minecraft/blockstates/crimson_pressure_plate.json new file mode 100644 index 00000000..7e7ab3d6 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/crimson_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/crimson_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_roots.json b/assets/minecraft/blockstates/crimson_roots.json new file mode 100644 index 00000000..830d559a --- /dev/null +++ b/assets/minecraft/blockstates/crimson_roots.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_roots" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_sign.json b/assets/minecraft/blockstates/crimson_sign.json new file mode 100644 index 00000000..c2f40c97 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_slab.json b/assets/minecraft/blockstates/crimson_slab.json new file mode 100644 index 00000000..7f8f651d --- /dev/null +++ b/assets/minecraft/blockstates/crimson_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/crimson_slab" + }, + "type=double": { + "model": "minecraft:block/crimson_planks" + }, + "type=top": { + "model": "minecraft:block/crimson_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_stairs.json b/assets/minecraft/blockstates/crimson_stairs.json new file mode 100644 index 00000000..508f9dd2 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/crimson_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/crimson_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/crimson_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/crimson_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/crimson_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/crimson_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/crimson_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/crimson_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/crimson_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/crimson_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_stem.json b/assets/minecraft/blockstates/crimson_stem.json new file mode 100644 index 00000000..81285b0c --- /dev/null +++ b/assets/minecraft/blockstates/crimson_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/crimson_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/crimson_stem" + }, + "axis=z": { + "model": "minecraft:block/crimson_stem", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_trapdoor.json b/assets/minecraft/blockstates/crimson_trapdoor.json new file mode 100644 index 00000000..a3be29c0 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/crimson_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/crimson_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/crimson_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/crimson_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/crimson_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/crimson_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/crimson_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/crimson_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/crimson_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/crimson_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/crimson_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/crimson_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/crimson_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/crimson_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/crimson_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/crimson_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_wall_hanging_sign.json b/assets/minecraft/blockstates/crimson_wall_hanging_sign.json new file mode 100644 index 00000000..2c48d46f --- /dev/null +++ b/assets/minecraft/blockstates/crimson_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crimson_wall_sign.json b/assets/minecraft/blockstates/crimson_wall_sign.json new file mode 100644 index 00000000..c2f40c97 --- /dev/null +++ b/assets/minecraft/blockstates/crimson_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crimson_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/crying_obsidian.json b/assets/minecraft/blockstates/crying_obsidian.json new file mode 100644 index 00000000..fd7ad59e --- /dev/null +++ b/assets/minecraft/blockstates/crying_obsidian.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/crying_obsidian" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cut_copper.json b/assets/minecraft/blockstates/cut_copper.json new file mode 100644 index 00000000..2105f293 --- /dev/null +++ b/assets/minecraft/blockstates/cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cut_copper_slab.json b/assets/minecraft/blockstates/cut_copper_slab.json new file mode 100644 index 00000000..31d149b5 --- /dev/null +++ b/assets/minecraft/blockstates/cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/cut_copper" + }, + "type=top": { + "model": "minecraft:block/cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cut_copper_stairs.json b/assets/minecraft/blockstates/cut_copper_stairs.json new file mode 100644 index 00000000..95160aaf --- /dev/null +++ b/assets/minecraft/blockstates/cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cut_red_sandstone.json b/assets/minecraft/blockstates/cut_red_sandstone.json new file mode 100644 index 00000000..7ef05a72 --- /dev/null +++ b/assets/minecraft/blockstates/cut_red_sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cut_red_sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cut_red_sandstone_slab.json b/assets/minecraft/blockstates/cut_red_sandstone_slab.json new file mode 100644 index 00000000..0b7645ae --- /dev/null +++ b/assets/minecraft/blockstates/cut_red_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/cut_red_sandstone_slab" + }, + "type=double": { + "model": "minecraft:block/cut_red_sandstone" + }, + "type=top": { + "model": "minecraft:block/cut_red_sandstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cut_sandstone.json b/assets/minecraft/blockstates/cut_sandstone.json new file mode 100644 index 00000000..9bab8fc4 --- /dev/null +++ b/assets/minecraft/blockstates/cut_sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cut_sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cut_sandstone_slab.json b/assets/minecraft/blockstates/cut_sandstone_slab.json new file mode 100644 index 00000000..5c8f0520 --- /dev/null +++ b/assets/minecraft/blockstates/cut_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/cut_sandstone_slab" + }, + "type=double": { + "model": "minecraft:block/cut_sandstone" + }, + "type=top": { + "model": "minecraft:block/cut_sandstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_banner.json b/assets/minecraft/blockstates/cyan_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/cyan_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_bed.json b/assets/minecraft/blockstates/cyan_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/cyan_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_candle.json b/assets/minecraft/blockstates/cyan_candle.json new file mode 100644 index 00000000..4e35ccd5 --- /dev/null +++ b/assets/minecraft/blockstates/cyan_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/cyan_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/cyan_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/cyan_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/cyan_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/cyan_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/cyan_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/cyan_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/cyan_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_candle_cake.json b/assets/minecraft/blockstates/cyan_candle_cake.json new file mode 100644 index 00000000..348abcc2 --- /dev/null +++ b/assets/minecraft/blockstates/cyan_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/cyan_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/cyan_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_carpet.json b/assets/minecraft/blockstates/cyan_carpet.json new file mode 100644 index 00000000..0b0212c5 --- /dev/null +++ b/assets/minecraft/blockstates/cyan_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cyan_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_concrete.json b/assets/minecraft/blockstates/cyan_concrete.json new file mode 100644 index 00000000..32935a3b --- /dev/null +++ b/assets/minecraft/blockstates/cyan_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cyan_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_concrete_powder.json b/assets/minecraft/blockstates/cyan_concrete_powder.json new file mode 100644 index 00000000..cf7085eb --- /dev/null +++ b/assets/minecraft/blockstates/cyan_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/cyan_concrete_powder" + }, + { + "model": "minecraft:block/cyan_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/cyan_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/cyan_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_glazed_terracotta.json b/assets/minecraft/blockstates/cyan_glazed_terracotta.json new file mode 100644 index 00000000..26276ef3 --- /dev/null +++ b/assets/minecraft/blockstates/cyan_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/cyan_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/cyan_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/cyan_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/cyan_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_shulker_box.json b/assets/minecraft/blockstates/cyan_shulker_box.json new file mode 100644 index 00000000..86214c0d --- /dev/null +++ b/assets/minecraft/blockstates/cyan_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cyan_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_stained_glass.json b/assets/minecraft/blockstates/cyan_stained_glass.json new file mode 100644 index 00000000..6645a573 --- /dev/null +++ b/assets/minecraft/blockstates/cyan_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cyan_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_stained_glass_pane.json b/assets/minecraft/blockstates/cyan_stained_glass_pane.json new file mode 100644 index 00000000..e1fddf7e --- /dev/null +++ b/assets/minecraft/blockstates/cyan_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/cyan_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_terracotta.json b/assets/minecraft/blockstates/cyan_terracotta.json new file mode 100644 index 00000000..dca321fa --- /dev/null +++ b/assets/minecraft/blockstates/cyan_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cyan_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_wall_banner.json b/assets/minecraft/blockstates/cyan_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/cyan_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/cyan_wool.json b/assets/minecraft/blockstates/cyan_wool.json new file mode 100644 index 00000000..48b12b5a --- /dev/null +++ b/assets/minecraft/blockstates/cyan_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cyan_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/damaged_anvil.json b/assets/minecraft/blockstates/damaged_anvil.json new file mode 100644 index 00000000..cca2bca4 --- /dev/null +++ b/assets/minecraft/blockstates/damaged_anvil.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/damaged_anvil", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/damaged_anvil", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/damaged_anvil" + }, + "facing=west": { + "model": "minecraft:block/damaged_anvil", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dandelion.json b/assets/minecraft/blockstates/dandelion.json new file mode 100644 index 00000000..bf8a14b9 --- /dev/null +++ b/assets/minecraft/blockstates/dandelion.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dandelion" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_button.json b/assets/minecraft/blockstates/dark_oak_button.json new file mode 100644 index 00000000..fca36041 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/dark_oak_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/dark_oak_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/dark_oak_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/dark_oak_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/dark_oak_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/dark_oak_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/dark_oak_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/dark_oak_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/dark_oak_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/dark_oak_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/dark_oak_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/dark_oak_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/dark_oak_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_door.json b/assets/minecraft/blockstates/dark_oak_door.json new file mode 100644 index 00000000..aa45d8ca --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/dark_oak_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/dark_oak_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/dark_oak_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/dark_oak_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_fence.json b/assets/minecraft/blockstates/dark_oak_fence.json new file mode 100644 index 00000000..59bdf154 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/dark_oak_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/dark_oak_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/dark_oak_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/dark_oak_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/dark_oak_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_fence_gate.json b/assets/minecraft/blockstates/dark_oak_fence_gate.json new file mode 100644 index 00000000..3b6d547f --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/dark_oak_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/dark_oak_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/dark_oak_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/dark_oak_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/dark_oak_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/dark_oak_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/dark_oak_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/dark_oak_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/dark_oak_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_hanging_sign.json b/assets/minecraft/blockstates/dark_oak_hanging_sign.json new file mode 100644 index 00000000..e21ee9aa --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_oak_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_leaves.json b/assets/minecraft/blockstates/dark_oak_leaves.json new file mode 100644 index 00000000..0b6f4f4d --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_oak_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_log.json b/assets/minecraft/blockstates/dark_oak_log.json new file mode 100644 index 00000000..ae91a107 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/dark_oak_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/dark_oak_log" + }, + "axis=z": { + "model": "minecraft:block/dark_oak_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_planks.json b/assets/minecraft/blockstates/dark_oak_planks.json new file mode 100644 index 00000000..47194b08 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_oak_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_pressure_plate.json b/assets/minecraft/blockstates/dark_oak_pressure_plate.json new file mode 100644 index 00000000..7a3ce2af --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/dark_oak_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/dark_oak_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_sapling.json b/assets/minecraft/blockstates/dark_oak_sapling.json new file mode 100644 index 00000000..31435f37 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_oak_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_sign.json b/assets/minecraft/blockstates/dark_oak_sign.json new file mode 100644 index 00000000..d3e8f533 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_oak_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_slab.json b/assets/minecraft/blockstates/dark_oak_slab.json new file mode 100644 index 00000000..a99483a2 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/dark_oak_slab" + }, + "type=double": { + "model": "minecraft:block/dark_oak_planks" + }, + "type=top": { + "model": "minecraft:block/dark_oak_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_stairs.json b/assets/minecraft/blockstates/dark_oak_stairs.json new file mode 100644 index 00000000..4ab6e05d --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/dark_oak_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/dark_oak_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/dark_oak_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/dark_oak_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/dark_oak_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/dark_oak_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/dark_oak_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/dark_oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/dark_oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/dark_oak_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_trapdoor.json b/assets/minecraft/blockstates/dark_oak_trapdoor.json new file mode 100644 index 00000000..87bb35c2 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/dark_oak_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/dark_oak_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_wall_hanging_sign.json b/assets/minecraft/blockstates/dark_oak_wall_hanging_sign.json new file mode 100644 index 00000000..e21ee9aa --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_oak_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_wall_sign.json b/assets/minecraft/blockstates/dark_oak_wall_sign.json new file mode 100644 index 00000000..d3e8f533 --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_oak_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_oak_wood.json b/assets/minecraft/blockstates/dark_oak_wood.json new file mode 100644 index 00000000..d45b617f --- /dev/null +++ b/assets/minecraft/blockstates/dark_oak_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/dark_oak_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/dark_oak_wood" + }, + "axis=z": { + "model": "minecraft:block/dark_oak_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_prismarine.json b/assets/minecraft/blockstates/dark_prismarine.json new file mode 100644 index 00000000..2f1ce749 --- /dev/null +++ b/assets/minecraft/blockstates/dark_prismarine.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dark_prismarine" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_prismarine_slab.json b/assets/minecraft/blockstates/dark_prismarine_slab.json new file mode 100644 index 00000000..80a61949 --- /dev/null +++ b/assets/minecraft/blockstates/dark_prismarine_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/dark_prismarine_slab" + }, + "type=double": { + "model": "minecraft:block/dark_prismarine" + }, + "type=top": { + "model": "minecraft:block/dark_prismarine_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dark_prismarine_stairs.json b/assets/minecraft/blockstates/dark_prismarine_stairs.json new file mode 100644 index 00000000..f53fdfcf --- /dev/null +++ b/assets/minecraft/blockstates/dark_prismarine_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/dark_prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/dark_prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/dark_prismarine_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/daylight_detector.json b/assets/minecraft/blockstates/daylight_detector.json new file mode 100644 index 00000000..c6182ff9 --- /dev/null +++ b/assets/minecraft/blockstates/daylight_detector.json @@ -0,0 +1,10 @@ +{ + "variants": { + "inverted=false": { + "model": "minecraft:block/daylight_detector" + }, + "inverted=true": { + "model": "minecraft:block/daylight_detector_inverted" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_brain_coral.json b/assets/minecraft/blockstates/dead_brain_coral.json new file mode 100644 index 00000000..736b2bd4 --- /dev/null +++ b/assets/minecraft/blockstates/dead_brain_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_brain_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_brain_coral_block.json b/assets/minecraft/blockstates/dead_brain_coral_block.json new file mode 100644 index 00000000..550f6b06 --- /dev/null +++ b/assets/minecraft/blockstates/dead_brain_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_brain_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_brain_coral_fan.json b/assets/minecraft/blockstates/dead_brain_coral_fan.json new file mode 100644 index 00000000..41c6e2a9 --- /dev/null +++ b/assets/minecraft/blockstates/dead_brain_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_brain_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_brain_coral_wall_fan.json b/assets/minecraft/blockstates/dead_brain_coral_wall_fan.json new file mode 100644 index 00000000..03c9d976 --- /dev/null +++ b/assets/minecraft/blockstates/dead_brain_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/dead_brain_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/dead_brain_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/dead_brain_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/dead_brain_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_bubble_coral.json b/assets/minecraft/blockstates/dead_bubble_coral.json new file mode 100644 index 00000000..fac745e1 --- /dev/null +++ b/assets/minecraft/blockstates/dead_bubble_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_bubble_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_bubble_coral_block.json b/assets/minecraft/blockstates/dead_bubble_coral_block.json new file mode 100644 index 00000000..ada5781b --- /dev/null +++ b/assets/minecraft/blockstates/dead_bubble_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_bubble_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_bubble_coral_fan.json b/assets/minecraft/blockstates/dead_bubble_coral_fan.json new file mode 100644 index 00000000..d55b0608 --- /dev/null +++ b/assets/minecraft/blockstates/dead_bubble_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_bubble_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_bubble_coral_wall_fan.json b/assets/minecraft/blockstates/dead_bubble_coral_wall_fan.json new file mode 100644 index 00000000..727aea19 --- /dev/null +++ b/assets/minecraft/blockstates/dead_bubble_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/dead_bubble_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/dead_bubble_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/dead_bubble_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/dead_bubble_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_bush.json b/assets/minecraft/blockstates/dead_bush.json new file mode 100644 index 00000000..ed88d109 --- /dev/null +++ b/assets/minecraft/blockstates/dead_bush.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_bush" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_fire_coral.json b/assets/minecraft/blockstates/dead_fire_coral.json new file mode 100644 index 00000000..65f7ee33 --- /dev/null +++ b/assets/minecraft/blockstates/dead_fire_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_fire_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_fire_coral_block.json b/assets/minecraft/blockstates/dead_fire_coral_block.json new file mode 100644 index 00000000..4414956f --- /dev/null +++ b/assets/minecraft/blockstates/dead_fire_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_fire_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_fire_coral_fan.json b/assets/minecraft/blockstates/dead_fire_coral_fan.json new file mode 100644 index 00000000..fb3c6feb --- /dev/null +++ b/assets/minecraft/blockstates/dead_fire_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_fire_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_fire_coral_wall_fan.json b/assets/minecraft/blockstates/dead_fire_coral_wall_fan.json new file mode 100644 index 00000000..0fd52584 --- /dev/null +++ b/assets/minecraft/blockstates/dead_fire_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/dead_fire_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/dead_fire_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/dead_fire_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/dead_fire_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_horn_coral.json b/assets/minecraft/blockstates/dead_horn_coral.json new file mode 100644 index 00000000..f38ce336 --- /dev/null +++ b/assets/minecraft/blockstates/dead_horn_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_horn_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_horn_coral_block.json b/assets/minecraft/blockstates/dead_horn_coral_block.json new file mode 100644 index 00000000..8666c0c6 --- /dev/null +++ b/assets/minecraft/blockstates/dead_horn_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_horn_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_horn_coral_fan.json b/assets/minecraft/blockstates/dead_horn_coral_fan.json new file mode 100644 index 00000000..1f72003e --- /dev/null +++ b/assets/minecraft/blockstates/dead_horn_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_horn_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_horn_coral_wall_fan.json b/assets/minecraft/blockstates/dead_horn_coral_wall_fan.json new file mode 100644 index 00000000..02928d6e --- /dev/null +++ b/assets/minecraft/blockstates/dead_horn_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/dead_horn_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/dead_horn_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/dead_horn_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/dead_horn_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_tube_coral.json b/assets/minecraft/blockstates/dead_tube_coral.json new file mode 100644 index 00000000..156c3f0a --- /dev/null +++ b/assets/minecraft/blockstates/dead_tube_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_tube_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_tube_coral_block.json b/assets/minecraft/blockstates/dead_tube_coral_block.json new file mode 100644 index 00000000..72d40552 --- /dev/null +++ b/assets/minecraft/blockstates/dead_tube_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_tube_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_tube_coral_fan.json b/assets/minecraft/blockstates/dead_tube_coral_fan.json new file mode 100644 index 00000000..095e294b --- /dev/null +++ b/assets/minecraft/blockstates/dead_tube_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dead_tube_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dead_tube_coral_wall_fan.json b/assets/minecraft/blockstates/dead_tube_coral_wall_fan.json new file mode 100644 index 00000000..0705e15d --- /dev/null +++ b/assets/minecraft/blockstates/dead_tube_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/dead_tube_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/dead_tube_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/dead_tube_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/dead_tube_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/decorated_pot.json b/assets/minecraft/blockstates/decorated_pot.json new file mode 100644 index 00000000..2aa0faf7 --- /dev/null +++ b/assets/minecraft/blockstates/decorated_pot.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/decorated_pot" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate.json b/assets/minecraft/blockstates/deepslate.json new file mode 100644 index 00000000..dd197be8 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate.json @@ -0,0 +1,62 @@ +{ + "variants": { + "axis=x": [ + { + "model": "minecraft:block/deepslate", + "x": 90, + "y": 90 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90, + "y": 90 + }, + { + "model": "minecraft:block/deepslate", + "x": 90, + "y": 90 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90, + "y": 90 + } + ], + "axis=y": [ + { + "model": "minecraft:block/deepslate" + }, + { + "model": "minecraft:block/deepslate_mirrored" + }, + { + "model": "minecraft:block/deepslate", + "y": 180 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "y": 180 + } + ], + "axis=z": [ + { + "model": "minecraft:block/deepslate", + "x": 90 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90 + }, + { + "model": "minecraft:block/deepslate", + "x": 90, + "y": 180 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90, + "y": 180 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_brick_slab.json b/assets/minecraft/blockstates/deepslate_brick_slab.json new file mode 100644 index 00000000..1d171038 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/deepslate_brick_slab" + }, + "type=double": { + "model": "minecraft:block/deepslate_bricks" + }, + "type=top": { + "model": "minecraft:block/deepslate_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_brick_stairs.json b/assets/minecraft/blockstates/deepslate_brick_stairs.json new file mode 100644 index 00000000..49dc5b39 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/deepslate_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_brick_wall.json b/assets/minecraft/blockstates/deepslate_brick_wall.json new file mode 100644 index 00000000..545dba08 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_bricks.json b/assets/minecraft/blockstates/deepslate_bricks.json new file mode 100644 index 00000000..1884843c --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_coal_ore.json b/assets/minecraft/blockstates/deepslate_coal_ore.json new file mode 100644 index 00000000..8df18485 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_coal_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_coal_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_copper_ore.json b/assets/minecraft/blockstates/deepslate_copper_ore.json new file mode 100644 index 00000000..aa4aaa01 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_copper_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_copper_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_diamond_ore.json b/assets/minecraft/blockstates/deepslate_diamond_ore.json new file mode 100644 index 00000000..fa67e3fd --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_diamond_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_diamond_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_emerald_ore.json b/assets/minecraft/blockstates/deepslate_emerald_ore.json new file mode 100644 index 00000000..bf0b9264 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_emerald_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_emerald_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_gold_ore.json b/assets/minecraft/blockstates/deepslate_gold_ore.json new file mode 100644 index 00000000..f2077df6 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_gold_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_gold_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_iron_ore.json b/assets/minecraft/blockstates/deepslate_iron_ore.json new file mode 100644 index 00000000..62c79c11 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_iron_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_iron_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_lapis_ore.json b/assets/minecraft/blockstates/deepslate_lapis_ore.json new file mode 100644 index 00000000..60d27c9f --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_lapis_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_lapis_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_redstone_ore.json b/assets/minecraft/blockstates/deepslate_redstone_ore.json new file mode 100644 index 00000000..8767d7d9 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_redstone_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_redstone_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_tile_slab.json b/assets/minecraft/blockstates/deepslate_tile_slab.json new file mode 100644 index 00000000..60a8208f --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_tile_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/deepslate_tile_slab" + }, + "type=double": { + "model": "minecraft:block/deepslate_tiles" + }, + "type=top": { + "model": "minecraft:block/deepslate_tile_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_tile_stairs.json b/assets/minecraft/blockstates/deepslate_tile_stairs.json new file mode 100644 index 00000000..aefda363 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_tile_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/deepslate_tile_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/deepslate_tile_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/deepslate_tile_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_tile_wall.json b/assets/minecraft/blockstates/deepslate_tile_wall.json new file mode 100644 index 00000000..e7492967 --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_tile_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/deepslate_tile_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/deepslate_tiles.json b/assets/minecraft/blockstates/deepslate_tiles.json new file mode 100644 index 00000000..2e9d4dce --- /dev/null +++ b/assets/minecraft/blockstates/deepslate_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/deepslate_tiles" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/detector_rail.json b/assets/minecraft/blockstates/detector_rail.json new file mode 100644 index 00000000..fff11cc0 --- /dev/null +++ b/assets/minecraft/blockstates/detector_rail.json @@ -0,0 +1,46 @@ +{ + "variants": { + "powered=false,shape=ascending_east": { + "model": "minecraft:block/detector_rail_raised_ne", + "y": 90 + }, + "powered=false,shape=ascending_north": { + "model": "minecraft:block/detector_rail_raised_ne" + }, + "powered=false,shape=ascending_south": { + "model": "minecraft:block/detector_rail_raised_sw" + }, + "powered=false,shape=ascending_west": { + "model": "minecraft:block/detector_rail_raised_sw", + "y": 90 + }, + "powered=false,shape=east_west": { + "model": "minecraft:block/detector_rail", + "y": 90 + }, + "powered=false,shape=north_south": { + "model": "minecraft:block/detector_rail" + }, + "powered=true,shape=ascending_east": { + "model": "minecraft:block/detector_rail_on_raised_ne", + "y": 90 + }, + "powered=true,shape=ascending_north": { + "model": "minecraft:block/detector_rail_on_raised_ne" + }, + "powered=true,shape=ascending_south": { + "model": "minecraft:block/detector_rail_on_raised_sw" + }, + "powered=true,shape=ascending_west": { + "model": "minecraft:block/detector_rail_on_raised_sw", + "y": 90 + }, + "powered=true,shape=east_west": { + "model": "minecraft:block/detector_rail_on", + "y": 90 + }, + "powered=true,shape=north_south": { + "model": "minecraft:block/detector_rail_on" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/diamond_block.json b/assets/minecraft/blockstates/diamond_block.json new file mode 100644 index 00000000..5a5d8888 --- /dev/null +++ b/assets/minecraft/blockstates/diamond_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/diamond_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/diamond_ore.json b/assets/minecraft/blockstates/diamond_ore.json new file mode 100644 index 00000000..fda88436 --- /dev/null +++ b/assets/minecraft/blockstates/diamond_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/diamond_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/diorite.json b/assets/minecraft/blockstates/diorite.json new file mode 100644 index 00000000..6adf7b0a --- /dev/null +++ b/assets/minecraft/blockstates/diorite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/diorite" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/diorite_slab.json b/assets/minecraft/blockstates/diorite_slab.json new file mode 100644 index 00000000..58e56110 --- /dev/null +++ b/assets/minecraft/blockstates/diorite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/diorite_slab" + }, + "type=double": { + "model": "minecraft:block/diorite" + }, + "type=top": { + "model": "minecraft:block/diorite_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/diorite_stairs.json b/assets/minecraft/blockstates/diorite_stairs.json new file mode 100644 index 00000000..7e446fa0 --- /dev/null +++ b/assets/minecraft/blockstates/diorite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/diorite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/diorite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/diorite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/diorite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/diorite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/diorite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/diorite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/diorite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/diorite_wall.json b/assets/minecraft/blockstates/diorite_wall.json new file mode 100644 index 00000000..d2728785 --- /dev/null +++ b/assets/minecraft/blockstates/diorite_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/diorite_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/diorite_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dirt.json b/assets/minecraft/blockstates/dirt.json new file mode 100644 index 00000000..875507fe --- /dev/null +++ b/assets/minecraft/blockstates/dirt.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/dirt" + }, + { + "model": "minecraft:block/dirt", + "y": 90 + }, + { + "model": "minecraft:block/dirt", + "y": 180 + }, + { + "model": "minecraft:block/dirt", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dirt_path.json b/assets/minecraft/blockstates/dirt_path.json new file mode 100644 index 00000000..3865928a --- /dev/null +++ b/assets/minecraft/blockstates/dirt_path.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/dirt_path" + }, + { + "model": "minecraft:block/dirt_path", + "y": 90 + }, + { + "model": "minecraft:block/dirt_path", + "y": 180 + }, + { + "model": "minecraft:block/dirt_path", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dispenser.json b/assets/minecraft/blockstates/dispenser.json new file mode 100644 index 00000000..aae90a81 --- /dev/null +++ b/assets/minecraft/blockstates/dispenser.json @@ -0,0 +1,26 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/dispenser_vertical", + "x": 180 + }, + "facing=east": { + "model": "minecraft:block/dispenser", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/dispenser" + }, + "facing=south": { + "model": "minecraft:block/dispenser", + "y": 180 + }, + "facing=up": { + "model": "minecraft:block/dispenser_vertical" + }, + "facing=west": { + "model": "minecraft:block/dispenser", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dragon_egg.json b/assets/minecraft/blockstates/dragon_egg.json new file mode 100644 index 00000000..9bb980f7 --- /dev/null +++ b/assets/minecraft/blockstates/dragon_egg.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dragon_egg" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dragon_head.json b/assets/minecraft/blockstates/dragon_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/dragon_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dragon_wall_head.json b/assets/minecraft/blockstates/dragon_wall_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/dragon_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dried_kelp_block.json b/assets/minecraft/blockstates/dried_kelp_block.json new file mode 100644 index 00000000..aa9d160b --- /dev/null +++ b/assets/minecraft/blockstates/dried_kelp_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dried_kelp_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dripstone_block.json b/assets/minecraft/blockstates/dripstone_block.json new file mode 100644 index 00000000..d3949ca4 --- /dev/null +++ b/assets/minecraft/blockstates/dripstone_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/dripstone_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/dropper.json b/assets/minecraft/blockstates/dropper.json new file mode 100644 index 00000000..19b14830 --- /dev/null +++ b/assets/minecraft/blockstates/dropper.json @@ -0,0 +1,26 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/dropper_vertical", + "x": 180 + }, + "facing=east": { + "model": "minecraft:block/dropper", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/dropper" + }, + "facing=south": { + "model": "minecraft:block/dropper", + "y": 180 + }, + "facing=up": { + "model": "minecraft:block/dropper_vertical" + }, + "facing=west": { + "model": "minecraft:block/dropper", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/emerald_block.json b/assets/minecraft/blockstates/emerald_block.json new file mode 100644 index 00000000..e159176d --- /dev/null +++ b/assets/minecraft/blockstates/emerald_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/emerald_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/emerald_ore.json b/assets/minecraft/blockstates/emerald_ore.json new file mode 100644 index 00000000..ed6121a9 --- /dev/null +++ b/assets/minecraft/blockstates/emerald_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/emerald_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/enchanting_table.json b/assets/minecraft/blockstates/enchanting_table.json new file mode 100644 index 00000000..85aeab36 --- /dev/null +++ b/assets/minecraft/blockstates/enchanting_table.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/enchanting_table" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_gateway.json b/assets/minecraft/blockstates/end_gateway.json new file mode 100644 index 00000000..2b5f683e --- /dev/null +++ b/assets/minecraft/blockstates/end_gateway.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/end_portal" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_portal.json b/assets/minecraft/blockstates/end_portal.json new file mode 100644 index 00000000..2b5f683e --- /dev/null +++ b/assets/minecraft/blockstates/end_portal.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/end_portal" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_portal_frame.json b/assets/minecraft/blockstates/end_portal_frame.json new file mode 100644 index 00000000..adcb19a1 --- /dev/null +++ b/assets/minecraft/blockstates/end_portal_frame.json @@ -0,0 +1,34 @@ +{ + "variants": { + "eye=false,facing=east": { + "model": "minecraft:block/end_portal_frame", + "y": 270 + }, + "eye=false,facing=north": { + "model": "minecraft:block/end_portal_frame", + "y": 180 + }, + "eye=false,facing=south": { + "model": "minecraft:block/end_portal_frame" + }, + "eye=false,facing=west": { + "model": "minecraft:block/end_portal_frame", + "y": 90 + }, + "eye=true,facing=east": { + "model": "minecraft:block/end_portal_frame_filled", + "y": 270 + }, + "eye=true,facing=north": { + "model": "minecraft:block/end_portal_frame_filled", + "y": 180 + }, + "eye=true,facing=south": { + "model": "minecraft:block/end_portal_frame_filled" + }, + "eye=true,facing=west": { + "model": "minecraft:block/end_portal_frame_filled", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_rod.json b/assets/minecraft/blockstates/end_rod.json new file mode 100644 index 00000000..0119a1a2 --- /dev/null +++ b/assets/minecraft/blockstates/end_rod.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/end_rod", + "x": 180 + }, + "facing=east": { + "model": "minecraft:block/end_rod", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/end_rod", + "x": 90 + }, + "facing=south": { + "model": "minecraft:block/end_rod", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "minecraft:block/end_rod" + }, + "facing=west": { + "model": "minecraft:block/end_rod", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_stone.json b/assets/minecraft/blockstates/end_stone.json new file mode 100644 index 00000000..e8e23c91 --- /dev/null +++ b/assets/minecraft/blockstates/end_stone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/end_stone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_stone_brick_slab.json b/assets/minecraft/blockstates/end_stone_brick_slab.json new file mode 100644 index 00000000..08681cc5 --- /dev/null +++ b/assets/minecraft/blockstates/end_stone_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/end_stone_brick_slab" + }, + "type=double": { + "model": "minecraft:block/end_stone_bricks" + }, + "type=top": { + "model": "minecraft:block/end_stone_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_stone_brick_stairs.json b/assets/minecraft/blockstates/end_stone_brick_stairs.json new file mode 100644 index 00000000..96d2b2dd --- /dev/null +++ b/assets/minecraft/blockstates/end_stone_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/end_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/end_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/end_stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_stone_brick_wall.json b/assets/minecraft/blockstates/end_stone_brick_wall.json new file mode 100644 index 00000000..b7a3ba8b --- /dev/null +++ b/assets/minecraft/blockstates/end_stone_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/end_stone_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/end_stone_bricks.json b/assets/minecraft/blockstates/end_stone_bricks.json new file mode 100644 index 00000000..1cc0910a --- /dev/null +++ b/assets/minecraft/blockstates/end_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/end_stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/ender_chest.json b/assets/minecraft/blockstates/ender_chest.json new file mode 100644 index 00000000..8656aed7 --- /dev/null +++ b/assets/minecraft/blockstates/ender_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/ender_chest" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_chiseled_copper.json b/assets/minecraft/blockstates/exposed_chiseled_copper.json new file mode 100644 index 00000000..3b87926a --- /dev/null +++ b/assets/minecraft/blockstates/exposed_chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_copper.json b/assets/minecraft/blockstates/exposed_copper.json new file mode 100644 index 00000000..ed711e79 --- /dev/null +++ b/assets/minecraft/blockstates/exposed_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_copper_bulb.json b/assets/minecraft/blockstates/exposed_copper_bulb.json new file mode 100644 index 00000000..203fd0f5 --- /dev/null +++ b/assets/minecraft/blockstates/exposed_copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/exposed_copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/exposed_copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/exposed_copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/exposed_copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_copper_door.json b/assets/minecraft/blockstates/exposed_copper_door.json new file mode 100644 index 00000000..f4f30489 --- /dev/null +++ b/assets/minecraft/blockstates/exposed_copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_copper_grate.json b/assets/minecraft/blockstates/exposed_copper_grate.json new file mode 100644 index 00000000..49a6446f --- /dev/null +++ b/assets/minecraft/blockstates/exposed_copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_copper_trapdoor.json b/assets/minecraft/blockstates/exposed_copper_trapdoor.json new file mode 100644 index 00000000..e8734ba3 --- /dev/null +++ b/assets/minecraft/blockstates/exposed_copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_cut_copper.json b/assets/minecraft/blockstates/exposed_cut_copper.json new file mode 100644 index 00000000..3b465b0b --- /dev/null +++ b/assets/minecraft/blockstates/exposed_cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_cut_copper_slab.json b/assets/minecraft/blockstates/exposed_cut_copper_slab.json new file mode 100644 index 00000000..81b09c73 --- /dev/null +++ b/assets/minecraft/blockstates/exposed_cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/exposed_cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/exposed_cut_copper" + }, + "type=top": { + "model": "minecraft:block/exposed_cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/exposed_cut_copper_stairs.json b/assets/minecraft/blockstates/exposed_cut_copper_stairs.json new file mode 100644 index 00000000..f9863f6c --- /dev/null +++ b/assets/minecraft/blockstates/exposed_cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/farmland.json b/assets/minecraft/blockstates/farmland.json new file mode 100644 index 00000000..93882d0c --- /dev/null +++ b/assets/minecraft/blockstates/farmland.json @@ -0,0 +1,28 @@ +{ + "variants": { + "moisture=0": { + "model": "minecraft:block/farmland" + }, + "moisture=1": { + "model": "minecraft:block/farmland" + }, + "moisture=2": { + "model": "minecraft:block/farmland" + }, + "moisture=3": { + "model": "minecraft:block/farmland" + }, + "moisture=4": { + "model": "minecraft:block/farmland" + }, + "moisture=5": { + "model": "minecraft:block/farmland" + }, + "moisture=6": { + "model": "minecraft:block/farmland" + }, + "moisture=7": { + "model": "minecraft:block/farmland_moist" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/fern.json b/assets/minecraft/blockstates/fern.json new file mode 100644 index 00000000..01cf1d34 --- /dev/null +++ b/assets/minecraft/blockstates/fern.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/fern" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/fire.json b/assets/minecraft/blockstates/fire.json new file mode 100644 index 00000000..83584875 --- /dev/null +++ b/assets/minecraft/blockstates/fire.json @@ -0,0 +1,172 @@ +{ + "multipart": [ + { + "apply": [ + { + "model": "minecraft:block/fire_floor0" + }, + { + "model": "minecraft:block/fire_floor1" + } + ], + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": [ + { + "model": "minecraft:block/fire_side0" + }, + { + "model": "minecraft:block/fire_side1" + }, + { + "model": "minecraft:block/fire_side_alt0" + }, + { + "model": "minecraft:block/fire_side_alt1" + } + ], + "when": { + "OR": [ + { + "north": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "minecraft:block/fire_side0", + "y": 90 + }, + { + "model": "minecraft:block/fire_side1", + "y": 90 + }, + { + "model": "minecraft:block/fire_side_alt0", + "y": 90 + }, + { + "model": "minecraft:block/fire_side_alt1", + "y": 90 + } + ], + "when": { + "OR": [ + { + "east": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "minecraft:block/fire_side0", + "y": 180 + }, + { + "model": "minecraft:block/fire_side1", + "y": 180 + }, + { + "model": "minecraft:block/fire_side_alt0", + "y": 180 + }, + { + "model": "minecraft:block/fire_side_alt1", + "y": 180 + } + ], + "when": { + "OR": [ + { + "south": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "minecraft:block/fire_side0", + "y": 270 + }, + { + "model": "minecraft:block/fire_side1", + "y": 270 + }, + { + "model": "minecraft:block/fire_side_alt0", + "y": 270 + }, + { + "model": "minecraft:block/fire_side_alt1", + "y": 270 + } + ], + "when": { + "OR": [ + { + "west": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "minecraft:block/fire_up0" + }, + { + "model": "minecraft:block/fire_up1" + }, + { + "model": "minecraft:block/fire_up_alt0" + }, + { + "model": "minecraft:block/fire_up_alt1" + } + ], + "when": { + "up": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/fire_coral.json b/assets/minecraft/blockstates/fire_coral.json new file mode 100644 index 00000000..a80bfadc --- /dev/null +++ b/assets/minecraft/blockstates/fire_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/fire_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/fire_coral_block.json b/assets/minecraft/blockstates/fire_coral_block.json new file mode 100644 index 00000000..a4f98fbd --- /dev/null +++ b/assets/minecraft/blockstates/fire_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/fire_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/fire_coral_fan.json b/assets/minecraft/blockstates/fire_coral_fan.json new file mode 100644 index 00000000..d6579f89 --- /dev/null +++ b/assets/minecraft/blockstates/fire_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/fire_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/fire_coral_wall_fan.json b/assets/minecraft/blockstates/fire_coral_wall_fan.json new file mode 100644 index 00000000..91493306 --- /dev/null +++ b/assets/minecraft/blockstates/fire_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/fire_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/fire_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/fire_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/fire_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/fletching_table.json b/assets/minecraft/blockstates/fletching_table.json new file mode 100644 index 00000000..941b4fd9 --- /dev/null +++ b/assets/minecraft/blockstates/fletching_table.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/fletching_table" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/flower_pot.json b/assets/minecraft/blockstates/flower_pot.json new file mode 100644 index 00000000..8a1ab93b --- /dev/null +++ b/assets/minecraft/blockstates/flower_pot.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/flower_pot" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/flowering_azalea.json b/assets/minecraft/blockstates/flowering_azalea.json new file mode 100644 index 00000000..daeb290c --- /dev/null +++ b/assets/minecraft/blockstates/flowering_azalea.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/flowering_azalea" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/flowering_azalea_leaves.json b/assets/minecraft/blockstates/flowering_azalea_leaves.json new file mode 100644 index 00000000..9731fdb0 --- /dev/null +++ b/assets/minecraft/blockstates/flowering_azalea_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/flowering_azalea_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/frogspawn.json b/assets/minecraft/blockstates/frogspawn.json new file mode 100644 index 00000000..bf103d4a --- /dev/null +++ b/assets/minecraft/blockstates/frogspawn.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/frogspawn" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/frosted_ice.json b/assets/minecraft/blockstates/frosted_ice.json new file mode 100644 index 00000000..f03b5bdc --- /dev/null +++ b/assets/minecraft/blockstates/frosted_ice.json @@ -0,0 +1,16 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/frosted_ice_0" + }, + "age=1": { + "model": "minecraft:block/frosted_ice_1" + }, + "age=2": { + "model": "minecraft:block/frosted_ice_2" + }, + "age=3": { + "model": "minecraft:block/frosted_ice_3" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/furnace.json b/assets/minecraft/blockstates/furnace.json new file mode 100644 index 00000000..9c31d91f --- /dev/null +++ b/assets/minecraft/blockstates/furnace.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,lit=false": { + "model": "minecraft:block/furnace", + "y": 90 + }, + "facing=east,lit=true": { + "model": "minecraft:block/furnace_on", + "y": 90 + }, + "facing=north,lit=false": { + "model": "minecraft:block/furnace" + }, + "facing=north,lit=true": { + "model": "minecraft:block/furnace_on" + }, + "facing=south,lit=false": { + "model": "minecraft:block/furnace", + "y": 180 + }, + "facing=south,lit=true": { + "model": "minecraft:block/furnace_on", + "y": 180 + }, + "facing=west,lit=false": { + "model": "minecraft:block/furnace", + "y": 270 + }, + "facing=west,lit=true": { + "model": "minecraft:block/furnace_on", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gilded_blackstone.json b/assets/minecraft/blockstates/gilded_blackstone.json new file mode 100644 index 00000000..511f5825 --- /dev/null +++ b/assets/minecraft/blockstates/gilded_blackstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gilded_blackstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/glass.json b/assets/minecraft/blockstates/glass.json new file mode 100644 index 00000000..5f6ec4d2 --- /dev/null +++ b/assets/minecraft/blockstates/glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/glass_pane.json b/assets/minecraft/blockstates/glass_pane.json new file mode 100644 index 00000000..d8f2900f --- /dev/null +++ b/assets/minecraft/blockstates/glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/glow_item_frame.json b/assets/minecraft/blockstates/glow_item_frame.json new file mode 100644 index 00000000..f43a1871 --- /dev/null +++ b/assets/minecraft/blockstates/glow_item_frame.json @@ -0,0 +1,6 @@ +{ + "variants": { + "map=false": { "model": "block/glow_item_frame" }, + "map=true": { "model": "block/glow_item_frame_map" } + } +} diff --git a/assets/minecraft/blockstates/glow_lichen.json b/assets/minecraft/blockstates/glow_lichen.json new file mode 100644 index 00000000..b98b5e35 --- /dev/null +++ b/assets/minecraft/blockstates/glow_lichen.json @@ -0,0 +1,150 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/glow_lichen" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen" + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "y": 90 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "y": 180 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "y": 270 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "x": 270 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "minecraft:block/glow_lichen", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/glowstone.json b/assets/minecraft/blockstates/glowstone.json new file mode 100644 index 00000000..c60860b8 --- /dev/null +++ b/assets/minecraft/blockstates/glowstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/glowstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gold_block.json b/assets/minecraft/blockstates/gold_block.json new file mode 100644 index 00000000..475eff02 --- /dev/null +++ b/assets/minecraft/blockstates/gold_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gold_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gold_ore.json b/assets/minecraft/blockstates/gold_ore.json new file mode 100644 index 00000000..183d0679 --- /dev/null +++ b/assets/minecraft/blockstates/gold_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gold_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/granite.json b/assets/minecraft/blockstates/granite.json new file mode 100644 index 00000000..d11c34e1 --- /dev/null +++ b/assets/minecraft/blockstates/granite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/granite" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/granite_slab.json b/assets/minecraft/blockstates/granite_slab.json new file mode 100644 index 00000000..1d2d50b6 --- /dev/null +++ b/assets/minecraft/blockstates/granite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/granite_slab" + }, + "type=double": { + "model": "minecraft:block/granite" + }, + "type=top": { + "model": "minecraft:block/granite_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/granite_stairs.json b/assets/minecraft/blockstates/granite_stairs.json new file mode 100644 index 00000000..e3585341 --- /dev/null +++ b/assets/minecraft/blockstates/granite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/granite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/granite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/granite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/granite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/granite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/granite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/granite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/granite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/granite_wall.json b/assets/minecraft/blockstates/granite_wall.json new file mode 100644 index 00000000..91af5755 --- /dev/null +++ b/assets/minecraft/blockstates/granite_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/granite_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/granite_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/grass_block.json b/assets/minecraft/blockstates/grass_block.json new file mode 100644 index 00000000..ab4efdb1 --- /dev/null +++ b/assets/minecraft/blockstates/grass_block.json @@ -0,0 +1,24 @@ +{ + "variants": { + "snowy=false": [ + { + "model": "minecraft:block/grass_block" + }, + { + "model": "minecraft:block/grass_block", + "y": 90 + }, + { + "model": "minecraft:block/grass_block", + "y": 180 + }, + { + "model": "minecraft:block/grass_block", + "y": 270 + } + ], + "snowy=true": { + "model": "minecraft:block/grass_block_snow" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gravel.json b/assets/minecraft/blockstates/gravel.json new file mode 100644 index 00000000..7f037234 --- /dev/null +++ b/assets/minecraft/blockstates/gravel.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gravel" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_banner.json b/assets/minecraft/blockstates/gray_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/gray_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_bed.json b/assets/minecraft/blockstates/gray_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/gray_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_candle.json b/assets/minecraft/blockstates/gray_candle.json new file mode 100644 index 00000000..640fdd7c --- /dev/null +++ b/assets/minecraft/blockstates/gray_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/gray_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/gray_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/gray_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/gray_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/gray_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/gray_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/gray_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/gray_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_candle_cake.json b/assets/minecraft/blockstates/gray_candle_cake.json new file mode 100644 index 00000000..f597b093 --- /dev/null +++ b/assets/minecraft/blockstates/gray_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/gray_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/gray_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_carpet.json b/assets/minecraft/blockstates/gray_carpet.json new file mode 100644 index 00000000..05f0cc60 --- /dev/null +++ b/assets/minecraft/blockstates/gray_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gray_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_concrete.json b/assets/minecraft/blockstates/gray_concrete.json new file mode 100644 index 00000000..95c74d4a --- /dev/null +++ b/assets/minecraft/blockstates/gray_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gray_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_concrete_powder.json b/assets/minecraft/blockstates/gray_concrete_powder.json new file mode 100644 index 00000000..1d83c562 --- /dev/null +++ b/assets/minecraft/blockstates/gray_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/gray_concrete_powder" + }, + { + "model": "minecraft:block/gray_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/gray_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/gray_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_glazed_terracotta.json b/assets/minecraft/blockstates/gray_glazed_terracotta.json new file mode 100644 index 00000000..4315e7d7 --- /dev/null +++ b/assets/minecraft/blockstates/gray_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/gray_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/gray_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/gray_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/gray_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_shulker_box.json b/assets/minecraft/blockstates/gray_shulker_box.json new file mode 100644 index 00000000..8dd3ead2 --- /dev/null +++ b/assets/minecraft/blockstates/gray_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gray_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_stained_glass.json b/assets/minecraft/blockstates/gray_stained_glass.json new file mode 100644 index 00000000..d7d76b1a --- /dev/null +++ b/assets/minecraft/blockstates/gray_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gray_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_stained_glass_pane.json b/assets/minecraft/blockstates/gray_stained_glass_pane.json new file mode 100644 index 00000000..a24e8b4b --- /dev/null +++ b/assets/minecraft/blockstates/gray_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/gray_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_terracotta.json b/assets/minecraft/blockstates/gray_terracotta.json new file mode 100644 index 00000000..c605f3d0 --- /dev/null +++ b/assets/minecraft/blockstates/gray_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gray_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_wall_banner.json b/assets/minecraft/blockstates/gray_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/gray_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/gray_wool.json b/assets/minecraft/blockstates/gray_wool.json new file mode 100644 index 00000000..001779de --- /dev/null +++ b/assets/minecraft/blockstates/gray_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/gray_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_banner.json b/assets/minecraft/blockstates/green_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/green_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_bed.json b/assets/minecraft/blockstates/green_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/green_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_candle.json b/assets/minecraft/blockstates/green_candle.json new file mode 100644 index 00000000..1e5ce65a --- /dev/null +++ b/assets/minecraft/blockstates/green_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/green_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/green_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/green_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/green_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/green_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/green_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/green_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/green_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_candle_cake.json b/assets/minecraft/blockstates/green_candle_cake.json new file mode 100644 index 00000000..d01a78d9 --- /dev/null +++ b/assets/minecraft/blockstates/green_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/green_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/green_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_carpet.json b/assets/minecraft/blockstates/green_carpet.json new file mode 100644 index 00000000..83ea2c2d --- /dev/null +++ b/assets/minecraft/blockstates/green_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/green_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_concrete.json b/assets/minecraft/blockstates/green_concrete.json new file mode 100644 index 00000000..3ac2d62c --- /dev/null +++ b/assets/minecraft/blockstates/green_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/green_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_concrete_powder.json b/assets/minecraft/blockstates/green_concrete_powder.json new file mode 100644 index 00000000..ee2e37dc --- /dev/null +++ b/assets/minecraft/blockstates/green_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/green_concrete_powder" + }, + { + "model": "minecraft:block/green_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/green_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/green_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_glazed_terracotta.json b/assets/minecraft/blockstates/green_glazed_terracotta.json new file mode 100644 index 00000000..4c991e2e --- /dev/null +++ b/assets/minecraft/blockstates/green_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/green_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/green_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/green_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/green_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_shulker_box.json b/assets/minecraft/blockstates/green_shulker_box.json new file mode 100644 index 00000000..e8c32e0d --- /dev/null +++ b/assets/minecraft/blockstates/green_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/green_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_stained_glass.json b/assets/minecraft/blockstates/green_stained_glass.json new file mode 100644 index 00000000..ca4fec40 --- /dev/null +++ b/assets/minecraft/blockstates/green_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/green_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_stained_glass_pane.json b/assets/minecraft/blockstates/green_stained_glass_pane.json new file mode 100644 index 00000000..d0c3779f --- /dev/null +++ b/assets/minecraft/blockstates/green_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/green_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_terracotta.json b/assets/minecraft/blockstates/green_terracotta.json new file mode 100644 index 00000000..3bf40d83 --- /dev/null +++ b/assets/minecraft/blockstates/green_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/green_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_wall_banner.json b/assets/minecraft/blockstates/green_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/green_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/green_wool.json b/assets/minecraft/blockstates/green_wool.json new file mode 100644 index 00000000..89537035 --- /dev/null +++ b/assets/minecraft/blockstates/green_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/green_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/grindstone.json b/assets/minecraft/blockstates/grindstone.json new file mode 100644 index 00000000..244481d0 --- /dev/null +++ b/assets/minecraft/blockstates/grindstone.json @@ -0,0 +1,57 @@ +{ + "variants": { + "face=ceiling,facing=east": { + "model": "minecraft:block/grindstone", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north": { + "model": "minecraft:block/grindstone", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south": { + "model": "minecraft:block/grindstone", + "x": 180 + }, + "face=ceiling,facing=west": { + "model": "minecraft:block/grindstone", + "x": 180, + "y": 90 + }, + "face=floor,facing=east": { + "model": "minecraft:block/grindstone", + "y": 90 + }, + "face=floor,facing=north": { + "model": "minecraft:block/grindstone" + }, + "face=floor,facing=south": { + "model": "minecraft:block/grindstone", + "y": 180 + }, + "face=floor,facing=west": { + "model": "minecraft:block/grindstone", + "y": 270 + }, + "face=wall,facing=east": { + "model": "minecraft:block/grindstone", + "x": 90, + "y": 90 + }, + "face=wall,facing=north": { + "model": "minecraft:block/grindstone", + "x": 90 + }, + "face=wall,facing=south": { + "model": "minecraft:block/grindstone", + "x": 90, + "y": 180 + }, + "face=wall,facing=west": { + "model": "minecraft:block/grindstone", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/hanging_roots.json b/assets/minecraft/blockstates/hanging_roots.json new file mode 100644 index 00000000..a6a155d0 --- /dev/null +++ b/assets/minecraft/blockstates/hanging_roots.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/hanging_roots" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/hay_block.json b/assets/minecraft/blockstates/hay_block.json new file mode 100644 index 00000000..63467f1b --- /dev/null +++ b/assets/minecraft/blockstates/hay_block.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/hay_block_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/hay_block" + }, + "axis=z": { + "model": "minecraft:block/hay_block_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/heavy_core.json b/assets/minecraft/blockstates/heavy_core.json new file mode 100644 index 00000000..4ddafc63 --- /dev/null +++ b/assets/minecraft/blockstates/heavy_core.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/heavy_core" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/heavy_weighted_pressure_plate.json b/assets/minecraft/blockstates/heavy_weighted_pressure_plate.json new file mode 100644 index 00000000..3f2b8800 --- /dev/null +++ b/assets/minecraft/blockstates/heavy_weighted_pressure_plate.json @@ -0,0 +1,52 @@ +{ + "variants": { + "power=0": { + "model": "minecraft:block/heavy_weighted_pressure_plate" + }, + "power=1": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=10": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=11": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=12": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=13": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=14": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=15": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=2": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=3": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=4": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=5": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=6": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=7": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=8": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + }, + "power=9": { + "model": "minecraft:block/heavy_weighted_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/honey_block.json b/assets/minecraft/blockstates/honey_block.json new file mode 100644 index 00000000..337f73f9 --- /dev/null +++ b/assets/minecraft/blockstates/honey_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/honey_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/honeycomb_block.json b/assets/minecraft/blockstates/honeycomb_block.json new file mode 100644 index 00000000..b8a98bb3 --- /dev/null +++ b/assets/minecraft/blockstates/honeycomb_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/honeycomb_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/hopper.json b/assets/minecraft/blockstates/hopper.json new file mode 100644 index 00000000..be15ea37 --- /dev/null +++ b/assets/minecraft/blockstates/hopper.json @@ -0,0 +1,22 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/hopper" + }, + "facing=east": { + "model": "minecraft:block/hopper_side", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/hopper_side" + }, + "facing=south": { + "model": "minecraft:block/hopper_side", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/hopper_side", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/horn_coral.json b/assets/minecraft/blockstates/horn_coral.json new file mode 100644 index 00000000..c7665173 --- /dev/null +++ b/assets/minecraft/blockstates/horn_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/horn_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/horn_coral_block.json b/assets/minecraft/blockstates/horn_coral_block.json new file mode 100644 index 00000000..6f8f199f --- /dev/null +++ b/assets/minecraft/blockstates/horn_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/horn_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/horn_coral_fan.json b/assets/minecraft/blockstates/horn_coral_fan.json new file mode 100644 index 00000000..99f08549 --- /dev/null +++ b/assets/minecraft/blockstates/horn_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/horn_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/horn_coral_wall_fan.json b/assets/minecraft/blockstates/horn_coral_wall_fan.json new file mode 100644 index 00000000..07d22ed0 --- /dev/null +++ b/assets/minecraft/blockstates/horn_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/horn_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/horn_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/horn_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/horn_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/ice.json b/assets/minecraft/blockstates/ice.json new file mode 100644 index 00000000..0617dfc3 --- /dev/null +++ b/assets/minecraft/blockstates/ice.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/ice" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/infested_chiseled_stone_bricks.json b/assets/minecraft/blockstates/infested_chiseled_stone_bricks.json new file mode 100644 index 00000000..4034c11b --- /dev/null +++ b/assets/minecraft/blockstates/infested_chiseled_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/infested_cobblestone.json b/assets/minecraft/blockstates/infested_cobblestone.json new file mode 100644 index 00000000..e94cf882 --- /dev/null +++ b/assets/minecraft/blockstates/infested_cobblestone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cobblestone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/infested_cracked_stone_bricks.json b/assets/minecraft/blockstates/infested_cracked_stone_bricks.json new file mode 100644 index 00000000..6e194be2 --- /dev/null +++ b/assets/minecraft/blockstates/infested_cracked_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cracked_stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/infested_deepslate.json b/assets/minecraft/blockstates/infested_deepslate.json new file mode 100644 index 00000000..dd197be8 --- /dev/null +++ b/assets/minecraft/blockstates/infested_deepslate.json @@ -0,0 +1,62 @@ +{ + "variants": { + "axis=x": [ + { + "model": "minecraft:block/deepslate", + "x": 90, + "y": 90 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90, + "y": 90 + }, + { + "model": "minecraft:block/deepslate", + "x": 90, + "y": 90 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90, + "y": 90 + } + ], + "axis=y": [ + { + "model": "minecraft:block/deepslate" + }, + { + "model": "minecraft:block/deepslate_mirrored" + }, + { + "model": "minecraft:block/deepslate", + "y": 180 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "y": 180 + } + ], + "axis=z": [ + { + "model": "minecraft:block/deepslate", + "x": 90 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90 + }, + { + "model": "minecraft:block/deepslate", + "x": 90, + "y": 180 + }, + { + "model": "minecraft:block/deepslate_mirrored", + "x": 90, + "y": 180 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/infested_mossy_stone_bricks.json b/assets/minecraft/blockstates/infested_mossy_stone_bricks.json new file mode 100644 index 00000000..c17c4a7f --- /dev/null +++ b/assets/minecraft/blockstates/infested_mossy_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mossy_stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/infested_stone.json b/assets/minecraft/blockstates/infested_stone.json new file mode 100644 index 00000000..c150ec29 --- /dev/null +++ b/assets/minecraft/blockstates/infested_stone.json @@ -0,0 +1,20 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/stone" + }, + { + "model": "minecraft:block/stone_mirrored" + }, + { + "model": "minecraft:block/stone", + "y": 180 + }, + { + "model": "minecraft:block/stone_mirrored", + "y": 180 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/infested_stone_bricks.json b/assets/minecraft/blockstates/infested_stone_bricks.json new file mode 100644 index 00000000..8a05daf0 --- /dev/null +++ b/assets/minecraft/blockstates/infested_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/iron_bars.json b/assets/minecraft/blockstates/iron_bars.json new file mode 100644 index 00000000..37dfb991 --- /dev/null +++ b/assets/minecraft/blockstates/iron_bars.json @@ -0,0 +1,100 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/iron_bars_post_ends" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_post" + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_cap" + }, + "when": { + "east": "false", + "north": "true", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_cap", + "y": 90 + }, + "when": { + "east": "true", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_cap_alt" + }, + "when": { + "east": "false", + "north": "false", + "south": "true", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_cap_alt", + "y": 90 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/iron_bars_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/iron_block.json b/assets/minecraft/blockstates/iron_block.json new file mode 100644 index 00000000..5cad8c39 --- /dev/null +++ b/assets/minecraft/blockstates/iron_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/iron_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/iron_door.json b/assets/minecraft/blockstates/iron_door.json new file mode 100644 index 00000000..e4fbc952 --- /dev/null +++ b/assets/minecraft/blockstates/iron_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/iron_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/iron_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/iron_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/iron_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/iron_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/iron_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/iron_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/iron_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/iron_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/iron_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/iron_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/iron_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/iron_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/iron_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/iron_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/iron_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/iron_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/iron_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/iron_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/iron_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/iron_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/iron_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/iron_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/iron_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/iron_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/iron_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/iron_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/iron_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/iron_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/iron_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/iron_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/iron_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/iron_ore.json b/assets/minecraft/blockstates/iron_ore.json new file mode 100644 index 00000000..c514e64b --- /dev/null +++ b/assets/minecraft/blockstates/iron_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/iron_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/iron_trapdoor.json b/assets/minecraft/blockstates/iron_trapdoor.json new file mode 100644 index 00000000..df0b2b3d --- /dev/null +++ b/assets/minecraft/blockstates/iron_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/iron_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/iron_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/iron_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/iron_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/iron_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/iron_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/iron_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/iron_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/iron_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/iron_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/iron_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/iron_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/iron_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/iron_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/iron_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/iron_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/item_frame.json b/assets/minecraft/blockstates/item_frame.json new file mode 100644 index 00000000..7b70ec00 --- /dev/null +++ b/assets/minecraft/blockstates/item_frame.json @@ -0,0 +1,6 @@ +{ + "variants": { + "map=false": { "model": "block/item_frame" }, + "map=true": { "model": "block/item_frame_map" } + } +} diff --git a/assets/minecraft/blockstates/jack_o_lantern.json b/assets/minecraft/blockstates/jack_o_lantern.json new file mode 100644 index 00000000..7454ebab --- /dev/null +++ b/assets/minecraft/blockstates/jack_o_lantern.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/jack_o_lantern", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/jack_o_lantern" + }, + "facing=south": { + "model": "minecraft:block/jack_o_lantern", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/jack_o_lantern", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jigsaw.json b/assets/minecraft/blockstates/jigsaw.json new file mode 100644 index 00000000..8f24d193 --- /dev/null +++ b/assets/minecraft/blockstates/jigsaw.json @@ -0,0 +1,57 @@ +{ + "variants": { + "orientation=down_east": { + "model": "minecraft:block/jigsaw", + "x": 90, + "y": 90 + }, + "orientation=down_north": { + "model": "minecraft:block/jigsaw", + "x": 90 + }, + "orientation=down_south": { + "model": "minecraft:block/jigsaw", + "x": 90, + "y": 180 + }, + "orientation=down_west": { + "model": "minecraft:block/jigsaw", + "x": 90, + "y": 270 + }, + "orientation=east_up": { + "model": "minecraft:block/jigsaw", + "y": 90 + }, + "orientation=north_up": { + "model": "minecraft:block/jigsaw" + }, + "orientation=south_up": { + "model": "minecraft:block/jigsaw", + "y": 180 + }, + "orientation=up_east": { + "model": "minecraft:block/jigsaw", + "x": 270, + "y": 270 + }, + "orientation=up_north": { + "model": "minecraft:block/jigsaw", + "x": 270, + "y": 180 + }, + "orientation=up_south": { + "model": "minecraft:block/jigsaw", + "x": 270 + }, + "orientation=up_west": { + "model": "minecraft:block/jigsaw", + "x": 270, + "y": 90 + }, + "orientation=west_up": { + "model": "minecraft:block/jigsaw", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jukebox.json b/assets/minecraft/blockstates/jukebox.json new file mode 100644 index 00000000..7ee694c6 --- /dev/null +++ b/assets/minecraft/blockstates/jukebox.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jukebox" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_button.json b/assets/minecraft/blockstates/jungle_button.json new file mode 100644 index 00000000..874add88 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/jungle_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/jungle_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/jungle_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/jungle_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/jungle_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/jungle_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/jungle_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/jungle_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/jungle_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/jungle_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/jungle_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/jungle_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/jungle_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/jungle_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_door.json b/assets/minecraft/blockstates/jungle_door.json new file mode 100644 index 00000000..f5878e6f --- /dev/null +++ b/assets/minecraft/blockstates/jungle_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/jungle_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/jungle_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/jungle_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/jungle_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_fence.json b/assets/minecraft/blockstates/jungle_fence.json new file mode 100644 index 00000000..7ed2c128 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/jungle_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/jungle_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/jungle_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/jungle_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/jungle_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_fence_gate.json b/assets/minecraft/blockstates/jungle_fence_gate.json new file mode 100644 index 00000000..37e51526 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/jungle_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/jungle_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/jungle_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/jungle_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/jungle_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/jungle_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/jungle_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/jungle_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/jungle_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/jungle_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/jungle_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/jungle_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/jungle_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/jungle_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/jungle_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/jungle_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_hanging_sign.json b/assets/minecraft/blockstates/jungle_hanging_sign.json new file mode 100644 index 00000000..019498fd --- /dev/null +++ b/assets/minecraft/blockstates/jungle_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jungle_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_leaves.json b/assets/minecraft/blockstates/jungle_leaves.json new file mode 100644 index 00000000..9bc23fe0 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jungle_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_log.json b/assets/minecraft/blockstates/jungle_log.json new file mode 100644 index 00000000..ad109dd8 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/jungle_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/jungle_log" + }, + "axis=z": { + "model": "minecraft:block/jungle_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_planks.json b/assets/minecraft/blockstates/jungle_planks.json new file mode 100644 index 00000000..e387c978 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jungle_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_pressure_plate.json b/assets/minecraft/blockstates/jungle_pressure_plate.json new file mode 100644 index 00000000..a32da0b8 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/jungle_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/jungle_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_sapling.json b/assets/minecraft/blockstates/jungle_sapling.json new file mode 100644 index 00000000..5e90752d --- /dev/null +++ b/assets/minecraft/blockstates/jungle_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jungle_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_sign.json b/assets/minecraft/blockstates/jungle_sign.json new file mode 100644 index 00000000..883b1859 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jungle_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_slab.json b/assets/minecraft/blockstates/jungle_slab.json new file mode 100644 index 00000000..700e45f9 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/jungle_slab" + }, + "type=double": { + "model": "minecraft:block/jungle_planks" + }, + "type=top": { + "model": "minecraft:block/jungle_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_stairs.json b/assets/minecraft/blockstates/jungle_stairs.json new file mode 100644 index 00000000..df5cc2b2 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/jungle_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/jungle_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/jungle_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/jungle_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/jungle_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/jungle_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/jungle_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/jungle_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/jungle_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/jungle_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_trapdoor.json b/assets/minecraft/blockstates/jungle_trapdoor.json new file mode 100644 index 00000000..23178033 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/jungle_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/jungle_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/jungle_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/jungle_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/jungle_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/jungle_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/jungle_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/jungle_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/jungle_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/jungle_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/jungle_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/jungle_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/jungle_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/jungle_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/jungle_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/jungle_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_wall_hanging_sign.json b/assets/minecraft/blockstates/jungle_wall_hanging_sign.json new file mode 100644 index 00000000..019498fd --- /dev/null +++ b/assets/minecraft/blockstates/jungle_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jungle_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_wall_sign.json b/assets/minecraft/blockstates/jungle_wall_sign.json new file mode 100644 index 00000000..883b1859 --- /dev/null +++ b/assets/minecraft/blockstates/jungle_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/jungle_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/jungle_wood.json b/assets/minecraft/blockstates/jungle_wood.json new file mode 100644 index 00000000..af9a353d --- /dev/null +++ b/assets/minecraft/blockstates/jungle_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/jungle_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/jungle_wood" + }, + "axis=z": { + "model": "minecraft:block/jungle_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/kelp.json b/assets/minecraft/blockstates/kelp.json new file mode 100644 index 00000000..6654924a --- /dev/null +++ b/assets/minecraft/blockstates/kelp.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/kelp" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/kelp_plant.json b/assets/minecraft/blockstates/kelp_plant.json new file mode 100644 index 00000000..f1d1539e --- /dev/null +++ b/assets/minecraft/blockstates/kelp_plant.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/kelp_plant" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/ladder.json b/assets/minecraft/blockstates/ladder.json new file mode 100644 index 00000000..972cc802 --- /dev/null +++ b/assets/minecraft/blockstates/ladder.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/ladder", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/ladder" + }, + "facing=south": { + "model": "minecraft:block/ladder", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/ladder", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lantern.json b/assets/minecraft/blockstates/lantern.json new file mode 100644 index 00000000..00cb4380 --- /dev/null +++ b/assets/minecraft/blockstates/lantern.json @@ -0,0 +1,10 @@ +{ + "variants": { + "hanging=false": { + "model": "minecraft:block/lantern" + }, + "hanging=true": { + "model": "minecraft:block/lantern_hanging" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lapis_block.json b/assets/minecraft/blockstates/lapis_block.json new file mode 100644 index 00000000..ff91f232 --- /dev/null +++ b/assets/minecraft/blockstates/lapis_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lapis_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lapis_ore.json b/assets/minecraft/blockstates/lapis_ore.json new file mode 100644 index 00000000..35171304 --- /dev/null +++ b/assets/minecraft/blockstates/lapis_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lapis_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/large_amethyst_bud.json b/assets/minecraft/blockstates/large_amethyst_bud.json new file mode 100644 index 00000000..c64c6a9f --- /dev/null +++ b/assets/minecraft/blockstates/large_amethyst_bud.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/large_amethyst_bud", + "x": 180 + }, + "facing=east": { + "model": "minecraft:block/large_amethyst_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/large_amethyst_bud", + "x": 90 + }, + "facing=south": { + "model": "minecraft:block/large_amethyst_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "minecraft:block/large_amethyst_bud" + }, + "facing=west": { + "model": "minecraft:block/large_amethyst_bud", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/large_fern.json b/assets/minecraft/blockstates/large_fern.json new file mode 100644 index 00000000..a92b142f --- /dev/null +++ b/assets/minecraft/blockstates/large_fern.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/large_fern_bottom" + }, + "half=upper": { + "model": "minecraft:block/large_fern_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lava.json b/assets/minecraft/blockstates/lava.json new file mode 100644 index 00000000..54087c25 --- /dev/null +++ b/assets/minecraft/blockstates/lava.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lava" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lava_cauldron.json b/assets/minecraft/blockstates/lava_cauldron.json new file mode 100644 index 00000000..6ed31aab --- /dev/null +++ b/assets/minecraft/blockstates/lava_cauldron.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lava_cauldron" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lectern.json b/assets/minecraft/blockstates/lectern.json new file mode 100644 index 00000000..b6ec88be --- /dev/null +++ b/assets/minecraft/blockstates/lectern.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/lectern", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/lectern" + }, + "facing=south": { + "model": "minecraft:block/lectern", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/lectern", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lever.json b/assets/minecraft/blockstates/lever.json new file mode 100644 index 00000000..f5892eca --- /dev/null +++ b/assets/minecraft/blockstates/lever.json @@ -0,0 +1,110 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/lever_on", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/lever", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/lever_on", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/lever", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/lever_on", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/lever", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/lever_on", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/lever", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/lever_on", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/lever", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/lever_on" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/lever" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/lever_on", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/lever", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/lever_on", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/lever", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/lever_on", + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/lever", + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/lever_on", + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/lever", + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/lever_on", + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/lever", + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/lever_on", + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/lever", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light.json b/assets/minecraft/blockstates/light.json new file mode 100644 index 00000000..c6fa8855 --- /dev/null +++ b/assets/minecraft/blockstates/light.json @@ -0,0 +1,52 @@ +{ + "variants": { + "level=0": { + "model": "minecraft:block/light_00" + }, + "level=1": { + "model": "minecraft:block/light_01" + }, + "level=10": { + "model": "minecraft:block/light_10" + }, + "level=11": { + "model": "minecraft:block/light_11" + }, + "level=12": { + "model": "minecraft:block/light_12" + }, + "level=13": { + "model": "minecraft:block/light_13" + }, + "level=14": { + "model": "minecraft:block/light_14" + }, + "level=15": { + "model": "minecraft:block/light_15" + }, + "level=2": { + "model": "minecraft:block/light_02" + }, + "level=3": { + "model": "minecraft:block/light_03" + }, + "level=4": { + "model": "minecraft:block/light_04" + }, + "level=5": { + "model": "minecraft:block/light_05" + }, + "level=6": { + "model": "minecraft:block/light_06" + }, + "level=7": { + "model": "minecraft:block/light_07" + }, + "level=8": { + "model": "minecraft:block/light_08" + }, + "level=9": { + "model": "minecraft:block/light_09" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_banner.json b/assets/minecraft/blockstates/light_blue_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_bed.json b/assets/minecraft/blockstates/light_blue_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_candle.json b/assets/minecraft/blockstates/light_blue_candle.json new file mode 100644 index 00000000..93995174 --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/light_blue_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/light_blue_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/light_blue_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/light_blue_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/light_blue_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/light_blue_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/light_blue_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/light_blue_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_candle_cake.json b/assets/minecraft/blockstates/light_blue_candle_cake.json new file mode 100644 index 00000000..669bb4e2 --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/light_blue_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/light_blue_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_carpet.json b/assets/minecraft/blockstates/light_blue_carpet.json new file mode 100644 index 00000000..5db104bc --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_blue_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_concrete.json b/assets/minecraft/blockstates/light_blue_concrete.json new file mode 100644 index 00000000..b1869773 --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_blue_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_concrete_powder.json b/assets/minecraft/blockstates/light_blue_concrete_powder.json new file mode 100644 index 00000000..b1a0f866 --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/light_blue_concrete_powder" + }, + { + "model": "minecraft:block/light_blue_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/light_blue_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/light_blue_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_glazed_terracotta.json b/assets/minecraft/blockstates/light_blue_glazed_terracotta.json new file mode 100644 index 00000000..04c566aa --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/light_blue_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/light_blue_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/light_blue_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/light_blue_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_shulker_box.json b/assets/minecraft/blockstates/light_blue_shulker_box.json new file mode 100644 index 00000000..0d8702ce --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_blue_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_stained_glass.json b/assets/minecraft/blockstates/light_blue_stained_glass.json new file mode 100644 index 00000000..6570fbc5 --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_blue_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_stained_glass_pane.json b/assets/minecraft/blockstates/light_blue_stained_glass_pane.json new file mode 100644 index 00000000..91092cca --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/light_blue_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_terracotta.json b/assets/minecraft/blockstates/light_blue_terracotta.json new file mode 100644 index 00000000..923dc3d4 --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_blue_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_wall_banner.json b/assets/minecraft/blockstates/light_blue_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_blue_wool.json b/assets/minecraft/blockstates/light_blue_wool.json new file mode 100644 index 00000000..0f808ef7 --- /dev/null +++ b/assets/minecraft/blockstates/light_blue_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_blue_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_banner.json b/assets/minecraft/blockstates/light_gray_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_bed.json b/assets/minecraft/blockstates/light_gray_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_candle.json b/assets/minecraft/blockstates/light_gray_candle.json new file mode 100644 index 00000000..4d98f6c2 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/light_gray_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/light_gray_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/light_gray_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/light_gray_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/light_gray_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/light_gray_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/light_gray_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/light_gray_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_candle_cake.json b/assets/minecraft/blockstates/light_gray_candle_cake.json new file mode 100644 index 00000000..87604a99 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/light_gray_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/light_gray_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_carpet.json b/assets/minecraft/blockstates/light_gray_carpet.json new file mode 100644 index 00000000..2cd65422 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_gray_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_concrete.json b/assets/minecraft/blockstates/light_gray_concrete.json new file mode 100644 index 00000000..7fcc7653 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_gray_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_concrete_powder.json b/assets/minecraft/blockstates/light_gray_concrete_powder.json new file mode 100644 index 00000000..71d06183 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/light_gray_concrete_powder" + }, + { + "model": "minecraft:block/light_gray_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/light_gray_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/light_gray_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_glazed_terracotta.json b/assets/minecraft/blockstates/light_gray_glazed_terracotta.json new file mode 100644 index 00000000..afaa7d77 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/light_gray_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/light_gray_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/light_gray_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/light_gray_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_shulker_box.json b/assets/minecraft/blockstates/light_gray_shulker_box.json new file mode 100644 index 00000000..a04db2c9 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_gray_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_stained_glass.json b/assets/minecraft/blockstates/light_gray_stained_glass.json new file mode 100644 index 00000000..b14a289d --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_gray_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_stained_glass_pane.json b/assets/minecraft/blockstates/light_gray_stained_glass_pane.json new file mode 100644 index 00000000..0c4c99ee --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/light_gray_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_terracotta.json b/assets/minecraft/blockstates/light_gray_terracotta.json new file mode 100644 index 00000000..d1fe850d --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_gray_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_wall_banner.json b/assets/minecraft/blockstates/light_gray_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_gray_wool.json b/assets/minecraft/blockstates/light_gray_wool.json new file mode 100644 index 00000000..c26d7157 --- /dev/null +++ b/assets/minecraft/blockstates/light_gray_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/light_gray_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/light_weighted_pressure_plate.json b/assets/minecraft/blockstates/light_weighted_pressure_plate.json new file mode 100644 index 00000000..3495b4c5 --- /dev/null +++ b/assets/minecraft/blockstates/light_weighted_pressure_plate.json @@ -0,0 +1,52 @@ +{ + "variants": { + "power=0": { + "model": "minecraft:block/light_weighted_pressure_plate" + }, + "power=1": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=10": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=11": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=12": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=13": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=14": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=15": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=2": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=3": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=4": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=5": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=6": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=7": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=8": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + }, + "power=9": { + "model": "minecraft:block/light_weighted_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lightning_rod.json b/assets/minecraft/blockstates/lightning_rod.json new file mode 100644 index 00000000..df0e7c46 --- /dev/null +++ b/assets/minecraft/blockstates/lightning_rod.json @@ -0,0 +1,56 @@ +{ + "variants": { + "facing=down,powered=false": { + "model": "minecraft:block/lightning_rod", + "x": 180 + }, + "facing=down,powered=true": { + "model": "minecraft:block/lightning_rod_on", + "x": 180 + }, + "facing=east,powered=false": { + "model": "minecraft:block/lightning_rod", + "x": 90, + "y": 90 + }, + "facing=east,powered=true": { + "model": "minecraft:block/lightning_rod_on", + "x": 90, + "y": 90 + }, + "facing=north,powered=false": { + "model": "minecraft:block/lightning_rod", + "x": 90 + }, + "facing=north,powered=true": { + "model": "minecraft:block/lightning_rod_on", + "x": 90 + }, + "facing=south,powered=false": { + "model": "minecraft:block/lightning_rod", + "x": 90, + "y": 180 + }, + "facing=south,powered=true": { + "model": "minecraft:block/lightning_rod_on", + "x": 90, + "y": 180 + }, + "facing=up,powered=false": { + "model": "minecraft:block/lightning_rod" + }, + "facing=up,powered=true": { + "model": "minecraft:block/lightning_rod_on" + }, + "facing=west,powered=false": { + "model": "minecraft:block/lightning_rod", + "x": 90, + "y": 270 + }, + "facing=west,powered=true": { + "model": "minecraft:block/lightning_rod_on", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lilac.json b/assets/minecraft/blockstates/lilac.json new file mode 100644 index 00000000..5a29adb9 --- /dev/null +++ b/assets/minecraft/blockstates/lilac.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/lilac_bottom" + }, + "half=upper": { + "model": "minecraft:block/lilac_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lily_of_the_valley.json b/assets/minecraft/blockstates/lily_of_the_valley.json new file mode 100644 index 00000000..5bc1e938 --- /dev/null +++ b/assets/minecraft/blockstates/lily_of_the_valley.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lily_of_the_valley" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lily_pad.json b/assets/minecraft/blockstates/lily_pad.json new file mode 100644 index 00000000..41cd85d1 --- /dev/null +++ b/assets/minecraft/blockstates/lily_pad.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/lily_pad" + }, + { + "model": "minecraft:block/lily_pad", + "y": 90 + }, + { + "model": "minecraft:block/lily_pad", + "y": 180 + }, + { + "model": "minecraft:block/lily_pad", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_banner.json b/assets/minecraft/blockstates/lime_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/lime_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_bed.json b/assets/minecraft/blockstates/lime_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/lime_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_candle.json b/assets/minecraft/blockstates/lime_candle.json new file mode 100644 index 00000000..373f7fb0 --- /dev/null +++ b/assets/minecraft/blockstates/lime_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/lime_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/lime_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/lime_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/lime_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/lime_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/lime_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/lime_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/lime_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_candle_cake.json b/assets/minecraft/blockstates/lime_candle_cake.json new file mode 100644 index 00000000..6a650d6b --- /dev/null +++ b/assets/minecraft/blockstates/lime_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/lime_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/lime_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_carpet.json b/assets/minecraft/blockstates/lime_carpet.json new file mode 100644 index 00000000..970a8ac1 --- /dev/null +++ b/assets/minecraft/blockstates/lime_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lime_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_concrete.json b/assets/minecraft/blockstates/lime_concrete.json new file mode 100644 index 00000000..af1b10b5 --- /dev/null +++ b/assets/minecraft/blockstates/lime_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lime_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_concrete_powder.json b/assets/minecraft/blockstates/lime_concrete_powder.json new file mode 100644 index 00000000..4f48ccf1 --- /dev/null +++ b/assets/minecraft/blockstates/lime_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/lime_concrete_powder" + }, + { + "model": "minecraft:block/lime_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/lime_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/lime_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_glazed_terracotta.json b/assets/minecraft/blockstates/lime_glazed_terracotta.json new file mode 100644 index 00000000..1bf117b7 --- /dev/null +++ b/assets/minecraft/blockstates/lime_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/lime_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/lime_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/lime_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/lime_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_shulker_box.json b/assets/minecraft/blockstates/lime_shulker_box.json new file mode 100644 index 00000000..8f33bac6 --- /dev/null +++ b/assets/minecraft/blockstates/lime_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lime_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_stained_glass.json b/assets/minecraft/blockstates/lime_stained_glass.json new file mode 100644 index 00000000..6916921a --- /dev/null +++ b/assets/minecraft/blockstates/lime_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lime_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_stained_glass_pane.json b/assets/minecraft/blockstates/lime_stained_glass_pane.json new file mode 100644 index 00000000..499df019 --- /dev/null +++ b/assets/minecraft/blockstates/lime_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/lime_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_terracotta.json b/assets/minecraft/blockstates/lime_terracotta.json new file mode 100644 index 00000000..c194305c --- /dev/null +++ b/assets/minecraft/blockstates/lime_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lime_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_wall_banner.json b/assets/minecraft/blockstates/lime_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/lime_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lime_wool.json b/assets/minecraft/blockstates/lime_wool.json new file mode 100644 index 00000000..d1524b5d --- /dev/null +++ b/assets/minecraft/blockstates/lime_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lime_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/lodestone.json b/assets/minecraft/blockstates/lodestone.json new file mode 100644 index 00000000..639e6848 --- /dev/null +++ b/assets/minecraft/blockstates/lodestone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/lodestone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/loom.json b/assets/minecraft/blockstates/loom.json new file mode 100644 index 00000000..0a8c5b69 --- /dev/null +++ b/assets/minecraft/blockstates/loom.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/loom", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/loom" + }, + "facing=south": { + "model": "minecraft:block/loom", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/loom", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_banner.json b/assets/minecraft/blockstates/magenta_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/magenta_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_bed.json b/assets/minecraft/blockstates/magenta_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/magenta_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_candle.json b/assets/minecraft/blockstates/magenta_candle.json new file mode 100644 index 00000000..732c2807 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/magenta_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/magenta_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/magenta_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/magenta_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/magenta_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/magenta_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/magenta_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/magenta_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_candle_cake.json b/assets/minecraft/blockstates/magenta_candle_cake.json new file mode 100644 index 00000000..1c994f6d --- /dev/null +++ b/assets/minecraft/blockstates/magenta_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/magenta_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/magenta_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_carpet.json b/assets/minecraft/blockstates/magenta_carpet.json new file mode 100644 index 00000000..3427fec7 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/magenta_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_concrete.json b/assets/minecraft/blockstates/magenta_concrete.json new file mode 100644 index 00000000..efa0ead9 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/magenta_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_concrete_powder.json b/assets/minecraft/blockstates/magenta_concrete_powder.json new file mode 100644 index 00000000..37231b4f --- /dev/null +++ b/assets/minecraft/blockstates/magenta_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/magenta_concrete_powder" + }, + { + "model": "minecraft:block/magenta_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/magenta_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/magenta_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_glazed_terracotta.json b/assets/minecraft/blockstates/magenta_glazed_terracotta.json new file mode 100644 index 00000000..bfb421a1 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/magenta_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/magenta_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/magenta_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/magenta_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_shulker_box.json b/assets/minecraft/blockstates/magenta_shulker_box.json new file mode 100644 index 00000000..e0d737fb --- /dev/null +++ b/assets/minecraft/blockstates/magenta_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/magenta_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_stained_glass.json b/assets/minecraft/blockstates/magenta_stained_glass.json new file mode 100644 index 00000000..2081e041 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/magenta_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_stained_glass_pane.json b/assets/minecraft/blockstates/magenta_stained_glass_pane.json new file mode 100644 index 00000000..2c1e2764 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/magenta_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_terracotta.json b/assets/minecraft/blockstates/magenta_terracotta.json new file mode 100644 index 00000000..30135ae5 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/magenta_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_wall_banner.json b/assets/minecraft/blockstates/magenta_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/magenta_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magenta_wool.json b/assets/minecraft/blockstates/magenta_wool.json new file mode 100644 index 00000000..d8666f05 --- /dev/null +++ b/assets/minecraft/blockstates/magenta_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/magenta_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/magma_block.json b/assets/minecraft/blockstates/magma_block.json new file mode 100644 index 00000000..90e6478e --- /dev/null +++ b/assets/minecraft/blockstates/magma_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/magma_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_button.json b/assets/minecraft/blockstates/mangrove_button.json new file mode 100644 index 00000000..1dc79467 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/mangrove_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/mangrove_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/mangrove_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/mangrove_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/mangrove_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/mangrove_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/mangrove_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/mangrove_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/mangrove_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/mangrove_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/mangrove_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/mangrove_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/mangrove_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/mangrove_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_door.json b/assets/minecraft/blockstates/mangrove_door.json new file mode 100644 index 00000000..0314412d --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/mangrove_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/mangrove_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/mangrove_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/mangrove_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_fence.json b/assets/minecraft/blockstates/mangrove_fence.json new file mode 100644 index 00000000..110e6b76 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/mangrove_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/mangrove_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mangrove_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mangrove_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mangrove_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_fence_gate.json b/assets/minecraft/blockstates/mangrove_fence_gate.json new file mode 100644 index 00000000..c50e279c --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/mangrove_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/mangrove_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/mangrove_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/mangrove_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/mangrove_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/mangrove_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/mangrove_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/mangrove_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/mangrove_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/mangrove_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/mangrove_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/mangrove_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/mangrove_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/mangrove_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/mangrove_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/mangrove_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_hanging_sign.json b/assets/minecraft/blockstates/mangrove_hanging_sign.json new file mode 100644 index 00000000..c8442f05 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mangrove_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_leaves.json b/assets/minecraft/blockstates/mangrove_leaves.json new file mode 100644 index 00000000..49ae2e02 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mangrove_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_log.json b/assets/minecraft/blockstates/mangrove_log.json new file mode 100644 index 00000000..55ca8b93 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/mangrove_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/mangrove_log" + }, + "axis=z": { + "model": "minecraft:block/mangrove_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_planks.json b/assets/minecraft/blockstates/mangrove_planks.json new file mode 100644 index 00000000..9e7098e8 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mangrove_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_pressure_plate.json b/assets/minecraft/blockstates/mangrove_pressure_plate.json new file mode 100644 index 00000000..6415a38c --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/mangrove_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/mangrove_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_propagule.json b/assets/minecraft/blockstates/mangrove_propagule.json new file mode 100644 index 00000000..970a8c4b --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_propagule.json @@ -0,0 +1,34 @@ +{ + "variants": { + "age=0,hanging=false": { + "model": "minecraft:block/mangrove_propagule" + }, + "age=0,hanging=true": { + "model": "minecraft:block/mangrove_propagule_hanging_0" + }, + "age=1,hanging=false": { + "model": "minecraft:block/mangrove_propagule" + }, + "age=1,hanging=true": { + "model": "minecraft:block/mangrove_propagule_hanging_1" + }, + "age=2,hanging=false": { + "model": "minecraft:block/mangrove_propagule" + }, + "age=2,hanging=true": { + "model": "minecraft:block/mangrove_propagule_hanging_2" + }, + "age=3,hanging=false": { + "model": "minecraft:block/mangrove_propagule" + }, + "age=3,hanging=true": { + "model": "minecraft:block/mangrove_propagule_hanging_3" + }, + "age=4,hanging=false": { + "model": "minecraft:block/mangrove_propagule" + }, + "age=4,hanging=true": { + "model": "minecraft:block/mangrove_propagule_hanging_4" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_roots.json b/assets/minecraft/blockstates/mangrove_roots.json new file mode 100644 index 00000000..dd31808b --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_roots.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mangrove_roots" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_sign.json b/assets/minecraft/blockstates/mangrove_sign.json new file mode 100644 index 00000000..9559d65c --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mangrove_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_slab.json b/assets/minecraft/blockstates/mangrove_slab.json new file mode 100644 index 00000000..ec39777e --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/mangrove_slab" + }, + "type=double": { + "model": "minecraft:block/mangrove_planks" + }, + "type=top": { + "model": "minecraft:block/mangrove_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_stairs.json b/assets/minecraft/blockstates/mangrove_stairs.json new file mode 100644 index 00000000..69e2425b --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/mangrove_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/mangrove_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/mangrove_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/mangrove_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/mangrove_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/mangrove_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/mangrove_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/mangrove_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/mangrove_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/mangrove_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_trapdoor.json b/assets/minecraft/blockstates/mangrove_trapdoor.json new file mode 100644 index 00000000..cab73e2e --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/mangrove_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/mangrove_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/mangrove_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/mangrove_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/mangrove_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/mangrove_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/mangrove_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/mangrove_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/mangrove_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_wall_hanging_sign.json b/assets/minecraft/blockstates/mangrove_wall_hanging_sign.json new file mode 100644 index 00000000..c8442f05 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mangrove_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_wall_sign.json b/assets/minecraft/blockstates/mangrove_wall_sign.json new file mode 100644 index 00000000..9559d65c --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mangrove_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mangrove_wood.json b/assets/minecraft/blockstates/mangrove_wood.json new file mode 100644 index 00000000..c517ddc9 --- /dev/null +++ b/assets/minecraft/blockstates/mangrove_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/mangrove_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/mangrove_wood" + }, + "axis=z": { + "model": "minecraft:block/mangrove_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/medium_amethyst_bud.json b/assets/minecraft/blockstates/medium_amethyst_bud.json new file mode 100644 index 00000000..2166b862 --- /dev/null +++ b/assets/minecraft/blockstates/medium_amethyst_bud.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/medium_amethyst_bud", + "x": 180 + }, + "facing=east": { + "model": "minecraft:block/medium_amethyst_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/medium_amethyst_bud", + "x": 90 + }, + "facing=south": { + "model": "minecraft:block/medium_amethyst_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "minecraft:block/medium_amethyst_bud" + }, + "facing=west": { + "model": "minecraft:block/medium_amethyst_bud", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/melon.json b/assets/minecraft/blockstates/melon.json new file mode 100644 index 00000000..93ce0cd4 --- /dev/null +++ b/assets/minecraft/blockstates/melon.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/melon" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/melon_stem.json b/assets/minecraft/blockstates/melon_stem.json new file mode 100644 index 00000000..89bcde3f --- /dev/null +++ b/assets/minecraft/blockstates/melon_stem.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/melon_stem_stage0" + }, + "age=1": { + "model": "minecraft:block/melon_stem_stage1" + }, + "age=2": { + "model": "minecraft:block/melon_stem_stage2" + }, + "age=3": { + "model": "minecraft:block/melon_stem_stage3" + }, + "age=4": { + "model": "minecraft:block/melon_stem_stage4" + }, + "age=5": { + "model": "minecraft:block/melon_stem_stage5" + }, + "age=6": { + "model": "minecraft:block/melon_stem_stage6" + }, + "age=7": { + "model": "minecraft:block/melon_stem_stage7" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/moss_block.json b/assets/minecraft/blockstates/moss_block.json new file mode 100644 index 00000000..8c2eaa3a --- /dev/null +++ b/assets/minecraft/blockstates/moss_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/moss_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/moss_carpet.json b/assets/minecraft/blockstates/moss_carpet.json new file mode 100644 index 00000000..3b338b55 --- /dev/null +++ b/assets/minecraft/blockstates/moss_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/moss_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_cobblestone.json b/assets/minecraft/blockstates/mossy_cobblestone.json new file mode 100644 index 00000000..7467ed1d --- /dev/null +++ b/assets/minecraft/blockstates/mossy_cobblestone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mossy_cobblestone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_cobblestone_slab.json b/assets/minecraft/blockstates/mossy_cobblestone_slab.json new file mode 100644 index 00000000..51dfa2ca --- /dev/null +++ b/assets/minecraft/blockstates/mossy_cobblestone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/mossy_cobblestone_slab" + }, + "type=double": { + "model": "minecraft:block/mossy_cobblestone" + }, + "type=top": { + "model": "minecraft:block/mossy_cobblestone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_cobblestone_stairs.json b/assets/minecraft/blockstates/mossy_cobblestone_stairs.json new file mode 100644 index 00000000..1e1bc448 --- /dev/null +++ b/assets/minecraft/blockstates/mossy_cobblestone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_cobblestone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/mossy_cobblestone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_cobblestone_wall.json b/assets/minecraft/blockstates/mossy_cobblestone_wall.json new file mode 100644 index 00000000..6edbd9af --- /dev/null +++ b/assets/minecraft/blockstates/mossy_cobblestone_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_cobblestone_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_stone_brick_slab.json b/assets/minecraft/blockstates/mossy_stone_brick_slab.json new file mode 100644 index 00000000..e8d96fc0 --- /dev/null +++ b/assets/minecraft/blockstates/mossy_stone_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/mossy_stone_brick_slab" + }, + "type=double": { + "model": "minecraft:block/mossy_stone_bricks" + }, + "type=top": { + "model": "minecraft:block/mossy_stone_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_stone_brick_stairs.json b/assets/minecraft/blockstates/mossy_stone_brick_stairs.json new file mode 100644 index 00000000..1a00d671 --- /dev/null +++ b/assets/minecraft/blockstates/mossy_stone_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/mossy_stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/mossy_stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_stone_brick_wall.json b/assets/minecraft/blockstates/mossy_stone_brick_wall.json new file mode 100644 index 00000000..d5c2e06d --- /dev/null +++ b/assets/minecraft/blockstates/mossy_stone_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mossy_stone_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mossy_stone_bricks.json b/assets/minecraft/blockstates/mossy_stone_bricks.json new file mode 100644 index 00000000..c17c4a7f --- /dev/null +++ b/assets/minecraft/blockstates/mossy_stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mossy_stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/moving_piston.json b/assets/minecraft/blockstates/moving_piston.json new file mode 100644 index 00000000..aaa921ff --- /dev/null +++ b/assets/minecraft/blockstates/moving_piston.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/moving_piston" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mud.json b/assets/minecraft/blockstates/mud.json new file mode 100644 index 00000000..d62b2f7a --- /dev/null +++ b/assets/minecraft/blockstates/mud.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mud" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mud_brick_slab.json b/assets/minecraft/blockstates/mud_brick_slab.json new file mode 100644 index 00000000..f611448d --- /dev/null +++ b/assets/minecraft/blockstates/mud_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/mud_brick_slab" + }, + "type=double": { + "model": "minecraft:block/mud_bricks" + }, + "type=top": { + "model": "minecraft:block/mud_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mud_brick_stairs.json b/assets/minecraft/blockstates/mud_brick_stairs.json new file mode 100644 index 00000000..a75a3490 --- /dev/null +++ b/assets/minecraft/blockstates/mud_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/mud_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/mud_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/mud_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/mud_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/mud_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/mud_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/mud_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/mud_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/mud_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/mud_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mud_brick_wall.json b/assets/minecraft/blockstates/mud_brick_wall.json new file mode 100644 index 00000000..6a954ff0 --- /dev/null +++ b/assets/minecraft/blockstates/mud_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/mud_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/mud_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mud_bricks.json b/assets/minecraft/blockstates/mud_bricks.json new file mode 100644 index 00000000..57475ffd --- /dev/null +++ b/assets/minecraft/blockstates/mud_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/mud_bricks_north_west_mirrored" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/muddy_mangrove_roots.json b/assets/minecraft/blockstates/muddy_mangrove_roots.json new file mode 100644 index 00000000..8f96e013 --- /dev/null +++ b/assets/minecraft/blockstates/muddy_mangrove_roots.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/muddy_mangrove_roots", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/muddy_mangrove_roots" + }, + "axis=z": { + "model": "minecraft:block/muddy_mangrove_roots", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mushroom_stem.json b/assets/minecraft/blockstates/mushroom_stem.json new file mode 100644 index 00000000..7bcbe438 --- /dev/null +++ b/assets/minecraft/blockstates/mushroom_stem.json @@ -0,0 +1,120 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/mushroom_stem" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_stem", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_stem", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_stem", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_stem", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_stem", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 90 + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 180 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 270 + }, + "when": { + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "x": 270 + }, + "when": { + "up": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "x": 90 + }, + "when": { + "down": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/mycelium.json b/assets/minecraft/blockstates/mycelium.json new file mode 100644 index 00000000..cdf6392d --- /dev/null +++ b/assets/minecraft/blockstates/mycelium.json @@ -0,0 +1,24 @@ +{ + "variants": { + "snowy=false": [ + { + "model": "minecraft:block/mycelium" + }, + { + "model": "minecraft:block/mycelium", + "y": 90 + }, + { + "model": "minecraft:block/mycelium", + "y": 180 + }, + { + "model": "minecraft:block/mycelium", + "y": 270 + } + ], + "snowy=true": { + "model": "minecraft:block/grass_block_snow" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_brick_fence.json b/assets/minecraft/blockstates/nether_brick_fence.json new file mode 100644 index 00000000..124e21d6 --- /dev/null +++ b/assets/minecraft/blockstates/nether_brick_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/nether_brick_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_brick_slab.json b/assets/minecraft/blockstates/nether_brick_slab.json new file mode 100644 index 00000000..e6e04975 --- /dev/null +++ b/assets/minecraft/blockstates/nether_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/nether_brick_slab" + }, + "type=double": { + "model": "minecraft:block/nether_bricks" + }, + "type=top": { + "model": "minecraft:block/nether_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_brick_stairs.json b/assets/minecraft/blockstates/nether_brick_stairs.json new file mode 100644 index 00000000..80c3796f --- /dev/null +++ b/assets/minecraft/blockstates/nether_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/nether_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/nether_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/nether_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/nether_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/nether_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/nether_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/nether_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/nether_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_brick_wall.json b/assets/minecraft/blockstates/nether_brick_wall.json new file mode 100644 index 00000000..65eccc40 --- /dev/null +++ b/assets/minecraft/blockstates/nether_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/nether_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/nether_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_bricks.json b/assets/minecraft/blockstates/nether_bricks.json new file mode 100644 index 00000000..85622bf5 --- /dev/null +++ b/assets/minecraft/blockstates/nether_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/nether_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_gold_ore.json b/assets/minecraft/blockstates/nether_gold_ore.json new file mode 100644 index 00000000..75e62a37 --- /dev/null +++ b/assets/minecraft/blockstates/nether_gold_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/nether_gold_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_portal.json b/assets/minecraft/blockstates/nether_portal.json new file mode 100644 index 00000000..af9f386a --- /dev/null +++ b/assets/minecraft/blockstates/nether_portal.json @@ -0,0 +1,10 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/nether_portal_ns" + }, + "axis=z": { + "model": "minecraft:block/nether_portal_ew" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_quartz_ore.json b/assets/minecraft/blockstates/nether_quartz_ore.json new file mode 100644 index 00000000..b473ab4f --- /dev/null +++ b/assets/minecraft/blockstates/nether_quartz_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/nether_quartz_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_sprouts.json b/assets/minecraft/blockstates/nether_sprouts.json new file mode 100644 index 00000000..445d1001 --- /dev/null +++ b/assets/minecraft/blockstates/nether_sprouts.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/nether_sprouts" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_wart.json b/assets/minecraft/blockstates/nether_wart.json new file mode 100644 index 00000000..f956d12c --- /dev/null +++ b/assets/minecraft/blockstates/nether_wart.json @@ -0,0 +1,16 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/nether_wart_stage0" + }, + "age=1": { + "model": "minecraft:block/nether_wart_stage1" + }, + "age=2": { + "model": "minecraft:block/nether_wart_stage1" + }, + "age=3": { + "model": "minecraft:block/nether_wart_stage2" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/nether_wart_block.json b/assets/minecraft/blockstates/nether_wart_block.json new file mode 100644 index 00000000..ea08ea13 --- /dev/null +++ b/assets/minecraft/blockstates/nether_wart_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/nether_wart_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/netherite_block.json b/assets/minecraft/blockstates/netherite_block.json new file mode 100644 index 00000000..85f89e95 --- /dev/null +++ b/assets/minecraft/blockstates/netherite_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/netherite_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/netherrack.json b/assets/minecraft/blockstates/netherrack.json new file mode 100644 index 00000000..aa1fad53 --- /dev/null +++ b/assets/minecraft/blockstates/netherrack.json @@ -0,0 +1,78 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/netherrack" + }, + { + "model": "minecraft:block/netherrack", + "x": 90 + }, + { + "model": "minecraft:block/netherrack", + "x": 180 + }, + { + "model": "minecraft:block/netherrack", + "x": 270 + }, + { + "model": "minecraft:block/netherrack", + "y": 90 + }, + { + "model": "minecraft:block/netherrack", + "x": 90, + "y": 90 + }, + { + "model": "minecraft:block/netherrack", + "x": 180, + "y": 90 + }, + { + "model": "minecraft:block/netherrack", + "x": 270, + "y": 90 + }, + { + "model": "minecraft:block/netherrack", + "y": 180 + }, + { + "model": "minecraft:block/netherrack", + "x": 90, + "y": 180 + }, + { + "model": "minecraft:block/netherrack", + "x": 180, + "y": 180 + }, + { + "model": "minecraft:block/netherrack", + "x": 270, + "y": 180 + }, + { + "model": "minecraft:block/netherrack", + "y": 270 + }, + { + "model": "minecraft:block/netherrack", + "x": 90, + "y": 270 + }, + { + "model": "minecraft:block/netherrack", + "x": 180, + "y": 270 + }, + { + "model": "minecraft:block/netherrack", + "x": 270, + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/note_block.json b/assets/minecraft/blockstates/note_block.json new file mode 100644 index 00000000..651e64c5 --- /dev/null +++ b/assets/minecraft/blockstates/note_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/note_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_button.json b/assets/minecraft/blockstates/oak_button.json new file mode 100644 index 00000000..e21e090a --- /dev/null +++ b/assets/minecraft/blockstates/oak_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/oak_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/oak_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/oak_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/oak_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/oak_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/oak_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/oak_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/oak_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/oak_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/oak_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/oak_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/oak_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/oak_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/oak_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_door.json b/assets/minecraft/blockstates/oak_door.json new file mode 100644 index 00000000..c739dec2 --- /dev/null +++ b/assets/minecraft/blockstates/oak_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oak_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oak_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oak_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oak_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oak_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oak_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oak_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oak_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oak_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oak_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oak_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oak_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oak_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oak_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oak_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oak_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oak_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oak_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oak_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oak_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oak_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oak_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oak_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oak_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oak_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oak_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oak_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oak_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oak_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oak_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oak_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oak_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_fence.json b/assets/minecraft/blockstates/oak_fence.json new file mode 100644 index 00000000..394851e1 --- /dev/null +++ b/assets/minecraft/blockstates/oak_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/oak_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/oak_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/oak_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/oak_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/oak_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_fence_gate.json b/assets/minecraft/blockstates/oak_fence_gate.json new file mode 100644 index 00000000..872298ce --- /dev/null +++ b/assets/minecraft/blockstates/oak_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/oak_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/oak_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/oak_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/oak_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/oak_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/oak_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/oak_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/oak_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/oak_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/oak_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/oak_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/oak_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/oak_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/oak_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/oak_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/oak_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_hanging_sign.json b/assets/minecraft/blockstates/oak_hanging_sign.json new file mode 100644 index 00000000..b2c43dc3 --- /dev/null +++ b/assets/minecraft/blockstates/oak_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oak_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_leaves.json b/assets/minecraft/blockstates/oak_leaves.json new file mode 100644 index 00000000..8d60eedb --- /dev/null +++ b/assets/minecraft/blockstates/oak_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oak_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_log.json b/assets/minecraft/blockstates/oak_log.json new file mode 100644 index 00000000..9d3266ce --- /dev/null +++ b/assets/minecraft/blockstates/oak_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/oak_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/oak_log" + }, + "axis=z": { + "model": "minecraft:block/oak_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_planks.json b/assets/minecraft/blockstates/oak_planks.json new file mode 100644 index 00000000..02780929 --- /dev/null +++ b/assets/minecraft/blockstates/oak_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oak_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_pressure_plate.json b/assets/minecraft/blockstates/oak_pressure_plate.json new file mode 100644 index 00000000..6ecbfbc5 --- /dev/null +++ b/assets/minecraft/blockstates/oak_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/oak_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/oak_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_sapling.json b/assets/minecraft/blockstates/oak_sapling.json new file mode 100644 index 00000000..04d4cbe9 --- /dev/null +++ b/assets/minecraft/blockstates/oak_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oak_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_sign.json b/assets/minecraft/blockstates/oak_sign.json new file mode 100644 index 00000000..b9f38f4f --- /dev/null +++ b/assets/minecraft/blockstates/oak_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oak_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_slab.json b/assets/minecraft/blockstates/oak_slab.json new file mode 100644 index 00000000..c503f74c --- /dev/null +++ b/assets/minecraft/blockstates/oak_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/oak_slab" + }, + "type=double": { + "model": "minecraft:block/oak_planks" + }, + "type=top": { + "model": "minecraft:block/oak_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_stairs.json b/assets/minecraft/blockstates/oak_stairs.json new file mode 100644 index 00000000..c20e7ef6 --- /dev/null +++ b/assets/minecraft/blockstates/oak_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/oak_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/oak_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/oak_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/oak_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/oak_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/oak_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/oak_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/oak_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/oak_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/oak_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_trapdoor.json b/assets/minecraft/blockstates/oak_trapdoor.json new file mode 100644 index 00000000..168faf12 --- /dev/null +++ b/assets/minecraft/blockstates/oak_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/oak_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/oak_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/oak_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/oak_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/oak_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/oak_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/oak_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/oak_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/oak_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/oak_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/oak_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/oak_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/oak_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/oak_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/oak_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/oak_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_wall_hanging_sign.json b/assets/minecraft/blockstates/oak_wall_hanging_sign.json new file mode 100644 index 00000000..b2c43dc3 --- /dev/null +++ b/assets/minecraft/blockstates/oak_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oak_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_wall_sign.json b/assets/minecraft/blockstates/oak_wall_sign.json new file mode 100644 index 00000000..b9f38f4f --- /dev/null +++ b/assets/minecraft/blockstates/oak_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oak_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oak_wood.json b/assets/minecraft/blockstates/oak_wood.json new file mode 100644 index 00000000..1eb596b8 --- /dev/null +++ b/assets/minecraft/blockstates/oak_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/oak_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/oak_wood" + }, + "axis=z": { + "model": "minecraft:block/oak_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/observer.json b/assets/minecraft/blockstates/observer.json new file mode 100644 index 00000000..6f54ba51 --- /dev/null +++ b/assets/minecraft/blockstates/observer.json @@ -0,0 +1,50 @@ +{ + "variants": { + "facing=down,powered=false": { + "model": "minecraft:block/observer", + "x": 90 + }, + "facing=down,powered=true": { + "model": "minecraft:block/observer_on", + "x": 90 + }, + "facing=east,powered=false": { + "model": "minecraft:block/observer", + "y": 90 + }, + "facing=east,powered=true": { + "model": "minecraft:block/observer_on", + "y": 90 + }, + "facing=north,powered=false": { + "model": "minecraft:block/observer" + }, + "facing=north,powered=true": { + "model": "minecraft:block/observer_on" + }, + "facing=south,powered=false": { + "model": "minecraft:block/observer", + "y": 180 + }, + "facing=south,powered=true": { + "model": "minecraft:block/observer_on", + "y": 180 + }, + "facing=up,powered=false": { + "model": "minecraft:block/observer", + "x": 270 + }, + "facing=up,powered=true": { + "model": "minecraft:block/observer_on", + "x": 270 + }, + "facing=west,powered=false": { + "model": "minecraft:block/observer", + "y": 270 + }, + "facing=west,powered=true": { + "model": "minecraft:block/observer_on", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/obsidian.json b/assets/minecraft/blockstates/obsidian.json new file mode 100644 index 00000000..28d39dfd --- /dev/null +++ b/assets/minecraft/blockstates/obsidian.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/obsidian" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/ochre_froglight.json b/assets/minecraft/blockstates/ochre_froglight.json new file mode 100644 index 00000000..2a4f1aa7 --- /dev/null +++ b/assets/minecraft/blockstates/ochre_froglight.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/ochre_froglight_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/ochre_froglight" + }, + "axis=z": { + "model": "minecraft:block/ochre_froglight_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_banner.json b/assets/minecraft/blockstates/orange_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/orange_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_bed.json b/assets/minecraft/blockstates/orange_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/orange_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_candle.json b/assets/minecraft/blockstates/orange_candle.json new file mode 100644 index 00000000..203c6519 --- /dev/null +++ b/assets/minecraft/blockstates/orange_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/orange_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/orange_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/orange_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/orange_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/orange_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/orange_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/orange_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/orange_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_candle_cake.json b/assets/minecraft/blockstates/orange_candle_cake.json new file mode 100644 index 00000000..1e65e880 --- /dev/null +++ b/assets/minecraft/blockstates/orange_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/orange_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/orange_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_carpet.json b/assets/minecraft/blockstates/orange_carpet.json new file mode 100644 index 00000000..37ac6ac4 --- /dev/null +++ b/assets/minecraft/blockstates/orange_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/orange_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_concrete.json b/assets/minecraft/blockstates/orange_concrete.json new file mode 100644 index 00000000..e88cada0 --- /dev/null +++ b/assets/minecraft/blockstates/orange_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/orange_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_concrete_powder.json b/assets/minecraft/blockstates/orange_concrete_powder.json new file mode 100644 index 00000000..9637378d --- /dev/null +++ b/assets/minecraft/blockstates/orange_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/orange_concrete_powder" + }, + { + "model": "minecraft:block/orange_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/orange_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/orange_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_glazed_terracotta.json b/assets/minecraft/blockstates/orange_glazed_terracotta.json new file mode 100644 index 00000000..abdb57a3 --- /dev/null +++ b/assets/minecraft/blockstates/orange_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/orange_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/orange_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/orange_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/orange_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_shulker_box.json b/assets/minecraft/blockstates/orange_shulker_box.json new file mode 100644 index 00000000..0bc75690 --- /dev/null +++ b/assets/minecraft/blockstates/orange_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/orange_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_stained_glass.json b/assets/minecraft/blockstates/orange_stained_glass.json new file mode 100644 index 00000000..93c651a5 --- /dev/null +++ b/assets/minecraft/blockstates/orange_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/orange_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_stained_glass_pane.json b/assets/minecraft/blockstates/orange_stained_glass_pane.json new file mode 100644 index 00000000..35df240f --- /dev/null +++ b/assets/minecraft/blockstates/orange_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/orange_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_terracotta.json b/assets/minecraft/blockstates/orange_terracotta.json new file mode 100644 index 00000000..6d644c41 --- /dev/null +++ b/assets/minecraft/blockstates/orange_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/orange_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_tulip.json b/assets/minecraft/blockstates/orange_tulip.json new file mode 100644 index 00000000..8aac68c8 --- /dev/null +++ b/assets/minecraft/blockstates/orange_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/orange_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_wall_banner.json b/assets/minecraft/blockstates/orange_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/orange_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/orange_wool.json b/assets/minecraft/blockstates/orange_wool.json new file mode 100644 index 00000000..ae3fabee --- /dev/null +++ b/assets/minecraft/blockstates/orange_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/orange_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxeye_daisy.json b/assets/minecraft/blockstates/oxeye_daisy.json new file mode 100644 index 00000000..fa815c22 --- /dev/null +++ b/assets/minecraft/blockstates/oxeye_daisy.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxeye_daisy" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_chiseled_copper.json b/assets/minecraft/blockstates/oxidized_chiseled_copper.json new file mode 100644 index 00000000..ea362c15 --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_copper.json b/assets/minecraft/blockstates/oxidized_copper.json new file mode 100644 index 00000000..d7ce6251 --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_copper_bulb.json b/assets/minecraft/blockstates/oxidized_copper_bulb.json new file mode 100644 index 00000000..1e58f046 --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/oxidized_copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/oxidized_copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/oxidized_copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/oxidized_copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_copper_door.json b/assets/minecraft/blockstates/oxidized_copper_door.json new file mode 100644 index 00000000..2cb09804 --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_copper_grate.json b/assets/minecraft/blockstates/oxidized_copper_grate.json new file mode 100644 index 00000000..e8039a9a --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_copper_trapdoor.json b/assets/minecraft/blockstates/oxidized_copper_trapdoor.json new file mode 100644 index 00000000..c5ceb4cd --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_cut_copper.json b/assets/minecraft/blockstates/oxidized_cut_copper.json new file mode 100644 index 00000000..58bf24a1 --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_cut_copper_slab.json b/assets/minecraft/blockstates/oxidized_cut_copper_slab.json new file mode 100644 index 00000000..e91b8c96 --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/oxidized_cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/oxidized_cut_copper" + }, + "type=top": { + "model": "minecraft:block/oxidized_cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/oxidized_cut_copper_stairs.json b/assets/minecraft/blockstates/oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..5b79a1e8 --- /dev/null +++ b/assets/minecraft/blockstates/oxidized_cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/packed_ice.json b/assets/minecraft/blockstates/packed_ice.json new file mode 100644 index 00000000..b395c21e --- /dev/null +++ b/assets/minecraft/blockstates/packed_ice.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/packed_ice" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/packed_mud.json b/assets/minecraft/blockstates/packed_mud.json new file mode 100644 index 00000000..6309d7d0 --- /dev/null +++ b/assets/minecraft/blockstates/packed_mud.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/packed_mud" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pearlescent_froglight.json b/assets/minecraft/blockstates/pearlescent_froglight.json new file mode 100644 index 00000000..ff6fa267 --- /dev/null +++ b/assets/minecraft/blockstates/pearlescent_froglight.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/pearlescent_froglight_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/pearlescent_froglight" + }, + "axis=z": { + "model": "minecraft:block/pearlescent_froglight_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/peony.json b/assets/minecraft/blockstates/peony.json new file mode 100644 index 00000000..c97072d5 --- /dev/null +++ b/assets/minecraft/blockstates/peony.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/peony_bottom" + }, + "half=upper": { + "model": "minecraft:block/peony_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/petrified_oak_slab.json b/assets/minecraft/blockstates/petrified_oak_slab.json new file mode 100644 index 00000000..98db0a12 --- /dev/null +++ b/assets/minecraft/blockstates/petrified_oak_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/petrified_oak_slab" + }, + "type=double": { + "model": "minecraft:block/oak_planks" + }, + "type=top": { + "model": "minecraft:block/petrified_oak_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/piglin_head.json b/assets/minecraft/blockstates/piglin_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/piglin_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/piglin_wall_head.json b/assets/minecraft/blockstates/piglin_wall_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/piglin_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_banner.json b/assets/minecraft/blockstates/pink_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/pink_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_bed.json b/assets/minecraft/blockstates/pink_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/pink_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_candle.json b/assets/minecraft/blockstates/pink_candle.json new file mode 100644 index 00000000..fd63fea4 --- /dev/null +++ b/assets/minecraft/blockstates/pink_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/pink_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/pink_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/pink_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/pink_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/pink_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/pink_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/pink_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/pink_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_candle_cake.json b/assets/minecraft/blockstates/pink_candle_cake.json new file mode 100644 index 00000000..5b9c8d56 --- /dev/null +++ b/assets/minecraft/blockstates/pink_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/pink_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/pink_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_carpet.json b/assets/minecraft/blockstates/pink_carpet.json new file mode 100644 index 00000000..c9a49aed --- /dev/null +++ b/assets/minecraft/blockstates/pink_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pink_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_concrete.json b/assets/minecraft/blockstates/pink_concrete.json new file mode 100644 index 00000000..3beebd45 --- /dev/null +++ b/assets/minecraft/blockstates/pink_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pink_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_concrete_powder.json b/assets/minecraft/blockstates/pink_concrete_powder.json new file mode 100644 index 00000000..c6f09205 --- /dev/null +++ b/assets/minecraft/blockstates/pink_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/pink_concrete_powder" + }, + { + "model": "minecraft:block/pink_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/pink_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/pink_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_glazed_terracotta.json b/assets/minecraft/blockstates/pink_glazed_terracotta.json new file mode 100644 index 00000000..84e6c0c6 --- /dev/null +++ b/assets/minecraft/blockstates/pink_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/pink_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/pink_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/pink_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/pink_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_petals.json b/assets/minecraft/blockstates/pink_petals.json new file mode 100644 index 00000000..990e576e --- /dev/null +++ b/assets/minecraft/blockstates/pink_petals.json @@ -0,0 +1,160 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/pink_petals_1" + }, + "when": { + "facing": "north", + "flower_amount": "1|2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_1", + "y": 90 + }, + "when": { + "facing": "east", + "flower_amount": "1|2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_1", + "y": 180 + }, + "when": { + "facing": "south", + "flower_amount": "1|2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_1", + "y": 270 + }, + "when": { + "facing": "west", + "flower_amount": "1|2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_2" + }, + "when": { + "facing": "north", + "flower_amount": "2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_2", + "y": 90 + }, + "when": { + "facing": "east", + "flower_amount": "2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_2", + "y": 180 + }, + "when": { + "facing": "south", + "flower_amount": "2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_2", + "y": 270 + }, + "when": { + "facing": "west", + "flower_amount": "2|3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_3" + }, + "when": { + "facing": "north", + "flower_amount": "3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_3", + "y": 90 + }, + "when": { + "facing": "east", + "flower_amount": "3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_3", + "y": 180 + }, + "when": { + "facing": "south", + "flower_amount": "3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_3", + "y": 270 + }, + "when": { + "facing": "west", + "flower_amount": "3|4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_4" + }, + "when": { + "facing": "north", + "flower_amount": "4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_4", + "y": 90 + }, + "when": { + "facing": "east", + "flower_amount": "4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_4", + "y": 180 + }, + "when": { + "facing": "south", + "flower_amount": "4" + } + }, + { + "apply": { + "model": "minecraft:block/pink_petals_4", + "y": 270 + }, + "when": { + "facing": "west", + "flower_amount": "4" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_shulker_box.json b/assets/minecraft/blockstates/pink_shulker_box.json new file mode 100644 index 00000000..3f336dcf --- /dev/null +++ b/assets/minecraft/blockstates/pink_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pink_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_stained_glass.json b/assets/minecraft/blockstates/pink_stained_glass.json new file mode 100644 index 00000000..3adb5ca2 --- /dev/null +++ b/assets/minecraft/blockstates/pink_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pink_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_stained_glass_pane.json b/assets/minecraft/blockstates/pink_stained_glass_pane.json new file mode 100644 index 00000000..4b9b9241 --- /dev/null +++ b/assets/minecraft/blockstates/pink_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/pink_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_terracotta.json b/assets/minecraft/blockstates/pink_terracotta.json new file mode 100644 index 00000000..b9dbe910 --- /dev/null +++ b/assets/minecraft/blockstates/pink_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pink_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_tulip.json b/assets/minecraft/blockstates/pink_tulip.json new file mode 100644 index 00000000..038823fb --- /dev/null +++ b/assets/minecraft/blockstates/pink_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pink_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_wall_banner.json b/assets/minecraft/blockstates/pink_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/pink_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pink_wool.json b/assets/minecraft/blockstates/pink_wool.json new file mode 100644 index 00000000..d7096f63 --- /dev/null +++ b/assets/minecraft/blockstates/pink_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pink_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/piston.json b/assets/minecraft/blockstates/piston.json new file mode 100644 index 00000000..0ee3b912 --- /dev/null +++ b/assets/minecraft/blockstates/piston.json @@ -0,0 +1,50 @@ +{ + "variants": { + "extended=false,facing=down": { + "model": "minecraft:block/piston", + "x": 90 + }, + "extended=false,facing=east": { + "model": "minecraft:block/piston", + "y": 90 + }, + "extended=false,facing=north": { + "model": "minecraft:block/piston" + }, + "extended=false,facing=south": { + "model": "minecraft:block/piston", + "y": 180 + }, + "extended=false,facing=up": { + "model": "minecraft:block/piston", + "x": 270 + }, + "extended=false,facing=west": { + "model": "minecraft:block/piston", + "y": 270 + }, + "extended=true,facing=down": { + "model": "minecraft:block/piston_base", + "x": 90 + }, + "extended=true,facing=east": { + "model": "minecraft:block/piston_base", + "y": 90 + }, + "extended=true,facing=north": { + "model": "minecraft:block/piston_base" + }, + "extended=true,facing=south": { + "model": "minecraft:block/piston_base", + "y": 180 + }, + "extended=true,facing=up": { + "model": "minecraft:block/piston_base", + "x": 270 + }, + "extended=true,facing=west": { + "model": "minecraft:block/piston_base", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/piston_head.json b/assets/minecraft/blockstates/piston_head.json new file mode 100644 index 00000000..b1a80352 --- /dev/null +++ b/assets/minecraft/blockstates/piston_head.json @@ -0,0 +1,96 @@ +{ + "variants": { + "facing=down,short=false,type=normal": { + "model": "minecraft:block/piston_head", + "x": 90 + }, + "facing=down,short=false,type=sticky": { + "model": "minecraft:block/piston_head_sticky", + "x": 90 + }, + "facing=down,short=true,type=normal": { + "model": "minecraft:block/piston_head_short", + "x": 90 + }, + "facing=down,short=true,type=sticky": { + "model": "minecraft:block/piston_head_short_sticky", + "x": 90 + }, + "facing=east,short=false,type=normal": { + "model": "minecraft:block/piston_head", + "y": 90 + }, + "facing=east,short=false,type=sticky": { + "model": "minecraft:block/piston_head_sticky", + "y": 90 + }, + "facing=east,short=true,type=normal": { + "model": "minecraft:block/piston_head_short", + "y": 90 + }, + "facing=east,short=true,type=sticky": { + "model": "minecraft:block/piston_head_short_sticky", + "y": 90 + }, + "facing=north,short=false,type=normal": { + "model": "minecraft:block/piston_head" + }, + "facing=north,short=false,type=sticky": { + "model": "minecraft:block/piston_head_sticky" + }, + "facing=north,short=true,type=normal": { + "model": "minecraft:block/piston_head_short" + }, + "facing=north,short=true,type=sticky": { + "model": "minecraft:block/piston_head_short_sticky" + }, + "facing=south,short=false,type=normal": { + "model": "minecraft:block/piston_head", + "y": 180 + }, + "facing=south,short=false,type=sticky": { + "model": "minecraft:block/piston_head_sticky", + "y": 180 + }, + "facing=south,short=true,type=normal": { + "model": "minecraft:block/piston_head_short", + "y": 180 + }, + "facing=south,short=true,type=sticky": { + "model": "minecraft:block/piston_head_short_sticky", + "y": 180 + }, + "facing=up,short=false,type=normal": { + "model": "minecraft:block/piston_head", + "x": 270 + }, + "facing=up,short=false,type=sticky": { + "model": "minecraft:block/piston_head_sticky", + "x": 270 + }, + "facing=up,short=true,type=normal": { + "model": "minecraft:block/piston_head_short", + "x": 270 + }, + "facing=up,short=true,type=sticky": { + "model": "minecraft:block/piston_head_short_sticky", + "x": 270 + }, + "facing=west,short=false,type=normal": { + "model": "minecraft:block/piston_head", + "y": 270 + }, + "facing=west,short=false,type=sticky": { + "model": "minecraft:block/piston_head_sticky", + "y": 270 + }, + "facing=west,short=true,type=normal": { + "model": "minecraft:block/piston_head_short", + "y": 270 + }, + "facing=west,short=true,type=sticky": { + "model": "minecraft:block/piston_head_short_sticky", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pitcher_crop.json b/assets/minecraft/blockstates/pitcher_crop.json new file mode 100644 index 00000000..375502da --- /dev/null +++ b/assets/minecraft/blockstates/pitcher_crop.json @@ -0,0 +1,34 @@ +{ + "variants": { + "age=0,half=lower": { + "model": "minecraft:block/pitcher_crop_bottom_stage_0" + }, + "age=0,half=upper": { + "model": "minecraft:block/pitcher_crop_top_stage_0" + }, + "age=1,half=lower": { + "model": "minecraft:block/pitcher_crop_bottom_stage_1" + }, + "age=1,half=upper": { + "model": "minecraft:block/pitcher_crop_top_stage_1" + }, + "age=2,half=lower": { + "model": "minecraft:block/pitcher_crop_bottom_stage_2" + }, + "age=2,half=upper": { + "model": "minecraft:block/pitcher_crop_top_stage_2" + }, + "age=3,half=lower": { + "model": "minecraft:block/pitcher_crop_bottom_stage_3" + }, + "age=3,half=upper": { + "model": "minecraft:block/pitcher_crop_top_stage_3" + }, + "age=4,half=lower": { + "model": "minecraft:block/pitcher_crop_bottom_stage_4" + }, + "age=4,half=upper": { + "model": "minecraft:block/pitcher_crop_top_stage_4" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pitcher_plant.json b/assets/minecraft/blockstates/pitcher_plant.json new file mode 100644 index 00000000..fdf53d56 --- /dev/null +++ b/assets/minecraft/blockstates/pitcher_plant.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/pitcher_plant_bottom" + }, + "half=upper": { + "model": "minecraft:block/pitcher_plant_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/player_head.json b/assets/minecraft/blockstates/player_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/player_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/player_wall_head.json b/assets/minecraft/blockstates/player_wall_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/player_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/podzol.json b/assets/minecraft/blockstates/podzol.json new file mode 100644 index 00000000..03e40a71 --- /dev/null +++ b/assets/minecraft/blockstates/podzol.json @@ -0,0 +1,24 @@ +{ + "variants": { + "snowy=false": [ + { + "model": "minecraft:block/podzol" + }, + { + "model": "minecraft:block/podzol", + "y": 90 + }, + { + "model": "minecraft:block/podzol", + "y": 180 + }, + { + "model": "minecraft:block/podzol", + "y": 270 + } + ], + "snowy=true": { + "model": "minecraft:block/grass_block_snow" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pointed_dripstone.json b/assets/minecraft/blockstates/pointed_dripstone.json new file mode 100644 index 00000000..c6c46aa3 --- /dev/null +++ b/assets/minecraft/blockstates/pointed_dripstone.json @@ -0,0 +1,34 @@ +{ + "variants": { + "thickness=base,vertical_direction=down": { + "model": "minecraft:block/pointed_dripstone_down_base" + }, + "thickness=base,vertical_direction=up": { + "model": "minecraft:block/pointed_dripstone_up_base" + }, + "thickness=frustum,vertical_direction=down": { + "model": "minecraft:block/pointed_dripstone_down_frustum" + }, + "thickness=frustum,vertical_direction=up": { + "model": "minecraft:block/pointed_dripstone_up_frustum" + }, + "thickness=middle,vertical_direction=down": { + "model": "minecraft:block/pointed_dripstone_down_middle" + }, + "thickness=middle,vertical_direction=up": { + "model": "minecraft:block/pointed_dripstone_up_middle" + }, + "thickness=tip,vertical_direction=down": { + "model": "minecraft:block/pointed_dripstone_down_tip" + }, + "thickness=tip,vertical_direction=up": { + "model": "minecraft:block/pointed_dripstone_up_tip" + }, + "thickness=tip_merge,vertical_direction=down": { + "model": "minecraft:block/pointed_dripstone_down_tip_merge" + }, + "thickness=tip_merge,vertical_direction=up": { + "model": "minecraft:block/pointed_dripstone_up_tip_merge" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_andesite.json b/assets/minecraft/blockstates/polished_andesite.json new file mode 100644 index 00000000..5bb5391e --- /dev/null +++ b/assets/minecraft/blockstates/polished_andesite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/polished_andesite" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_andesite_slab.json b/assets/minecraft/blockstates/polished_andesite_slab.json new file mode 100644 index 00000000..e5ce87a7 --- /dev/null +++ b/assets/minecraft/blockstates/polished_andesite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/polished_andesite_slab" + }, + "type=double": { + "model": "minecraft:block/polished_andesite" + }, + "type=top": { + "model": "minecraft:block/polished_andesite_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_andesite_stairs.json b/assets/minecraft/blockstates/polished_andesite_stairs.json new file mode 100644 index 00000000..bd080827 --- /dev/null +++ b/assets/minecraft/blockstates/polished_andesite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/polished_andesite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/polished_andesite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/polished_andesite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_basalt.json b/assets/minecraft/blockstates/polished_basalt.json new file mode 100644 index 00000000..5ee6cefe --- /dev/null +++ b/assets/minecraft/blockstates/polished_basalt.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/polished_basalt", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/polished_basalt" + }, + "axis=z": { + "model": "minecraft:block/polished_basalt", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone.json b/assets/minecraft/blockstates/polished_blackstone.json new file mode 100644 index 00000000..e133b276 --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/polished_blackstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_brick_slab.json b/assets/minecraft/blockstates/polished_blackstone_brick_slab.json new file mode 100644 index 00000000..759b5a73 --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/polished_blackstone_brick_slab" + }, + "type=double": { + "model": "minecraft:block/polished_blackstone_bricks" + }, + "type=top": { + "model": "minecraft:block/polished_blackstone_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_brick_stairs.json b/assets/minecraft/blockstates/polished_blackstone_brick_stairs.json new file mode 100644 index 00000000..54829dab --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_brick_wall.json b/assets/minecraft/blockstates/polished_blackstone_brick_wall.json new file mode 100644 index 00000000..2ec1a253 --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_bricks.json b/assets/minecraft/blockstates/polished_blackstone_bricks.json new file mode 100644 index 00000000..2a1cabca --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/polished_blackstone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_button.json b/assets/minecraft/blockstates/polished_blackstone_button.json new file mode 100644 index 00000000..7d4f337c --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/polished_blackstone_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/polished_blackstone_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/polished_blackstone_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_pressure_plate.json b/assets/minecraft/blockstates/polished_blackstone_pressure_plate.json new file mode 100644 index 00000000..f8f5cb14 --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/polished_blackstone_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/polished_blackstone_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_slab.json b/assets/minecraft/blockstates/polished_blackstone_slab.json new file mode 100644 index 00000000..1cfda0dd --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/polished_blackstone_slab" + }, + "type=double": { + "model": "minecraft:block/polished_blackstone" + }, + "type=top": { + "model": "minecraft:block/polished_blackstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_stairs.json b/assets/minecraft/blockstates/polished_blackstone_stairs.json new file mode 100644 index 00000000..09a9ae37 --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/polished_blackstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/polished_blackstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/polished_blackstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_blackstone_wall.json b/assets/minecraft/blockstates/polished_blackstone_wall.json new file mode 100644 index 00000000..f666cd7d --- /dev/null +++ b/assets/minecraft/blockstates/polished_blackstone_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_blackstone_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_deepslate.json b/assets/minecraft/blockstates/polished_deepslate.json new file mode 100644 index 00000000..5ad40557 --- /dev/null +++ b/assets/minecraft/blockstates/polished_deepslate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/polished_deepslate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_deepslate_slab.json b/assets/minecraft/blockstates/polished_deepslate_slab.json new file mode 100644 index 00000000..5bf01dc3 --- /dev/null +++ b/assets/minecraft/blockstates/polished_deepslate_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/polished_deepslate_slab" + }, + "type=double": { + "model": "minecraft:block/polished_deepslate" + }, + "type=top": { + "model": "minecraft:block/polished_deepslate_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_deepslate_stairs.json b/assets/minecraft/blockstates/polished_deepslate_stairs.json new file mode 100644 index 00000000..1fa36d22 --- /dev/null +++ b/assets/minecraft/blockstates/polished_deepslate_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/polished_deepslate_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/polished_deepslate_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/polished_deepslate_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_deepslate_wall.json b/assets/minecraft/blockstates/polished_deepslate_wall.json new file mode 100644 index 00000000..06afb23a --- /dev/null +++ b/assets/minecraft/blockstates/polished_deepslate_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_deepslate_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_diorite.json b/assets/minecraft/blockstates/polished_diorite.json new file mode 100644 index 00000000..ea96c517 --- /dev/null +++ b/assets/minecraft/blockstates/polished_diorite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/polished_diorite" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_diorite_slab.json b/assets/minecraft/blockstates/polished_diorite_slab.json new file mode 100644 index 00000000..f3542336 --- /dev/null +++ b/assets/minecraft/blockstates/polished_diorite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/polished_diorite_slab" + }, + "type=double": { + "model": "minecraft:block/polished_diorite" + }, + "type=top": { + "model": "minecraft:block/polished_diorite_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_diorite_stairs.json b/assets/minecraft/blockstates/polished_diorite_stairs.json new file mode 100644 index 00000000..cdbc415c --- /dev/null +++ b/assets/minecraft/blockstates/polished_diorite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/polished_diorite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/polished_diorite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/polished_diorite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_granite.json b/assets/minecraft/blockstates/polished_granite.json new file mode 100644 index 00000000..bad818af --- /dev/null +++ b/assets/minecraft/blockstates/polished_granite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/polished_granite" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_granite_slab.json b/assets/minecraft/blockstates/polished_granite_slab.json new file mode 100644 index 00000000..e1ec01cd --- /dev/null +++ b/assets/minecraft/blockstates/polished_granite_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/polished_granite_slab" + }, + "type=double": { + "model": "minecraft:block/polished_granite" + }, + "type=top": { + "model": "minecraft:block/polished_granite_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_granite_stairs.json b/assets/minecraft/blockstates/polished_granite_stairs.json new file mode 100644 index 00000000..f64b99a5 --- /dev/null +++ b/assets/minecraft/blockstates/polished_granite_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/polished_granite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/polished_granite_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/polished_granite_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/polished_granite_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/polished_granite_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/polished_granite_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/polished_granite_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/polished_granite_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/polished_granite_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/polished_granite_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_tuff.json b/assets/minecraft/blockstates/polished_tuff.json new file mode 100644 index 00000000..dbb2b296 --- /dev/null +++ b/assets/minecraft/blockstates/polished_tuff.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/polished_tuff" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_tuff_slab.json b/assets/minecraft/blockstates/polished_tuff_slab.json new file mode 100644 index 00000000..25581fea --- /dev/null +++ b/assets/minecraft/blockstates/polished_tuff_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/polished_tuff_slab" + }, + "type=double": { + "model": "minecraft:block/polished_tuff" + }, + "type=top": { + "model": "minecraft:block/polished_tuff_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_tuff_stairs.json b/assets/minecraft/blockstates/polished_tuff_stairs.json new file mode 100644 index 00000000..ea192890 --- /dev/null +++ b/assets/minecraft/blockstates/polished_tuff_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/polished_tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/polished_tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/polished_tuff_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/polished_tuff_wall.json b/assets/minecraft/blockstates/polished_tuff_wall.json new file mode 100644 index 00000000..44350ac9 --- /dev/null +++ b/assets/minecraft/blockstates/polished_tuff_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/polished_tuff_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/poppy.json b/assets/minecraft/blockstates/poppy.json new file mode 100644 index 00000000..870cb7d2 --- /dev/null +++ b/assets/minecraft/blockstates/poppy.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/poppy" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potatoes.json b/assets/minecraft/blockstates/potatoes.json new file mode 100644 index 00000000..85b439e7 --- /dev/null +++ b/assets/minecraft/blockstates/potatoes.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/potatoes_stage0" + }, + "age=1": { + "model": "minecraft:block/potatoes_stage0" + }, + "age=2": { + "model": "minecraft:block/potatoes_stage1" + }, + "age=3": { + "model": "minecraft:block/potatoes_stage1" + }, + "age=4": { + "model": "minecraft:block/potatoes_stage2" + }, + "age=5": { + "model": "minecraft:block/potatoes_stage2" + }, + "age=6": { + "model": "minecraft:block/potatoes_stage2" + }, + "age=7": { + "model": "minecraft:block/potatoes_stage3" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_acacia_sapling.json b/assets/minecraft/blockstates/potted_acacia_sapling.json new file mode 100644 index 00000000..03a983a4 --- /dev/null +++ b/assets/minecraft/blockstates/potted_acacia_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_acacia_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_allium.json b/assets/minecraft/blockstates/potted_allium.json new file mode 100644 index 00000000..07d8e783 --- /dev/null +++ b/assets/minecraft/blockstates/potted_allium.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_allium" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_azalea_bush.json b/assets/minecraft/blockstates/potted_azalea_bush.json new file mode 100644 index 00000000..73a68cb2 --- /dev/null +++ b/assets/minecraft/blockstates/potted_azalea_bush.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_azalea_bush" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_azure_bluet.json b/assets/minecraft/blockstates/potted_azure_bluet.json new file mode 100644 index 00000000..80c7a52f --- /dev/null +++ b/assets/minecraft/blockstates/potted_azure_bluet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_azure_bluet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_bamboo.json b/assets/minecraft/blockstates/potted_bamboo.json new file mode 100644 index 00000000..7d10ed3e --- /dev/null +++ b/assets/minecraft/blockstates/potted_bamboo.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_bamboo" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_birch_sapling.json b/assets/minecraft/blockstates/potted_birch_sapling.json new file mode 100644 index 00000000..98b48ea5 --- /dev/null +++ b/assets/minecraft/blockstates/potted_birch_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_birch_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_blue_orchid.json b/assets/minecraft/blockstates/potted_blue_orchid.json new file mode 100644 index 00000000..48da368f --- /dev/null +++ b/assets/minecraft/blockstates/potted_blue_orchid.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_blue_orchid" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_brown_mushroom.json b/assets/minecraft/blockstates/potted_brown_mushroom.json new file mode 100644 index 00000000..b1a02473 --- /dev/null +++ b/assets/minecraft/blockstates/potted_brown_mushroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_brown_mushroom" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_cactus.json b/assets/minecraft/blockstates/potted_cactus.json new file mode 100644 index 00000000..04758dae --- /dev/null +++ b/assets/minecraft/blockstates/potted_cactus.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_cactus" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_cherry_sapling.json b/assets/minecraft/blockstates/potted_cherry_sapling.json new file mode 100644 index 00000000..d92678f9 --- /dev/null +++ b/assets/minecraft/blockstates/potted_cherry_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_cherry_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_cornflower.json b/assets/minecraft/blockstates/potted_cornflower.json new file mode 100644 index 00000000..29b26856 --- /dev/null +++ b/assets/minecraft/blockstates/potted_cornflower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_cornflower" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_crimson_fungus.json b/assets/minecraft/blockstates/potted_crimson_fungus.json new file mode 100644 index 00000000..d697c8e1 --- /dev/null +++ b/assets/minecraft/blockstates/potted_crimson_fungus.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_crimson_fungus" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_crimson_roots.json b/assets/minecraft/blockstates/potted_crimson_roots.json new file mode 100644 index 00000000..b2707ca0 --- /dev/null +++ b/assets/minecraft/blockstates/potted_crimson_roots.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_crimson_roots" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_dandelion.json b/assets/minecraft/blockstates/potted_dandelion.json new file mode 100644 index 00000000..36227401 --- /dev/null +++ b/assets/minecraft/blockstates/potted_dandelion.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_dandelion" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_dark_oak_sapling.json b/assets/minecraft/blockstates/potted_dark_oak_sapling.json new file mode 100644 index 00000000..f532b1ec --- /dev/null +++ b/assets/minecraft/blockstates/potted_dark_oak_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_dark_oak_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_dead_bush.json b/assets/minecraft/blockstates/potted_dead_bush.json new file mode 100644 index 00000000..52d9462f --- /dev/null +++ b/assets/minecraft/blockstates/potted_dead_bush.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_dead_bush" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_fern.json b/assets/minecraft/blockstates/potted_fern.json new file mode 100644 index 00000000..ee886f3c --- /dev/null +++ b/assets/minecraft/blockstates/potted_fern.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_fern" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_flowering_azalea_bush.json b/assets/minecraft/blockstates/potted_flowering_azalea_bush.json new file mode 100644 index 00000000..c9216f71 --- /dev/null +++ b/assets/minecraft/blockstates/potted_flowering_azalea_bush.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_flowering_azalea_bush" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_jungle_sapling.json b/assets/minecraft/blockstates/potted_jungle_sapling.json new file mode 100644 index 00000000..928947b3 --- /dev/null +++ b/assets/minecraft/blockstates/potted_jungle_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_jungle_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_lily_of_the_valley.json b/assets/minecraft/blockstates/potted_lily_of_the_valley.json new file mode 100644 index 00000000..14e7942a --- /dev/null +++ b/assets/minecraft/blockstates/potted_lily_of_the_valley.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_lily_of_the_valley" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_mangrove_propagule.json b/assets/minecraft/blockstates/potted_mangrove_propagule.json new file mode 100644 index 00000000..7da19aa1 --- /dev/null +++ b/assets/minecraft/blockstates/potted_mangrove_propagule.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_mangrove_propagule" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_oak_sapling.json b/assets/minecraft/blockstates/potted_oak_sapling.json new file mode 100644 index 00000000..e77b75bf --- /dev/null +++ b/assets/minecraft/blockstates/potted_oak_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_oak_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_orange_tulip.json b/assets/minecraft/blockstates/potted_orange_tulip.json new file mode 100644 index 00000000..978f35d0 --- /dev/null +++ b/assets/minecraft/blockstates/potted_orange_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_orange_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_oxeye_daisy.json b/assets/minecraft/blockstates/potted_oxeye_daisy.json new file mode 100644 index 00000000..7fc330ae --- /dev/null +++ b/assets/minecraft/blockstates/potted_oxeye_daisy.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_oxeye_daisy" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_pink_tulip.json b/assets/minecraft/blockstates/potted_pink_tulip.json new file mode 100644 index 00000000..159cc4b2 --- /dev/null +++ b/assets/minecraft/blockstates/potted_pink_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_pink_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_poppy.json b/assets/minecraft/blockstates/potted_poppy.json new file mode 100644 index 00000000..f16aee08 --- /dev/null +++ b/assets/minecraft/blockstates/potted_poppy.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_poppy" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_red_mushroom.json b/assets/minecraft/blockstates/potted_red_mushroom.json new file mode 100644 index 00000000..451f88db --- /dev/null +++ b/assets/minecraft/blockstates/potted_red_mushroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_red_mushroom" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_red_tulip.json b/assets/minecraft/blockstates/potted_red_tulip.json new file mode 100644 index 00000000..fec6840d --- /dev/null +++ b/assets/minecraft/blockstates/potted_red_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_red_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_spruce_sapling.json b/assets/minecraft/blockstates/potted_spruce_sapling.json new file mode 100644 index 00000000..224d5a9f --- /dev/null +++ b/assets/minecraft/blockstates/potted_spruce_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_spruce_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_torchflower.json b/assets/minecraft/blockstates/potted_torchflower.json new file mode 100644 index 00000000..dd981b97 --- /dev/null +++ b/assets/minecraft/blockstates/potted_torchflower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_torchflower" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_warped_fungus.json b/assets/minecraft/blockstates/potted_warped_fungus.json new file mode 100644 index 00000000..3f127a34 --- /dev/null +++ b/assets/minecraft/blockstates/potted_warped_fungus.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_warped_fungus" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_warped_roots.json b/assets/minecraft/blockstates/potted_warped_roots.json new file mode 100644 index 00000000..f141ee94 --- /dev/null +++ b/assets/minecraft/blockstates/potted_warped_roots.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_warped_roots" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_white_tulip.json b/assets/minecraft/blockstates/potted_white_tulip.json new file mode 100644 index 00000000..823ca947 --- /dev/null +++ b/assets/minecraft/blockstates/potted_white_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_white_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/potted_wither_rose.json b/assets/minecraft/blockstates/potted_wither_rose.json new file mode 100644 index 00000000..d12f6aa1 --- /dev/null +++ b/assets/minecraft/blockstates/potted_wither_rose.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/potted_wither_rose" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/powder_snow.json b/assets/minecraft/blockstates/powder_snow.json new file mode 100644 index 00000000..98be27af --- /dev/null +++ b/assets/minecraft/blockstates/powder_snow.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/powder_snow" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/powder_snow_cauldron.json b/assets/minecraft/blockstates/powder_snow_cauldron.json new file mode 100644 index 00000000..f6e94684 --- /dev/null +++ b/assets/minecraft/blockstates/powder_snow_cauldron.json @@ -0,0 +1,13 @@ +{ + "variants": { + "level=1": { + "model": "minecraft:block/powder_snow_cauldron_level1" + }, + "level=2": { + "model": "minecraft:block/powder_snow_cauldron_level2" + }, + "level=3": { + "model": "minecraft:block/powder_snow_cauldron_full" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/powered_rail.json b/assets/minecraft/blockstates/powered_rail.json new file mode 100644 index 00000000..a20a06fc --- /dev/null +++ b/assets/minecraft/blockstates/powered_rail.json @@ -0,0 +1,46 @@ +{ + "variants": { + "powered=false,shape=ascending_east": { + "model": "minecraft:block/powered_rail_raised_ne", + "y": 90 + }, + "powered=false,shape=ascending_north": { + "model": "minecraft:block/powered_rail_raised_ne" + }, + "powered=false,shape=ascending_south": { + "model": "minecraft:block/powered_rail_raised_sw" + }, + "powered=false,shape=ascending_west": { + "model": "minecraft:block/powered_rail_raised_sw", + "y": 90 + }, + "powered=false,shape=east_west": { + "model": "minecraft:block/powered_rail", + "y": 90 + }, + "powered=false,shape=north_south": { + "model": "minecraft:block/powered_rail" + }, + "powered=true,shape=ascending_east": { + "model": "minecraft:block/powered_rail_on_raised_ne", + "y": 90 + }, + "powered=true,shape=ascending_north": { + "model": "minecraft:block/powered_rail_on_raised_ne" + }, + "powered=true,shape=ascending_south": { + "model": "minecraft:block/powered_rail_on_raised_sw" + }, + "powered=true,shape=ascending_west": { + "model": "minecraft:block/powered_rail_on_raised_sw", + "y": 90 + }, + "powered=true,shape=east_west": { + "model": "minecraft:block/powered_rail_on", + "y": 90 + }, + "powered=true,shape=north_south": { + "model": "minecraft:block/powered_rail_on" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/prismarine.json b/assets/minecraft/blockstates/prismarine.json new file mode 100644 index 00000000..b24d7034 --- /dev/null +++ b/assets/minecraft/blockstates/prismarine.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/prismarine" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/prismarine_brick_slab.json b/assets/minecraft/blockstates/prismarine_brick_slab.json new file mode 100644 index 00000000..3e151d0f --- /dev/null +++ b/assets/minecraft/blockstates/prismarine_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/prismarine_brick_slab" + }, + "type=double": { + "model": "minecraft:block/prismarine_bricks" + }, + "type=top": { + "model": "minecraft:block/prismarine_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/prismarine_brick_stairs.json b/assets/minecraft/blockstates/prismarine_brick_stairs.json new file mode 100644 index 00000000..013765ce --- /dev/null +++ b/assets/minecraft/blockstates/prismarine_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/prismarine_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/prismarine_bricks.json b/assets/minecraft/blockstates/prismarine_bricks.json new file mode 100644 index 00000000..db6a49ca --- /dev/null +++ b/assets/minecraft/blockstates/prismarine_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/prismarine_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/prismarine_slab.json b/assets/minecraft/blockstates/prismarine_slab.json new file mode 100644 index 00000000..3ac55090 --- /dev/null +++ b/assets/minecraft/blockstates/prismarine_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/prismarine_slab" + }, + "type=double": { + "model": "minecraft:block/prismarine" + }, + "type=top": { + "model": "minecraft:block/prismarine_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/prismarine_stairs.json b/assets/minecraft/blockstates/prismarine_stairs.json new file mode 100644 index 00000000..64bfd2a3 --- /dev/null +++ b/assets/minecraft/blockstates/prismarine_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/prismarine_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/prismarine_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/prismarine_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/prismarine_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/prismarine_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/prismarine_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/prismarine_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/prismarine_wall.json b/assets/minecraft/blockstates/prismarine_wall.json new file mode 100644 index 00000000..67f25927 --- /dev/null +++ b/assets/minecraft/blockstates/prismarine_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/prismarine_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/prismarine_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pumpkin.json b/assets/minecraft/blockstates/pumpkin.json new file mode 100644 index 00000000..b64dee3d --- /dev/null +++ b/assets/minecraft/blockstates/pumpkin.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/pumpkin" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/pumpkin_stem.json b/assets/minecraft/blockstates/pumpkin_stem.json new file mode 100644 index 00000000..536ed118 --- /dev/null +++ b/assets/minecraft/blockstates/pumpkin_stem.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/pumpkin_stem_stage0" + }, + "age=1": { + "model": "minecraft:block/pumpkin_stem_stage1" + }, + "age=2": { + "model": "minecraft:block/pumpkin_stem_stage2" + }, + "age=3": { + "model": "minecraft:block/pumpkin_stem_stage3" + }, + "age=4": { + "model": "minecraft:block/pumpkin_stem_stage4" + }, + "age=5": { + "model": "minecraft:block/pumpkin_stem_stage5" + }, + "age=6": { + "model": "minecraft:block/pumpkin_stem_stage6" + }, + "age=7": { + "model": "minecraft:block/pumpkin_stem_stage7" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_banner.json b/assets/minecraft/blockstates/purple_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/purple_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_bed.json b/assets/minecraft/blockstates/purple_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/purple_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_candle.json b/assets/minecraft/blockstates/purple_candle.json new file mode 100644 index 00000000..b6200c02 --- /dev/null +++ b/assets/minecraft/blockstates/purple_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/purple_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/purple_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/purple_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/purple_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/purple_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/purple_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/purple_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/purple_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_candle_cake.json b/assets/minecraft/blockstates/purple_candle_cake.json new file mode 100644 index 00000000..69002bd5 --- /dev/null +++ b/assets/minecraft/blockstates/purple_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/purple_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/purple_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_carpet.json b/assets/minecraft/blockstates/purple_carpet.json new file mode 100644 index 00000000..94bd741a --- /dev/null +++ b/assets/minecraft/blockstates/purple_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/purple_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_concrete.json b/assets/minecraft/blockstates/purple_concrete.json new file mode 100644 index 00000000..06ecc28a --- /dev/null +++ b/assets/minecraft/blockstates/purple_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/purple_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_concrete_powder.json b/assets/minecraft/blockstates/purple_concrete_powder.json new file mode 100644 index 00000000..23291b95 --- /dev/null +++ b/assets/minecraft/blockstates/purple_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/purple_concrete_powder" + }, + { + "model": "minecraft:block/purple_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/purple_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/purple_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_glazed_terracotta.json b/assets/minecraft/blockstates/purple_glazed_terracotta.json new file mode 100644 index 00000000..9f70fd4f --- /dev/null +++ b/assets/minecraft/blockstates/purple_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/purple_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/purple_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/purple_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/purple_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_shulker_box.json b/assets/minecraft/blockstates/purple_shulker_box.json new file mode 100644 index 00000000..880e3163 --- /dev/null +++ b/assets/minecraft/blockstates/purple_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/purple_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_stained_glass.json b/assets/minecraft/blockstates/purple_stained_glass.json new file mode 100644 index 00000000..02662b50 --- /dev/null +++ b/assets/minecraft/blockstates/purple_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/purple_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_stained_glass_pane.json b/assets/minecraft/blockstates/purple_stained_glass_pane.json new file mode 100644 index 00000000..dfec43a5 --- /dev/null +++ b/assets/minecraft/blockstates/purple_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/purple_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_terracotta.json b/assets/minecraft/blockstates/purple_terracotta.json new file mode 100644 index 00000000..b500566d --- /dev/null +++ b/assets/minecraft/blockstates/purple_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/purple_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_wall_banner.json b/assets/minecraft/blockstates/purple_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/purple_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purple_wool.json b/assets/minecraft/blockstates/purple_wool.json new file mode 100644 index 00000000..a14ba55d --- /dev/null +++ b/assets/minecraft/blockstates/purple_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/purple_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purpur_block.json b/assets/minecraft/blockstates/purpur_block.json new file mode 100644 index 00000000..0bd34f34 --- /dev/null +++ b/assets/minecraft/blockstates/purpur_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/purpur_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purpur_pillar.json b/assets/minecraft/blockstates/purpur_pillar.json new file mode 100644 index 00000000..65046d71 --- /dev/null +++ b/assets/minecraft/blockstates/purpur_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/purpur_pillar_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/purpur_pillar" + }, + "axis=z": { + "model": "minecraft:block/purpur_pillar_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purpur_slab.json b/assets/minecraft/blockstates/purpur_slab.json new file mode 100644 index 00000000..b4b9fb43 --- /dev/null +++ b/assets/minecraft/blockstates/purpur_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/purpur_slab" + }, + "type=double": { + "model": "minecraft:block/purpur_block" + }, + "type=top": { + "model": "minecraft:block/purpur_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/purpur_stairs.json b/assets/minecraft/blockstates/purpur_stairs.json new file mode 100644 index 00000000..407a9945 --- /dev/null +++ b/assets/minecraft/blockstates/purpur_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/purpur_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/purpur_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/purpur_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/purpur_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/purpur_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/purpur_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/purpur_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/purpur_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/purpur_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/purpur_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/quartz_block.json b/assets/minecraft/blockstates/quartz_block.json new file mode 100644 index 00000000..6dcfecf9 --- /dev/null +++ b/assets/minecraft/blockstates/quartz_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/quartz_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/quartz_bricks.json b/assets/minecraft/blockstates/quartz_bricks.json new file mode 100644 index 00000000..24827d45 --- /dev/null +++ b/assets/minecraft/blockstates/quartz_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/quartz_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/quartz_pillar.json b/assets/minecraft/blockstates/quartz_pillar.json new file mode 100644 index 00000000..260cca79 --- /dev/null +++ b/assets/minecraft/blockstates/quartz_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/quartz_pillar_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/quartz_pillar" + }, + "axis=z": { + "model": "minecraft:block/quartz_pillar_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/quartz_slab.json b/assets/minecraft/blockstates/quartz_slab.json new file mode 100644 index 00000000..6d2ae81b --- /dev/null +++ b/assets/minecraft/blockstates/quartz_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/quartz_slab" + }, + "type=double": { + "model": "minecraft:block/quartz_block" + }, + "type=top": { + "model": "minecraft:block/quartz_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/quartz_stairs.json b/assets/minecraft/blockstates/quartz_stairs.json new file mode 100644 index 00000000..a024448f --- /dev/null +++ b/assets/minecraft/blockstates/quartz_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/quartz_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/quartz_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/quartz_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/quartz_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/quartz_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/quartz_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/quartz_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/quartz_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/rail.json b/assets/minecraft/blockstates/rail.json new file mode 100644 index 00000000..4b1e4d04 --- /dev/null +++ b/assets/minecraft/blockstates/rail.json @@ -0,0 +1,40 @@ +{ + "variants": { + "shape=ascending_east": { + "model": "minecraft:block/rail_raised_ne", + "y": 90 + }, + "shape=ascending_north": { + "model": "minecraft:block/rail_raised_ne" + }, + "shape=ascending_south": { + "model": "minecraft:block/rail_raised_sw" + }, + "shape=ascending_west": { + "model": "minecraft:block/rail_raised_sw", + "y": 90 + }, + "shape=east_west": { + "model": "minecraft:block/rail", + "y": 90 + }, + "shape=north_east": { + "model": "minecraft:block/rail_corner", + "y": 270 + }, + "shape=north_south": { + "model": "minecraft:block/rail" + }, + "shape=north_west": { + "model": "minecraft:block/rail_corner", + "y": 180 + }, + "shape=south_east": { + "model": "minecraft:block/rail_corner" + }, + "shape=south_west": { + "model": "minecraft:block/rail_corner", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/raw_copper_block.json b/assets/minecraft/blockstates/raw_copper_block.json new file mode 100644 index 00000000..852b4452 --- /dev/null +++ b/assets/minecraft/blockstates/raw_copper_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/raw_copper_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/raw_gold_block.json b/assets/minecraft/blockstates/raw_gold_block.json new file mode 100644 index 00000000..65d04cc2 --- /dev/null +++ b/assets/minecraft/blockstates/raw_gold_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/raw_gold_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/raw_iron_block.json b/assets/minecraft/blockstates/raw_iron_block.json new file mode 100644 index 00000000..91478da2 --- /dev/null +++ b/assets/minecraft/blockstates/raw_iron_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/raw_iron_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_banner.json b/assets/minecraft/blockstates/red_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/red_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_bed.json b/assets/minecraft/blockstates/red_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/red_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_candle.json b/assets/minecraft/blockstates/red_candle.json new file mode 100644 index 00000000..6c8520de --- /dev/null +++ b/assets/minecraft/blockstates/red_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/red_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/red_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/red_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/red_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/red_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/red_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/red_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/red_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_candle_cake.json b/assets/minecraft/blockstates/red_candle_cake.json new file mode 100644 index 00000000..d0ceeefd --- /dev/null +++ b/assets/minecraft/blockstates/red_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/red_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/red_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_carpet.json b/assets/minecraft/blockstates/red_carpet.json new file mode 100644 index 00000000..78866a8d --- /dev/null +++ b/assets/minecraft/blockstates/red_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_concrete.json b/assets/minecraft/blockstates/red_concrete.json new file mode 100644 index 00000000..ef1aedb0 --- /dev/null +++ b/assets/minecraft/blockstates/red_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_concrete_powder.json b/assets/minecraft/blockstates/red_concrete_powder.json new file mode 100644 index 00000000..98e8099c --- /dev/null +++ b/assets/minecraft/blockstates/red_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/red_concrete_powder" + }, + { + "model": "minecraft:block/red_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/red_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/red_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_glazed_terracotta.json b/assets/minecraft/blockstates/red_glazed_terracotta.json new file mode 100644 index 00000000..920d1648 --- /dev/null +++ b/assets/minecraft/blockstates/red_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/red_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/red_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/red_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/red_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_mushroom.json b/assets/minecraft/blockstates/red_mushroom.json new file mode 100644 index 00000000..9bb1dff2 --- /dev/null +++ b/assets/minecraft/blockstates/red_mushroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_mushroom" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_mushroom_block.json b/assets/minecraft/blockstates/red_mushroom_block.json new file mode 100644 index 00000000..6e61afde --- /dev/null +++ b/assets/minecraft/blockstates/red_mushroom_block.json @@ -0,0 +1,120 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/red_mushroom_block" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_mushroom_block", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_mushroom_block", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_mushroom_block", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_mushroom_block", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_mushroom_block", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 90 + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 180 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "y": 270 + }, + "when": { + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "x": 270 + }, + "when": { + "up": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "uvlock": false, + "x": 90 + }, + "when": { + "down": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_nether_brick_slab.json b/assets/minecraft/blockstates/red_nether_brick_slab.json new file mode 100644 index 00000000..492c8f2f --- /dev/null +++ b/assets/minecraft/blockstates/red_nether_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/red_nether_brick_slab" + }, + "type=double": { + "model": "minecraft:block/red_nether_bricks" + }, + "type=top": { + "model": "minecraft:block/red_nether_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_nether_brick_stairs.json b/assets/minecraft/blockstates/red_nether_brick_stairs.json new file mode 100644 index 00000000..f3cec794 --- /dev/null +++ b/assets/minecraft/blockstates/red_nether_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/red_nether_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/red_nether_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/red_nether_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_nether_brick_wall.json b/assets/minecraft/blockstates/red_nether_brick_wall.json new file mode 100644 index 00000000..f2f8a35b --- /dev/null +++ b/assets/minecraft/blockstates/red_nether_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/red_nether_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_nether_bricks.json b/assets/minecraft/blockstates/red_nether_bricks.json new file mode 100644 index 00000000..75d6b4dc --- /dev/null +++ b/assets/minecraft/blockstates/red_nether_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_nether_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_sand.json b/assets/minecraft/blockstates/red_sand.json new file mode 100644 index 00000000..083533ba --- /dev/null +++ b/assets/minecraft/blockstates/red_sand.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/red_sand" + }, + { + "model": "minecraft:block/red_sand", + "y": 90 + }, + { + "model": "minecraft:block/red_sand", + "y": 180 + }, + { + "model": "minecraft:block/red_sand", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_sandstone.json b/assets/minecraft/blockstates/red_sandstone.json new file mode 100644 index 00000000..9f10b960 --- /dev/null +++ b/assets/minecraft/blockstates/red_sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_sandstone_slab.json b/assets/minecraft/blockstates/red_sandstone_slab.json new file mode 100644 index 00000000..e8fcb59d --- /dev/null +++ b/assets/minecraft/blockstates/red_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/red_sandstone_slab" + }, + "type=double": { + "model": "minecraft:block/red_sandstone" + }, + "type=top": { + "model": "minecraft:block/red_sandstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_sandstone_stairs.json b/assets/minecraft/blockstates/red_sandstone_stairs.json new file mode 100644 index 00000000..d457e088 --- /dev/null +++ b/assets/minecraft/blockstates/red_sandstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/red_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_sandstone_wall.json b/assets/minecraft/blockstates/red_sandstone_wall.json new file mode 100644 index 00000000..91a72c89 --- /dev/null +++ b/assets/minecraft/blockstates/red_sandstone_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/red_sandstone_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_shulker_box.json b/assets/minecraft/blockstates/red_shulker_box.json new file mode 100644 index 00000000..ce5bcc98 --- /dev/null +++ b/assets/minecraft/blockstates/red_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_stained_glass.json b/assets/minecraft/blockstates/red_stained_glass.json new file mode 100644 index 00000000..7e6ffba8 --- /dev/null +++ b/assets/minecraft/blockstates/red_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_stained_glass_pane.json b/assets/minecraft/blockstates/red_stained_glass_pane.json new file mode 100644 index 00000000..2bd8883a --- /dev/null +++ b/assets/minecraft/blockstates/red_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/red_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_terracotta.json b/assets/minecraft/blockstates/red_terracotta.json new file mode 100644 index 00000000..78ac3ae6 --- /dev/null +++ b/assets/minecraft/blockstates/red_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_tulip.json b/assets/minecraft/blockstates/red_tulip.json new file mode 100644 index 00000000..a2afbe18 --- /dev/null +++ b/assets/minecraft/blockstates/red_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_wall_banner.json b/assets/minecraft/blockstates/red_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/red_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/red_wool.json b/assets/minecraft/blockstates/red_wool.json new file mode 100644 index 00000000..d756ff39 --- /dev/null +++ b/assets/minecraft/blockstates/red_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/red_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/redstone_block.json b/assets/minecraft/blockstates/redstone_block.json new file mode 100644 index 00000000..b0ff253e --- /dev/null +++ b/assets/minecraft/blockstates/redstone_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/redstone_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/redstone_lamp.json b/assets/minecraft/blockstates/redstone_lamp.json new file mode 100644 index 00000000..bbd9d935 --- /dev/null +++ b/assets/minecraft/blockstates/redstone_lamp.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/redstone_lamp" + }, + "lit=true": { + "model": "minecraft:block/redstone_lamp_on" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/redstone_ore.json b/assets/minecraft/blockstates/redstone_ore.json new file mode 100644 index 00000000..cc4e3fa0 --- /dev/null +++ b/assets/minecraft/blockstates/redstone_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/redstone_ore" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/redstone_torch.json b/assets/minecraft/blockstates/redstone_torch.json new file mode 100644 index 00000000..6c765135 --- /dev/null +++ b/assets/minecraft/blockstates/redstone_torch.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/redstone_torch_off" + }, + "lit=true": { + "model": "minecraft:block/redstone_torch" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/redstone_wall_torch.json b/assets/minecraft/blockstates/redstone_wall_torch.json new file mode 100644 index 00000000..de19925c --- /dev/null +++ b/assets/minecraft/blockstates/redstone_wall_torch.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,lit=false": { + "model": "minecraft:block/redstone_wall_torch_off" + }, + "facing=east,lit=true": { + "model": "minecraft:block/redstone_wall_torch" + }, + "facing=north,lit=false": { + "model": "minecraft:block/redstone_wall_torch_off", + "y": 270 + }, + "facing=north,lit=true": { + "model": "minecraft:block/redstone_wall_torch", + "y": 270 + }, + "facing=south,lit=false": { + "model": "minecraft:block/redstone_wall_torch_off", + "y": 90 + }, + "facing=south,lit=true": { + "model": "minecraft:block/redstone_wall_torch", + "y": 90 + }, + "facing=west,lit=false": { + "model": "minecraft:block/redstone_wall_torch_off", + "y": 180 + }, + "facing=west,lit=true": { + "model": "minecraft:block/redstone_wall_torch", + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/redstone_wire.json b/assets/minecraft/blockstates/redstone_wire.json new file mode 100644 index 00000000..2617c53a --- /dev/null +++ b/assets/minecraft/blockstates/redstone_wire.json @@ -0,0 +1,104 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/redstone_dust_dot" + }, + "when": { + "OR": [ + { + "east": "none", + "north": "none", + "south": "none", + "west": "none" + }, + { + "east": "side|up", + "north": "side|up" + }, + { + "east": "side|up", + "south": "side|up" + }, + { + "south": "side|up", + "west": "side|up" + }, + { + "north": "side|up", + "west": "side|up" + } + ] + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_side0" + }, + "when": { + "north": "side|up" + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_side_alt0" + }, + "when": { + "south": "side|up" + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_side_alt1", + "y": 270 + }, + "when": { + "east": "side|up" + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_side1", + "y": 270 + }, + "when": { + "west": "side|up" + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_up" + }, + "when": { + "north": "up" + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_up", + "y": 90 + }, + "when": { + "east": "up" + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_up", + "y": 180 + }, + "when": { + "south": "up" + } + }, + { + "apply": { + "model": "minecraft:block/redstone_dust_up", + "y": 270 + }, + "when": { + "west": "up" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/reinforced_deepslate.json b/assets/minecraft/blockstates/reinforced_deepslate.json new file mode 100644 index 00000000..6c196af1 --- /dev/null +++ b/assets/minecraft/blockstates/reinforced_deepslate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/reinforced_deepslate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/repeater.json b/assets/minecraft/blockstates/repeater.json new file mode 100644 index 00000000..4e0ab9ce --- /dev/null +++ b/assets/minecraft/blockstates/repeater.json @@ -0,0 +1,244 @@ +{ + "variants": { + "delay=1,facing=east,locked=false,powered=false": { + "model": "minecraft:block/repeater_1tick", + "y": 270 + }, + "delay=1,facing=east,locked=false,powered=true": { + "model": "minecraft:block/repeater_1tick_on", + "y": 270 + }, + "delay=1,facing=east,locked=true,powered=false": { + "model": "minecraft:block/repeater_1tick_locked", + "y": 270 + }, + "delay=1,facing=east,locked=true,powered=true": { + "model": "minecraft:block/repeater_1tick_on_locked", + "y": 270 + }, + "delay=1,facing=north,locked=false,powered=false": { + "model": "minecraft:block/repeater_1tick", + "y": 180 + }, + "delay=1,facing=north,locked=false,powered=true": { + "model": "minecraft:block/repeater_1tick_on", + "y": 180 + }, + "delay=1,facing=north,locked=true,powered=false": { + "model": "minecraft:block/repeater_1tick_locked", + "y": 180 + }, + "delay=1,facing=north,locked=true,powered=true": { + "model": "minecraft:block/repeater_1tick_on_locked", + "y": 180 + }, + "delay=1,facing=south,locked=false,powered=false": { + "model": "minecraft:block/repeater_1tick" + }, + "delay=1,facing=south,locked=false,powered=true": { + "model": "minecraft:block/repeater_1tick_on" + }, + "delay=1,facing=south,locked=true,powered=false": { + "model": "minecraft:block/repeater_1tick_locked" + }, + "delay=1,facing=south,locked=true,powered=true": { + "model": "minecraft:block/repeater_1tick_on_locked" + }, + "delay=1,facing=west,locked=false,powered=false": { + "model": "minecraft:block/repeater_1tick", + "y": 90 + }, + "delay=1,facing=west,locked=false,powered=true": { + "model": "minecraft:block/repeater_1tick_on", + "y": 90 + }, + "delay=1,facing=west,locked=true,powered=false": { + "model": "minecraft:block/repeater_1tick_locked", + "y": 90 + }, + "delay=1,facing=west,locked=true,powered=true": { + "model": "minecraft:block/repeater_1tick_on_locked", + "y": 90 + }, + "delay=2,facing=east,locked=false,powered=false": { + "model": "minecraft:block/repeater_2tick", + "y": 270 + }, + "delay=2,facing=east,locked=false,powered=true": { + "model": "minecraft:block/repeater_2tick_on", + "y": 270 + }, + "delay=2,facing=east,locked=true,powered=false": { + "model": "minecraft:block/repeater_2tick_locked", + "y": 270 + }, + "delay=2,facing=east,locked=true,powered=true": { + "model": "minecraft:block/repeater_2tick_on_locked", + "y": 270 + }, + "delay=2,facing=north,locked=false,powered=false": { + "model": "minecraft:block/repeater_2tick", + "y": 180 + }, + "delay=2,facing=north,locked=false,powered=true": { + "model": "minecraft:block/repeater_2tick_on", + "y": 180 + }, + "delay=2,facing=north,locked=true,powered=false": { + "model": "minecraft:block/repeater_2tick_locked", + "y": 180 + }, + "delay=2,facing=north,locked=true,powered=true": { + "model": "minecraft:block/repeater_2tick_on_locked", + "y": 180 + }, + "delay=2,facing=south,locked=false,powered=false": { + "model": "minecraft:block/repeater_2tick" + }, + "delay=2,facing=south,locked=false,powered=true": { + "model": "minecraft:block/repeater_2tick_on" + }, + "delay=2,facing=south,locked=true,powered=false": { + "model": "minecraft:block/repeater_2tick_locked" + }, + "delay=2,facing=south,locked=true,powered=true": { + "model": "minecraft:block/repeater_2tick_on_locked" + }, + "delay=2,facing=west,locked=false,powered=false": { + "model": "minecraft:block/repeater_2tick", + "y": 90 + }, + "delay=2,facing=west,locked=false,powered=true": { + "model": "minecraft:block/repeater_2tick_on", + "y": 90 + }, + "delay=2,facing=west,locked=true,powered=false": { + "model": "minecraft:block/repeater_2tick_locked", + "y": 90 + }, + "delay=2,facing=west,locked=true,powered=true": { + "model": "minecraft:block/repeater_2tick_on_locked", + "y": 90 + }, + "delay=3,facing=east,locked=false,powered=false": { + "model": "minecraft:block/repeater_3tick", + "y": 270 + }, + "delay=3,facing=east,locked=false,powered=true": { + "model": "minecraft:block/repeater_3tick_on", + "y": 270 + }, + "delay=3,facing=east,locked=true,powered=false": { + "model": "minecraft:block/repeater_3tick_locked", + "y": 270 + }, + "delay=3,facing=east,locked=true,powered=true": { + "model": "minecraft:block/repeater_3tick_on_locked", + "y": 270 + }, + "delay=3,facing=north,locked=false,powered=false": { + "model": "minecraft:block/repeater_3tick", + "y": 180 + }, + "delay=3,facing=north,locked=false,powered=true": { + "model": "minecraft:block/repeater_3tick_on", + "y": 180 + }, + "delay=3,facing=north,locked=true,powered=false": { + "model": "minecraft:block/repeater_3tick_locked", + "y": 180 + }, + "delay=3,facing=north,locked=true,powered=true": { + "model": "minecraft:block/repeater_3tick_on_locked", + "y": 180 + }, + "delay=3,facing=south,locked=false,powered=false": { + "model": "minecraft:block/repeater_3tick" + }, + "delay=3,facing=south,locked=false,powered=true": { + "model": "minecraft:block/repeater_3tick_on" + }, + "delay=3,facing=south,locked=true,powered=false": { + "model": "minecraft:block/repeater_3tick_locked" + }, + "delay=3,facing=south,locked=true,powered=true": { + "model": "minecraft:block/repeater_3tick_on_locked" + }, + "delay=3,facing=west,locked=false,powered=false": { + "model": "minecraft:block/repeater_3tick", + "y": 90 + }, + "delay=3,facing=west,locked=false,powered=true": { + "model": "minecraft:block/repeater_3tick_on", + "y": 90 + }, + "delay=3,facing=west,locked=true,powered=false": { + "model": "minecraft:block/repeater_3tick_locked", + "y": 90 + }, + "delay=3,facing=west,locked=true,powered=true": { + "model": "minecraft:block/repeater_3tick_on_locked", + "y": 90 + }, + "delay=4,facing=east,locked=false,powered=false": { + "model": "minecraft:block/repeater_4tick", + "y": 270 + }, + "delay=4,facing=east,locked=false,powered=true": { + "model": "minecraft:block/repeater_4tick_on", + "y": 270 + }, + "delay=4,facing=east,locked=true,powered=false": { + "model": "minecraft:block/repeater_4tick_locked", + "y": 270 + }, + "delay=4,facing=east,locked=true,powered=true": { + "model": "minecraft:block/repeater_4tick_on_locked", + "y": 270 + }, + "delay=4,facing=north,locked=false,powered=false": { + "model": "minecraft:block/repeater_4tick", + "y": 180 + }, + "delay=4,facing=north,locked=false,powered=true": { + "model": "minecraft:block/repeater_4tick_on", + "y": 180 + }, + "delay=4,facing=north,locked=true,powered=false": { + "model": "minecraft:block/repeater_4tick_locked", + "y": 180 + }, + "delay=4,facing=north,locked=true,powered=true": { + "model": "minecraft:block/repeater_4tick_on_locked", + "y": 180 + }, + "delay=4,facing=south,locked=false,powered=false": { + "model": "minecraft:block/repeater_4tick" + }, + "delay=4,facing=south,locked=false,powered=true": { + "model": "minecraft:block/repeater_4tick_on" + }, + "delay=4,facing=south,locked=true,powered=false": { + "model": "minecraft:block/repeater_4tick_locked" + }, + "delay=4,facing=south,locked=true,powered=true": { + "model": "minecraft:block/repeater_4tick_on_locked" + }, + "delay=4,facing=west,locked=false,powered=false": { + "model": "minecraft:block/repeater_4tick", + "y": 90 + }, + "delay=4,facing=west,locked=false,powered=true": { + "model": "minecraft:block/repeater_4tick_on", + "y": 90 + }, + "delay=4,facing=west,locked=true,powered=false": { + "model": "minecraft:block/repeater_4tick_locked", + "y": 90 + }, + "delay=4,facing=west,locked=true,powered=true": { + "model": "minecraft:block/repeater_4tick_on_locked", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/repeating_command_block.json b/assets/minecraft/blockstates/repeating_command_block.json new file mode 100644 index 00000000..2e6ccead --- /dev/null +++ b/assets/minecraft/blockstates/repeating_command_block.json @@ -0,0 +1,50 @@ +{ + "variants": { + "conditional=false,facing=down": { + "model": "minecraft:block/repeating_command_block", + "x": 90 + }, + "conditional=false,facing=east": { + "model": "minecraft:block/repeating_command_block", + "y": 90 + }, + "conditional=false,facing=north": { + "model": "minecraft:block/repeating_command_block" + }, + "conditional=false,facing=south": { + "model": "minecraft:block/repeating_command_block", + "y": 180 + }, + "conditional=false,facing=up": { + "model": "minecraft:block/repeating_command_block", + "x": 270 + }, + "conditional=false,facing=west": { + "model": "minecraft:block/repeating_command_block", + "y": 270 + }, + "conditional=true,facing=down": { + "model": "minecraft:block/repeating_command_block_conditional", + "x": 90 + }, + "conditional=true,facing=east": { + "model": "minecraft:block/repeating_command_block_conditional", + "y": 90 + }, + "conditional=true,facing=north": { + "model": "minecraft:block/repeating_command_block_conditional" + }, + "conditional=true,facing=south": { + "model": "minecraft:block/repeating_command_block_conditional", + "y": 180 + }, + "conditional=true,facing=up": { + "model": "minecraft:block/repeating_command_block_conditional", + "x": 270 + }, + "conditional=true,facing=west": { + "model": "minecraft:block/repeating_command_block_conditional", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/respawn_anchor.json b/assets/minecraft/blockstates/respawn_anchor.json new file mode 100644 index 00000000..fdf950ad --- /dev/null +++ b/assets/minecraft/blockstates/respawn_anchor.json @@ -0,0 +1,19 @@ +{ + "variants": { + "charges=0": { + "model": "minecraft:block/respawn_anchor_0" + }, + "charges=1": { + "model": "minecraft:block/respawn_anchor_1" + }, + "charges=2": { + "model": "minecraft:block/respawn_anchor_2" + }, + "charges=3": { + "model": "minecraft:block/respawn_anchor_3" + }, + "charges=4": { + "model": "minecraft:block/respawn_anchor_4" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/rooted_dirt.json b/assets/minecraft/blockstates/rooted_dirt.json new file mode 100644 index 00000000..9361904f --- /dev/null +++ b/assets/minecraft/blockstates/rooted_dirt.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/rooted_dirt" + }, + { + "model": "minecraft:block/rooted_dirt", + "y": 90 + }, + { + "model": "minecraft:block/rooted_dirt", + "y": 180 + }, + { + "model": "minecraft:block/rooted_dirt", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/rose_bush.json b/assets/minecraft/blockstates/rose_bush.json new file mode 100644 index 00000000..5eaa364c --- /dev/null +++ b/assets/minecraft/blockstates/rose_bush.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/rose_bush_bottom" + }, + "half=upper": { + "model": "minecraft:block/rose_bush_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sand.json b/assets/minecraft/blockstates/sand.json new file mode 100644 index 00000000..3341c41d --- /dev/null +++ b/assets/minecraft/blockstates/sand.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/sand" + }, + { + "model": "minecraft:block/sand", + "y": 90 + }, + { + "model": "minecraft:block/sand", + "y": 180 + }, + { + "model": "minecraft:block/sand", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sandstone.json b/assets/minecraft/blockstates/sandstone.json new file mode 100644 index 00000000..a3c0d709 --- /dev/null +++ b/assets/minecraft/blockstates/sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sandstone_slab.json b/assets/minecraft/blockstates/sandstone_slab.json new file mode 100644 index 00000000..0fabec37 --- /dev/null +++ b/assets/minecraft/blockstates/sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/sandstone_slab" + }, + "type=double": { + "model": "minecraft:block/sandstone" + }, + "type=top": { + "model": "minecraft:block/sandstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sandstone_stairs.json b/assets/minecraft/blockstates/sandstone_stairs.json new file mode 100644 index 00000000..e69e48fd --- /dev/null +++ b/assets/minecraft/blockstates/sandstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/sandstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/sandstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/sandstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/sandstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/sandstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sandstone_wall.json b/assets/minecraft/blockstates/sandstone_wall.json new file mode 100644 index 00000000..a5e1ed39 --- /dev/null +++ b/assets/minecraft/blockstates/sandstone_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/sandstone_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/sandstone_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/scaffolding.json b/assets/minecraft/blockstates/scaffolding.json new file mode 100644 index 00000000..aca5b491 --- /dev/null +++ b/assets/minecraft/blockstates/scaffolding.json @@ -0,0 +1,10 @@ +{ + "variants": { + "bottom=false": { + "model": "minecraft:block/scaffolding_stable" + }, + "bottom=true": { + "model": "minecraft:block/scaffolding_unstable" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sculk.json b/assets/minecraft/blockstates/sculk.json new file mode 100644 index 00000000..ba3d6643 --- /dev/null +++ b/assets/minecraft/blockstates/sculk.json @@ -0,0 +1,20 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/sculk" + }, + { + "model": "minecraft:block/sculk_mirrored" + }, + { + "model": "minecraft:block/sculk", + "y": 180 + }, + { + "model": "minecraft:block/sculk_mirrored", + "y": 180 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sculk_catalyst.json b/assets/minecraft/blockstates/sculk_catalyst.json new file mode 100644 index 00000000..589af990 --- /dev/null +++ b/assets/minecraft/blockstates/sculk_catalyst.json @@ -0,0 +1,10 @@ +{ + "variants": { + "bloom=false": { + "model": "minecraft:block/sculk_catalyst" + }, + "bloom=true": { + "model": "minecraft:block/sculk_catalyst_bloom" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sculk_sensor.json b/assets/minecraft/blockstates/sculk_sensor.json new file mode 100644 index 00000000..690cb8fb --- /dev/null +++ b/assets/minecraft/blockstates/sculk_sensor.json @@ -0,0 +1,13 @@ +{ + "variants": { + "sculk_sensor_phase=active": { + "model": "minecraft:block/sculk_sensor_active" + }, + "sculk_sensor_phase=cooldown": { + "model": "minecraft:block/sculk_sensor_active" + }, + "sculk_sensor_phase=inactive": { + "model": "minecraft:block/sculk_sensor_inactive" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sculk_shrieker.json b/assets/minecraft/blockstates/sculk_shrieker.json new file mode 100644 index 00000000..f445bc8f --- /dev/null +++ b/assets/minecraft/blockstates/sculk_shrieker.json @@ -0,0 +1,10 @@ +{ + "variants": { + "can_summon=false": { + "model": "minecraft:block/sculk_shrieker" + }, + "can_summon=true": { + "model": "minecraft:block/sculk_shrieker_can_summon" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sculk_vein.json b/assets/minecraft/blockstates/sculk_vein.json new file mode 100644 index 00000000..557643db --- /dev/null +++ b/assets/minecraft/blockstates/sculk_vein.json @@ -0,0 +1,150 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/sculk_vein" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein" + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "y": 90 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "y": 180 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "y": 270 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "x": 270 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "minecraft:block/sculk_vein", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sea_lantern.json b/assets/minecraft/blockstates/sea_lantern.json new file mode 100644 index 00000000..d1231f28 --- /dev/null +++ b/assets/minecraft/blockstates/sea_lantern.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/sea_lantern" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sea_pickle.json b/assets/minecraft/blockstates/sea_pickle.json new file mode 100644 index 00000000..89861754 --- /dev/null +++ b/assets/minecraft/blockstates/sea_pickle.json @@ -0,0 +1,140 @@ +{ + "variants": { + "pickles=1,waterlogged=false": [ + { + "model": "minecraft:block/dead_sea_pickle" + }, + { + "model": "minecraft:block/dead_sea_pickle", + "y": 90 + }, + { + "model": "minecraft:block/dead_sea_pickle", + "y": 180 + }, + { + "model": "minecraft:block/dead_sea_pickle", + "y": 270 + } + ], + "pickles=1,waterlogged=true": [ + { + "model": "minecraft:block/sea_pickle" + }, + { + "model": "minecraft:block/sea_pickle", + "y": 90 + }, + { + "model": "minecraft:block/sea_pickle", + "y": 180 + }, + { + "model": "minecraft:block/sea_pickle", + "y": 270 + } + ], + "pickles=2,waterlogged=false": [ + { + "model": "minecraft:block/two_dead_sea_pickles" + }, + { + "model": "minecraft:block/two_dead_sea_pickles", + "y": 90 + }, + { + "model": "minecraft:block/two_dead_sea_pickles", + "y": 180 + }, + { + "model": "minecraft:block/two_dead_sea_pickles", + "y": 270 + } + ], + "pickles=2,waterlogged=true": [ + { + "model": "minecraft:block/two_sea_pickles" + }, + { + "model": "minecraft:block/two_sea_pickles", + "y": 90 + }, + { + "model": "minecraft:block/two_sea_pickles", + "y": 180 + }, + { + "model": "minecraft:block/two_sea_pickles", + "y": 270 + } + ], + "pickles=3,waterlogged=false": [ + { + "model": "minecraft:block/three_dead_sea_pickles" + }, + { + "model": "minecraft:block/three_dead_sea_pickles", + "y": 90 + }, + { + "model": "minecraft:block/three_dead_sea_pickles", + "y": 180 + }, + { + "model": "minecraft:block/three_dead_sea_pickles", + "y": 270 + } + ], + "pickles=3,waterlogged=true": [ + { + "model": "minecraft:block/three_sea_pickles" + }, + { + "model": "minecraft:block/three_sea_pickles", + "y": 90 + }, + { + "model": "minecraft:block/three_sea_pickles", + "y": 180 + }, + { + "model": "minecraft:block/three_sea_pickles", + "y": 270 + } + ], + "pickles=4,waterlogged=false": [ + { + "model": "minecraft:block/four_dead_sea_pickles" + }, + { + "model": "minecraft:block/four_dead_sea_pickles", + "y": 90 + }, + { + "model": "minecraft:block/four_dead_sea_pickles", + "y": 180 + }, + { + "model": "minecraft:block/four_dead_sea_pickles", + "y": 270 + } + ], + "pickles=4,waterlogged=true": [ + { + "model": "minecraft:block/four_sea_pickles" + }, + { + "model": "minecraft:block/four_sea_pickles", + "y": 90 + }, + { + "model": "minecraft:block/four_sea_pickles", + "y": 180 + }, + { + "model": "minecraft:block/four_sea_pickles", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/seagrass.json b/assets/minecraft/blockstates/seagrass.json new file mode 100644 index 00000000..045c721e --- /dev/null +++ b/assets/minecraft/blockstates/seagrass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/seagrass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/short_grass.json b/assets/minecraft/blockstates/short_grass.json new file mode 100644 index 00000000..d065ca08 --- /dev/null +++ b/assets/minecraft/blockstates/short_grass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/short_grass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/shroomlight.json b/assets/minecraft/blockstates/shroomlight.json new file mode 100644 index 00000000..300f41e8 --- /dev/null +++ b/assets/minecraft/blockstates/shroomlight.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/shroomlight" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/shulker_box.json b/assets/minecraft/blockstates/shulker_box.json new file mode 100644 index 00000000..7248d53e --- /dev/null +++ b/assets/minecraft/blockstates/shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/skeleton_skull.json b/assets/minecraft/blockstates/skeleton_skull.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/skeleton_skull.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/skeleton_wall_skull.json b/assets/minecraft/blockstates/skeleton_wall_skull.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/skeleton_wall_skull.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/slime_block.json b/assets/minecraft/blockstates/slime_block.json new file mode 100644 index 00000000..b7f071be --- /dev/null +++ b/assets/minecraft/blockstates/slime_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/slime_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/small_amethyst_bud.json b/assets/minecraft/blockstates/small_amethyst_bud.json new file mode 100644 index 00000000..aac83ed3 --- /dev/null +++ b/assets/minecraft/blockstates/small_amethyst_bud.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "minecraft:block/small_amethyst_bud", + "x": 180 + }, + "facing=east": { + "model": "minecraft:block/small_amethyst_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/small_amethyst_bud", + "x": 90 + }, + "facing=south": { + "model": "minecraft:block/small_amethyst_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "minecraft:block/small_amethyst_bud" + }, + "facing=west": { + "model": "minecraft:block/small_amethyst_bud", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/small_dripleaf.json b/assets/minecraft/blockstates/small_dripleaf.json new file mode 100644 index 00000000..aa5410e2 --- /dev/null +++ b/assets/minecraft/blockstates/small_dripleaf.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,half=lower": { + "model": "minecraft:block/small_dripleaf_bottom", + "y": 90 + }, + "facing=east,half=upper": { + "model": "minecraft:block/small_dripleaf_top", + "y": 90 + }, + "facing=north,half=lower": { + "model": "minecraft:block/small_dripleaf_bottom" + }, + "facing=north,half=upper": { + "model": "minecraft:block/small_dripleaf_top" + }, + "facing=south,half=lower": { + "model": "minecraft:block/small_dripleaf_bottom", + "y": 180 + }, + "facing=south,half=upper": { + "model": "minecraft:block/small_dripleaf_top", + "y": 180 + }, + "facing=west,half=lower": { + "model": "minecraft:block/small_dripleaf_bottom", + "y": 270 + }, + "facing=west,half=upper": { + "model": "minecraft:block/small_dripleaf_top", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smithing_table.json b/assets/minecraft/blockstates/smithing_table.json new file mode 100644 index 00000000..627ae908 --- /dev/null +++ b/assets/minecraft/blockstates/smithing_table.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/smithing_table" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smoker.json b/assets/minecraft/blockstates/smoker.json new file mode 100644 index 00000000..f0a0fc9e --- /dev/null +++ b/assets/minecraft/blockstates/smoker.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,lit=false": { + "model": "minecraft:block/smoker", + "y": 90 + }, + "facing=east,lit=true": { + "model": "minecraft:block/smoker_on", + "y": 90 + }, + "facing=north,lit=false": { + "model": "minecraft:block/smoker" + }, + "facing=north,lit=true": { + "model": "minecraft:block/smoker_on" + }, + "facing=south,lit=false": { + "model": "minecraft:block/smoker", + "y": 180 + }, + "facing=south,lit=true": { + "model": "minecraft:block/smoker_on", + "y": 180 + }, + "facing=west,lit=false": { + "model": "minecraft:block/smoker", + "y": 270 + }, + "facing=west,lit=true": { + "model": "minecraft:block/smoker_on", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_basalt.json b/assets/minecraft/blockstates/smooth_basalt.json new file mode 100644 index 00000000..6145eb01 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_basalt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/smooth_basalt" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_quartz.json b/assets/minecraft/blockstates/smooth_quartz.json new file mode 100644 index 00000000..790912d3 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_quartz.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/smooth_quartz" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_quartz_slab.json b/assets/minecraft/blockstates/smooth_quartz_slab.json new file mode 100644 index 00000000..7741145d --- /dev/null +++ b/assets/minecraft/blockstates/smooth_quartz_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/smooth_quartz_slab" + }, + "type=double": { + "model": "minecraft:block/smooth_quartz" + }, + "type=top": { + "model": "minecraft:block/smooth_quartz_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_quartz_stairs.json b/assets/minecraft/blockstates/smooth_quartz_stairs.json new file mode 100644 index 00000000..fb53ef18 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_quartz_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_quartz_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_quartz_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/smooth_quartz_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_red_sandstone.json b/assets/minecraft/blockstates/smooth_red_sandstone.json new file mode 100644 index 00000000..5f441b0f --- /dev/null +++ b/assets/minecraft/blockstates/smooth_red_sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/smooth_red_sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_red_sandstone_slab.json b/assets/minecraft/blockstates/smooth_red_sandstone_slab.json new file mode 100644 index 00000000..49aa61b0 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_red_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/smooth_red_sandstone_slab" + }, + "type=double": { + "model": "minecraft:block/smooth_red_sandstone" + }, + "type=top": { + "model": "minecraft:block/smooth_red_sandstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_red_sandstone_stairs.json b/assets/minecraft/blockstates/smooth_red_sandstone_stairs.json new file mode 100644 index 00000000..82697942 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_red_sandstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_red_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/smooth_red_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_sandstone.json b/assets/minecraft/blockstates/smooth_sandstone.json new file mode 100644 index 00000000..fdc28aa9 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_sandstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/smooth_sandstone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_sandstone_slab.json b/assets/minecraft/blockstates/smooth_sandstone_slab.json new file mode 100644 index 00000000..988733be --- /dev/null +++ b/assets/minecraft/blockstates/smooth_sandstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/smooth_sandstone_slab" + }, + "type=double": { + "model": "minecraft:block/smooth_sandstone" + }, + "type=top": { + "model": "minecraft:block/smooth_sandstone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_sandstone_stairs.json b/assets/minecraft/blockstates/smooth_sandstone_stairs.json new file mode 100644 index 00000000..79be22a3 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_sandstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/smooth_sandstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/smooth_sandstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/smooth_sandstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_stone.json b/assets/minecraft/blockstates/smooth_stone.json new file mode 100644 index 00000000..a2fb9bfe --- /dev/null +++ b/assets/minecraft/blockstates/smooth_stone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/smooth_stone" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/smooth_stone_slab.json b/assets/minecraft/blockstates/smooth_stone_slab.json new file mode 100644 index 00000000..9150d679 --- /dev/null +++ b/assets/minecraft/blockstates/smooth_stone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/smooth_stone_slab" + }, + "type=double": { + "model": "minecraft:block/smooth_stone_slab_double" + }, + "type=top": { + "model": "minecraft:block/smooth_stone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sniffer_egg.json b/assets/minecraft/blockstates/sniffer_egg.json new file mode 100644 index 00000000..733fd44e --- /dev/null +++ b/assets/minecraft/blockstates/sniffer_egg.json @@ -0,0 +1,13 @@ +{ + "variants": { + "hatch=0": { + "model": "minecraft:block/sniffer_egg_not_cracked" + }, + "hatch=1": { + "model": "minecraft:block/sniffer_egg_slightly_cracked" + }, + "hatch=2": { + "model": "minecraft:block/sniffer_egg_very_cracked" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/snow.json b/assets/minecraft/blockstates/snow.json new file mode 100644 index 00000000..a82cad93 --- /dev/null +++ b/assets/minecraft/blockstates/snow.json @@ -0,0 +1,28 @@ +{ + "variants": { + "layers=1": { + "model": "minecraft:block/snow_height2" + }, + "layers=2": { + "model": "minecraft:block/snow_height4" + }, + "layers=3": { + "model": "minecraft:block/snow_height6" + }, + "layers=4": { + "model": "minecraft:block/snow_height8" + }, + "layers=5": { + "model": "minecraft:block/snow_height10" + }, + "layers=6": { + "model": "minecraft:block/snow_height12" + }, + "layers=7": { + "model": "minecraft:block/snow_height14" + }, + "layers=8": { + "model": "minecraft:block/snow_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/snow_block.json b/assets/minecraft/blockstates/snow_block.json new file mode 100644 index 00000000..eac19731 --- /dev/null +++ b/assets/minecraft/blockstates/snow_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/snow_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/soul_campfire.json b/assets/minecraft/blockstates/soul_campfire.json new file mode 100644 index 00000000..9052d211 --- /dev/null +++ b/assets/minecraft/blockstates/soul_campfire.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,lit=false": { + "model": "minecraft:block/campfire_off", + "y": 270 + }, + "facing=east,lit=true": { + "model": "minecraft:block/soul_campfire", + "y": 270 + }, + "facing=north,lit=false": { + "model": "minecraft:block/campfire_off", + "y": 180 + }, + "facing=north,lit=true": { + "model": "minecraft:block/soul_campfire", + "y": 180 + }, + "facing=south,lit=false": { + "model": "minecraft:block/campfire_off" + }, + "facing=south,lit=true": { + "model": "minecraft:block/soul_campfire" + }, + "facing=west,lit=false": { + "model": "minecraft:block/campfire_off", + "y": 90 + }, + "facing=west,lit=true": { + "model": "minecraft:block/soul_campfire", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/soul_fire.json b/assets/minecraft/blockstates/soul_fire.json new file mode 100644 index 00000000..bd637a77 --- /dev/null +++ b/assets/minecraft/blockstates/soul_fire.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": [ + { + "model": "minecraft:block/soul_fire_floor0" + }, + { + "model": "minecraft:block/soul_fire_floor1" + } + ] + }, + { + "apply": [ + { + "model": "minecraft:block/soul_fire_side0" + }, + { + "model": "minecraft:block/soul_fire_side1" + }, + { + "model": "minecraft:block/soul_fire_side_alt0" + }, + { + "model": "minecraft:block/soul_fire_side_alt1" + } + ] + }, + { + "apply": [ + { + "model": "minecraft:block/soul_fire_side0", + "y": 90 + }, + { + "model": "minecraft:block/soul_fire_side1", + "y": 90 + }, + { + "model": "minecraft:block/soul_fire_side_alt0", + "y": 90 + }, + { + "model": "minecraft:block/soul_fire_side_alt1", + "y": 90 + } + ] + }, + { + "apply": [ + { + "model": "minecraft:block/soul_fire_side0", + "y": 180 + }, + { + "model": "minecraft:block/soul_fire_side1", + "y": 180 + }, + { + "model": "minecraft:block/soul_fire_side_alt0", + "y": 180 + }, + { + "model": "minecraft:block/soul_fire_side_alt1", + "y": 180 + } + ] + }, + { + "apply": [ + { + "model": "minecraft:block/soul_fire_side0", + "y": 270 + }, + { + "model": "minecraft:block/soul_fire_side1", + "y": 270 + }, + { + "model": "minecraft:block/soul_fire_side_alt0", + "y": 270 + }, + { + "model": "minecraft:block/soul_fire_side_alt1", + "y": 270 + } + ] + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/soul_lantern.json b/assets/minecraft/blockstates/soul_lantern.json new file mode 100644 index 00000000..295698d6 --- /dev/null +++ b/assets/minecraft/blockstates/soul_lantern.json @@ -0,0 +1,10 @@ +{ + "variants": { + "hanging=false": { + "model": "minecraft:block/soul_lantern" + }, + "hanging=true": { + "model": "minecraft:block/soul_lantern_hanging" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/soul_sand.json b/assets/minecraft/blockstates/soul_sand.json new file mode 100644 index 00000000..e28fd5ea --- /dev/null +++ b/assets/minecraft/blockstates/soul_sand.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/soul_sand" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/soul_soil.json b/assets/minecraft/blockstates/soul_soil.json new file mode 100644 index 00000000..df0da5f8 --- /dev/null +++ b/assets/minecraft/blockstates/soul_soil.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/soul_soil" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/soul_torch.json b/assets/minecraft/blockstates/soul_torch.json new file mode 100644 index 00000000..be81df74 --- /dev/null +++ b/assets/minecraft/blockstates/soul_torch.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/soul_torch" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/soul_wall_torch.json b/assets/minecraft/blockstates/soul_wall_torch.json new file mode 100644 index 00000000..653ffef8 --- /dev/null +++ b/assets/minecraft/blockstates/soul_wall_torch.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/soul_wall_torch" + }, + "facing=north": { + "model": "minecraft:block/soul_wall_torch", + "y": 270 + }, + "facing=south": { + "model": "minecraft:block/soul_wall_torch", + "y": 90 + }, + "facing=west": { + "model": "minecraft:block/soul_wall_torch", + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spawner.json b/assets/minecraft/blockstates/spawner.json new file mode 100644 index 00000000..9f2f1a05 --- /dev/null +++ b/assets/minecraft/blockstates/spawner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spawner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sponge.json b/assets/minecraft/blockstates/sponge.json new file mode 100644 index 00000000..136e393a --- /dev/null +++ b/assets/minecraft/blockstates/sponge.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/sponge" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spore_blossom.json b/assets/minecraft/blockstates/spore_blossom.json new file mode 100644 index 00000000..0dd005af --- /dev/null +++ b/assets/minecraft/blockstates/spore_blossom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spore_blossom" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_button.json b/assets/minecraft/blockstates/spruce_button.json new file mode 100644 index 00000000..9edf5144 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/spruce_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/spruce_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/spruce_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/spruce_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/spruce_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/spruce_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/spruce_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/spruce_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/spruce_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/spruce_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/spruce_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/spruce_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/spruce_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/spruce_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_door.json b/assets/minecraft/blockstates/spruce_door.json new file mode 100644 index 00000000..b4080637 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/spruce_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/spruce_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/spruce_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/spruce_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_fence.json b/assets/minecraft/blockstates/spruce_fence.json new file mode 100644 index 00000000..203048fb --- /dev/null +++ b/assets/minecraft/blockstates/spruce_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/spruce_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/spruce_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/spruce_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/spruce_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/spruce_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_fence_gate.json b/assets/minecraft/blockstates/spruce_fence_gate.json new file mode 100644 index 00000000..a622cdd9 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/spruce_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/spruce_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/spruce_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/spruce_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/spruce_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/spruce_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/spruce_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/spruce_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/spruce_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/spruce_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/spruce_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/spruce_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/spruce_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/spruce_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/spruce_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/spruce_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_hanging_sign.json b/assets/minecraft/blockstates/spruce_hanging_sign.json new file mode 100644 index 00000000..d9674b62 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spruce_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_leaves.json b/assets/minecraft/blockstates/spruce_leaves.json new file mode 100644 index 00000000..c823b6c7 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spruce_leaves" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_log.json b/assets/minecraft/blockstates/spruce_log.json new file mode 100644 index 00000000..126396ff --- /dev/null +++ b/assets/minecraft/blockstates/spruce_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/spruce_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/spruce_log" + }, + "axis=z": { + "model": "minecraft:block/spruce_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_planks.json b/assets/minecraft/blockstates/spruce_planks.json new file mode 100644 index 00000000..3299e4be --- /dev/null +++ b/assets/minecraft/blockstates/spruce_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spruce_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_pressure_plate.json b/assets/minecraft/blockstates/spruce_pressure_plate.json new file mode 100644 index 00000000..9fef636c --- /dev/null +++ b/assets/minecraft/blockstates/spruce_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/spruce_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/spruce_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_sapling.json b/assets/minecraft/blockstates/spruce_sapling.json new file mode 100644 index 00000000..acecf89b --- /dev/null +++ b/assets/minecraft/blockstates/spruce_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spruce_sapling" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_sign.json b/assets/minecraft/blockstates/spruce_sign.json new file mode 100644 index 00000000..ca088345 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spruce_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_slab.json b/assets/minecraft/blockstates/spruce_slab.json new file mode 100644 index 00000000..c06bc123 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/spruce_slab" + }, + "type=double": { + "model": "minecraft:block/spruce_planks" + }, + "type=top": { + "model": "minecraft:block/spruce_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_stairs.json b/assets/minecraft/blockstates/spruce_stairs.json new file mode 100644 index 00000000..412698f9 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/spruce_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/spruce_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/spruce_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/spruce_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/spruce_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/spruce_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/spruce_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/spruce_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/spruce_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/spruce_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_trapdoor.json b/assets/minecraft/blockstates/spruce_trapdoor.json new file mode 100644 index 00000000..8aa277c2 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/spruce_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/spruce_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/spruce_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/spruce_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/spruce_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/spruce_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/spruce_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/spruce_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/spruce_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/spruce_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/spruce_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/spruce_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/spruce_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/spruce_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/spruce_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/spruce_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_wall_hanging_sign.json b/assets/minecraft/blockstates/spruce_wall_hanging_sign.json new file mode 100644 index 00000000..d9674b62 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spruce_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_wall_sign.json b/assets/minecraft/blockstates/spruce_wall_sign.json new file mode 100644 index 00000000..ca088345 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/spruce_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/spruce_wood.json b/assets/minecraft/blockstates/spruce_wood.json new file mode 100644 index 00000000..19a9ffb2 --- /dev/null +++ b/assets/minecraft/blockstates/spruce_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/spruce_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/spruce_wood" + }, + "axis=z": { + "model": "minecraft:block/spruce_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sticky_piston.json b/assets/minecraft/blockstates/sticky_piston.json new file mode 100644 index 00000000..ecd7db03 --- /dev/null +++ b/assets/minecraft/blockstates/sticky_piston.json @@ -0,0 +1,50 @@ +{ + "variants": { + "extended=false,facing=down": { + "model": "minecraft:block/sticky_piston", + "x": 90 + }, + "extended=false,facing=east": { + "model": "minecraft:block/sticky_piston", + "y": 90 + }, + "extended=false,facing=north": { + "model": "minecraft:block/sticky_piston" + }, + "extended=false,facing=south": { + "model": "minecraft:block/sticky_piston", + "y": 180 + }, + "extended=false,facing=up": { + "model": "minecraft:block/sticky_piston", + "x": 270 + }, + "extended=false,facing=west": { + "model": "minecraft:block/sticky_piston", + "y": 270 + }, + "extended=true,facing=down": { + "model": "minecraft:block/piston_base", + "x": 90 + }, + "extended=true,facing=east": { + "model": "minecraft:block/piston_base", + "y": 90 + }, + "extended=true,facing=north": { + "model": "minecraft:block/piston_base" + }, + "extended=true,facing=south": { + "model": "minecraft:block/piston_base", + "y": 180 + }, + "extended=true,facing=up": { + "model": "minecraft:block/piston_base", + "x": 270 + }, + "extended=true,facing=west": { + "model": "minecraft:block/piston_base", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone.json b/assets/minecraft/blockstates/stone.json new file mode 100644 index 00000000..c150ec29 --- /dev/null +++ b/assets/minecraft/blockstates/stone.json @@ -0,0 +1,20 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/stone" + }, + { + "model": "minecraft:block/stone_mirrored" + }, + { + "model": "minecraft:block/stone", + "y": 180 + }, + { + "model": "minecraft:block/stone_mirrored", + "y": 180 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_brick_slab.json b/assets/minecraft/blockstates/stone_brick_slab.json new file mode 100644 index 00000000..bfa864b9 --- /dev/null +++ b/assets/minecraft/blockstates/stone_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/stone_brick_slab" + }, + "type=double": { + "model": "minecraft:block/stone_bricks" + }, + "type=top": { + "model": "minecraft:block/stone_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_brick_stairs.json b/assets/minecraft/blockstates/stone_brick_stairs.json new file mode 100644 index 00000000..1ee81127 --- /dev/null +++ b/assets/minecraft/blockstates/stone_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/stone_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/stone_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/stone_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/stone_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/stone_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/stone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/stone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/stone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_brick_wall.json b/assets/minecraft/blockstates/stone_brick_wall.json new file mode 100644 index 00000000..fc86800b --- /dev/null +++ b/assets/minecraft/blockstates/stone_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/stone_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/stone_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_bricks.json b/assets/minecraft/blockstates/stone_bricks.json new file mode 100644 index 00000000..8a05daf0 --- /dev/null +++ b/assets/minecraft/blockstates/stone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/stone_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_button.json b/assets/minecraft/blockstates/stone_button.json new file mode 100644 index 00000000..0fb70d99 --- /dev/null +++ b/assets/minecraft/blockstates/stone_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/stone_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/stone_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/stone_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/stone_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/stone_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/stone_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/stone_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/stone_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/stone_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/stone_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/stone_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/stone_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/stone_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/stone_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_pressure_plate.json b/assets/minecraft/blockstates/stone_pressure_plate.json new file mode 100644 index 00000000..5be1b5ab --- /dev/null +++ b/assets/minecraft/blockstates/stone_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/stone_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/stone_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_slab.json b/assets/minecraft/blockstates/stone_slab.json new file mode 100644 index 00000000..f37785ec --- /dev/null +++ b/assets/minecraft/blockstates/stone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/stone_slab" + }, + "type=double": { + "model": "minecraft:block/stone" + }, + "type=top": { + "model": "minecraft:block/stone_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stone_stairs.json b/assets/minecraft/blockstates/stone_stairs.json new file mode 100644 index 00000000..ac18bfdf --- /dev/null +++ b/assets/minecraft/blockstates/stone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/stone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/stone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/stone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/stone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/stone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/stone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/stone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/stone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/stone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/stone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stonecutter.json b/assets/minecraft/blockstates/stonecutter.json new file mode 100644 index 00000000..c50b85fc --- /dev/null +++ b/assets/minecraft/blockstates/stonecutter.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/stonecutter", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/stonecutter" + }, + "facing=south": { + "model": "minecraft:block/stonecutter", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/stonecutter", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_acacia_log.json b/assets/minecraft/blockstates/stripped_acacia_log.json new file mode 100644 index 00000000..53a60c9d --- /dev/null +++ b/assets/minecraft/blockstates/stripped_acacia_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_acacia_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_acacia_log" + }, + "axis=z": { + "model": "minecraft:block/stripped_acacia_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_acacia_wood.json b/assets/minecraft/blockstates/stripped_acacia_wood.json new file mode 100644 index 00000000..dd8d1f23 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_acacia_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_acacia_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_acacia_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_acacia_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_bamboo_block.json b/assets/minecraft/blockstates/stripped_bamboo_block.json new file mode 100644 index 00000000..796aa933 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_bamboo_block.json @@ -0,0 +1,13 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_bamboo_block_x" + }, + "axis=y": { + "model": "minecraft:block/stripped_bamboo_block_y" + }, + "axis=z": { + "model": "minecraft:block/stripped_bamboo_block_z" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_birch_log.json b/assets/minecraft/blockstates/stripped_birch_log.json new file mode 100644 index 00000000..df57a526 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_birch_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_birch_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_birch_log" + }, + "axis=z": { + "model": "minecraft:block/stripped_birch_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_birch_wood.json b/assets/minecraft/blockstates/stripped_birch_wood.json new file mode 100644 index 00000000..6527d5df --- /dev/null +++ b/assets/minecraft/blockstates/stripped_birch_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_birch_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_birch_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_birch_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_cherry_log.json b/assets/minecraft/blockstates/stripped_cherry_log.json new file mode 100644 index 00000000..977bb1b5 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_cherry_log.json @@ -0,0 +1,13 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_cherry_log_x" + }, + "axis=y": { + "model": "minecraft:block/stripped_cherry_log_y" + }, + "axis=z": { + "model": "minecraft:block/stripped_cherry_log_z" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_cherry_wood.json b/assets/minecraft/blockstates/stripped_cherry_wood.json new file mode 100644 index 00000000..5a830548 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_cherry_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_cherry_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_cherry_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_cherry_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_crimson_hyphae.json b/assets/minecraft/blockstates/stripped_crimson_hyphae.json new file mode 100644 index 00000000..3a04cefa --- /dev/null +++ b/assets/minecraft/blockstates/stripped_crimson_hyphae.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_crimson_hyphae", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_crimson_hyphae" + }, + "axis=z": { + "model": "minecraft:block/stripped_crimson_hyphae", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_crimson_stem.json b/assets/minecraft/blockstates/stripped_crimson_stem.json new file mode 100644 index 00000000..b04d30be --- /dev/null +++ b/assets/minecraft/blockstates/stripped_crimson_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_crimson_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_crimson_stem" + }, + "axis=z": { + "model": "minecraft:block/stripped_crimson_stem", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_dark_oak_log.json b/assets/minecraft/blockstates/stripped_dark_oak_log.json new file mode 100644 index 00000000..49d1824a --- /dev/null +++ b/assets/minecraft/blockstates/stripped_dark_oak_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_dark_oak_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_dark_oak_log" + }, + "axis=z": { + "model": "minecraft:block/stripped_dark_oak_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_dark_oak_wood.json b/assets/minecraft/blockstates/stripped_dark_oak_wood.json new file mode 100644 index 00000000..4bcfd1ea --- /dev/null +++ b/assets/minecraft/blockstates/stripped_dark_oak_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_dark_oak_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_dark_oak_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_dark_oak_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_jungle_log.json b/assets/minecraft/blockstates/stripped_jungle_log.json new file mode 100644 index 00000000..b826bf8e --- /dev/null +++ b/assets/minecraft/blockstates/stripped_jungle_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_jungle_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_jungle_log" + }, + "axis=z": { + "model": "minecraft:block/stripped_jungle_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_jungle_wood.json b/assets/minecraft/blockstates/stripped_jungle_wood.json new file mode 100644 index 00000000..c2098761 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_jungle_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_jungle_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_jungle_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_jungle_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_mangrove_log.json b/assets/minecraft/blockstates/stripped_mangrove_log.json new file mode 100644 index 00000000..a9a610d4 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_mangrove_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_mangrove_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_mangrove_log" + }, + "axis=z": { + "model": "minecraft:block/stripped_mangrove_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_mangrove_wood.json b/assets/minecraft/blockstates/stripped_mangrove_wood.json new file mode 100644 index 00000000..53a18bd2 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_mangrove_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_mangrove_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_mangrove_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_mangrove_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_oak_log.json b/assets/minecraft/blockstates/stripped_oak_log.json new file mode 100644 index 00000000..b4a149bc --- /dev/null +++ b/assets/minecraft/blockstates/stripped_oak_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_oak_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_oak_log" + }, + "axis=z": { + "model": "minecraft:block/stripped_oak_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_oak_wood.json b/assets/minecraft/blockstates/stripped_oak_wood.json new file mode 100644 index 00000000..a8098d7c --- /dev/null +++ b/assets/minecraft/blockstates/stripped_oak_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_oak_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_oak_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_oak_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_spruce_log.json b/assets/minecraft/blockstates/stripped_spruce_log.json new file mode 100644 index 00000000..060308fb --- /dev/null +++ b/assets/minecraft/blockstates/stripped_spruce_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_spruce_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_spruce_log" + }, + "axis=z": { + "model": "minecraft:block/stripped_spruce_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_spruce_wood.json b/assets/minecraft/blockstates/stripped_spruce_wood.json new file mode 100644 index 00000000..9473be64 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_spruce_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_spruce_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_spruce_wood" + }, + "axis=z": { + "model": "minecraft:block/stripped_spruce_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_warped_hyphae.json b/assets/minecraft/blockstates/stripped_warped_hyphae.json new file mode 100644 index 00000000..66fd7e36 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_warped_hyphae.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_warped_hyphae", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_warped_hyphae" + }, + "axis=z": { + "model": "minecraft:block/stripped_warped_hyphae", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/stripped_warped_stem.json b/assets/minecraft/blockstates/stripped_warped_stem.json new file mode 100644 index 00000000..2e3fcc42 --- /dev/null +++ b/assets/minecraft/blockstates/stripped_warped_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/stripped_warped_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/stripped_warped_stem" + }, + "axis=z": { + "model": "minecraft:block/stripped_warped_stem", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/structure_block.json b/assets/minecraft/blockstates/structure_block.json new file mode 100644 index 00000000..8a4c5b4b --- /dev/null +++ b/assets/minecraft/blockstates/structure_block.json @@ -0,0 +1,16 @@ +{ + "variants": { + "mode=corner": { + "model": "minecraft:block/structure_block_corner" + }, + "mode=data": { + "model": "minecraft:block/structure_block_data" + }, + "mode=load": { + "model": "minecraft:block/structure_block_load" + }, + "mode=save": { + "model": "minecraft:block/structure_block_save" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/structure_void.json b/assets/minecraft/blockstates/structure_void.json new file mode 100644 index 00000000..50c9d574 --- /dev/null +++ b/assets/minecraft/blockstates/structure_void.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/structure_void" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sugar_cane.json b/assets/minecraft/blockstates/sugar_cane.json new file mode 100644 index 00000000..3eb91442 --- /dev/null +++ b/assets/minecraft/blockstates/sugar_cane.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/sugar_cane" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sunflower.json b/assets/minecraft/blockstates/sunflower.json new file mode 100644 index 00000000..18297b4b --- /dev/null +++ b/assets/minecraft/blockstates/sunflower.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/sunflower_bottom" + }, + "half=upper": { + "model": "minecraft:block/sunflower_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/suspicious_gravel.json b/assets/minecraft/blockstates/suspicious_gravel.json new file mode 100644 index 00000000..a773ba95 --- /dev/null +++ b/assets/minecraft/blockstates/suspicious_gravel.json @@ -0,0 +1,16 @@ +{ + "variants": { + "dusted=0": { + "model": "minecraft:block/suspicious_gravel_0" + }, + "dusted=1": { + "model": "minecraft:block/suspicious_gravel_1" + }, + "dusted=2": { + "model": "minecraft:block/suspicious_gravel_2" + }, + "dusted=3": { + "model": "minecraft:block/suspicious_gravel_3" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/suspicious_sand.json b/assets/minecraft/blockstates/suspicious_sand.json new file mode 100644 index 00000000..7e75a322 --- /dev/null +++ b/assets/minecraft/blockstates/suspicious_sand.json @@ -0,0 +1,16 @@ +{ + "variants": { + "dusted=0": { + "model": "minecraft:block/suspicious_sand_0" + }, + "dusted=1": { + "model": "minecraft:block/suspicious_sand_1" + }, + "dusted=2": { + "model": "minecraft:block/suspicious_sand_2" + }, + "dusted=3": { + "model": "minecraft:block/suspicious_sand_3" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/sweet_berry_bush.json b/assets/minecraft/blockstates/sweet_berry_bush.json new file mode 100644 index 00000000..131d7a70 --- /dev/null +++ b/assets/minecraft/blockstates/sweet_berry_bush.json @@ -0,0 +1,16 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/sweet_berry_bush_stage0" + }, + "age=1": { + "model": "minecraft:block/sweet_berry_bush_stage1" + }, + "age=2": { + "model": "minecraft:block/sweet_berry_bush_stage2" + }, + "age=3": { + "model": "minecraft:block/sweet_berry_bush_stage3" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tall_grass.json b/assets/minecraft/blockstates/tall_grass.json new file mode 100644 index 00000000..b014f0ba --- /dev/null +++ b/assets/minecraft/blockstates/tall_grass.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/tall_grass_bottom" + }, + "half=upper": { + "model": "minecraft:block/tall_grass_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tall_seagrass.json b/assets/minecraft/blockstates/tall_seagrass.json new file mode 100644 index 00000000..c20e9a29 --- /dev/null +++ b/assets/minecraft/blockstates/tall_seagrass.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "minecraft:block/tall_seagrass_bottom" + }, + "half=upper": { + "model": "minecraft:block/tall_seagrass_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/target.json b/assets/minecraft/blockstates/target.json new file mode 100644 index 00000000..7077459d --- /dev/null +++ b/assets/minecraft/blockstates/target.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/target" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/terracotta.json b/assets/minecraft/blockstates/terracotta.json new file mode 100644 index 00000000..985d001a --- /dev/null +++ b/assets/minecraft/blockstates/terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tinted_glass.json b/assets/minecraft/blockstates/tinted_glass.json new file mode 100644 index 00000000..c9f85f1a --- /dev/null +++ b/assets/minecraft/blockstates/tinted_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tinted_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tnt.json b/assets/minecraft/blockstates/tnt.json new file mode 100644 index 00000000..a806a7de --- /dev/null +++ b/assets/minecraft/blockstates/tnt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tnt" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/torch.json b/assets/minecraft/blockstates/torch.json new file mode 100644 index 00000000..7d14911a --- /dev/null +++ b/assets/minecraft/blockstates/torch.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/torch" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/torchflower.json b/assets/minecraft/blockstates/torchflower.json new file mode 100644 index 00000000..ae774f10 --- /dev/null +++ b/assets/minecraft/blockstates/torchflower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/torchflower" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/torchflower_crop.json b/assets/minecraft/blockstates/torchflower_crop.json new file mode 100644 index 00000000..0c13d8fb --- /dev/null +++ b/assets/minecraft/blockstates/torchflower_crop.json @@ -0,0 +1,10 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/torchflower_crop_stage0" + }, + "age=1": { + "model": "minecraft:block/torchflower_crop_stage1" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/trapped_chest.json b/assets/minecraft/blockstates/trapped_chest.json new file mode 100644 index 00000000..f78fa579 --- /dev/null +++ b/assets/minecraft/blockstates/trapped_chest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chest" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/trial_spawner.json b/assets/minecraft/blockstates/trial_spawner.json new file mode 100644 index 00000000..f28215a9 --- /dev/null +++ b/assets/minecraft/blockstates/trial_spawner.json @@ -0,0 +1,40 @@ +{ + "variants": { + "ominous=false,trial_spawner_state=active": { + "model": "minecraft:block/trial_spawner_active" + }, + "ominous=false,trial_spawner_state=cooldown": { + "model": "minecraft:block/trial_spawner" + }, + "ominous=false,trial_spawner_state=ejecting_reward": { + "model": "minecraft:block/trial_spawner_ejecting_reward" + }, + "ominous=false,trial_spawner_state=inactive": { + "model": "minecraft:block/trial_spawner" + }, + "ominous=false,trial_spawner_state=waiting_for_players": { + "model": "minecraft:block/trial_spawner_active" + }, + "ominous=false,trial_spawner_state=waiting_for_reward_ejection": { + "model": "minecraft:block/trial_spawner_active" + }, + "ominous=true,trial_spawner_state=active": { + "model": "minecraft:block/trial_spawner_active_ominous" + }, + "ominous=true,trial_spawner_state=cooldown": { + "model": "minecraft:block/trial_spawner_inactive_ominous" + }, + "ominous=true,trial_spawner_state=ejecting_reward": { + "model": "minecraft:block/trial_spawner_ejecting_reward_ominous" + }, + "ominous=true,trial_spawner_state=inactive": { + "model": "minecraft:block/trial_spawner_inactive_ominous" + }, + "ominous=true,trial_spawner_state=waiting_for_players": { + "model": "minecraft:block/trial_spawner_active_ominous" + }, + "ominous=true,trial_spawner_state=waiting_for_reward_ejection": { + "model": "minecraft:block/trial_spawner_active_ominous" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tripwire.json b/assets/minecraft/blockstates/tripwire.json new file mode 100644 index 00000000..db2aed53 --- /dev/null +++ b/assets/minecraft/blockstates/tripwire.json @@ -0,0 +1,120 @@ +{ + "variants": { + "attached=false,east=false,north=false,south=false,west=false": { + "model": "minecraft:block/tripwire_ns" + }, + "attached=false,east=false,north=false,south=false,west=true": { + "model": "minecraft:block/tripwire_n", + "y": 270 + }, + "attached=false,east=false,north=false,south=true,west=false": { + "model": "minecraft:block/tripwire_n", + "y": 180 + }, + "attached=false,east=false,north=false,south=true,west=true": { + "model": "minecraft:block/tripwire_ne", + "y": 180 + }, + "attached=false,east=false,north=true,south=false,west=false": { + "model": "minecraft:block/tripwire_n" + }, + "attached=false,east=false,north=true,south=false,west=true": { + "model": "minecraft:block/tripwire_ne", + "y": 270 + }, + "attached=false,east=false,north=true,south=true,west=false": { + "model": "minecraft:block/tripwire_ns" + }, + "attached=false,east=false,north=true,south=true,west=true": { + "model": "minecraft:block/tripwire_nse", + "y": 180 + }, + "attached=false,east=true,north=false,south=false,west=false": { + "model": "minecraft:block/tripwire_n", + "y": 90 + }, + "attached=false,east=true,north=false,south=false,west=true": { + "model": "minecraft:block/tripwire_ns", + "y": 90 + }, + "attached=false,east=true,north=false,south=true,west=false": { + "model": "minecraft:block/tripwire_ne", + "y": 90 + }, + "attached=false,east=true,north=false,south=true,west=true": { + "model": "minecraft:block/tripwire_nse", + "y": 90 + }, + "attached=false,east=true,north=true,south=false,west=false": { + "model": "minecraft:block/tripwire_ne" + }, + "attached=false,east=true,north=true,south=false,west=true": { + "model": "minecraft:block/tripwire_nse", + "y": 270 + }, + "attached=false,east=true,north=true,south=true,west=false": { + "model": "minecraft:block/tripwire_nse" + }, + "attached=false,east=true,north=true,south=true,west=true": { + "model": "minecraft:block/tripwire_nsew" + }, + "attached=true,east=false,north=false,south=false,west=false": { + "model": "minecraft:block/tripwire_attached_ns" + }, + "attached=true,east=false,north=false,south=false,west=true": { + "model": "minecraft:block/tripwire_attached_n", + "y": 270 + }, + "attached=true,east=false,north=false,south=true,west=false": { + "model": "minecraft:block/tripwire_attached_n", + "y": 180 + }, + "attached=true,east=false,north=false,south=true,west=true": { + "model": "minecraft:block/tripwire_attached_ne", + "y": 180 + }, + "attached=true,east=false,north=true,south=false,west=false": { + "model": "minecraft:block/tripwire_attached_n" + }, + "attached=true,east=false,north=true,south=false,west=true": { + "model": "minecraft:block/tripwire_attached_ne", + "y": 270 + }, + "attached=true,east=false,north=true,south=true,west=false": { + "model": "minecraft:block/tripwire_attached_ns" + }, + "attached=true,east=false,north=true,south=true,west=true": { + "model": "minecraft:block/tripwire_attached_nse", + "y": 180 + }, + "attached=true,east=true,north=false,south=false,west=false": { + "model": "minecraft:block/tripwire_attached_n", + "y": 90 + }, + "attached=true,east=true,north=false,south=false,west=true": { + "model": "minecraft:block/tripwire_attached_ns", + "y": 90 + }, + "attached=true,east=true,north=false,south=true,west=false": { + "model": "minecraft:block/tripwire_attached_ne", + "y": 90 + }, + "attached=true,east=true,north=false,south=true,west=true": { + "model": "minecraft:block/tripwire_attached_nse", + "y": 90 + }, + "attached=true,east=true,north=true,south=false,west=false": { + "model": "minecraft:block/tripwire_attached_ne" + }, + "attached=true,east=true,north=true,south=false,west=true": { + "model": "minecraft:block/tripwire_attached_nse", + "y": 270 + }, + "attached=true,east=true,north=true,south=true,west=false": { + "model": "minecraft:block/tripwire_attached_nse" + }, + "attached=true,east=true,north=true,south=true,west=true": { + "model": "minecraft:block/tripwire_attached_nsew" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tripwire_hook.json b/assets/minecraft/blockstates/tripwire_hook.json new file mode 100644 index 00000000..67389727 --- /dev/null +++ b/assets/minecraft/blockstates/tripwire_hook.json @@ -0,0 +1,64 @@ +{ + "variants": { + "attached=false,facing=east,powered=false": { + "model": "minecraft:block/tripwire_hook", + "y": 90 + }, + "attached=false,facing=east,powered=true": { + "model": "minecraft:block/tripwire_hook_on", + "y": 90 + }, + "attached=false,facing=north,powered=false": { + "model": "minecraft:block/tripwire_hook" + }, + "attached=false,facing=north,powered=true": { + "model": "minecraft:block/tripwire_hook_on" + }, + "attached=false,facing=south,powered=false": { + "model": "minecraft:block/tripwire_hook", + "y": 180 + }, + "attached=false,facing=south,powered=true": { + "model": "minecraft:block/tripwire_hook_on", + "y": 180 + }, + "attached=false,facing=west,powered=false": { + "model": "minecraft:block/tripwire_hook", + "y": 270 + }, + "attached=false,facing=west,powered=true": { + "model": "minecraft:block/tripwire_hook_on", + "y": 270 + }, + "attached=true,facing=east,powered=false": { + "model": "minecraft:block/tripwire_hook_attached", + "y": 90 + }, + "attached=true,facing=east,powered=true": { + "model": "minecraft:block/tripwire_hook_attached_on", + "y": 90 + }, + "attached=true,facing=north,powered=false": { + "model": "minecraft:block/tripwire_hook_attached" + }, + "attached=true,facing=north,powered=true": { + "model": "minecraft:block/tripwire_hook_attached_on" + }, + "attached=true,facing=south,powered=false": { + "model": "minecraft:block/tripwire_hook_attached", + "y": 180 + }, + "attached=true,facing=south,powered=true": { + "model": "minecraft:block/tripwire_hook_attached_on", + "y": 180 + }, + "attached=true,facing=west,powered=false": { + "model": "minecraft:block/tripwire_hook_attached", + "y": 270 + }, + "attached=true,facing=west,powered=true": { + "model": "minecraft:block/tripwire_hook_attached_on", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tube_coral.json b/assets/minecraft/blockstates/tube_coral.json new file mode 100644 index 00000000..89f37627 --- /dev/null +++ b/assets/minecraft/blockstates/tube_coral.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tube_coral" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tube_coral_block.json b/assets/minecraft/blockstates/tube_coral_block.json new file mode 100644 index 00000000..68894a85 --- /dev/null +++ b/assets/minecraft/blockstates/tube_coral_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tube_coral_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tube_coral_fan.json b/assets/minecraft/blockstates/tube_coral_fan.json new file mode 100644 index 00000000..518de272 --- /dev/null +++ b/assets/minecraft/blockstates/tube_coral_fan.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tube_coral_fan" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tube_coral_wall_fan.json b/assets/minecraft/blockstates/tube_coral_wall_fan.json new file mode 100644 index 00000000..31a626a1 --- /dev/null +++ b/assets/minecraft/blockstates/tube_coral_wall_fan.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/tube_coral_wall_fan", + "y": 90 + }, + "facing=north": { + "model": "minecraft:block/tube_coral_wall_fan" + }, + "facing=south": { + "model": "minecraft:block/tube_coral_wall_fan", + "y": 180 + }, + "facing=west": { + "model": "minecraft:block/tube_coral_wall_fan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff.json b/assets/minecraft/blockstates/tuff.json new file mode 100644 index 00000000..eff0d200 --- /dev/null +++ b/assets/minecraft/blockstates/tuff.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tuff" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff_brick_slab.json b/assets/minecraft/blockstates/tuff_brick_slab.json new file mode 100644 index 00000000..e434866a --- /dev/null +++ b/assets/minecraft/blockstates/tuff_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/tuff_brick_slab" + }, + "type=double": { + "model": "minecraft:block/tuff_bricks" + }, + "type=top": { + "model": "minecraft:block/tuff_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff_brick_stairs.json b/assets/minecraft/blockstates/tuff_brick_stairs.json new file mode 100644 index 00000000..f9734437 --- /dev/null +++ b/assets/minecraft/blockstates/tuff_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/tuff_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff_brick_wall.json b/assets/minecraft/blockstates/tuff_brick_wall.json new file mode 100644 index 00000000..e82f5f6f --- /dev/null +++ b/assets/minecraft/blockstates/tuff_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff_bricks.json b/assets/minecraft/blockstates/tuff_bricks.json new file mode 100644 index 00000000..72b99e0c --- /dev/null +++ b/assets/minecraft/blockstates/tuff_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tuff_bricks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff_slab.json b/assets/minecraft/blockstates/tuff_slab.json new file mode 100644 index 00000000..f77d48aa --- /dev/null +++ b/assets/minecraft/blockstates/tuff_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/tuff_slab" + }, + "type=double": { + "model": "minecraft:block/tuff" + }, + "type=top": { + "model": "minecraft:block/tuff_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff_stairs.json b/assets/minecraft/blockstates/tuff_stairs.json new file mode 100644 index 00000000..d2175ab5 --- /dev/null +++ b/assets/minecraft/blockstates/tuff_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/tuff_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/tuff_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/tuff_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/tuff_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/tuff_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/tuff_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/tuff_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/tuff_wall.json b/assets/minecraft/blockstates/tuff_wall.json new file mode 100644 index 00000000..fba231a6 --- /dev/null +++ b/assets/minecraft/blockstates/tuff_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/tuff_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "minecraft:block/tuff_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/turtle_egg.json b/assets/minecraft/blockstates/turtle_egg.json new file mode 100644 index 00000000..ac5157d6 --- /dev/null +++ b/assets/minecraft/blockstates/turtle_egg.json @@ -0,0 +1,208 @@ +{ + "variants": { + "eggs=1,hatch=0": [ + { + "model": "minecraft:block/turtle_egg" + }, + { + "model": "minecraft:block/turtle_egg", + "y": 90 + }, + { + "model": "minecraft:block/turtle_egg", + "y": 180 + }, + { + "model": "minecraft:block/turtle_egg", + "y": 270 + } + ], + "eggs=1,hatch=1": [ + { + "model": "minecraft:block/slightly_cracked_turtle_egg" + }, + { + "model": "minecraft:block/slightly_cracked_turtle_egg", + "y": 90 + }, + { + "model": "minecraft:block/slightly_cracked_turtle_egg", + "y": 180 + }, + { + "model": "minecraft:block/slightly_cracked_turtle_egg", + "y": 270 + } + ], + "eggs=1,hatch=2": [ + { + "model": "minecraft:block/very_cracked_turtle_egg" + }, + { + "model": "minecraft:block/very_cracked_turtle_egg", + "y": 90 + }, + { + "model": "minecraft:block/very_cracked_turtle_egg", + "y": 180 + }, + { + "model": "minecraft:block/very_cracked_turtle_egg", + "y": 270 + } + ], + "eggs=2,hatch=0": [ + { + "model": "minecraft:block/two_turtle_eggs" + }, + { + "model": "minecraft:block/two_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/two_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/two_turtle_eggs", + "y": 270 + } + ], + "eggs=2,hatch=1": [ + { + "model": "minecraft:block/two_slightly_cracked_turtle_eggs" + }, + { + "model": "minecraft:block/two_slightly_cracked_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/two_slightly_cracked_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/two_slightly_cracked_turtle_eggs", + "y": 270 + } + ], + "eggs=2,hatch=2": [ + { + "model": "minecraft:block/two_very_cracked_turtle_eggs" + }, + { + "model": "minecraft:block/two_very_cracked_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/two_very_cracked_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/two_very_cracked_turtle_eggs", + "y": 270 + } + ], + "eggs=3,hatch=0": [ + { + "model": "minecraft:block/three_turtle_eggs" + }, + { + "model": "minecraft:block/three_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/three_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/three_turtle_eggs", + "y": 270 + } + ], + "eggs=3,hatch=1": [ + { + "model": "minecraft:block/three_slightly_cracked_turtle_eggs" + }, + { + "model": "minecraft:block/three_slightly_cracked_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/three_slightly_cracked_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/three_slightly_cracked_turtle_eggs", + "y": 270 + } + ], + "eggs=3,hatch=2": [ + { + "model": "minecraft:block/three_very_cracked_turtle_eggs" + }, + { + "model": "minecraft:block/three_very_cracked_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/three_very_cracked_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/three_very_cracked_turtle_eggs", + "y": 270 + } + ], + "eggs=4,hatch=0": [ + { + "model": "minecraft:block/four_turtle_eggs" + }, + { + "model": "minecraft:block/four_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/four_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/four_turtle_eggs", + "y": 270 + } + ], + "eggs=4,hatch=1": [ + { + "model": "minecraft:block/four_slightly_cracked_turtle_eggs" + }, + { + "model": "minecraft:block/four_slightly_cracked_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/four_slightly_cracked_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/four_slightly_cracked_turtle_eggs", + "y": 270 + } + ], + "eggs=4,hatch=2": [ + { + "model": "minecraft:block/four_very_cracked_turtle_eggs" + }, + { + "model": "minecraft:block/four_very_cracked_turtle_eggs", + "y": 90 + }, + { + "model": "minecraft:block/four_very_cracked_turtle_eggs", + "y": 180 + }, + { + "model": "minecraft:block/four_very_cracked_turtle_eggs", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/twisting_vines.json b/assets/minecraft/blockstates/twisting_vines.json new file mode 100644 index 00000000..baef54f8 --- /dev/null +++ b/assets/minecraft/blockstates/twisting_vines.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/twisting_vines" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/twisting_vines_plant.json b/assets/minecraft/blockstates/twisting_vines_plant.json new file mode 100644 index 00000000..83020268 --- /dev/null +++ b/assets/minecraft/blockstates/twisting_vines_plant.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/twisting_vines_plant" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/vault.json b/assets/minecraft/blockstates/vault.json new file mode 100644 index 00000000..ae4ad766 --- /dev/null +++ b/assets/minecraft/blockstates/vault.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,ominous=false,vault_state=active": { + "model": "minecraft:block/vault_active", + "y": 90 + }, + "facing=east,ominous=false,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward", + "y": 90 + }, + "facing=east,ominous=false,vault_state=inactive": { + "model": "minecraft:block/vault", + "y": 90 + }, + "facing=east,ominous=false,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking", + "y": 90 + }, + "facing=east,ominous=true,vault_state=active": { + "model": "minecraft:block/vault_active_ominous", + "y": 90 + }, + "facing=east,ominous=true,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward_ominous", + "y": 90 + }, + "facing=east,ominous=true,vault_state=inactive": { + "model": "minecraft:block/vault_ominous", + "y": 90 + }, + "facing=east,ominous=true,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking_ominous", + "y": 90 + }, + "facing=north,ominous=false,vault_state=active": { + "model": "minecraft:block/vault_active" + }, + "facing=north,ominous=false,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward" + }, + "facing=north,ominous=false,vault_state=inactive": { + "model": "minecraft:block/vault" + }, + "facing=north,ominous=false,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking" + }, + "facing=north,ominous=true,vault_state=active": { + "model": "minecraft:block/vault_active_ominous" + }, + "facing=north,ominous=true,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward_ominous" + }, + "facing=north,ominous=true,vault_state=inactive": { + "model": "minecraft:block/vault_ominous" + }, + "facing=north,ominous=true,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking_ominous" + }, + "facing=south,ominous=false,vault_state=active": { + "model": "minecraft:block/vault_active", + "y": 180 + }, + "facing=south,ominous=false,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward", + "y": 180 + }, + "facing=south,ominous=false,vault_state=inactive": { + "model": "minecraft:block/vault", + "y": 180 + }, + "facing=south,ominous=false,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking", + "y": 180 + }, + "facing=south,ominous=true,vault_state=active": { + "model": "minecraft:block/vault_active_ominous", + "y": 180 + }, + "facing=south,ominous=true,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward_ominous", + "y": 180 + }, + "facing=south,ominous=true,vault_state=inactive": { + "model": "minecraft:block/vault_ominous", + "y": 180 + }, + "facing=south,ominous=true,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking_ominous", + "y": 180 + }, + "facing=west,ominous=false,vault_state=active": { + "model": "minecraft:block/vault_active", + "y": 270 + }, + "facing=west,ominous=false,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward", + "y": 270 + }, + "facing=west,ominous=false,vault_state=inactive": { + "model": "minecraft:block/vault", + "y": 270 + }, + "facing=west,ominous=false,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking", + "y": 270 + }, + "facing=west,ominous=true,vault_state=active": { + "model": "minecraft:block/vault_active_ominous", + "y": 270 + }, + "facing=west,ominous=true,vault_state=ejecting": { + "model": "minecraft:block/vault_ejecting_reward_ominous", + "y": 270 + }, + "facing=west,ominous=true,vault_state=inactive": { + "model": "minecraft:block/vault_ominous", + "y": 270 + }, + "facing=west,ominous=true,vault_state=unlocking": { + "model": "minecraft:block/vault_unlocking_ominous", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/verdant_froglight.json b/assets/minecraft/blockstates/verdant_froglight.json new file mode 100644 index 00000000..496c19c1 --- /dev/null +++ b/assets/minecraft/blockstates/verdant_froglight.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/verdant_froglight_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/verdant_froglight" + }, + "axis=z": { + "model": "minecraft:block/verdant_froglight_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/vine.json b/assets/minecraft/blockstates/vine.json new file mode 100644 index 00000000..66222182 --- /dev/null +++ b/assets/minecraft/blockstates/vine.json @@ -0,0 +1,120 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/vine" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/vine" + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "y": 180 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "y": 270 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "minecraft:block/vine", + "uvlock": true, + "x": 270 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/void_air.json b/assets/minecraft/blockstates/void_air.json new file mode 100644 index 00000000..2c8f02f0 --- /dev/null +++ b/assets/minecraft/blockstates/void_air.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/air" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/wall_torch.json b/assets/minecraft/blockstates/wall_torch.json new file mode 100644 index 00000000..7314344c --- /dev/null +++ b/assets/minecraft/blockstates/wall_torch.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/wall_torch" + }, + "facing=north": { + "model": "minecraft:block/wall_torch", + "y": 270 + }, + "facing=south": { + "model": "minecraft:block/wall_torch", + "y": 90 + }, + "facing=west": { + "model": "minecraft:block/wall_torch", + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_button.json b/assets/minecraft/blockstates/warped_button.json new file mode 100644 index 00000000..7f0a2e67 --- /dev/null +++ b/assets/minecraft/blockstates/warped_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "minecraft:block/warped_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "minecraft:block/warped_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "minecraft:block/warped_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "minecraft:block/warped_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "minecraft:block/warped_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "minecraft:block/warped_button" + }, + "face=floor,facing=north,powered=true": { + "model": "minecraft:block/warped_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "minecraft:block/warped_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "minecraft:block/warped_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "minecraft:block/warped_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "minecraft:block/warped_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "minecraft:block/warped_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "minecraft:block/warped_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "minecraft:block/warped_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_door.json b/assets/minecraft/blockstates/warped_door.json new file mode 100644 index 00000000..0870eaa4 --- /dev/null +++ b/assets/minecraft/blockstates/warped_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/warped_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/warped_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/warped_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/warped_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/warped_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/warped_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/warped_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/warped_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/warped_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/warped_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/warped_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/warped_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/warped_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/warped_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/warped_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/warped_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/warped_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/warped_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/warped_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/warped_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/warped_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/warped_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/warped_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/warped_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/warped_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/warped_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/warped_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/warped_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/warped_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/warped_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/warped_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/warped_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_fence.json b/assets/minecraft/blockstates/warped_fence.json new file mode 100644 index 00000000..964b26f8 --- /dev/null +++ b/assets/minecraft/blockstates/warped_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/warped_fence_post" + } + }, + { + "apply": { + "model": "minecraft:block/warped_fence_side", + "uvlock": true + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/warped_fence_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/warped_fence_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/warped_fence_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_fence_gate.json b/assets/minecraft/blockstates/warped_fence_gate.json new file mode 100644 index 00000000..2688cc95 --- /dev/null +++ b/assets/minecraft/blockstates/warped_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "model": "minecraft:block/warped_fence_gate", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=false,open=true": { + "model": "minecraft:block/warped_fence_gate_open", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=false": { + "model": "minecraft:block/warped_fence_gate_wall", + "uvlock": true, + "y": 270 + }, + "facing=east,in_wall=true,open=true": { + "model": "minecraft:block/warped_fence_gate_wall_open", + "uvlock": true, + "y": 270 + }, + "facing=north,in_wall=false,open=false": { + "model": "minecraft:block/warped_fence_gate", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=false,open=true": { + "model": "minecraft:block/warped_fence_gate_open", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=false": { + "model": "minecraft:block/warped_fence_gate_wall", + "uvlock": true, + "y": 180 + }, + "facing=north,in_wall=true,open=true": { + "model": "minecraft:block/warped_fence_gate_wall_open", + "uvlock": true, + "y": 180 + }, + "facing=south,in_wall=false,open=false": { + "model": "minecraft:block/warped_fence_gate", + "uvlock": true + }, + "facing=south,in_wall=false,open=true": { + "model": "minecraft:block/warped_fence_gate_open", + "uvlock": true + }, + "facing=south,in_wall=true,open=false": { + "model": "minecraft:block/warped_fence_gate_wall", + "uvlock": true + }, + "facing=south,in_wall=true,open=true": { + "model": "minecraft:block/warped_fence_gate_wall_open", + "uvlock": true + }, + "facing=west,in_wall=false,open=false": { + "model": "minecraft:block/warped_fence_gate", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=false,open=true": { + "model": "minecraft:block/warped_fence_gate_open", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=false": { + "model": "minecraft:block/warped_fence_gate_wall", + "uvlock": true, + "y": 90 + }, + "facing=west,in_wall=true,open=true": { + "model": "minecraft:block/warped_fence_gate_wall_open", + "uvlock": true, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_fungus.json b/assets/minecraft/blockstates/warped_fungus.json new file mode 100644 index 00000000..49ebfb00 --- /dev/null +++ b/assets/minecraft/blockstates/warped_fungus.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_fungus" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_hanging_sign.json b/assets/minecraft/blockstates/warped_hanging_sign.json new file mode 100644 index 00000000..512f8e6c --- /dev/null +++ b/assets/minecraft/blockstates/warped_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_hyphae.json b/assets/minecraft/blockstates/warped_hyphae.json new file mode 100644 index 00000000..a96fcb85 --- /dev/null +++ b/assets/minecraft/blockstates/warped_hyphae.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/warped_hyphae", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/warped_hyphae" + }, + "axis=z": { + "model": "minecraft:block/warped_hyphae", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_nylium.json b/assets/minecraft/blockstates/warped_nylium.json new file mode 100644 index 00000000..f9f4ca89 --- /dev/null +++ b/assets/minecraft/blockstates/warped_nylium.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_nylium" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_planks.json b/assets/minecraft/blockstates/warped_planks.json new file mode 100644 index 00000000..e2d95a72 --- /dev/null +++ b/assets/minecraft/blockstates/warped_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_planks" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_pressure_plate.json b/assets/minecraft/blockstates/warped_pressure_plate.json new file mode 100644 index 00000000..9c3d2d39 --- /dev/null +++ b/assets/minecraft/blockstates/warped_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "minecraft:block/warped_pressure_plate" + }, + "powered=true": { + "model": "minecraft:block/warped_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_roots.json b/assets/minecraft/blockstates/warped_roots.json new file mode 100644 index 00000000..7e575051 --- /dev/null +++ b/assets/minecraft/blockstates/warped_roots.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_roots" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_sign.json b/assets/minecraft/blockstates/warped_sign.json new file mode 100644 index 00000000..73befe6b --- /dev/null +++ b/assets/minecraft/blockstates/warped_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_slab.json b/assets/minecraft/blockstates/warped_slab.json new file mode 100644 index 00000000..012d2470 --- /dev/null +++ b/assets/minecraft/blockstates/warped_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/warped_slab" + }, + "type=double": { + "model": "minecraft:block/warped_planks" + }, + "type=top": { + "model": "minecraft:block/warped_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_stairs.json b/assets/minecraft/blockstates/warped_stairs.json new file mode 100644 index 00000000..a94c42ec --- /dev/null +++ b/assets/minecraft/blockstates/warped_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/warped_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/warped_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/warped_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/warped_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/warped_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/warped_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/warped_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/warped_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/warped_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/warped_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_stem.json b/assets/minecraft/blockstates/warped_stem.json new file mode 100644 index 00000000..5726b9a4 --- /dev/null +++ b/assets/minecraft/blockstates/warped_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "minecraft:block/warped_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "minecraft:block/warped_stem" + }, + "axis=z": { + "model": "minecraft:block/warped_stem", + "x": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_trapdoor.json b/assets/minecraft/blockstates/warped_trapdoor.json new file mode 100644 index 00000000..b4d8b33b --- /dev/null +++ b/assets/minecraft/blockstates/warped_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/warped_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/warped_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/warped_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/warped_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/warped_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/warped_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/warped_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/warped_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/warped_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/warped_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/warped_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/warped_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/warped_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/warped_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/warped_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/warped_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_wall_hanging_sign.json b/assets/minecraft/blockstates/warped_wall_hanging_sign.json new file mode 100644 index 00000000..512f8e6c --- /dev/null +++ b/assets/minecraft/blockstates/warped_wall_hanging_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_hanging_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_wall_sign.json b/assets/minecraft/blockstates/warped_wall_sign.json new file mode 100644 index 00000000..73befe6b --- /dev/null +++ b/assets/minecraft/blockstates/warped_wall_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_sign" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/warped_wart_block.json b/assets/minecraft/blockstates/warped_wart_block.json new file mode 100644 index 00000000..6ebede61 --- /dev/null +++ b/assets/minecraft/blockstates/warped_wart_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/warped_wart_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/water.json b/assets/minecraft/blockstates/water.json new file mode 100644 index 00000000..99fd360b --- /dev/null +++ b/assets/minecraft/blockstates/water.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/water" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/water_cauldron.json b/assets/minecraft/blockstates/water_cauldron.json new file mode 100644 index 00000000..130d7b6b --- /dev/null +++ b/assets/minecraft/blockstates/water_cauldron.json @@ -0,0 +1,13 @@ +{ + "variants": { + "level=1": { + "model": "minecraft:block/water_cauldron_level1" + }, + "level=2": { + "model": "minecraft:block/water_cauldron_level2" + }, + "level=3": { + "model": "minecraft:block/water_cauldron_full" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_chiseled_copper.json b/assets/minecraft/blockstates/waxed_chiseled_copper.json new file mode 100644 index 00000000..6b2ccc85 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_copper_block.json b/assets/minecraft/blockstates/waxed_copper_block.json new file mode 100644 index 00000000..b440184d --- /dev/null +++ b/assets/minecraft/blockstates/waxed_copper_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/copper_block" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_copper_bulb.json b/assets/minecraft/blockstates/waxed_copper_bulb.json new file mode 100644 index 00000000..5929d9b4 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_copper_door.json b/assets/minecraft/blockstates/waxed_copper_door.json new file mode 100644 index 00000000..44dcbdef --- /dev/null +++ b/assets/minecraft/blockstates/waxed_copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_copper_grate.json b/assets/minecraft/blockstates/waxed_copper_grate.json new file mode 100644 index 00000000..2f7bc9ec --- /dev/null +++ b/assets/minecraft/blockstates/waxed_copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_copper_trapdoor.json b/assets/minecraft/blockstates/waxed_copper_trapdoor.json new file mode 100644 index 00000000..837c01b9 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_cut_copper.json b/assets/minecraft/blockstates/waxed_cut_copper.json new file mode 100644 index 00000000..2105f293 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_cut_copper_slab.json b/assets/minecraft/blockstates/waxed_cut_copper_slab.json new file mode 100644 index 00000000..31d149b5 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/cut_copper" + }, + "type=top": { + "model": "minecraft:block/cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_cut_copper_stairs.json b/assets/minecraft/blockstates/waxed_cut_copper_stairs.json new file mode 100644 index 00000000..95160aaf --- /dev/null +++ b/assets/minecraft/blockstates/waxed_cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_chiseled_copper.json b/assets/minecraft/blockstates/waxed_exposed_chiseled_copper.json new file mode 100644 index 00000000..3b87926a --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_copper.json b/assets/minecraft/blockstates/waxed_exposed_copper.json new file mode 100644 index 00000000..ed711e79 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_copper_bulb.json b/assets/minecraft/blockstates/waxed_exposed_copper_bulb.json new file mode 100644 index 00000000..203fd0f5 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/exposed_copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/exposed_copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/exposed_copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/exposed_copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_copper_door.json b/assets/minecraft/blockstates/waxed_exposed_copper_door.json new file mode 100644 index 00000000..f4f30489 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/exposed_copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/exposed_copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/exposed_copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/exposed_copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_copper_grate.json b/assets/minecraft/blockstates/waxed_exposed_copper_grate.json new file mode 100644 index 00000000..49a6446f --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_copper_trapdoor.json b/assets/minecraft/blockstates/waxed_exposed_copper_trapdoor.json new file mode 100644 index 00000000..e8734ba3 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/exposed_copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/exposed_copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_cut_copper.json b/assets/minecraft/blockstates/waxed_exposed_cut_copper.json new file mode 100644 index 00000000..3b465b0b --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/exposed_cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_cut_copper_slab.json b/assets/minecraft/blockstates/waxed_exposed_cut_copper_slab.json new file mode 100644 index 00000000..81b09c73 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/exposed_cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/exposed_cut_copper" + }, + "type=top": { + "model": "minecraft:block/exposed_cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_exposed_cut_copper_stairs.json b/assets/minecraft/blockstates/waxed_exposed_cut_copper_stairs.json new file mode 100644 index 00000000..f9863f6c --- /dev/null +++ b/assets/minecraft/blockstates/waxed_exposed_cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/exposed_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/exposed_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_chiseled_copper.json b/assets/minecraft/blockstates/waxed_oxidized_chiseled_copper.json new file mode 100644 index 00000000..ea362c15 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_copper.json b/assets/minecraft/blockstates/waxed_oxidized_copper.json new file mode 100644 index 00000000..d7ce6251 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_copper_bulb.json b/assets/minecraft/blockstates/waxed_oxidized_copper_bulb.json new file mode 100644 index 00000000..1e58f046 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/oxidized_copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/oxidized_copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/oxidized_copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/oxidized_copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_copper_door.json b/assets/minecraft/blockstates/waxed_oxidized_copper_door.json new file mode 100644 index 00000000..2cb09804 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/oxidized_copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/oxidized_copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_copper_grate.json b/assets/minecraft/blockstates/waxed_oxidized_copper_grate.json new file mode 100644 index 00000000..e8039a9a --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_copper_trapdoor.json b/assets/minecraft/blockstates/waxed_oxidized_copper_trapdoor.json new file mode 100644 index 00000000..c5ceb4cd --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/oxidized_copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/oxidized_copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_cut_copper.json b/assets/minecraft/blockstates/waxed_oxidized_cut_copper.json new file mode 100644 index 00000000..58bf24a1 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/oxidized_cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_cut_copper_slab.json b/assets/minecraft/blockstates/waxed_oxidized_cut_copper_slab.json new file mode 100644 index 00000000..e91b8c96 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/oxidized_cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/oxidized_cut_copper" + }, + "type=top": { + "model": "minecraft:block/oxidized_cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_oxidized_cut_copper_stairs.json b/assets/minecraft/blockstates/waxed_oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..5b79a1e8 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_oxidized_cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/oxidized_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/oxidized_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_chiseled_copper.json b/assets/minecraft/blockstates/waxed_weathered_chiseled_copper.json new file mode 100644 index 00000000..473fa8cb --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_copper.json b/assets/minecraft/blockstates/waxed_weathered_copper.json new file mode 100644 index 00000000..a1be23f6 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_copper_bulb.json b/assets/minecraft/blockstates/waxed_weathered_copper_bulb.json new file mode 100644 index 00000000..9a5a6847 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/weathered_copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/weathered_copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/weathered_copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/weathered_copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_copper_door.json b/assets/minecraft/blockstates/waxed_weathered_copper_door.json new file mode 100644 index 00000000..168213cd --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_copper_grate.json b/assets/minecraft/blockstates/waxed_weathered_copper_grate.json new file mode 100644 index 00000000..cb7e161e --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_copper_trapdoor.json b/assets/minecraft/blockstates/waxed_weathered_copper_trapdoor.json new file mode 100644 index 00000000..3143d484 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_cut_copper.json b/assets/minecraft/blockstates/waxed_weathered_cut_copper.json new file mode 100644 index 00000000..39706050 --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_cut_copper_slab.json b/assets/minecraft/blockstates/waxed_weathered_cut_copper_slab.json new file mode 100644 index 00000000..d13942ed --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/weathered_cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/weathered_cut_copper" + }, + "type=top": { + "model": "minecraft:block/weathered_cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/waxed_weathered_cut_copper_stairs.json b/assets/minecraft/blockstates/waxed_weathered_cut_copper_stairs.json new file mode 100644 index 00000000..aff6eadd --- /dev/null +++ b/assets/minecraft/blockstates/waxed_weathered_cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_chiseled_copper.json b/assets/minecraft/blockstates/weathered_chiseled_copper.json new file mode 100644 index 00000000..473fa8cb --- /dev/null +++ b/assets/minecraft/blockstates/weathered_chiseled_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_chiseled_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_copper.json b/assets/minecraft/blockstates/weathered_copper.json new file mode 100644 index 00000000..a1be23f6 --- /dev/null +++ b/assets/minecraft/blockstates/weathered_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_copper_bulb.json b/assets/minecraft/blockstates/weathered_copper_bulb.json new file mode 100644 index 00000000..9a5a6847 --- /dev/null +++ b/assets/minecraft/blockstates/weathered_copper_bulb.json @@ -0,0 +1,16 @@ +{ + "variants": { + "lit=false,powered=false": { + "model": "minecraft:block/weathered_copper_bulb" + }, + "lit=false,powered=true": { + "model": "minecraft:block/weathered_copper_bulb_powered" + }, + "lit=true,powered=false": { + "model": "minecraft:block/weathered_copper_bulb_lit" + }, + "lit=true,powered=true": { + "model": "minecraft:block/weathered_copper_bulb_lit_powered" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_copper_door.json b/assets/minecraft/blockstates/weathered_copper_door.json new file mode 100644 index 00000000..168213cd --- /dev/null +++ b/assets/minecraft/blockstates/weathered_copper_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "minecraft:block/weathered_copper_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "minecraft:block/weathered_copper_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "minecraft:block/weathered_copper_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "minecraft:block/weathered_copper_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_copper_grate.json b/assets/minecraft/blockstates/weathered_copper_grate.json new file mode 100644 index 00000000..cb7e161e --- /dev/null +++ b/assets/minecraft/blockstates/weathered_copper_grate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_copper_grate" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_copper_trapdoor.json b/assets/minecraft/blockstates/weathered_copper_trapdoor.json new file mode 100644 index 00000000..3143d484 --- /dev/null +++ b/assets/minecraft/blockstates/weathered_copper_trapdoor.json @@ -0,0 +1,58 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=east,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=east,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open" + }, + "facing=south,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=south,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=south,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_bottom" + }, + "facing=west,half=bottom,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "minecraft:block/weathered_copper_trapdoor_top" + }, + "facing=west,half=top,open=true": { + "model": "minecraft:block/weathered_copper_trapdoor_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_cut_copper.json b/assets/minecraft/blockstates/weathered_cut_copper.json new file mode 100644 index 00000000..39706050 --- /dev/null +++ b/assets/minecraft/blockstates/weathered_cut_copper.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weathered_cut_copper" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_cut_copper_slab.json b/assets/minecraft/blockstates/weathered_cut_copper_slab.json new file mode 100644 index 00000000..d13942ed --- /dev/null +++ b/assets/minecraft/blockstates/weathered_cut_copper_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "minecraft:block/weathered_cut_copper_slab" + }, + "type=double": { + "model": "minecraft:block/weathered_cut_copper" + }, + "type=top": { + "model": "minecraft:block/weathered_cut_copper_slab_top" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weathered_cut_copper_stairs.json b/assets/minecraft/blockstates/weathered_cut_copper_stairs.json new file mode 100644 index 00000000..aff6eadd --- /dev/null +++ b/assets/minecraft/blockstates/weathered_cut_copper_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "minecraft:block/weathered_cut_copper_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "minecraft:block/weathered_cut_copper_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weeping_vines.json b/assets/minecraft/blockstates/weeping_vines.json new file mode 100644 index 00000000..cbcbec38 --- /dev/null +++ b/assets/minecraft/blockstates/weeping_vines.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weeping_vines" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/weeping_vines_plant.json b/assets/minecraft/blockstates/weeping_vines_plant.json new file mode 100644 index 00000000..ff13a3d4 --- /dev/null +++ b/assets/minecraft/blockstates/weeping_vines_plant.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/weeping_vines_plant" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/wet_sponge.json b/assets/minecraft/blockstates/wet_sponge.json new file mode 100644 index 00000000..2a448bf7 --- /dev/null +++ b/assets/minecraft/blockstates/wet_sponge.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/wet_sponge" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/wheat.json b/assets/minecraft/blockstates/wheat.json new file mode 100644 index 00000000..79f42739 --- /dev/null +++ b/assets/minecraft/blockstates/wheat.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "minecraft:block/wheat_stage0" + }, + "age=1": { + "model": "minecraft:block/wheat_stage1" + }, + "age=2": { + "model": "minecraft:block/wheat_stage2" + }, + "age=3": { + "model": "minecraft:block/wheat_stage3" + }, + "age=4": { + "model": "minecraft:block/wheat_stage4" + }, + "age=5": { + "model": "minecraft:block/wheat_stage5" + }, + "age=6": { + "model": "minecraft:block/wheat_stage6" + }, + "age=7": { + "model": "minecraft:block/wheat_stage7" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_banner.json b/assets/minecraft/blockstates/white_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/white_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_bed.json b/assets/minecraft/blockstates/white_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/white_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_candle.json b/assets/minecraft/blockstates/white_candle.json new file mode 100644 index 00000000..a42b36c9 --- /dev/null +++ b/assets/minecraft/blockstates/white_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/white_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/white_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/white_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/white_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/white_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/white_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/white_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/white_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_candle_cake.json b/assets/minecraft/blockstates/white_candle_cake.json new file mode 100644 index 00000000..e50830a6 --- /dev/null +++ b/assets/minecraft/blockstates/white_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/white_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/white_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_carpet.json b/assets/minecraft/blockstates/white_carpet.json new file mode 100644 index 00000000..afde6381 --- /dev/null +++ b/assets/minecraft/blockstates/white_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/white_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_concrete.json b/assets/minecraft/blockstates/white_concrete.json new file mode 100644 index 00000000..5ce10cd2 --- /dev/null +++ b/assets/minecraft/blockstates/white_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/white_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_concrete_powder.json b/assets/minecraft/blockstates/white_concrete_powder.json new file mode 100644 index 00000000..66cfe5e1 --- /dev/null +++ b/assets/minecraft/blockstates/white_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/white_concrete_powder" + }, + { + "model": "minecraft:block/white_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/white_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/white_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_glazed_terracotta.json b/assets/minecraft/blockstates/white_glazed_terracotta.json new file mode 100644 index 00000000..8c64ce09 --- /dev/null +++ b/assets/minecraft/blockstates/white_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/white_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/white_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/white_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/white_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_shulker_box.json b/assets/minecraft/blockstates/white_shulker_box.json new file mode 100644 index 00000000..36973a4d --- /dev/null +++ b/assets/minecraft/blockstates/white_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/white_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_stained_glass.json b/assets/minecraft/blockstates/white_stained_glass.json new file mode 100644 index 00000000..2fc6c58c --- /dev/null +++ b/assets/minecraft/blockstates/white_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/white_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_stained_glass_pane.json b/assets/minecraft/blockstates/white_stained_glass_pane.json new file mode 100644 index 00000000..247883a6 --- /dev/null +++ b/assets/minecraft/blockstates/white_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/white_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_terracotta.json b/assets/minecraft/blockstates/white_terracotta.json new file mode 100644 index 00000000..184ea808 --- /dev/null +++ b/assets/minecraft/blockstates/white_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/white_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_tulip.json b/assets/minecraft/blockstates/white_tulip.json new file mode 100644 index 00000000..a5d01edb --- /dev/null +++ b/assets/minecraft/blockstates/white_tulip.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/white_tulip" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_wall_banner.json b/assets/minecraft/blockstates/white_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/white_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/white_wool.json b/assets/minecraft/blockstates/white_wool.json new file mode 100644 index 00000000..3c23fc09 --- /dev/null +++ b/assets/minecraft/blockstates/white_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/white_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/wither_rose.json b/assets/minecraft/blockstates/wither_rose.json new file mode 100644 index 00000000..f0175194 --- /dev/null +++ b/assets/minecraft/blockstates/wither_rose.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/wither_rose" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/wither_skeleton_skull.json b/assets/minecraft/blockstates/wither_skeleton_skull.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/wither_skeleton_skull.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/wither_skeleton_wall_skull.json b/assets/minecraft/blockstates/wither_skeleton_wall_skull.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/wither_skeleton_wall_skull.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_banner.json b/assets/minecraft/blockstates/yellow_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/yellow_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_bed.json b/assets/minecraft/blockstates/yellow_bed.json new file mode 100644 index 00000000..6577c90a --- /dev/null +++ b/assets/minecraft/blockstates/yellow_bed.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/bed" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_candle.json b/assets/minecraft/blockstates/yellow_candle.json new file mode 100644 index 00000000..afe85e3c --- /dev/null +++ b/assets/minecraft/blockstates/yellow_candle.json @@ -0,0 +1,28 @@ +{ + "variants": { + "candles=1,lit=false": { + "model": "minecraft:block/yellow_candle_one_candle" + }, + "candles=1,lit=true": { + "model": "minecraft:block/yellow_candle_one_candle_lit" + }, + "candles=2,lit=false": { + "model": "minecraft:block/yellow_candle_two_candles" + }, + "candles=2,lit=true": { + "model": "minecraft:block/yellow_candle_two_candles_lit" + }, + "candles=3,lit=false": { + "model": "minecraft:block/yellow_candle_three_candles" + }, + "candles=3,lit=true": { + "model": "minecraft:block/yellow_candle_three_candles_lit" + }, + "candles=4,lit=false": { + "model": "minecraft:block/yellow_candle_four_candles" + }, + "candles=4,lit=true": { + "model": "minecraft:block/yellow_candle_four_candles_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_candle_cake.json b/assets/minecraft/blockstates/yellow_candle_cake.json new file mode 100644 index 00000000..c0e90bf1 --- /dev/null +++ b/assets/minecraft/blockstates/yellow_candle_cake.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "minecraft:block/yellow_candle_cake" + }, + "lit=true": { + "model": "minecraft:block/yellow_candle_cake_lit" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_carpet.json b/assets/minecraft/blockstates/yellow_carpet.json new file mode 100644 index 00000000..3586a277 --- /dev/null +++ b/assets/minecraft/blockstates/yellow_carpet.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/yellow_carpet" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_concrete.json b/assets/minecraft/blockstates/yellow_concrete.json new file mode 100644 index 00000000..92ca5a20 --- /dev/null +++ b/assets/minecraft/blockstates/yellow_concrete.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/yellow_concrete" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_concrete_powder.json b/assets/minecraft/blockstates/yellow_concrete_powder.json new file mode 100644 index 00000000..7b103da4 --- /dev/null +++ b/assets/minecraft/blockstates/yellow_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "variants": { + "": [ + { + "model": "minecraft:block/yellow_concrete_powder" + }, + { + "model": "minecraft:block/yellow_concrete_powder", + "y": 90 + }, + { + "model": "minecraft:block/yellow_concrete_powder", + "y": 180 + }, + { + "model": "minecraft:block/yellow_concrete_powder", + "y": 270 + } + ] + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_glazed_terracotta.json b/assets/minecraft/blockstates/yellow_glazed_terracotta.json new file mode 100644 index 00000000..d4f7be2c --- /dev/null +++ b/assets/minecraft/blockstates/yellow_glazed_terracotta.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "minecraft:block/yellow_glazed_terracotta", + "y": 270 + }, + "facing=north": { + "model": "minecraft:block/yellow_glazed_terracotta", + "y": 180 + }, + "facing=south": { + "model": "minecraft:block/yellow_glazed_terracotta" + }, + "facing=west": { + "model": "minecraft:block/yellow_glazed_terracotta", + "y": 90 + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_shulker_box.json b/assets/minecraft/blockstates/yellow_shulker_box.json new file mode 100644 index 00000000..c2b02b98 --- /dev/null +++ b/assets/minecraft/blockstates/yellow_shulker_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/yellow_shulker_box" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_stained_glass.json b/assets/minecraft/blockstates/yellow_stained_glass.json new file mode 100644 index 00000000..fdf0757e --- /dev/null +++ b/assets/minecraft/blockstates/yellow_stained_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/yellow_stained_glass" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_stained_glass_pane.json b/assets/minecraft/blockstates/yellow_stained_glass_pane.json new file mode 100644 index 00000000..24cbfa52 --- /dev/null +++ b/assets/minecraft/blockstates/yellow_stained_glass_pane.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_post" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_noside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_noside_alt" + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_noside_alt", + "y": 90 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/yellow_stained_glass_pane_noside", + "y": 270 + }, + "when": { + "west": "false" + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_terracotta.json b/assets/minecraft/blockstates/yellow_terracotta.json new file mode 100644 index 00000000..4a2aca6b --- /dev/null +++ b/assets/minecraft/blockstates/yellow_terracotta.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/yellow_terracotta" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_wall_banner.json b/assets/minecraft/blockstates/yellow_wall_banner.json new file mode 100644 index 00000000..f5e2c87f --- /dev/null +++ b/assets/minecraft/blockstates/yellow_wall_banner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/banner" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/yellow_wool.json b/assets/minecraft/blockstates/yellow_wool.json new file mode 100644 index 00000000..1392ae51 --- /dev/null +++ b/assets/minecraft/blockstates/yellow_wool.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/yellow_wool" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/zombie_head.json b/assets/minecraft/blockstates/zombie_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/zombie_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/blockstates/zombie_wall_head.json b/assets/minecraft/blockstates/zombie_wall_head.json new file mode 100644 index 00000000..3951e3ee --- /dev/null +++ b/assets/minecraft/blockstates/zombie_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/skull" + } + } +} \ No newline at end of file diff --git a/assets/minecraft/font/alt.json b/assets/minecraft/font/alt.json new file mode 100644 index 00000000..0c7f8f38 --- /dev/null +++ b/assets/minecraft/font/alt.json @@ -0,0 +1,31 @@ +{ + "providers": [ + { + "type": "reference", + "id": "minecraft:include/space" + }, + { + "type": "bitmap", + "file": "minecraft:font/ascii_sga.png", + "ascent": 7, + "chars": [ + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F", + "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005A\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F", + "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007A\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + } + ] +} diff --git a/assets/minecraft/font/default.json b/assets/minecraft/font/default.json new file mode 100644 index 00000000..02db6465 --- /dev/null +++ b/assets/minecraft/font/default.json @@ -0,0 +1,19 @@ +{ + "providers": [ + { + "type": "reference", + "id": "minecraft:include/space" + }, + { + "type": "reference", + "id": "minecraft:include/default", + "filter": { + "uniform": false + } + }, + { + "type": "reference", + "id": "minecraft:include/unifont" + } + ] +} diff --git a/assets/minecraft/font/illageralt.json b/assets/minecraft/font/illageralt.json new file mode 100644 index 00000000..a2db2cd8 --- /dev/null +++ b/assets/minecraft/font/illageralt.json @@ -0,0 +1,20 @@ +{ + "providers": [ + { + "type": "reference", + "id": "minecraft:include/space" + }, + { + "type": "bitmap", + "file": "minecraft:font/asciillager.png", + "ascent": 7, + "chars": [ + "\u0021\u002C\u002D\u002E\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u003F\u0061", + "\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F\u0070\u0071", + "\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007A\u0041\u0042\u0043\u0044\u0045\u0046\u0047", + "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057", + "\u0058\u0059\u005A\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + } + ] +} diff --git a/assets/minecraft/font/include/default.json b/assets/minecraft/font/include/default.json new file mode 100644 index 00000000..65c200eb --- /dev/null +++ b/assets/minecraft/font/include/default.json @@ -0,0 +1,184 @@ +{ + "providers": [ + { + "type": "bitmap", + "file": "minecraft:font/nonlatin_european.png", + "ascent": 7, + "chars": [ + "\u00a1\u2030\u00ad\u00b7\u20b4\u2260\u00bf\u00d7\u00d8\u00de\u04bb\u00f0\u00f8\u00fe\u0391\u0392", + "\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3", + "\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba", + "\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u0402", + "\u0405\u0406\u0408\u0409\u040a\u040b\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u041a", + "\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a", + "\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u043a\u043b", + "\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b", + "\u044c\u044d\u044e\u044f\u0454\u0455\u0456\u0458\u0459\u045a\u2013\u2014\u2018\u2019\u201c\u201d", + "\u201e\u2026\u204a\u2190\u2191\u2192\u2193\u21c4\uff0b\u018f\u0259\u025b\u026a\u04ae\u04af\u04e8", + "\u04e9\u02bb\u02cc\u037e\u0138\u1e9e\u00df\u20bd\u20ac\u0462\u0463\u0474\u0475\u04c0\u0472\u0473", + "\u2070\u00b9\u00b3\u2074\u2075\u2076\u2077\u2078\u2079\u207a\u207b\u207c\u207d\u207e\u2071\u2122", + "\u0294\u0295\u29c8\u2694\u2620\u049a\u049b\u0492\u0493\u04b0\u04b1\u04d8\u04d9\u0496\u0497\u04a2", + "\u04a3\u04ba\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05db\u05dc\u05de\u05dd", + "\u05e0\u05df\u05e1\u05e2\u05e4\u05e3\u05e6\u05e5\u05e7\u05e8\u00a2\u00a4\u00a5\u00a9\u00ae\u00b5", + "\u00b6\u00bc\u00bd\u00be\u0387\u2010\u201a\u2020\u2021\u2022\u2031\u2032\u2033\u2034\u2035\u2036", + "\u2037\u2039\u203a\u203b\u203c\u203d\u2042\u2048\u2049\u204b\u204e\u204f\u2051\u2052\u2057\u2117", + "\u2212\u2213\u221e\u2600\u2601\u2608\u0404\u2632\u2635\u263d\u2640\u2642\u26a5\u2660\u2663\u2665", + "\u2666\u2669\u266a\u266b\u266c\u266d\u266e\u266f\u2680\u2681\u2682\u2683\u2684\u2685\u02ac\u26a1", + "\u26cf\u2714\u2744\u274c\u2764\u2b50\u2e18\u2e2e\u2e35\u2e38\u2e41\u2e4b\u295d\u1614\u0190\u07c8", + "\u03db\u3125\u2c6f\u15fa\u0186\u15e1\u018e\u2132\u2141\ua7b0\ua780\u0500\ua779\u1d1a\u27d8\u2229", + "\u0245\u2144\u0250\u0254\u01dd\u025f\u1d77\u0265\u1d09\u027e\u029e\ua781\u026f\u0279\u0287\u028c", + "\u028d\u028e\u0531\u0532\u0533\u0534\u0536\u0537\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540", + "\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054b\u054c\u054d\u054e\u054f\u0550\u0551", + "\u0552\u0553\u0554\u0555\u0556\u0559\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a", + "\u056b\u056c\u056d\u056e\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a", + "\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u05e9\u05ea\u0538", + "\u055a\u055b\u055c\u055d\u055e\u055f\u0560\u0588\u058f\u00af\u017f\u01b7\u0292\u01f7\u01bf\u021c", + "\u021d\u0224\u0225\u02d9\ua75a\ua75b\u2011\u214b\u23cf\u23e9\u23ea\u23ed\u23ee\u23ef\u23f4\u23f5", + "\u23f6\u23f7\u23f8\u23f9\u23fa\u23fb\u23fc\u23fd\u2b58\u25b2\u25b6\u25bc\u25c0\u25cf\u25e6\u25d8", + "\u2693\u26e8\u0132\u0133\u01c9\ua728\ua729\ua739\ua73b\ufb00\ufb01\ufb02\ufb03\ufb05\ufffd\u0535", + "\u054a\u16a0\u16a2\u16a3\u16a4\u16a5\u16a6\u16a7\u16a8\u16a9\u16aa\u16ab\u16ac\u16ad\u16ae\u16af", + "\u16b0\u16b1\u16b2\u16b3\u16b4\u16b6\u16b7\u16b8\u16b9\u16ba\u16bb\u16bc\u16bd\u16be\u16bf\u16c0", + "\u16c1\u16c2\u16c3\u16c4\u16c5\u16c6\u16c7\u16c8\u16c9\u16ca\u16cb\u16cc\u16cd\u16ce\u16cf\u16d0", + "\u16d1\u16d2\u16d3\u16d4\u16d5\u16d6\u16d7\u16d8\u16d9\u16da\u16db\u16dc\u16dd\u16de\u16df\u16e0", + "\u16e1\u16e2\u16e3\u16e4\u16e5\u16e6\u16e7\u16e8\u16e9\u16ea\u16eb\u16ec\u16ed\u16ee\u16ef\u16f0", + "\u16f1\u16f2\u16f3\u16f4\u16f5\u16f6\u16f7\u16f8\u263a\u263b\u00a6\u2639\u05da\u05f3\u05f4\u05f0", + "\u05f1\u05f2\u05be\u05c3\u05c6\u00b4\u00a8\u1d00\u0299\u1d04\u1d05\u1d07\ua730\u0262\u029c\u1d0a", + "\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\ua7af\u0280\ua731\u1d1b\u1d1c\u1d20\u1d21\u028f\u1d22\u00a7", + "\u0271\u0273\u0272\u0288\u0256\u0261\u02a1\u0255\u0291\u0278\u029d\u02a2\u027b\u0281\u0266\u028b", + "\u0270\u026c\u026e\u0298\u01c0\u01c3\u01c2\u01c1\u0253\u0257\u1d91\u0284\u0260\u029b\u0267\u026b", + "\u0268\u0289\u028a\u0258\u0275\u0264\u025c\u025e\u0251\u0252\u025a\u025d\u0181\u0189\u0191\u01a9", + "\u01b2\u10a0\u10a1\u10a2\u10a3\u10a4\u10a5\u10a6\u10a7\u10a8\u10a9\u10aa\u10ab\u10ac\u10ad\u10ae", + "\u10af\u10b0\u10b1\u10b2\u10b3\u10b4\u10b5\u10b6\u10b7\u10b8\u10b9\u10ba\u10bb\u10bc\u10bd\u10be", + "\u10bf\u10c0\u10c1\u10c2\u10c3\u10c4\u10c5\u10c7\u10cd\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6", + "\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10e3\u10e4\u10e5\u10e6", + "\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10ef\u10f0\u10f1\u10f2\u10f3\u10f4\u10f5\u10f6", + "\u10f7\u10f8\u10f9\u10fa\u10fb\u10fc\u10fd\u10fe\u10ff\ufb4a\ufb2b\ufb4e\ufb44\ufb3b\ufb1f\ufb1d", + "\ufb4b\ufb35\ufb4c\ufb31\ua727\ua726\u027a\u2c71\u02a0\u0297\u0296\u026d\u0277\u027f\u0285\u0286", + "\u0293\u029a\u20aa\u20be\u058a\u2d00\u2d01\u2d02\u2d03\u2d04\u2d05\u2d06\u2d21\u2d07\u2d08\u2d09", + "\u2d0a\u2d0b\u2d0c\u2d22\u2d0d\u2d0e\u2d0f\u2d10\u2d11\u2d12\u2d23\u2d13\u2d14\u2d15\u2d16\u2d17", + "\u2d18\u2d19\u2d1a\u2d1b\u2d1c\u2d1d\u2d1e\u2d24\u2d1f\u2d20\u2d25\u215b\u215c\u215d\u215e\u2153", + "\u2154\u2709\u2602\u2614\u2604\u26c4\u2603\u231b\u231a\u2690\u270e\u2763\u2664\u2667\u2661\u2662", + "\u26c8\u2630\u2631\u2633\u2634\u2636\u2637\u2194\u21d2\u21cf\u21d4\u21f5\u2200\u2203\u2204\u2209", + "\u220b\u220c\u2282\u2283\u2284\u2285\u2227\u2228\u22bb\u22bc\u22bd\u2225\u2262\u22c6\u2211\u22a4", + "\u22a5\u22a2\u22a8\u2254\u2201\u2234\u2235\u221b\u221c\u2202\u22c3\u2286\u2287\u25a1\u25b3\u25b7", + "\u25bd\u25c1\u25c6\u25c7\u25cb\u25ce\u2606\u2605\u2718\u2080\u2081\u2082\u2083\u2084\u2085\u2086", + "\u2087\u2088\u2089\u208a\u208b\u208c\u208d\u208e\u222b\u222e\u221d\u2300\u2302\u2318\u3012\u027c", + "\u0184\u0185\u1e9f\u023d\u019a\u019b\u0220\u019e\u019f\u01a7\u01a8\u01aa\u01b8\u01b9\u01bb\u01bc", + "\u01bd\u01be\u0221\u0234\u0235\u0236\u023a\u2c65\u023b\u023c\u0246\u0247\u023e\u2c66\u0241\u0242", + "\u0243\u0244\u0248\u0249\u024a\u024b\u024c\u024d\u024e\u024f\u1e9c\u1e9d\u1efc\u1efd\u1efe\u1eff", + "\ua7a8\ua7a9\ud800\udf30\ud800\udf31\ud800\udf32\ud800\udf33\ud800\udf34\ud800\udf35\ud800\udf36\ud800\udf37\ud800\udf38\ud800\udf39\ud800\udf3a\ud800\udf3b\ud800\udf3c\ud800\udf3d", + "\ud800\udf3e\ud800\udf3f\ud800\udf40\ud800\udf41\ud800\udf42\ud800\udf43\ud800\udf44\ud800\udf45\ud800\udf46\ud800\udf47\ud800\udf48\ud800\udf49\ud800\udf4a\ud83c\udf27\ud83d\udd25\ud83c\udf0a", + "\u2150\u2151\u2155\u2156\u2157\u2159\u215a\u215f\u2189\ud83d\udde1\ud83c\udff9\ud83e\ude93\ud83d\udd31\ud83c\udfa3\ud83e\uddea\u2697", + "\u2bea\u2beb\u2c6d\ud83d\udee1\u2702\ud83c\udf56\ud83e\udea3\ud83d\udd14\u23f3\u2691\u20a0\u20a1\u20a2\u20a3\u20a4\u20a5", + "\u20a6\u20a9\u20ab\u20ad\u20ae\u20b0\u20b1\u20b2\u20b3\u20b5\u20b6\u20b7\u20b8\u20b9\u20ba\u20bb", + "\u20bc\u20bf\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + }, + { + "type": "bitmap", + "file": "minecraft:font/accented.png", + "height": 12, + "ascent": 10, + "chars": [ + "\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf", + "\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d9\u00da\u00db\u00dc\u00dd\u00e0\u00e1\u00e2\u00e3", + "\u00e4\u00e5\u00e6\u00e7\u00ec\u00ed\u00ee\u00ef\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f9\u00fa", + "\u00fb\u00fc\u00fd\u00ff\u0100\u0101\u0102\u0103\u0104\u0105\u0106\u0107\u0108\u0109\u010a\u010b", + "\u010c\u010d\u010e\u010f\u0110\u0111\u0112\u0113\u0114\u0115\u0116\u0117\u0118\u0119\u011a\u011b", + "\u011c\u011d\u1e20\u1e21\u011e\u011f\u0120\u0121\u0122\u0123\u0124\u0125\u0126\u0127\u0128\u0129", + "\u012a\u012b\u012c\u012d\u012e\u012f\u0130\u0131\u0134\u0135\u0136\u0137\u0139\u013a\u013b\u013c", + "\u013d\u013e\u013f\u0140\u0141\u0142\u0143\u0144\u0145\u0146\u0147\u0148\u014a\u014b\u014c\u014d", + "\u014e\u014f\u0150\u0151\u0152\u0153\u0154\u0155\u0156\u0157\u0158\u0159\u015a\u015b\u015c\u015d", + "\u015e\u015f\u0160\u0161\u0162\u0163\u0164\u0165\u0166\u0167\u0168\u0169\u016a\u016b\u016c\u016d", + "\u016e\u016f\u0170\u0171\u0172\u0173\u0174\u0175\u0176\u0177\u0178\u0179\u017a\u017b\u017c\u017d", + "\u017e\u01fc\u01fd\u01fe\u01ff\u0218\u0219\u021a\u021b\u0386\u0388\u0389\u038a\u038c\u038e\u038f", + "\u0390\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03ca\u03cb\u03cc\u03cd\u03ce\u0400\u0401\u0403", + "\u0407\u040c\u040d\u040e\u0419\u0439\u0450\u0451\u0452\u0453\u0457\u045b\u045c\u045d\u045e\u045f", + "\u0490\u0491\u1e02\u1e03\u1e0a\u1e0b\u1e1e\u1e1f\u1e22\u1e23\u1e30\u1e31\u1e40\u1e41\u1e56\u1e57", + "\u1e60\u1e61\u1e6a\u1e6b\u1e80\u1e81\u1e82\u1e83\u1e84\u1e85\u1ef2\u1ef3\u00e8\u00e9\u00ea\u00eb", + "\u0149\u01e7\u01eb\u040f\u1e0d\u1e25\u1e5b\u1e6d\u1e92\u1eca\u1ecb\u1ecc\u1ecd\u1ee4\u1ee5\u2116", + "\u0207\u0194\u0263\u0283\u2047\u01f1\u01f2\u01f3\u01c4\u01c5\u01c6\u01c7\u01c8\u01ca\u01cb\u01cc", + "\u2139\u1d6b\ua732\ua733\ua734\ua735\ua736\ua737\ua738\ua73a\ua73c\ua73d\ua74e\ua74f\ua760\ua761", + "\ufb04\ufb06\u16a1\u16b5\u01a0\u01a1\u01af\u01b0\u1eae\u1eaf\u1ea4\u1ea5\u1ebe\u1ebf\u1ed1\u1eda", + "\u1edb\u1ee8\u1ee9\u1eb0\u1eb1\u1ea6\u1ea7\u1ec0\u1ec1\u1ed3\u1edc\u1edd\u1eea\u1eeb\u1ea2\u1ea3", + "\u1eb2\u1eb3\u1ea8\u1ea9\u1eba\u1ebb\u1ed5\u1ede\u1ec2\u1ec3\u1ec8\u1ec9\u1ece\u1ecf\u1ed4\u1edf", + "\u1ee6\u1ee7\u1eec\u1eed\u1ef6\u1ef7\u1ea0\u1ea1\u1eb6\u1eb7\u1eac\u1ead\u1eb8\u1eb9\u1ec6\u1ec7", + "\u1ed8\u1ed9\u1ee2\u1ee3\u1ef0\u1ef1\u1ef4\u1ef5\u1ed0\u0195\u1eaa\u1eab\u1ed6\u1ed7\u1eef\u261e", + "\u261c\u262e\u1eb4\u1eb5\u1ebc\u1ebd\u1ec4\u1ec5\u1ed2\u1ee0\u1ee1\u1eee\u1ef8\u1ef9\u0498\u0499", + "\u04a0\u04a1\u04aa\u04ab\u01f6\u26a0\u24ea\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468", + "\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24b6\u24b7\u24b8\u24b9\u24ba", + "\u24bb\u24bc\u24bd\u24be\u24bf\u24c0\u24c1\u24c2\u24c3\u24c4\u24c5\u24c6\u24c7\u24c8\u24c9\u24ca", + "\u24cb\u24cc\u24cd\u24ce\u24cf\u24d0\u24d1\u24d2\u24d3\u24d4\u24d5\u24d6\u24d7\u24d8\u24d9\u24da", + "\u24db\u24dc\u24dd\u24de\u24df\u24e0\u24e1\u24e2\u24e3\u24e4\u24e5\u24e6\u24e7\u24e8\u24e9\u0327", + "\u0282\u0290\u0276\u01cd\u01ce\u01de\u01df\u01fa\u01fb\u0202\u0203\u0226\u0227\u01e0\u01e1\u1e00", + "\u1e01\u0200\u0201\u1e06\u1e07\u1e04\u1e05\u1d6c\u1e08\u1e09\u1e10\u1e11\u1e12\u1e13\u1e0e\u1e0f", + "\u1e0c\u1d6d\u1e14\u1e15\u1e16\u1e17\u1e18\u1e19\u1e1c\u1e1d\u0228\u0229\u1e1a\u1e1b\u0204\u0205", + "\u0206\u1d6e\u01f4\u01f5\u01e6\u1e26\u1e27\u1e28\u1e29\u1e2a\u1e2b\u021e\u021f\u1e24\u1e96\u1e2e", + "\u1e2f\u020a\u020b\u01cf\u01d0\u0208\u0209\u1e2c\u1e2d\u01f0\u0237\u01e8\u01e9\u1e32\u1e33\u1e34", + "\u1e35\u1e3a\u1e3b\u1e3c\u1e3d\u1e36\u1e37\u1e38\u1e39\u2c62\u1e3e\u1e3f\u1e42\u1e43\u1d6f\u1e44", + "\u1e45\u1e46\u1e47\u1e4a\u1e4b\u01f8\u01f9\u1e48\u1e49\u1d70\u01ec\u01ed\u022c\u022d\u1e4c\u1e4d", + "\u1e4e\u1e4f\u1e50\u1e51\u1e52\u1e53\u020e\u020f\u022a\u022b\u01d1\u01d2\u022e\u022f\u0230\u0231", + "\u020c\u020d\u01ea\u1e54\u1e55\u1d71\u0212\u0213\u1e58\u1e59\u1e5c\u1e5d\u1e5e\u1e5f\u0210\u0211", + "\u1e5a\u1d73\u1d72\u1e64\u1e65\u1e66\u1e67\u1e62\u1e63\u1e68\u1e69\u1d74\u1e70\u1e71\u1e6e\u1e6f", + "\u1e6c\u1e97\u1d75\u1e72\u1e73\u1e76\u1e77\u1e78\u1e79\u1e7a\u1e7b\u01d3\u01d4\u01d5\u01d6\u01d7", + "\u01d8\u01d9\u01da\u01db\u01dc\u1e74\u1e75\u0214\u0215\u0216\u1e7e\u1e7f\u1e7c\u1e7d\u1e86\u1e87", + "\u1e88\u1e89\u1e98\u1e8c\u1e8d\u1e8a\u1e8b\u0232\u0233\u1e8e\u1e8f\u1e99\u1e94\u1e95\u1e90\u1e91", + "\u1e93\u1d76\u01ee\u01ef\u1e9b\ua73e\ua73f\u01e2\u01e3\u1d7a\u1efb\u1d02\u1d14\uab63\u0238\u02a3", + "\u02a5\u02a4\u02a9\u02aa\u02ab\u0239\u02a8\u02a6\u02a7\uab50\uab51\u20a7\u1efa\ufb2e\ufb2f\u0180", + "\u0182\u0183\u0187\u0188\u018a\u018b\u018c\u0193\u01e4\u01e5\u0197\u0196\u0269\u0198\u0199\u019d", + "\u01a4\u01a5\u027d\u01a6\u01ac\u01ad\u01ab\u01ae\u0217\u01b1\u019c\u01b3\u01b4\u01b5\u01b6\u01a2", + "\u01a3\u0222\u0223\u02ad\u02ae\u02af\ufb14\ufb15\ufb17\ufb16\ufb13\u04d0\u04d1\u04d2\u04d3\u04f6", + "\u04f7\u0494\u0495\u04d6\u04d7\u04bc\u04bd\u04be\u04bf\u04da\u04db\u04dc\u04dd\u04c1\u04c2\u04de", + "\u04df\u04e2\u04e3\u04e4\u04e5\u04e6\u04e7\u04ea\u04eb\u04f0\u04f1\u04ee\u04ef\u04f2\u04f3\u04f4", + "\u04f5\u04f8\u04f9\u04ec\u04ed\u0476\u0477\u04d4\u04fa\u0502\ua682\ua680\ua688\u052a\u052c\ua684", + "\u0504\u0510\u04e0\u0506\u048a\u04c3\u049e\u049c\u051e\u051a\u04c5\u052e\u0512\u0520\u0508\u0514", + "\u04cd\u04c9\u0528\u04c7\u04a4\u0522\u050a\u04a8\u0524\u04a6\u048e\u0516\u050c\ua690\u04ac\ua68a", + "\ua68c\u050e\u04b2\u04fc\u04fe\u0526\ua694\u04b4\ua68e\u04b6\u04cb\u04b8\ua692\ua696\ua686\u048c", + "\u0518\u051c\u04d5\u04fb\u0503\ua683\ua681\ua689\u052b\u052d\ua685\u0505\u0511\u04e1\u0507\u048b", + "\u04c4\u049f\u049d\u051f\u051b\u04c6\u052f\u0513\u0521\u0509\u0515\u04ce\u04ca\u0529\u04c8\u04a5", + "\u0523\u050b\u04a9\u0525\u04a7\u048f\u0517\u050d\ua691\u04ad\ua68b\ua68d\u050f\u04b3\u04fd\u04ff", + "\u0527\ua695\u04b5\ua68f\u04b7\u04cc\u04b9\ua693\ua697\ua687\u048d\u0519\u051d\u1f08\u1f00\u1f09", + "\u1f01\u1f0a\u1f02\u1f0b\u1f03\u1f0c\u1f04\u1f0d\u1f05\u1f0e\u1f06\u1f0f\u1f07\u1fba\u1f70\u1fb8", + "\u1fb0\u1fb9\u1fb1\u1fbb\u1f71\u1f88\u1f80\u1f89\u1f81\u1f8a\u1f82\u1f8b\u1f83\u1f8c\u1f84\u1f8d", + "\u1f85\u1f8e\u1f86\u1f8f\u1f87\u1fbc\u1fb4\u1fb6\u1fb7\u1fb2\u1fb3\u1f18\u1f10\u1f19\u1f11\u1f1a", + "\u1f12\u1f1b\u1f13\u1f1c\u1f14\u1f1d\u1f15\u1fc8\u1fc9\u1f72\u1f73\u1f28\u1f20\u1fca\u1f74\u1f29", + "\u1f21\u1f2a\u1f22\u1f2b\u1f23\u1f2c\u1f24\u1f2d\u1f25\u1f2e\u1f26\u1f2f\u1f27\u1f98\u1f90\u1f99", + "\u1f91\u1f9a\u1f92\u1f9b\u1f93\u1f9c\u1f94\u1f9d\u1f95\u1f9e\u1f96\u1f9f\u1f97\u1fcb\u1f75\u1fcc", + "\u1fc3\u1fc2\u1fc4\u1fc6\u1fc7\u1fda\u1f76\u1fdb\u1f77\u1f38\u1f30\u1f39\u1f31\u1f3a\u1f32\u1f3b", + "\u1f33\u1f3c\u1f34\u1f3d\u1f35\u1f3e\u1f36\u1f3f\u1f37\u1fd8\u1fd0\u1fd9\u1fd1\u1fd2\u1fd3\u1fd6", + "\u1fd7\u1ff8\u1f78\u1ff9\u1f79\u1f48\u1f40\u1f49\u1f41\u1f4a\u1f42\u1f4b\u1f43\u1f4c\u1f44\u1f4d", + "\u1f45\u1fec\u1fe4\u1fe5\u1fea\u1f7a\u1feb\u1f7b\u1f59\u1f51\u1f5b\u1f53\u1f5d\u1f55\u1f5f\u1f57", + "\u1fe8\u1fe0\u1fe9\u1fe1\u03d3\u03d4\u1fe2\u1fe3\u1fe7\u1f50\u1f52\u1f54\u1fe6\u1f56\u1ffa\u1f7c", + "\u1ffb\u1f7d\u1f68\u1f60\u1f69\u1f61\u1f6a\u1f62\u1f6b\u1f63\u1f6c\u1f64\u1f6d\u1f65\u1f6e\u1f66", + "\u1f6f\u1f67\u1fa8\u1fa0\u1fa9\u1fa1\u1faa\u1fa2\u1fab\u1fa3\u1fac\u1fa4\u1fad\u1fa5\u1fae\u1fa6", + "\u1faf\u1fa7\u1ffc\u1ff3\u1ff2\u1ff4\u1ff6\u1ff7\u262f\u2610\u2611\u2612\u018d\u01ba\u2c7e\u023f", + "\u2c7f\u0240\u1d80\ua7c4\ua794\u1d81\u1d82\u1d83\ua795\u1d84\u1d85\u1d86\u1d87\u1d88\u1d89\u1d8a", + "\u1d8b\u1d8c\u1d8d\ua7c6\u1d8e\u1d8f\u1d90\u1d92\u1d93\u1d94\u1d95\u1d96\u1d97\u1d98\u1d99\u1d9a", + "\u1e9a\u2152\u2158\u20a8\u20af\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + }, + { + "type": "bitmap", + "file": "minecraft:font/ascii.png", + "ascent": 7, + "chars": [ + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0020\u0021\u0022\u0023\u0024\u0025\u0026\u0027\u0028\u0029\u002a\u002b\u002c\u002d\u002e\u002f", + "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u003a\u003b\u003c\u003d\u003e\u003f", + "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f", + "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u005b\u005c\u005d\u005e\u005f", + "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f", + "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u007b\u007c\u007d\u007e\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00a3\u0000\u0000\u0192", + "\u0000\u0000\u0000\u0000\u0000\u0000\u00aa\u00ba\u0000\u0000\u00ac\u0000\u0000\u0000\u00ab\u00bb", + "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510", + "\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567", + "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u2205\u2208\u0000", + "\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u0000\u221a\u207f\u00b2\u25a0\u0000" + ] + } + ] +} diff --git a/assets/minecraft/font/include/space.json b/assets/minecraft/font/include/space.json new file mode 100644 index 00000000..788cbf18 --- /dev/null +++ b/assets/minecraft/font/include/space.json @@ -0,0 +1,11 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": 4, + "\u200c": 0 + } + } + ] +} diff --git a/assets/minecraft/font/include/unifont.json b/assets/minecraft/font/include/unifont.json new file mode 100644 index 00000000..3d4f2671 --- /dev/null +++ b/assets/minecraft/font/include/unifont.json @@ -0,0 +1,4 @@ +{ + "providers": [ + ] +} diff --git a/assets/minecraft/font/uniform.json b/assets/minecraft/font/uniform.json new file mode 100644 index 00000000..27e9e36b --- /dev/null +++ b/assets/minecraft/font/uniform.json @@ -0,0 +1,12 @@ +{ + "providers": [ + { + "type": "reference", + "id": "minecraft:include/space" + }, + { + "type": "reference", + "id": "minecraft:include/unifont" + } + ] +} diff --git a/assets/minecraft/gpu_warnlist.json b/assets/minecraft/gpu_warnlist.json new file mode 100644 index 00000000..291f55e9 --- /dev/null +++ b/assets/minecraft/gpu_warnlist.json @@ -0,0 +1,7 @@ +{ + "renderer" : [], + "version" : [ + "\\bMetal\\b" + ], + "vendor" : [] +} diff --git a/assets/minecraft/lang/en_us.json b/assets/minecraft/lang/en_us.json new file mode 100644 index 00000000..0ec346f8 --- /dev/null +++ b/assets/minecraft/lang/en_us.json @@ -0,0 +1,6883 @@ +{ + "accessibility.onboarding.accessibility.button": "Accessibility Settings...", + "accessibility.onboarding.screen.narrator": "Press enter to enable the narrator", + "accessibility.onboarding.screen.title": "Welcome to Minecraft!\n\nWould you like to enable the Narrator or visit the Accessibility Settings?", + "addServer.add": "Done", + "addServer.enterIp": "Server Address", + "addServer.enterName": "Server Name", + "addServer.hideAddress": "Hide Address", + "addServer.resourcePack": "Server Resource Packs", + "addServer.resourcePack.disabled": "Disabled", + "addServer.resourcePack.enabled": "Enabled", + "addServer.resourcePack.prompt": "Prompt", + "addServer.title": "Edit Server Info", + "advancement.advancementNotFound": "Unknown advancement: %s", + "advancements.adventure.adventuring_time.description": "Discover every biome", + "advancements.adventure.adventuring_time.title": "Adventuring Time", + "advancements.adventure.arbalistic.description": "Kill five unique mobs with one crossbow shot", + "advancements.adventure.arbalistic.title": "Arbalistic", + "advancements.adventure.avoid_vibration.description": "Sneak near a Sculk Sensor or Warden to prevent it from detecting you", + "advancements.adventure.avoid_vibration.title": "Sneak 100", + "advancements.adventure.blowback.description": "Kill a Breeze with a deflected Breeze-shot Wind Charge", + "advancements.adventure.blowback.title": "Blowback", + "advancements.adventure.brush_armadillo.description": "Get Armadillo Scutes from an Armadillo using a Brush", + "advancements.adventure.brush_armadillo.title": "Isn't It Scute?", + "advancements.adventure.bullseye.description": "Hit the bullseye of a Target block from at least 30 meters away", + "advancements.adventure.bullseye.title": "Bullseye", + "advancements.adventure.craft_decorated_pot_using_only_sherds.description": "Make a Decorated Pot out of 4 Pottery Sherds", + "advancements.adventure.craft_decorated_pot_using_only_sherds.title": "Careful Restoration", + "advancements.adventure.crafters_crafting_crafters.description": "Be near a Crafter when it crafts a Crafter", + "advancements.adventure.crafters_crafting_crafters.title": "Crafters Crafting Crafters", + "advancements.adventure.fall_from_world_height.description": "Free fall from the top of the world (build limit) to the bottom of the world and survive", + "advancements.adventure.fall_from_world_height.title": "Caves & Cliffs", + "advancements.adventure.hero_of_the_village.description": "Successfully defend a village from a raid", + "advancements.adventure.hero_of_the_village.title": "Hero of the Village", + "advancements.adventure.honey_block_slide.description": "Jump into a Honey Block to break your fall", + "advancements.adventure.honey_block_slide.title": "Sticky Situation", + "advancements.adventure.kill_a_mob.description": "Kill any hostile monster", + "advancements.adventure.kill_a_mob.title": "Monster Hunter", + "advancements.adventure.kill_all_mobs.description": "Kill one of every hostile monster", + "advancements.adventure.kill_all_mobs.title": "Monsters Hunted", + "advancements.adventure.kill_mob_near_sculk_catalyst.description": "Kill a mob near a Sculk Catalyst", + "advancements.adventure.kill_mob_near_sculk_catalyst.title": "It Spreads", + "advancements.adventure.lighten_up.description": "Scrape a Copper Bulb with an Axe to make it brighter", + "advancements.adventure.lighten_up.title": "Lighten Up", + "advancements.adventure.lightning_rod_with_villager_no_fire.description": "Protect a Villager from an undesired shock without starting a fire", + "advancements.adventure.lightning_rod_with_villager_no_fire.title": "Surge Protector", + "advancements.adventure.minecraft_trials_edition.description": "Step foot in a Trial Chamber", + "advancements.adventure.minecraft_trials_edition.title": "Minecraft: Trial(s) Edition", + "advancements.adventure.ol_betsy.description": "Shoot a Crossbow", + "advancements.adventure.ol_betsy.title": "Ol' Betsy", + "advancements.adventure.overoverkill.description": "Deal 50 hearts of damage in a single hit using the Mace", + "advancements.adventure.overoverkill.title": "Over-Overkill", + "advancements.adventure.play_jukebox_in_meadows.description": "Make the Meadows come alive with the sound of music from a Jukebox", + "advancements.adventure.play_jukebox_in_meadows.title": "Sound of Music", + "advancements.adventure.read_power_from_chiseled_bookshelf.description": "Read the power signal of a Chiseled Bookshelf using a Comparator", + "advancements.adventure.read_power_from_chiseled_bookshelf.title": "The Power of Books", + "advancements.adventure.revaulting.description": "Unlock an Ominous Vault with an Ominous Trial Key", + "advancements.adventure.revaulting.title": "Revaulting", + "advancements.adventure.root.description": "Adventure, exploration and combat", + "advancements.adventure.root.title": "Adventure", + "advancements.adventure.salvage_sherd.description": "Brush a Suspicious block to obtain a Pottery Sherd", + "advancements.adventure.salvage_sherd.title": "Respecting the Remnants", + "advancements.adventure.shoot_arrow.description": "Shoot something with an Arrow", + "advancements.adventure.shoot_arrow.title": "Take Aim", + "advancements.adventure.sleep_in_bed.description": "Sleep in a Bed to change your respawn point", + "advancements.adventure.sleep_in_bed.title": "Sweet Dreams", + "advancements.adventure.sniper_duel.description": "Kill a Skeleton from at least 50 meters away", + "advancements.adventure.sniper_duel.title": "Sniper Duel", + "advancements.adventure.spyglass_at_dragon.description": "Look at the Ender Dragon through a Spyglass", + "advancements.adventure.spyglass_at_dragon.title": "Is It a Plane?", + "advancements.adventure.spyglass_at_ghast.description": "Look at a Ghast through a Spyglass", + "advancements.adventure.spyglass_at_ghast.title": "Is It a Balloon?", + "advancements.adventure.spyglass_at_parrot.description": "Look at a Parrot through a Spyglass", + "advancements.adventure.spyglass_at_parrot.title": "Is It a Bird?", + "advancements.adventure.summon_iron_golem.description": "Summon an Iron Golem to help defend a village", + "advancements.adventure.summon_iron_golem.title": "Hired Help", + "advancements.adventure.throw_trident.description": "Throw a Trident at something.\nNote: Throwing away your only weapon is not a good idea.", + "advancements.adventure.throw_trident.title": "A Throwaway Joke", + "advancements.adventure.totem_of_undying.description": "Use a Totem of Undying to cheat death", + "advancements.adventure.totem_of_undying.title": "Postmortal", + "advancements.adventure.trade_at_world_height.description": "Trade with a Villager at the build height limit", + "advancements.adventure.trade_at_world_height.title": "Star Trader", + "advancements.adventure.trade.description": "Successfully trade with a Villager", + "advancements.adventure.trade.title": "What a Deal!", + "advancements.adventure.trim_with_all_exclusive_armor_patterns.description": "Apply these smithing templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder", + "advancements.adventure.trim_with_all_exclusive_armor_patterns.title": "Smithing with Style", + "advancements.adventure.trim_with_any_armor_pattern.description": "Craft a trimmed armor at a Smithing Table", + "advancements.adventure.trim_with_any_armor_pattern.title": "Crafting a New Look", + "advancements.adventure.two_birds_one_arrow.description": "Kill two Phantoms with a piercing Arrow", + "advancements.adventure.two_birds_one_arrow.title": "Two Birds, One Arrow", + "advancements.adventure.under_lock_and_key.description": "Unlock a Vault with a Trial Key", + "advancements.adventure.under_lock_and_key.title": "Under Lock and Key", + "advancements.adventure.very_very_frightening.description": "Strike a Villager with lightning", + "advancements.adventure.very_very_frightening.title": "Very Very Frightening", + "advancements.adventure.voluntary_exile.description": "Kill a raid captain.\nMaybe consider staying away from villages for the time being...", + "advancements.adventure.voluntary_exile.title": "Voluntary Exile", + "advancements.adventure.walk_on_powder_snow_with_leather_boots.description": "Walk on Powder Snow... without sinking in it", + "advancements.adventure.walk_on_powder_snow_with_leather_boots.title": "Light as a Rabbit", + "advancements.adventure.who_needs_rockets.description": "Use a Wind Charge to launch yourself upward 8 blocks", + "advancements.adventure.who_needs_rockets.title": "Who Needs Rockets?", + "advancements.adventure.whos_the_pillager_now.description": "Give a Pillager a taste of their own medicine", + "advancements.adventure.whos_the_pillager_now.title": "Who's the Pillager Now?", + "advancements.empty": "There doesn't seem to be anything here...", + "advancements.end.dragon_breath.description": "Collect Dragon's Breath in a Glass Bottle", + "advancements.end.dragon_breath.title": "You Need a Mint", + "advancements.end.dragon_egg.description": "Hold the Dragon Egg", + "advancements.end.dragon_egg.title": "The Next Generation", + "advancements.end.elytra.description": "Find Elytra", + "advancements.end.elytra.title": "Sky's the Limit", + "advancements.end.enter_end_gateway.description": "Escape the island", + "advancements.end.enter_end_gateway.title": "Remote Getaway", + "advancements.end.find_end_city.description": "Go on in, what could happen?", + "advancements.end.find_end_city.title": "The City at the End of the Game", + "advancements.end.kill_dragon.description": "Good luck", + "advancements.end.kill_dragon.title": "Free the End", + "advancements.end.levitate.description": "Levitate up 50 blocks from the attacks of a Shulker", + "advancements.end.levitate.title": "Great View From Up Here", + "advancements.end.respawn_dragon.description": "Respawn the Ender Dragon", + "advancements.end.respawn_dragon.title": "The End... Again...", + "advancements.end.root.description": "Or the beginning?", + "advancements.end.root.title": "The End", + "advancements.husbandry.allay_deliver_cake_to_note_block.description": "Have an Allay drop a Cake at a Note Block", + "advancements.husbandry.allay_deliver_cake_to_note_block.title": "Birthday Song", + "advancements.husbandry.allay_deliver_item_to_player.description": "Have an Allay deliver items to you", + "advancements.husbandry.allay_deliver_item_to_player.title": "You've Got a Friend in Me", + "advancements.husbandry.axolotl_in_a_bucket.description": "Catch an Axolotl in a Bucket", + "advancements.husbandry.axolotl_in_a_bucket.title": "The Cutest Predator", + "advancements.husbandry.balanced_diet.description": "Eat everything that is edible, even if it's not good for you", + "advancements.husbandry.balanced_diet.title": "A Balanced Diet", + "advancements.husbandry.breed_all_animals.description": "Breed all the animals!", + "advancements.husbandry.breed_all_animals.title": "Two by Two", + "advancements.husbandry.breed_an_animal.description": "Breed two animals together", + "advancements.husbandry.breed_an_animal.title": "The Parrots and the Bats", + "advancements.husbandry.complete_catalogue.description": "Tame all Cat variants!", + "advancements.husbandry.complete_catalogue.title": "A Complete Catalogue", + "advancements.husbandry.feed_snifflet.description": "Feed a Snifflet", + "advancements.husbandry.feed_snifflet.title": "Little Sniffs", + "advancements.husbandry.fishy_business.description": "Catch a fish", + "advancements.husbandry.fishy_business.title": "Fishy Business", + "advancements.husbandry.froglights.description": "Have all Froglights in your inventory", + "advancements.husbandry.froglights.title": "With Our Powers Combined!", + "advancements.husbandry.kill_axolotl_target.description": "Team up with an Axolotl and win a fight", + "advancements.husbandry.kill_axolotl_target.title": "The Healing Power of Friendship!", + "advancements.husbandry.leash_all_frog_variants.description": "Get each Frog variant on a Lead", + "advancements.husbandry.leash_all_frog_variants.title": "When the Squad Hops into Town", + "advancements.husbandry.make_a_sign_glow.description": "Make the text of any kind of sign glow", + "advancements.husbandry.make_a_sign_glow.title": "Glow and Behold!", + "advancements.husbandry.netherite_hoe.description": "Use a Netherite Ingot to upgrade a Hoe, and then reevaluate your life choices", + "advancements.husbandry.netherite_hoe.title": "Serious Dedication", + "advancements.husbandry.obtain_sniffer_egg.description": "Obtain a Sniffer Egg", + "advancements.husbandry.obtain_sniffer_egg.title": "Smells Interesting", + "advancements.husbandry.plant_any_sniffer_seed.description": "Plant any Sniffer seed", + "advancements.husbandry.plant_any_sniffer_seed.title": "Planting the Past", + "advancements.husbandry.plant_seed.description": "Plant a seed and watch it grow", + "advancements.husbandry.plant_seed.title": "A Seedy Place", + "advancements.husbandry.remove_wolf_armor.description": "Remove Wolf Armor from a Wolf using Shears", + "advancements.husbandry.remove_wolf_armor.title": "Shear Brilliance", + "advancements.husbandry.repair_wolf_armor.description": "Repair a damaged Wolf Armor using Armadillo Scutes", + "advancements.husbandry.repair_wolf_armor.title": "Good as New", + "advancements.husbandry.ride_a_boat_with_a_goat.description": "Get in a Boat and float with a Goat", + "advancements.husbandry.ride_a_boat_with_a_goat.title": "Whatever Floats Your Goat!", + "advancements.husbandry.root.description": "The world is full of friends and food", + "advancements.husbandry.root.title": "Husbandry", + "advancements.husbandry.safely_harvest_honey.description": "Use a Campfire to collect Honey from a Beehive using a Glass Bottle without aggravating the Bees", + "advancements.husbandry.safely_harvest_honey.title": "Bee Our Guest", + "advancements.husbandry.silk_touch_nest.description": "Move a Bee Nest, with 3 Bees inside, using Silk Touch", + "advancements.husbandry.silk_touch_nest.title": "Total Beelocation", + "advancements.husbandry.tactical_fishing.description": "Catch a Fish... without a Fishing Rod!", + "advancements.husbandry.tactical_fishing.title": "Tactical Fishing", + "advancements.husbandry.tadpole_in_a_bucket.description": "Catch a Tadpole in a Bucket", + "advancements.husbandry.tadpole_in_a_bucket.title": "Bukkit Bukkit", + "advancements.husbandry.tame_an_animal.description": "Tame an animal", + "advancements.husbandry.tame_an_animal.title": "Best Friends Forever", + "advancements.husbandry.wax_off.description": "Scrape Wax off of a Copper block!", + "advancements.husbandry.wax_off.title": "Wax Off", + "advancements.husbandry.wax_on.description": "Apply Honeycomb to a Copper block!", + "advancements.husbandry.wax_on.title": "Wax On", + "advancements.husbandry.whole_pack.description": "Tame one of each Wolf variant", + "advancements.husbandry.whole_pack.title": "The Whole Pack", + "advancements.nether.all_effects.description": "Have every effect applied at the same time", + "advancements.nether.all_effects.title": "How Did We Get Here?", + "advancements.nether.all_potions.description": "Have every potion effect applied at the same time", + "advancements.nether.all_potions.title": "A Furious Cocktail", + "advancements.nether.brew_potion.description": "Brew a Potion", + "advancements.nether.brew_potion.title": "Local Brewery", + "advancements.nether.charge_respawn_anchor.description": "Charge a Respawn Anchor to the maximum", + "advancements.nether.charge_respawn_anchor.title": "Not Quite \"Nine\" Lives", + "advancements.nether.create_beacon.description": "Construct and place a Beacon", + "advancements.nether.create_beacon.title": "Bring Home the Beacon", + "advancements.nether.create_full_beacon.description": "Bring a Beacon to full power", + "advancements.nether.create_full_beacon.title": "Beaconator", + "advancements.nether.distract_piglin.description": "Distract Piglins with gold", + "advancements.nether.distract_piglin.title": "Oh Shiny", + "advancements.nether.explore_nether.description": "Explore all Nether biomes", + "advancements.nether.explore_nether.title": "Hot Tourist Destinations", + "advancements.nether.fast_travel.description": "Use the Nether to travel 7 km in the Overworld", + "advancements.nether.fast_travel.title": "Subspace Bubble", + "advancements.nether.find_bastion.description": "Enter a Bastion Remnant", + "advancements.nether.find_bastion.title": "Those Were the Days", + "advancements.nether.find_fortress.description": "Break your way into a Nether Fortress", + "advancements.nether.find_fortress.title": "A Terrible Fortress", + "advancements.nether.get_wither_skull.description": "Obtain a Wither Skeleton's skull", + "advancements.nether.get_wither_skull.title": "Spooky Scary Skeleton", + "advancements.nether.loot_bastion.description": "Loot a Chest in a Bastion Remnant", + "advancements.nether.loot_bastion.title": "War Pigs", + "advancements.nether.netherite_armor.description": "Get a full suit of Netherite armor", + "advancements.nether.netherite_armor.title": "Cover Me in Debris", + "advancements.nether.obtain_ancient_debris.description": "Obtain Ancient Debris", + "advancements.nether.obtain_ancient_debris.title": "Hidden in the Depths", + "advancements.nether.obtain_blaze_rod.description": "Relieve a Blaze of its rod", + "advancements.nether.obtain_blaze_rod.title": "Into Fire", + "advancements.nether.obtain_crying_obsidian.description": "Obtain Crying Obsidian", + "advancements.nether.obtain_crying_obsidian.title": "Who is Cutting Onions?", + "advancements.nether.return_to_sender.description": "Destroy a Ghast with a fireball", + "advancements.nether.return_to_sender.title": "Return to Sender", + "advancements.nether.ride_strider_in_overworld_lava.description": "Take a Strider for a loooong ride on a lava lake in the Overworld", + "advancements.nether.ride_strider_in_overworld_lava.title": "Feels Like Home", + "advancements.nether.ride_strider.description": "Ride a Strider with a Warped Fungus on a Stick", + "advancements.nether.ride_strider.title": "This Boat Has Legs", + "advancements.nether.root.description": "Bring summer clothes", + "advancements.nether.root.title": "Nether", + "advancements.nether.summon_wither.description": "Summon the Wither", + "advancements.nether.summon_wither.title": "Withering Heights", + "advancements.nether.uneasy_alliance.description": "Rescue a Ghast from the Nether, bring it safely home to the Overworld... and then kill it", + "advancements.nether.uneasy_alliance.title": "Uneasy Alliance", + "advancements.nether.use_lodestone.description": "Use a Compass on a Lodestone", + "advancements.nether.use_lodestone.title": "Country Lode, Take Me Home", + "advancements.progress": "%s/%s", + "advancements.sad_label": ":(", + "advancements.story.cure_zombie_villager.description": "Weaken and then cure a Zombie Villager", + "advancements.story.cure_zombie_villager.title": "Zombie Doctor", + "advancements.story.deflect_arrow.description": "Deflect a projectile with a Shield", + "advancements.story.deflect_arrow.title": "Not Today, Thank You", + "advancements.story.enchant_item.description": "Enchant an item at an Enchanting Table", + "advancements.story.enchant_item.title": "Enchanter", + "advancements.story.enter_the_end.description": "Enter the End Portal", + "advancements.story.enter_the_end.title": "The End?", + "advancements.story.enter_the_nether.description": "Build, light and enter a Nether Portal", + "advancements.story.enter_the_nether.title": "We Need to Go Deeper", + "advancements.story.follow_ender_eye.description": "Follow an Eye of Ender", + "advancements.story.follow_ender_eye.title": "Eye Spy", + "advancements.story.form_obsidian.description": "Obtain a block of Obsidian", + "advancements.story.form_obsidian.title": "Ice Bucket Challenge", + "advancements.story.iron_tools.description": "Upgrade your Pickaxe", + "advancements.story.iron_tools.title": "Isn't It Iron Pick", + "advancements.story.lava_bucket.description": "Fill a Bucket with lava", + "advancements.story.lava_bucket.title": "Hot Stuff", + "advancements.story.mine_diamond.description": "Acquire diamonds", + "advancements.story.mine_diamond.title": "Diamonds!", + "advancements.story.mine_stone.description": "Mine Stone with your new Pickaxe", + "advancements.story.mine_stone.title": "Stone Age", + "advancements.story.obtain_armor.description": "Protect yourself with a piece of iron armor", + "advancements.story.obtain_armor.title": "Suit Up", + "advancements.story.root.description": "The heart and story of the game", + "advancements.story.root.title": "Minecraft", + "advancements.story.shiny_gear.description": "Diamond armor saves lives", + "advancements.story.shiny_gear.title": "Cover Me with Diamonds", + "advancements.story.smelt_iron.description": "Smelt an Iron Ingot", + "advancements.story.smelt_iron.title": "Acquire Hardware", + "advancements.story.upgrade_tools.description": "Construct a better Pickaxe", + "advancements.story.upgrade_tools.title": "Getting an Upgrade", + "advancements.toast.challenge": "Challenge Complete!", + "advancements.toast.goal": "Goal Reached!", + "advancements.toast.task": "Advancement Made!", + "advMode.allEntities": "Use \"@e\" to target all entities", + "advMode.allPlayers": "Use \"@a\" to target all players", + "advMode.command": "Console Command", + "advMode.mode": "Mode", + "advMode.mode.auto": "Repeat", + "advMode.mode.autoexec.bat": "Always Active", + "advMode.mode.conditional": "Conditional", + "advMode.mode.redstone": "Impulse", + "advMode.mode.redstoneTriggered": "Needs Redstone", + "advMode.mode.sequence": "Chain", + "advMode.mode.unconditional": "Unconditional", + "advMode.nearestPlayer": "Use \"@p\" to target nearest player", + "advMode.notAllowed": "Must be an opped player in creative mode", + "advMode.notEnabled": "Command blocks are not enabled on this server", + "advMode.previousOutput": "Previous Output", + "advMode.randomPlayer": "Use \"@r\" to target random player", + "advMode.self": "Use \"@s\" to target the executing entity", + "advMode.setCommand": "Set Console Command for Block", + "advMode.setCommand.success": "Command set: %s", + "advMode.trackOutput": "Track output", + "advMode.triggering": "Triggering", + "advMode.type": "Type", + "argument.anchor.invalid": "Invalid entity anchor position %s", + "argument.angle.incomplete": "Incomplete (expected 1 angle)", + "argument.angle.invalid": "Invalid angle", + "argument.block.id.invalid": "Unknown block type '%s'", + "argument.block.property.duplicate": "Property '%s' can only be set once for block %s", + "argument.block.property.invalid": "Block %s does not accept '%s' for %s property", + "argument.block.property.novalue": "Expected value for property '%s' on block %s", + "argument.block.property.unclosed": "Expected closing ] for block state properties", + "argument.block.property.unknown": "Block %s does not have property '%s'", + "argument.block.tag.disallowed": "Tags aren't allowed here, only actual blocks", + "argument.color.invalid": "Unknown color '%s'", + "argument.component.invalid": "Invalid chat component: %s", + "argument.criteria.invalid": "Unknown criterion '%s'", + "argument.dimension.invalid": "Unknown dimension '%s'", + "argument.double.big": "Double must not be more than %s, found %s", + "argument.double.low": "Double must not be less than %s, found %s", + "argument.entity.invalid": "Invalid name or UUID", + "argument.entity.notfound.entity": "No entity was found", + "argument.entity.notfound.player": "No player was found", + "argument.entity.options.advancements.description": "Players with advancements", + "argument.entity.options.distance.description": "Distance to entity", + "argument.entity.options.distance.negative": "Distance cannot be negative", + "argument.entity.options.dx.description": "Entities between x and x + dx", + "argument.entity.options.dy.description": "Entities between y and y + dy", + "argument.entity.options.dz.description": "Entities between z and z + dz", + "argument.entity.options.gamemode.description": "Players with game mode", + "argument.entity.options.inapplicable": "Option '%s' isn't applicable here", + "argument.entity.options.level.description": "Experience level", + "argument.entity.options.level.negative": "Level shouldn't be negative", + "argument.entity.options.limit.description": "Maximum number of entities to return", + "argument.entity.options.limit.toosmall": "Limit must be at least 1", + "argument.entity.options.mode.invalid": "Invalid or unknown game mode '%s'", + "argument.entity.options.name.description": "Entity name", + "argument.entity.options.nbt.description": "Entities with NBT", + "argument.entity.options.predicate.description": "Custom predicate", + "argument.entity.options.scores.description": "Entities with scores", + "argument.entity.options.sort.description": "Sort the entities", + "argument.entity.options.sort.irreversible": "Invalid or unknown sort type '%s'", + "argument.entity.options.tag.description": "Entities with tag", + "argument.entity.options.team.description": "Entities on team", + "argument.entity.options.type.description": "Entities of type", + "argument.entity.options.type.invalid": "Invalid or unknown entity type '%s'", + "argument.entity.options.unknown": "Unknown option '%s'", + "argument.entity.options.unterminated": "Expected end of options", + "argument.entity.options.valueless": "Expected value for option '%s'", + "argument.entity.options.x_rotation.description": "Entity's x rotation", + "argument.entity.options.x.description": "x position", + "argument.entity.options.y_rotation.description": "Entity's y rotation", + "argument.entity.options.y.description": "y position", + "argument.entity.options.z.description": "z position", + "argument.entity.selector.allEntities": "All entities", + "argument.entity.selector.allPlayers": "All players", + "argument.entity.selector.missing": "Missing selector type", + "argument.entity.selector.nearestEntity": "Nearest entity", + "argument.entity.selector.nearestPlayer": "Nearest player", + "argument.entity.selector.not_allowed": "Selector not allowed", + "argument.entity.selector.randomPlayer": "Random player", + "argument.entity.selector.self": "Current entity", + "argument.entity.selector.unknown": "Unknown selector type '%s'", + "argument.entity.toomany": "Only one entity is allowed, but the provided selector allows more than one", + "argument.enum.invalid": "Invalid value \"%s\"", + "argument.float.big": "Float must not be more than %s, found %s", + "argument.float.low": "Float must not be less than %s, found %s", + "argument.gamemode.invalid": "Unknown game mode: %s", + "argument.id.invalid": "Invalid ID", + "argument.id.unknown": "Unknown ID: %s", + "argument.integer.big": "Integer must not be more than %s, found %s", + "argument.integer.low": "Integer must not be less than %s, found %s", + "argument.item.id.invalid": "Unknown item '%s'", + "argument.item.tag.disallowed": "Tags aren't allowed here, only actual items", + "argument.literal.incorrect": "Expected literal %s", + "argument.long.big": "Long must not be more than %s, found %s", + "argument.long.low": "Long must not be less than %s, found %s", + "argument.message.too_long": "Chat message was too long (%s > maximum %s characters)", + "argument.nbt.array.invalid": "Invalid array type '%s'", + "argument.nbt.array.mixed": "Can't insert %s into %s", + "argument.nbt.expected.key": "Expected key", + "argument.nbt.expected.value": "Expected value", + "argument.nbt.list.mixed": "Can't insert %s into list of %s", + "argument.nbt.trailing": "Unexpected trailing data", + "argument.player.entities": "Only players may be affected by this command, but the provided selector includes entities", + "argument.player.toomany": "Only one player is allowed, but the provided selector allows more than one", + "argument.player.unknown": "That player does not exist", + "argument.pos.missing.double": "Expected a coordinate", + "argument.pos.missing.int": "Expected a block position", + "argument.pos.mixed": "Cannot mix world & local coordinates (everything must either use ^ or not)", + "argument.pos.outofbounds": "That position is outside the allowed boundaries.", + "argument.pos.outofworld": "That position is out of this world!", + "argument.pos.unloaded": "That position is not loaded", + "argument.pos2d.incomplete": "Incomplete (expected 2 coordinates)", + "argument.pos3d.incomplete": "Incomplete (expected 3 coordinates)", + "argument.range.empty": "Expected value or range of values", + "argument.range.ints": "Only whole numbers allowed, not decimals", + "argument.range.swapped": "Min cannot be bigger than max", + "argument.resource_or_id.failed_to_parse": "Failed to parse structure: %s", + "argument.resource_or_id.invalid": "Invalid id or tag", + "argument.resource_tag.invalid_type": "Tag '%s' has wrong type '%s' (expected '%s')", + "argument.resource_tag.not_found": "Can't find tag '%s' of type '%s'", + "argument.resource.invalid_type": "Element '%s' has wrong type '%s' (expected '%s')", + "argument.resource.not_found": "Can't find element '%s' of type '%s'", + "argument.rotation.incomplete": "Incomplete (expected 2 coordinates)", + "argument.scoreboardDisplaySlot.invalid": "Unknown display slot '%s'", + "argument.scoreHolder.empty": "No relevant score holders could be found", + "argument.style.invalid": "Invalid style: %s", + "argument.time.invalid_tick_count": "The tick count must be non-negative", + "argument.time.invalid_unit": "Invalid unit", + "argument.time.tick_count_too_low": "The tick count must not be less than %s, found %s", + "argument.uuid.invalid": "Invalid UUID", + "arguments.block.tag.unknown": "Unknown block tag '%s'", + "arguments.function.tag.unknown": "Unknown function tag '%s'", + "arguments.function.unknown": "Unknown function %s", + "arguments.item.component.expected": "Expected item component", + "arguments.item.component.malformed": "Malformed '%s' component: '%s'", + "arguments.item.component.repeated": "Item component '%s' was repeated, but only one value can be specified", + "arguments.item.component.unknown": "Unknown item component '%s'", + "arguments.item.malformed": "Malformed item: '%s'", + "arguments.item.overstacked": "%s can only stack up to %s", + "arguments.item.predicate.malformed": "Malformed '%s' predicate: '%s'", + "arguments.item.predicate.unknown": "Unknown item predicate '%s'", + "arguments.item.tag.unknown": "Unknown item tag '%s'", + "arguments.nbtpath.node.invalid": "Invalid NBT path element", + "arguments.nbtpath.nothing_found": "Found no elements matching %s", + "arguments.nbtpath.too_deep": "Resulting NBT too deeply nested", + "arguments.nbtpath.too_large": "Resulting NBT too large", + "arguments.objective.notFound": "Unknown scoreboard objective '%s'", + "arguments.objective.readonly": "Scoreboard objective '%s' is read-only", + "arguments.operation.div0": "Cannot divide by zero", + "arguments.operation.invalid": "Invalid operation", + "arguments.swizzle.invalid": "Invalid swizzle, expected combination of 'x', 'y' and 'z'", + "attribute.modifier.equals.0": "%s %s", + "attribute.modifier.equals.1": "%s%% %s", + "attribute.modifier.equals.2": "%s%% %s", + "attribute.modifier.plus.0": "+%s %s", + "attribute.modifier.plus.1": "+%s%% %s", + "attribute.modifier.plus.2": "+%s%% %s", + "attribute.modifier.take.0": "-%s %s", + "attribute.modifier.take.1": "-%s%% %s", + "attribute.modifier.take.2": "-%s%% %s", + "attribute.name.generic.armor": "Armor", + "attribute.name.generic.armor_toughness": "Armor Toughness", + "attribute.name.generic.attack_damage": "Attack Damage", + "attribute.name.generic.attack_knockback": "Attack Knockback", + "attribute.name.generic.attack_speed": "Attack Speed", + "attribute.name.generic.block_interaction_range": "Block Interaction Range", + "attribute.name.generic.burning_time": "Burning Time", + "attribute.name.generic.entity_interaction_range": "Entity Interaction Range", + "attribute.name.generic.explosion_knockback_resistance": "Explosion Knockback Resistance", + "attribute.name.generic.fall_damage_multiplier": "Fall Damage Multiplier", + "attribute.name.generic.flying_speed": "Flying Speed", + "attribute.name.generic.follow_range": "Mob Follow Range", + "attribute.name.generic.gravity": "Gravity", + "attribute.name.generic.jump_strength": "Jump Strength", + "attribute.name.generic.knockback_resistance": "Knockback Resistance", + "attribute.name.generic.luck": "Luck", + "attribute.name.generic.max_absorption": "Max Absorption", + "attribute.name.generic.max_health": "Max Health", + "attribute.name.generic.movement_efficiency": "Movement Efficiency", + "attribute.name.generic.movement_speed": "Speed", + "attribute.name.generic.oxygen_bonus": "Oxygen Bonus", + "attribute.name.generic.safe_fall_distance": "Safe Fall Distance", + "attribute.name.generic.scale": "Scale", + "attribute.name.generic.step_height": "Step Height", + "attribute.name.generic.water_movement_efficiency": "Water Movement Efficiency", + "attribute.name.horse.jump_strength": "Horse Jump Strength", + "attribute.name.player.block_break_speed": "Block Break Speed", + "attribute.name.player.block_interaction_range": "Block Interaction Range", + "attribute.name.player.entity_interaction_range": "Entity Interaction Range", + "attribute.name.player.mining_efficiency": "Mining Efficiency", + "attribute.name.player.sneaking_speed": "Sneaking Speed", + "attribute.name.player.submerged_mining_speed": "Submerged Mining Speed", + "attribute.name.player.sweeping_damage_ratio": "Sweeping Damage Ratio", + "attribute.name.zombie.spawn_reinforcements": "Zombie Reinforcements", + "biome.minecraft.badlands": "Badlands", + "biome.minecraft.bamboo_jungle": "Bamboo Jungle", + "biome.minecraft.basalt_deltas": "Basalt Deltas", + "biome.minecraft.beach": "Beach", + "biome.minecraft.birch_forest": "Birch Forest", + "biome.minecraft.cherry_grove": "Cherry Grove", + "biome.minecraft.cold_ocean": "Cold Ocean", + "biome.minecraft.crimson_forest": "Crimson Forest", + "biome.minecraft.dark_forest": "Dark Forest", + "biome.minecraft.deep_cold_ocean": "Deep Cold Ocean", + "biome.minecraft.deep_dark": "Deep Dark", + "biome.minecraft.deep_frozen_ocean": "Deep Frozen Ocean", + "biome.minecraft.deep_lukewarm_ocean": "Deep Lukewarm Ocean", + "biome.minecraft.deep_ocean": "Deep Ocean", + "biome.minecraft.desert": "Desert", + "biome.minecraft.dripstone_caves": "Dripstone Caves", + "biome.minecraft.end_barrens": "End Barrens", + "biome.minecraft.end_highlands": "End Highlands", + "biome.minecraft.end_midlands": "End Midlands", + "biome.minecraft.eroded_badlands": "Eroded Badlands", + "biome.minecraft.flower_forest": "Flower Forest", + "biome.minecraft.forest": "Forest", + "biome.minecraft.frozen_ocean": "Frozen Ocean", + "biome.minecraft.frozen_peaks": "Frozen Peaks", + "biome.minecraft.frozen_river": "Frozen River", + "biome.minecraft.grove": "Grove", + "biome.minecraft.ice_spikes": "Ice Spikes", + "biome.minecraft.jagged_peaks": "Jagged Peaks", + "biome.minecraft.jungle": "Jungle", + "biome.minecraft.lukewarm_ocean": "Lukewarm Ocean", + "biome.minecraft.lush_caves": "Lush Caves", + "biome.minecraft.mangrove_swamp": "Mangrove Swamp", + "biome.minecraft.meadow": "Meadow", + "biome.minecraft.mushroom_fields": "Mushroom Fields", + "biome.minecraft.nether_wastes": "Nether Wastes", + "biome.minecraft.ocean": "Ocean", + "biome.minecraft.old_growth_birch_forest": "Old Growth Birch Forest", + "biome.minecraft.old_growth_pine_taiga": "Old Growth Pine Taiga", + "biome.minecraft.old_growth_spruce_taiga": "Old Growth Spruce Taiga", + "biome.minecraft.plains": "Plains", + "biome.minecraft.river": "River", + "biome.minecraft.savanna": "Savanna", + "biome.minecraft.savanna_plateau": "Savanna Plateau", + "biome.minecraft.small_end_islands": "Small End Islands", + "biome.minecraft.snowy_beach": "Snowy Beach", + "biome.minecraft.snowy_plains": "Snowy Plains", + "biome.minecraft.snowy_slopes": "Snowy Slopes", + "biome.minecraft.snowy_taiga": "Snowy Taiga", + "biome.minecraft.soul_sand_valley": "Soul Sand Valley", + "biome.minecraft.sparse_jungle": "Sparse Jungle", + "biome.minecraft.stony_peaks": "Stony Peaks", + "biome.minecraft.stony_shore": "Stony Shore", + "biome.minecraft.sunflower_plains": "Sunflower Plains", + "biome.minecraft.swamp": "Swamp", + "biome.minecraft.taiga": "Taiga", + "biome.minecraft.the_end": "The End", + "biome.minecraft.the_void": "The Void", + "biome.minecraft.warm_ocean": "Warm Ocean", + "biome.minecraft.warped_forest": "Warped Forest", + "biome.minecraft.windswept_forest": "Windswept Forest", + "biome.minecraft.windswept_gravelly_hills": "Windswept Gravelly Hills", + "biome.minecraft.windswept_hills": "Windswept Hills", + "biome.minecraft.windswept_savanna": "Windswept Savanna", + "biome.minecraft.wooded_badlands": "Wooded Badlands", + "block.minecraft.acacia_button": "Acacia Button", + "block.minecraft.acacia_door": "Acacia Door", + "block.minecraft.acacia_fence": "Acacia Fence", + "block.minecraft.acacia_fence_gate": "Acacia Fence Gate", + "block.minecraft.acacia_hanging_sign": "Acacia Hanging Sign", + "block.minecraft.acacia_leaves": "Acacia Leaves", + "block.minecraft.acacia_log": "Acacia Log", + "block.minecraft.acacia_planks": "Acacia Planks", + "block.minecraft.acacia_pressure_plate": "Acacia Pressure Plate", + "block.minecraft.acacia_sapling": "Acacia Sapling", + "block.minecraft.acacia_sign": "Acacia Sign", + "block.minecraft.acacia_slab": "Acacia Slab", + "block.minecraft.acacia_stairs": "Acacia Stairs", + "block.minecraft.acacia_trapdoor": "Acacia Trapdoor", + "block.minecraft.acacia_wall_hanging_sign": "Acacia Wall Hanging Sign", + "block.minecraft.acacia_wall_sign": "Acacia Wall Sign", + "block.minecraft.acacia_wood": "Acacia Wood", + "block.minecraft.activator_rail": "Activator Rail", + "block.minecraft.air": "Air", + "block.minecraft.allium": "Allium", + "block.minecraft.amethyst_block": "Block of Amethyst", + "block.minecraft.amethyst_cluster": "Amethyst Cluster", + "block.minecraft.ancient_debris": "Ancient Debris", + "block.minecraft.andesite": "Andesite", + "block.minecraft.andesite_slab": "Andesite Slab", + "block.minecraft.andesite_stairs": "Andesite Stairs", + "block.minecraft.andesite_wall": "Andesite Wall", + "block.minecraft.anvil": "Anvil", + "block.minecraft.attached_melon_stem": "Attached Melon Stem", + "block.minecraft.attached_pumpkin_stem": "Attached Pumpkin Stem", + "block.minecraft.azalea": "Azalea", + "block.minecraft.azalea_leaves": "Azalea Leaves", + "block.minecraft.azure_bluet": "Azure Bluet", + "block.minecraft.bamboo": "Bamboo", + "block.minecraft.bamboo_block": "Block of Bamboo", + "block.minecraft.bamboo_button": "Bamboo Button", + "block.minecraft.bamboo_door": "Bamboo Door", + "block.minecraft.bamboo_fence": "Bamboo Fence", + "block.minecraft.bamboo_fence_gate": "Bamboo Fence Gate", + "block.minecraft.bamboo_hanging_sign": "Bamboo Hanging Sign", + "block.minecraft.bamboo_mosaic": "Bamboo Mosaic", + "block.minecraft.bamboo_mosaic_slab": "Bamboo Mosaic Slab", + "block.minecraft.bamboo_mosaic_stairs": "Bamboo Mosaic Stairs", + "block.minecraft.bamboo_planks": "Bamboo Planks", + "block.minecraft.bamboo_pressure_plate": "Bamboo Pressure Plate", + "block.minecraft.bamboo_sapling": "Bamboo Shoot", + "block.minecraft.bamboo_sign": "Bamboo Sign", + "block.minecraft.bamboo_slab": "Bamboo Slab", + "block.minecraft.bamboo_stairs": "Bamboo Stairs", + "block.minecraft.bamboo_trapdoor": "Bamboo Trapdoor", + "block.minecraft.bamboo_wall_hanging_sign": "Bamboo Wall Hanging Sign", + "block.minecraft.bamboo_wall_sign": "Bamboo Wall Sign", + "block.minecraft.banner.base.black": "Fully Black Field", + "block.minecraft.banner.base.blue": "Fully Blue Field", + "block.minecraft.banner.base.brown": "Fully Brown Field", + "block.minecraft.banner.base.cyan": "Fully Cyan Field", + "block.minecraft.banner.base.gray": "Fully Gray Field", + "block.minecraft.banner.base.green": "Fully Green Field", + "block.minecraft.banner.base.light_blue": "Fully Light Blue Field", + "block.minecraft.banner.base.light_gray": "Fully Light Gray Field", + "block.minecraft.banner.base.lime": "Fully Lime Field", + "block.minecraft.banner.base.magenta": "Fully Magenta Field", + "block.minecraft.banner.base.orange": "Fully Orange Field", + "block.minecraft.banner.base.pink": "Fully Pink Field", + "block.minecraft.banner.base.purple": "Fully Purple Field", + "block.minecraft.banner.base.red": "Fully Red Field", + "block.minecraft.banner.base.white": "Fully White Field", + "block.minecraft.banner.base.yellow": "Fully Yellow Field", + "block.minecraft.banner.border.black": "Black Bordure", + "block.minecraft.banner.border.blue": "Blue Bordure", + "block.minecraft.banner.border.brown": "Brown Bordure", + "block.minecraft.banner.border.cyan": "Cyan Bordure", + "block.minecraft.banner.border.gray": "Gray Bordure", + "block.minecraft.banner.border.green": "Green Bordure", + "block.minecraft.banner.border.light_blue": "Light Blue Bordure", + "block.minecraft.banner.border.light_gray": "Light Gray Bordure", + "block.minecraft.banner.border.lime": "Lime Bordure", + "block.minecraft.banner.border.magenta": "Magenta Bordure", + "block.minecraft.banner.border.orange": "Orange Bordure", + "block.minecraft.banner.border.pink": "Pink Bordure", + "block.minecraft.banner.border.purple": "Purple Bordure", + "block.minecraft.banner.border.red": "Red Bordure", + "block.minecraft.banner.border.white": "White Bordure", + "block.minecraft.banner.border.yellow": "Yellow Bordure", + "block.minecraft.banner.bricks.black": "Black Field Masoned", + "block.minecraft.banner.bricks.blue": "Blue Field Masoned", + "block.minecraft.banner.bricks.brown": "Brown Field Masoned", + "block.minecraft.banner.bricks.cyan": "Cyan Field Masoned", + "block.minecraft.banner.bricks.gray": "Gray Field Masoned", + "block.minecraft.banner.bricks.green": "Green Field Masoned", + "block.minecraft.banner.bricks.light_blue": "Light Blue Field Masoned", + "block.minecraft.banner.bricks.light_gray": "Light Gray Field Masoned", + "block.minecraft.banner.bricks.lime": "Lime Field Masoned", + "block.minecraft.banner.bricks.magenta": "Magenta Field Masoned", + "block.minecraft.banner.bricks.orange": "Orange Field Masoned", + "block.minecraft.banner.bricks.pink": "Pink Field Masoned", + "block.minecraft.banner.bricks.purple": "Purple Field Masoned", + "block.minecraft.banner.bricks.red": "Red Field Masoned", + "block.minecraft.banner.bricks.white": "White Field Masoned", + "block.minecraft.banner.bricks.yellow": "Yellow Field Masoned", + "block.minecraft.banner.circle.black": "Black Roundel", + "block.minecraft.banner.circle.blue": "Blue Roundel", + "block.minecraft.banner.circle.brown": "Brown Roundel", + "block.minecraft.banner.circle.cyan": "Cyan Roundel", + "block.minecraft.banner.circle.gray": "Gray Roundel", + "block.minecraft.banner.circle.green": "Green Roundel", + "block.minecraft.banner.circle.light_blue": "Light Blue Roundel", + "block.minecraft.banner.circle.light_gray": "Light Gray Roundel", + "block.minecraft.banner.circle.lime": "Lime Roundel", + "block.minecraft.banner.circle.magenta": "Magenta Roundel", + "block.minecraft.banner.circle.orange": "Orange Roundel", + "block.minecraft.banner.circle.pink": "Pink Roundel", + "block.minecraft.banner.circle.purple": "Purple Roundel", + "block.minecraft.banner.circle.red": "Red Roundel", + "block.minecraft.banner.circle.white": "White Roundel", + "block.minecraft.banner.circle.yellow": "Yellow Roundel", + "block.minecraft.banner.creeper.black": "Black Creeper Charge", + "block.minecraft.banner.creeper.blue": "Blue Creeper Charge", + "block.minecraft.banner.creeper.brown": "Brown Creeper Charge", + "block.minecraft.banner.creeper.cyan": "Cyan Creeper Charge", + "block.minecraft.banner.creeper.gray": "Gray Creeper Charge", + "block.minecraft.banner.creeper.green": "Green Creeper Charge", + "block.minecraft.banner.creeper.light_blue": "Light Blue Creeper Charge", + "block.minecraft.banner.creeper.light_gray": "Light Gray Creeper Charge", + "block.minecraft.banner.creeper.lime": "Lime Creeper Charge", + "block.minecraft.banner.creeper.magenta": "Magenta Creeper Charge", + "block.minecraft.banner.creeper.orange": "Orange Creeper Charge", + "block.minecraft.banner.creeper.pink": "Pink Creeper Charge", + "block.minecraft.banner.creeper.purple": "Purple Creeper Charge", + "block.minecraft.banner.creeper.red": "Red Creeper Charge", + "block.minecraft.banner.creeper.white": "White Creeper Charge", + "block.minecraft.banner.creeper.yellow": "Yellow Creeper Charge", + "block.minecraft.banner.cross.black": "Black Saltire", + "block.minecraft.banner.cross.blue": "Blue Saltire", + "block.minecraft.banner.cross.brown": "Brown Saltire", + "block.minecraft.banner.cross.cyan": "Cyan Saltire", + "block.minecraft.banner.cross.gray": "Gray Saltire", + "block.minecraft.banner.cross.green": "Green Saltire", + "block.minecraft.banner.cross.light_blue": "Light Blue Saltire", + "block.minecraft.banner.cross.light_gray": "Light Gray Saltire", + "block.minecraft.banner.cross.lime": "Lime Saltire", + "block.minecraft.banner.cross.magenta": "Magenta Saltire", + "block.minecraft.banner.cross.orange": "Orange Saltire", + "block.minecraft.banner.cross.pink": "Pink Saltire", + "block.minecraft.banner.cross.purple": "Purple Saltire", + "block.minecraft.banner.cross.red": "Red Saltire", + "block.minecraft.banner.cross.white": "White Saltire", + "block.minecraft.banner.cross.yellow": "Yellow Saltire", + "block.minecraft.banner.curly_border.black": "Black Bordure Indented", + "block.minecraft.banner.curly_border.blue": "Blue Bordure Indented", + "block.minecraft.banner.curly_border.brown": "Brown Bordure Indented", + "block.minecraft.banner.curly_border.cyan": "Cyan Bordure Indented", + "block.minecraft.banner.curly_border.gray": "Gray Bordure Indented", + "block.minecraft.banner.curly_border.green": "Green Bordure Indented", + "block.minecraft.banner.curly_border.light_blue": "Light Blue Bordure Indented", + "block.minecraft.banner.curly_border.light_gray": "Light Gray Bordure Indented", + "block.minecraft.banner.curly_border.lime": "Lime Bordure Indented", + "block.minecraft.banner.curly_border.magenta": "Magenta Bordure Indented", + "block.minecraft.banner.curly_border.orange": "Orange Bordure Indented", + "block.minecraft.banner.curly_border.pink": "Pink Bordure Indented", + "block.minecraft.banner.curly_border.purple": "Purple Bordure Indented", + "block.minecraft.banner.curly_border.red": "Red Bordure Indented", + "block.minecraft.banner.curly_border.white": "White Bordure Indented", + "block.minecraft.banner.curly_border.yellow": "Yellow Bordure Indented", + "block.minecraft.banner.diagonal_left.black": "Black Per Bend Sinister", + "block.minecraft.banner.diagonal_left.blue": "Blue Per Bend Sinister", + "block.minecraft.banner.diagonal_left.brown": "Brown Per Bend Sinister", + "block.minecraft.banner.diagonal_left.cyan": "Cyan Per Bend Sinister", + "block.minecraft.banner.diagonal_left.gray": "Gray Per Bend Sinister", + "block.minecraft.banner.diagonal_left.green": "Green Per Bend Sinister", + "block.minecraft.banner.diagonal_left.light_blue": "Light Blue Per Bend Sinister", + "block.minecraft.banner.diagonal_left.light_gray": "Light Gray Per Bend Sinister", + "block.minecraft.banner.diagonal_left.lime": "Lime Per Bend Sinister", + "block.minecraft.banner.diagonal_left.magenta": "Magenta Per Bend Sinister", + "block.minecraft.banner.diagonal_left.orange": "Orange Per Bend Sinister", + "block.minecraft.banner.diagonal_left.pink": "Pink Per Bend Sinister", + "block.minecraft.banner.diagonal_left.purple": "Purple Per Bend Sinister", + "block.minecraft.banner.diagonal_left.red": "Red Per Bend Sinister", + "block.minecraft.banner.diagonal_left.white": "White Per Bend Sinister", + "block.minecraft.banner.diagonal_left.yellow": "Yellow Per Bend Sinister", + "block.minecraft.banner.diagonal_right.black": "Black Per Bend", + "block.minecraft.banner.diagonal_right.blue": "Blue Per Bend", + "block.minecraft.banner.diagonal_right.brown": "Brown Per Bend", + "block.minecraft.banner.diagonal_right.cyan": "Cyan Per Bend", + "block.minecraft.banner.diagonal_right.gray": "Gray Per Bend", + "block.minecraft.banner.diagonal_right.green": "Green Per Bend", + "block.minecraft.banner.diagonal_right.light_blue": "Light Blue Per Bend", + "block.minecraft.banner.diagonal_right.light_gray": "Light Gray Per Bend", + "block.minecraft.banner.diagonal_right.lime": "Lime Per Bend", + "block.minecraft.banner.diagonal_right.magenta": "Magenta Per Bend", + "block.minecraft.banner.diagonal_right.orange": "Orange Per Bend", + "block.minecraft.banner.diagonal_right.pink": "Pink Per Bend", + "block.minecraft.banner.diagonal_right.purple": "Purple Per Bend", + "block.minecraft.banner.diagonal_right.red": "Red Per Bend", + "block.minecraft.banner.diagonal_right.white": "White Per Bend", + "block.minecraft.banner.diagonal_right.yellow": "Yellow Per Bend", + "block.minecraft.banner.diagonal_up_left.black": "Black Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.blue": "Blue Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.brown": "Brown Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.cyan": "Cyan Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.gray": "Gray Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.green": "Green Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.light_blue": "Light Blue Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.light_gray": "Light Gray Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.lime": "Lime Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.magenta": "Magenta Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.orange": "Orange Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.pink": "Pink Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.purple": "Purple Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.red": "Red Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.white": "White Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.yellow": "Yellow Per Bend Inverted", + "block.minecraft.banner.diagonal_up_right.black": "Black Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.blue": "Blue Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.brown": "Brown Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.cyan": "Cyan Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.gray": "Gray Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.green": "Green Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.light_blue": "Light Blue Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.light_gray": "Light Gray Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.lime": "Lime Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.magenta": "Magenta Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.orange": "Orange Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.pink": "Pink Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.purple": "Purple Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.red": "Red Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.white": "White Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.yellow": "Yellow Per Bend Sinister Inverted", + "block.minecraft.banner.flow.black": "Black Flow", + "block.minecraft.banner.flow.blue": "Blue Flow", + "block.minecraft.banner.flow.brown": "Brown Flow", + "block.minecraft.banner.flow.cyan": "Cyan Flow", + "block.minecraft.banner.flow.gray": "Gray Flow", + "block.minecraft.banner.flow.green": "Green Flow", + "block.minecraft.banner.flow.light_blue": "Light Blue Flow", + "block.minecraft.banner.flow.light_gray": "Light Gray Flow", + "block.minecraft.banner.flow.lime": "Lime Flow", + "block.minecraft.banner.flow.magenta": "Magenta Flow", + "block.minecraft.banner.flow.orange": "Orange Flow", + "block.minecraft.banner.flow.pink": "Pink Flow", + "block.minecraft.banner.flow.purple": "Purple Flow", + "block.minecraft.banner.flow.red": "Red Flow", + "block.minecraft.banner.flow.white": "White Flow", + "block.minecraft.banner.flow.yellow": "Yellow Flow", + "block.minecraft.banner.flower.black": "Black Flower Charge", + "block.minecraft.banner.flower.blue": "Blue Flower Charge", + "block.minecraft.banner.flower.brown": "Brown Flower Charge", + "block.minecraft.banner.flower.cyan": "Cyan Flower Charge", + "block.minecraft.banner.flower.gray": "Gray Flower Charge", + "block.minecraft.banner.flower.green": "Green Flower Charge", + "block.minecraft.banner.flower.light_blue": "Light Blue Flower Charge", + "block.minecraft.banner.flower.light_gray": "Light Gray Flower Charge", + "block.minecraft.banner.flower.lime": "Lime Flower Charge", + "block.minecraft.banner.flower.magenta": "Magenta Flower Charge", + "block.minecraft.banner.flower.orange": "Orange Flower Charge", + "block.minecraft.banner.flower.pink": "Pink Flower Charge", + "block.minecraft.banner.flower.purple": "Purple Flower Charge", + "block.minecraft.banner.flower.red": "Red Flower Charge", + "block.minecraft.banner.flower.white": "White Flower Charge", + "block.minecraft.banner.flower.yellow": "Yellow Flower Charge", + "block.minecraft.banner.globe.black": "Black Globe", + "block.minecraft.banner.globe.blue": "Blue Globe", + "block.minecraft.banner.globe.brown": "Brown Globe", + "block.minecraft.banner.globe.cyan": "Cyan Globe", + "block.minecraft.banner.globe.gray": "Gray Globe", + "block.minecraft.banner.globe.green": "Green Globe", + "block.minecraft.banner.globe.light_blue": "Light Blue Globe", + "block.minecraft.banner.globe.light_gray": "Light Gray Globe", + "block.minecraft.banner.globe.lime": "Lime Globe", + "block.minecraft.banner.globe.magenta": "Magenta Globe", + "block.minecraft.banner.globe.orange": "Orange Globe", + "block.minecraft.banner.globe.pink": "Pink Globe", + "block.minecraft.banner.globe.purple": "Purple Globe", + "block.minecraft.banner.globe.red": "Red Globe", + "block.minecraft.banner.globe.white": "White Globe", + "block.minecraft.banner.globe.yellow": "Yellow Globe", + "block.minecraft.banner.gradient_up.black": "Black Base Gradient", + "block.minecraft.banner.gradient_up.blue": "Blue Base Gradient", + "block.minecraft.banner.gradient_up.brown": "Brown Base Gradient", + "block.minecraft.banner.gradient_up.cyan": "Cyan Base Gradient", + "block.minecraft.banner.gradient_up.gray": "Gray Base Gradient", + "block.minecraft.banner.gradient_up.green": "Green Base Gradient", + "block.minecraft.banner.gradient_up.light_blue": "Light Blue Base Gradient", + "block.minecraft.banner.gradient_up.light_gray": "Light Gray Base Gradient", + "block.minecraft.banner.gradient_up.lime": "Lime Base Gradient", + "block.minecraft.banner.gradient_up.magenta": "Magenta Base Gradient", + "block.minecraft.banner.gradient_up.orange": "Orange Base Gradient", + "block.minecraft.banner.gradient_up.pink": "Pink Base Gradient", + "block.minecraft.banner.gradient_up.purple": "Purple Base Gradient", + "block.minecraft.banner.gradient_up.red": "Red Base Gradient", + "block.minecraft.banner.gradient_up.white": "White Base Gradient", + "block.minecraft.banner.gradient_up.yellow": "Yellow Base Gradient", + "block.minecraft.banner.gradient.black": "Black Gradient", + "block.minecraft.banner.gradient.blue": "Blue Gradient", + "block.minecraft.banner.gradient.brown": "Brown Gradient", + "block.minecraft.banner.gradient.cyan": "Cyan Gradient", + "block.minecraft.banner.gradient.gray": "Gray Gradient", + "block.minecraft.banner.gradient.green": "Green Gradient", + "block.minecraft.banner.gradient.light_blue": "Light Blue Gradient", + "block.minecraft.banner.gradient.light_gray": "Light Gray Gradient", + "block.minecraft.banner.gradient.lime": "Lime Gradient", + "block.minecraft.banner.gradient.magenta": "Magenta Gradient", + "block.minecraft.banner.gradient.orange": "Orange Gradient", + "block.minecraft.banner.gradient.pink": "Pink Gradient", + "block.minecraft.banner.gradient.purple": "Purple Gradient", + "block.minecraft.banner.gradient.red": "Red Gradient", + "block.minecraft.banner.gradient.white": "White Gradient", + "block.minecraft.banner.gradient.yellow": "Yellow Gradient", + "block.minecraft.banner.guster.black": "Black Guster", + "block.minecraft.banner.guster.blue": "Blue Guster", + "block.minecraft.banner.guster.brown": "Brown Guster", + "block.minecraft.banner.guster.cyan": "Cyan Guster", + "block.minecraft.banner.guster.gray": "Gray Guster", + "block.minecraft.banner.guster.green": "Green Guster", + "block.minecraft.banner.guster.light_blue": "Light Blue Guster", + "block.minecraft.banner.guster.light_gray": "Light Gray Guster", + "block.minecraft.banner.guster.lime": "Lime Guster", + "block.minecraft.banner.guster.magenta": "Magenta Guster", + "block.minecraft.banner.guster.orange": "Orange Guster", + "block.minecraft.banner.guster.pink": "Pink Guster", + "block.minecraft.banner.guster.purple": "Purple Guster", + "block.minecraft.banner.guster.red": "Red Guster", + "block.minecraft.banner.guster.white": "White Guster", + "block.minecraft.banner.guster.yellow": "Yellow Guster", + "block.minecraft.banner.half_horizontal_bottom.black": "Black Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.blue": "Blue Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.brown": "Brown Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.cyan": "Cyan Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.gray": "Gray Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.green": "Green Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.light_blue": "Light Blue Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.light_gray": "Light Gray Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.lime": "Lime Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.magenta": "Magenta Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.orange": "Orange Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.pink": "Pink Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.purple": "Purple Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.red": "Red Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.white": "White Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.yellow": "Yellow Per Fess Inverted", + "block.minecraft.banner.half_horizontal.black": "Black Per Fess", + "block.minecraft.banner.half_horizontal.blue": "Blue Per Fess", + "block.minecraft.banner.half_horizontal.brown": "Brown Per Fess", + "block.minecraft.banner.half_horizontal.cyan": "Cyan Per Fess", + "block.minecraft.banner.half_horizontal.gray": "Gray Per Fess", + "block.minecraft.banner.half_horizontal.green": "Green Per Fess", + "block.minecraft.banner.half_horizontal.light_blue": "Light Blue Per Fess", + "block.minecraft.banner.half_horizontal.light_gray": "Light Gray Per Fess", + "block.minecraft.banner.half_horizontal.lime": "Lime Per Fess", + "block.minecraft.banner.half_horizontal.magenta": "Magenta Per Fess", + "block.minecraft.banner.half_horizontal.orange": "Orange Per Fess", + "block.minecraft.banner.half_horizontal.pink": "Pink Per Fess", + "block.minecraft.banner.half_horizontal.purple": "Purple Per Fess", + "block.minecraft.banner.half_horizontal.red": "Red Per Fess", + "block.minecraft.banner.half_horizontal.white": "White Per Fess", + "block.minecraft.banner.half_horizontal.yellow": "Yellow Per Fess", + "block.minecraft.banner.half_vertical_right.black": "Black Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.blue": "Blue Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.brown": "Brown Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.cyan": "Cyan Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.gray": "Gray Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.green": "Green Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.light_blue": "Light Blue Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.light_gray": "Light Gray Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.lime": "Lime Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.magenta": "Magenta Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.orange": "Orange Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.pink": "Pink Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.purple": "Purple Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.red": "Red Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.white": "White Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.yellow": "Yellow Per Pale Inverted", + "block.minecraft.banner.half_vertical.black": "Black Per Pale", + "block.minecraft.banner.half_vertical.blue": "Blue Per Pale", + "block.minecraft.banner.half_vertical.brown": "Brown Per Pale", + "block.minecraft.banner.half_vertical.cyan": "Cyan Per Pale", + "block.minecraft.banner.half_vertical.gray": "Gray Per Pale", + "block.minecraft.banner.half_vertical.green": "Green Per Pale", + "block.minecraft.banner.half_vertical.light_blue": "Light Blue Per Pale", + "block.minecraft.banner.half_vertical.light_gray": "Light Gray Per Pale", + "block.minecraft.banner.half_vertical.lime": "Lime Per Pale", + "block.minecraft.banner.half_vertical.magenta": "Magenta Per Pale", + "block.minecraft.banner.half_vertical.orange": "Orange Per Pale", + "block.minecraft.banner.half_vertical.pink": "Pink Per Pale", + "block.minecraft.banner.half_vertical.purple": "Purple Per Pale", + "block.minecraft.banner.half_vertical.red": "Red Per Pale", + "block.minecraft.banner.half_vertical.white": "White Per Pale", + "block.minecraft.banner.half_vertical.yellow": "Yellow Per Pale", + "block.minecraft.banner.mojang.black": "Black Thing", + "block.minecraft.banner.mojang.blue": "Blue Thing", + "block.minecraft.banner.mojang.brown": "Brown Thing", + "block.minecraft.banner.mojang.cyan": "Cyan Thing", + "block.minecraft.banner.mojang.gray": "Gray Thing", + "block.minecraft.banner.mojang.green": "Green Thing", + "block.minecraft.banner.mojang.light_blue": "Light Blue Thing", + "block.minecraft.banner.mojang.light_gray": "Light Gray Thing", + "block.minecraft.banner.mojang.lime": "Lime Thing", + "block.minecraft.banner.mojang.magenta": "Magenta Thing", + "block.minecraft.banner.mojang.orange": "Orange Thing", + "block.minecraft.banner.mojang.pink": "Pink Thing", + "block.minecraft.banner.mojang.purple": "Purple Thing", + "block.minecraft.banner.mojang.red": "Red Thing", + "block.minecraft.banner.mojang.white": "White Thing", + "block.minecraft.banner.mojang.yellow": "Yellow Thing", + "block.minecraft.banner.piglin.black": "Black Snout", + "block.minecraft.banner.piglin.blue": "Blue Snout", + "block.minecraft.banner.piglin.brown": "Brown Snout", + "block.minecraft.banner.piglin.cyan": "Cyan Snout", + "block.minecraft.banner.piglin.gray": "Gray Snout", + "block.minecraft.banner.piglin.green": "Green Snout", + "block.minecraft.banner.piglin.light_blue": "Light Blue Snout", + "block.minecraft.banner.piglin.light_gray": "Light Gray Snout", + "block.minecraft.banner.piglin.lime": "Lime Snout", + "block.minecraft.banner.piglin.magenta": "Magenta Snout", + "block.minecraft.banner.piglin.orange": "Orange Snout", + "block.minecraft.banner.piglin.pink": "Pink Snout", + "block.minecraft.banner.piglin.purple": "Purple Snout", + "block.minecraft.banner.piglin.red": "Red Snout", + "block.minecraft.banner.piglin.white": "White Snout", + "block.minecraft.banner.piglin.yellow": "Yellow Snout", + "block.minecraft.banner.rhombus.black": "Black Lozenge", + "block.minecraft.banner.rhombus.blue": "Blue Lozenge", + "block.minecraft.banner.rhombus.brown": "Brown Lozenge", + "block.minecraft.banner.rhombus.cyan": "Cyan Lozenge", + "block.minecraft.banner.rhombus.gray": "Gray Lozenge", + "block.minecraft.banner.rhombus.green": "Green Lozenge", + "block.minecraft.banner.rhombus.light_blue": "Light Blue Lozenge", + "block.minecraft.banner.rhombus.light_gray": "Light Gray Lozenge", + "block.minecraft.banner.rhombus.lime": "Lime Lozenge", + "block.minecraft.banner.rhombus.magenta": "Magenta Lozenge", + "block.minecraft.banner.rhombus.orange": "Orange Lozenge", + "block.minecraft.banner.rhombus.pink": "Pink Lozenge", + "block.minecraft.banner.rhombus.purple": "Purple Lozenge", + "block.minecraft.banner.rhombus.red": "Red Lozenge", + "block.minecraft.banner.rhombus.white": "White Lozenge", + "block.minecraft.banner.rhombus.yellow": "Yellow Lozenge", + "block.minecraft.banner.skull.black": "Black Skull Charge", + "block.minecraft.banner.skull.blue": "Blue Skull Charge", + "block.minecraft.banner.skull.brown": "Brown Skull Charge", + "block.minecraft.banner.skull.cyan": "Cyan Skull Charge", + "block.minecraft.banner.skull.gray": "Gray Skull Charge", + "block.minecraft.banner.skull.green": "Green Skull Charge", + "block.minecraft.banner.skull.light_blue": "Light Blue Skull Charge", + "block.minecraft.banner.skull.light_gray": "Light Gray Skull Charge", + "block.minecraft.banner.skull.lime": "Lime Skull Charge", + "block.minecraft.banner.skull.magenta": "Magenta Skull Charge", + "block.minecraft.banner.skull.orange": "Orange Skull Charge", + "block.minecraft.banner.skull.pink": "Pink Skull Charge", + "block.minecraft.banner.skull.purple": "Purple Skull Charge", + "block.minecraft.banner.skull.red": "Red Skull Charge", + "block.minecraft.banner.skull.white": "White Skull Charge", + "block.minecraft.banner.skull.yellow": "Yellow Skull Charge", + "block.minecraft.banner.small_stripes.black": "Black Paly", + "block.minecraft.banner.small_stripes.blue": "Blue Paly", + "block.minecraft.banner.small_stripes.brown": "Brown Paly", + "block.minecraft.banner.small_stripes.cyan": "Cyan Paly", + "block.minecraft.banner.small_stripes.gray": "Gray Paly", + "block.minecraft.banner.small_stripes.green": "Green Paly", + "block.minecraft.banner.small_stripes.light_blue": "Light Blue Paly", + "block.minecraft.banner.small_stripes.light_gray": "Light Gray Paly", + "block.minecraft.banner.small_stripes.lime": "Lime Paly", + "block.minecraft.banner.small_stripes.magenta": "Magenta Paly", + "block.minecraft.banner.small_stripes.orange": "Orange Paly", + "block.minecraft.banner.small_stripes.pink": "Pink Paly", + "block.minecraft.banner.small_stripes.purple": "Purple Paly", + "block.minecraft.banner.small_stripes.red": "Red Paly", + "block.minecraft.banner.small_stripes.white": "White Paly", + "block.minecraft.banner.small_stripes.yellow": "Yellow Paly", + "block.minecraft.banner.square_bottom_left.black": "Black Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.blue": "Blue Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.brown": "Brown Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.cyan": "Cyan Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.gray": "Gray Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.green": "Green Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.light_blue": "Light Blue Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.light_gray": "Light Gray Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.lime": "Lime Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.magenta": "Magenta Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.orange": "Orange Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.pink": "Pink Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.purple": "Purple Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.red": "Red Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.white": "White Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.yellow": "Yellow Base Dexter Canton", + "block.minecraft.banner.square_bottom_right.black": "Black Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.blue": "Blue Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.brown": "Brown Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.cyan": "Cyan Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.gray": "Gray Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.green": "Green Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.light_blue": "Light Blue Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.light_gray": "Light Gray Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.lime": "Lime Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.magenta": "Magenta Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.orange": "Orange Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.pink": "Pink Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.purple": "Purple Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.red": "Red Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.white": "White Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.yellow": "Yellow Base Sinister Canton", + "block.minecraft.banner.square_top_left.black": "Black Chief Dexter Canton", + "block.minecraft.banner.square_top_left.blue": "Blue Chief Dexter Canton", + "block.minecraft.banner.square_top_left.brown": "Brown Chief Dexter Canton", + "block.minecraft.banner.square_top_left.cyan": "Cyan Chief Dexter Canton", + "block.minecraft.banner.square_top_left.gray": "Gray Chief Dexter Canton", + "block.minecraft.banner.square_top_left.green": "Green Chief Dexter Canton", + "block.minecraft.banner.square_top_left.light_blue": "Light Blue Chief Dexter Canton", + "block.minecraft.banner.square_top_left.light_gray": "Light Gray Chief Dexter Canton", + "block.minecraft.banner.square_top_left.lime": "Lime Chief Dexter Canton", + "block.minecraft.banner.square_top_left.magenta": "Magenta Chief Dexter Canton", + "block.minecraft.banner.square_top_left.orange": "Orange Chief Dexter Canton", + "block.minecraft.banner.square_top_left.pink": "Pink Chief Dexter Canton", + "block.minecraft.banner.square_top_left.purple": "Purple Chief Dexter Canton", + "block.minecraft.banner.square_top_left.red": "Red Chief Dexter Canton", + "block.minecraft.banner.square_top_left.white": "White Chief Dexter Canton", + "block.minecraft.banner.square_top_left.yellow": "Yellow Chief Dexter Canton", + "block.minecraft.banner.square_top_right.black": "Black Chief Sinister Canton", + "block.minecraft.banner.square_top_right.blue": "Blue Chief Sinister Canton", + "block.minecraft.banner.square_top_right.brown": "Brown Chief Sinister Canton", + "block.minecraft.banner.square_top_right.cyan": "Cyan Chief Sinister Canton", + "block.minecraft.banner.square_top_right.gray": "Gray Chief Sinister Canton", + "block.minecraft.banner.square_top_right.green": "Green Chief Sinister Canton", + "block.minecraft.banner.square_top_right.light_blue": "Light Blue Chief Sinister Canton", + "block.minecraft.banner.square_top_right.light_gray": "Light Gray Chief Sinister Canton", + "block.minecraft.banner.square_top_right.lime": "Lime Chief Sinister Canton", + "block.minecraft.banner.square_top_right.magenta": "Magenta Chief Sinister Canton", + "block.minecraft.banner.square_top_right.orange": "Orange Chief Sinister Canton", + "block.minecraft.banner.square_top_right.pink": "Pink Chief Sinister Canton", + "block.minecraft.banner.square_top_right.purple": "Purple Chief Sinister Canton", + "block.minecraft.banner.square_top_right.red": "Red Chief Sinister Canton", + "block.minecraft.banner.square_top_right.white": "White Chief Sinister Canton", + "block.minecraft.banner.square_top_right.yellow": "Yellow Chief Sinister Canton", + "block.minecraft.banner.straight_cross.black": "Black Cross", + "block.minecraft.banner.straight_cross.blue": "Blue Cross", + "block.minecraft.banner.straight_cross.brown": "Brown Cross", + "block.minecraft.banner.straight_cross.cyan": "Cyan Cross", + "block.minecraft.banner.straight_cross.gray": "Gray Cross", + "block.minecraft.banner.straight_cross.green": "Green Cross", + "block.minecraft.banner.straight_cross.light_blue": "Light Blue Cross", + "block.minecraft.banner.straight_cross.light_gray": "Light Gray Cross", + "block.minecraft.banner.straight_cross.lime": "Lime Cross", + "block.minecraft.banner.straight_cross.magenta": "Magenta Cross", + "block.minecraft.banner.straight_cross.orange": "Orange Cross", + "block.minecraft.banner.straight_cross.pink": "Pink Cross", + "block.minecraft.banner.straight_cross.purple": "Purple Cross", + "block.minecraft.banner.straight_cross.red": "Red Cross", + "block.minecraft.banner.straight_cross.white": "White Cross", + "block.minecraft.banner.straight_cross.yellow": "Yellow Cross", + "block.minecraft.banner.stripe_bottom.black": "Black Base", + "block.minecraft.banner.stripe_bottom.blue": "Blue Base", + "block.minecraft.banner.stripe_bottom.brown": "Brown Base", + "block.minecraft.banner.stripe_bottom.cyan": "Cyan Base", + "block.minecraft.banner.stripe_bottom.gray": "Gray Base", + "block.minecraft.banner.stripe_bottom.green": "Green Base", + "block.minecraft.banner.stripe_bottom.light_blue": "Light Blue Base", + "block.minecraft.banner.stripe_bottom.light_gray": "Light Gray Base", + "block.minecraft.banner.stripe_bottom.lime": "Lime Base", + "block.minecraft.banner.stripe_bottom.magenta": "Magenta Base", + "block.minecraft.banner.stripe_bottom.orange": "Orange Base", + "block.minecraft.banner.stripe_bottom.pink": "Pink Base", + "block.minecraft.banner.stripe_bottom.purple": "Purple Base", + "block.minecraft.banner.stripe_bottom.red": "Red Base", + "block.minecraft.banner.stripe_bottom.white": "White Base", + "block.minecraft.banner.stripe_bottom.yellow": "Yellow Base", + "block.minecraft.banner.stripe_center.black": "Black Pale", + "block.minecraft.banner.stripe_center.blue": "Blue Pale", + "block.minecraft.banner.stripe_center.brown": "Brown Pale", + "block.minecraft.banner.stripe_center.cyan": "Cyan Pale", + "block.minecraft.banner.stripe_center.gray": "Gray Pale", + "block.minecraft.banner.stripe_center.green": "Green Pale", + "block.minecraft.banner.stripe_center.light_blue": "Light Blue Pale", + "block.minecraft.banner.stripe_center.light_gray": "Light Gray Pale", + "block.minecraft.banner.stripe_center.lime": "Lime Pale", + "block.minecraft.banner.stripe_center.magenta": "Magenta Pale", + "block.minecraft.banner.stripe_center.orange": "Orange Pale", + "block.minecraft.banner.stripe_center.pink": "Pink Pale", + "block.minecraft.banner.stripe_center.purple": "Purple Pale", + "block.minecraft.banner.stripe_center.red": "Red Pale", + "block.minecraft.banner.stripe_center.white": "White Pale", + "block.minecraft.banner.stripe_center.yellow": "Yellow Pale", + "block.minecraft.banner.stripe_downleft.black": "Black Bend Sinister", + "block.minecraft.banner.stripe_downleft.blue": "Blue Bend Sinister", + "block.minecraft.banner.stripe_downleft.brown": "Brown Bend Sinister", + "block.minecraft.banner.stripe_downleft.cyan": "Cyan Bend Sinister", + "block.minecraft.banner.stripe_downleft.gray": "Gray Bend Sinister", + "block.minecraft.banner.stripe_downleft.green": "Green Bend Sinister", + "block.minecraft.banner.stripe_downleft.light_blue": "Light Blue Bend Sinister", + "block.minecraft.banner.stripe_downleft.light_gray": "Light Gray Bend Sinister", + "block.minecraft.banner.stripe_downleft.lime": "Lime Bend Sinister", + "block.minecraft.banner.stripe_downleft.magenta": "Magenta Bend Sinister", + "block.minecraft.banner.stripe_downleft.orange": "Orange Bend Sinister", + "block.minecraft.banner.stripe_downleft.pink": "Pink Bend Sinister", + "block.minecraft.banner.stripe_downleft.purple": "Purple Bend Sinister", + "block.minecraft.banner.stripe_downleft.red": "Red Bend Sinister", + "block.minecraft.banner.stripe_downleft.white": "White Bend Sinister", + "block.minecraft.banner.stripe_downleft.yellow": "Yellow Bend Sinister", + "block.minecraft.banner.stripe_downright.black": "Black Bend", + "block.minecraft.banner.stripe_downright.blue": "Blue Bend", + "block.minecraft.banner.stripe_downright.brown": "Brown Bend", + "block.minecraft.banner.stripe_downright.cyan": "Cyan Bend", + "block.minecraft.banner.stripe_downright.gray": "Gray Bend", + "block.minecraft.banner.stripe_downright.green": "Green Bend", + "block.minecraft.banner.stripe_downright.light_blue": "Light Blue Bend", + "block.minecraft.banner.stripe_downright.light_gray": "Light Gray Bend", + "block.minecraft.banner.stripe_downright.lime": "Lime Bend", + "block.minecraft.banner.stripe_downright.magenta": "Magenta Bend", + "block.minecraft.banner.stripe_downright.orange": "Orange Bend", + "block.minecraft.banner.stripe_downright.pink": "Pink Bend", + "block.minecraft.banner.stripe_downright.purple": "Purple Bend", + "block.minecraft.banner.stripe_downright.red": "Red Bend", + "block.minecraft.banner.stripe_downright.white": "White Bend", + "block.minecraft.banner.stripe_downright.yellow": "Yellow Bend", + "block.minecraft.banner.stripe_left.black": "Black Pale Dexter", + "block.minecraft.banner.stripe_left.blue": "Blue Pale Dexter", + "block.minecraft.banner.stripe_left.brown": "Brown Pale Dexter", + "block.minecraft.banner.stripe_left.cyan": "Cyan Pale Dexter", + "block.minecraft.banner.stripe_left.gray": "Gray Pale Dexter", + "block.minecraft.banner.stripe_left.green": "Green Pale Dexter", + "block.minecraft.banner.stripe_left.light_blue": "Light Blue Pale Dexter", + "block.minecraft.banner.stripe_left.light_gray": "Light Gray Pale Dexter", + "block.minecraft.banner.stripe_left.lime": "Lime Pale Dexter", + "block.minecraft.banner.stripe_left.magenta": "Magenta Pale Dexter", + "block.minecraft.banner.stripe_left.orange": "Orange Pale Dexter", + "block.minecraft.banner.stripe_left.pink": "Pink Pale Dexter", + "block.minecraft.banner.stripe_left.purple": "Purple Pale Dexter", + "block.minecraft.banner.stripe_left.red": "Red Pale Dexter", + "block.minecraft.banner.stripe_left.white": "White Pale Dexter", + "block.minecraft.banner.stripe_left.yellow": "Yellow Pale Dexter", + "block.minecraft.banner.stripe_middle.black": "Black Fess", + "block.minecraft.banner.stripe_middle.blue": "Blue Fess", + "block.minecraft.banner.stripe_middle.brown": "Brown Fess", + "block.minecraft.banner.stripe_middle.cyan": "Cyan Fess", + "block.minecraft.banner.stripe_middle.gray": "Gray Fess", + "block.minecraft.banner.stripe_middle.green": "Green Fess", + "block.minecraft.banner.stripe_middle.light_blue": "Light Blue Fess", + "block.minecraft.banner.stripe_middle.light_gray": "Light Gray Fess", + "block.minecraft.banner.stripe_middle.lime": "Lime Fess", + "block.minecraft.banner.stripe_middle.magenta": "Magenta Fess", + "block.minecraft.banner.stripe_middle.orange": "Orange Fess", + "block.minecraft.banner.stripe_middle.pink": "Pink Fess", + "block.minecraft.banner.stripe_middle.purple": "Purple Fess", + "block.minecraft.banner.stripe_middle.red": "Red Fess", + "block.minecraft.banner.stripe_middle.white": "White Fess", + "block.minecraft.banner.stripe_middle.yellow": "Yellow Fess", + "block.minecraft.banner.stripe_right.black": "Black Pale Sinister", + "block.minecraft.banner.stripe_right.blue": "Blue Pale Sinister", + "block.minecraft.banner.stripe_right.brown": "Brown Pale Sinister", + "block.minecraft.banner.stripe_right.cyan": "Cyan Pale Sinister", + "block.minecraft.banner.stripe_right.gray": "Gray Pale Sinister", + "block.minecraft.banner.stripe_right.green": "Green Pale Sinister", + "block.minecraft.banner.stripe_right.light_blue": "Light Blue Pale Sinister", + "block.minecraft.banner.stripe_right.light_gray": "Light Gray Pale Sinister", + "block.minecraft.banner.stripe_right.lime": "Lime Pale Sinister", + "block.minecraft.banner.stripe_right.magenta": "Magenta Pale Sinister", + "block.minecraft.banner.stripe_right.orange": "Orange Pale Sinister", + "block.minecraft.banner.stripe_right.pink": "Pink Pale Sinister", + "block.minecraft.banner.stripe_right.purple": "Purple Pale Sinister", + "block.minecraft.banner.stripe_right.red": "Red Pale Sinister", + "block.minecraft.banner.stripe_right.white": "White Pale Sinister", + "block.minecraft.banner.stripe_right.yellow": "Yellow Pale Sinister", + "block.minecraft.banner.stripe_top.black": "Black Chief", + "block.minecraft.banner.stripe_top.blue": "Blue Chief", + "block.minecraft.banner.stripe_top.brown": "Brown Chief", + "block.minecraft.banner.stripe_top.cyan": "Cyan Chief", + "block.minecraft.banner.stripe_top.gray": "Gray Chief", + "block.minecraft.banner.stripe_top.green": "Green Chief", + "block.minecraft.banner.stripe_top.light_blue": "Light Blue Chief", + "block.minecraft.banner.stripe_top.light_gray": "Light Gray Chief", + "block.minecraft.banner.stripe_top.lime": "Lime Chief", + "block.minecraft.banner.stripe_top.magenta": "Magenta Chief", + "block.minecraft.banner.stripe_top.orange": "Orange Chief", + "block.minecraft.banner.stripe_top.pink": "Pink Chief", + "block.minecraft.banner.stripe_top.purple": "Purple Chief", + "block.minecraft.banner.stripe_top.red": "Red Chief", + "block.minecraft.banner.stripe_top.white": "White Chief", + "block.minecraft.banner.stripe_top.yellow": "Yellow Chief", + "block.minecraft.banner.triangle_bottom.black": "Black Chevron", + "block.minecraft.banner.triangle_bottom.blue": "Blue Chevron", + "block.minecraft.banner.triangle_bottom.brown": "Brown Chevron", + "block.minecraft.banner.triangle_bottom.cyan": "Cyan Chevron", + "block.minecraft.banner.triangle_bottom.gray": "Gray Chevron", + "block.minecraft.banner.triangle_bottom.green": "Green Chevron", + "block.minecraft.banner.triangle_bottom.light_blue": "Light Blue Chevron", + "block.minecraft.banner.triangle_bottom.light_gray": "Light Gray Chevron", + "block.minecraft.banner.triangle_bottom.lime": "Lime Chevron", + "block.minecraft.banner.triangle_bottom.magenta": "Magenta Chevron", + "block.minecraft.banner.triangle_bottom.orange": "Orange Chevron", + "block.minecraft.banner.triangle_bottom.pink": "Pink Chevron", + "block.minecraft.banner.triangle_bottom.purple": "Purple Chevron", + "block.minecraft.banner.triangle_bottom.red": "Red Chevron", + "block.minecraft.banner.triangle_bottom.white": "White Chevron", + "block.minecraft.banner.triangle_bottom.yellow": "Yellow Chevron", + "block.minecraft.banner.triangle_top.black": "Black Inverted Chevron", + "block.minecraft.banner.triangle_top.blue": "Blue Inverted Chevron", + "block.minecraft.banner.triangle_top.brown": "Brown Inverted Chevron", + "block.minecraft.banner.triangle_top.cyan": "Cyan Inverted Chevron", + "block.minecraft.banner.triangle_top.gray": "Gray Inverted Chevron", + "block.minecraft.banner.triangle_top.green": "Green Inverted Chevron", + "block.minecraft.banner.triangle_top.light_blue": "Light Blue Inverted Chevron", + "block.minecraft.banner.triangle_top.light_gray": "Light Gray Inverted Chevron", + "block.minecraft.banner.triangle_top.lime": "Lime Inverted Chevron", + "block.minecraft.banner.triangle_top.magenta": "Magenta Inverted Chevron", + "block.minecraft.banner.triangle_top.orange": "Orange Inverted Chevron", + "block.minecraft.banner.triangle_top.pink": "Pink Inverted Chevron", + "block.minecraft.banner.triangle_top.purple": "Purple Inverted Chevron", + "block.minecraft.banner.triangle_top.red": "Red Inverted Chevron", + "block.minecraft.banner.triangle_top.white": "White Inverted Chevron", + "block.minecraft.banner.triangle_top.yellow": "Yellow Inverted Chevron", + "block.minecraft.banner.triangles_bottom.black": "Black Base Indented", + "block.minecraft.banner.triangles_bottom.blue": "Blue Base Indented", + "block.minecraft.banner.triangles_bottom.brown": "Brown Base Indented", + "block.minecraft.banner.triangles_bottom.cyan": "Cyan Base Indented", + "block.minecraft.banner.triangles_bottom.gray": "Gray Base Indented", + "block.minecraft.banner.triangles_bottom.green": "Green Base Indented", + "block.minecraft.banner.triangles_bottom.light_blue": "Light Blue Base Indented", + "block.minecraft.banner.triangles_bottom.light_gray": "Light Gray Base Indented", + "block.minecraft.banner.triangles_bottom.lime": "Lime Base Indented", + "block.minecraft.banner.triangles_bottom.magenta": "Magenta Base Indented", + "block.minecraft.banner.triangles_bottom.orange": "Orange Base Indented", + "block.minecraft.banner.triangles_bottom.pink": "Pink Base Indented", + "block.minecraft.banner.triangles_bottom.purple": "Purple Base Indented", + "block.minecraft.banner.triangles_bottom.red": "Red Base Indented", + "block.minecraft.banner.triangles_bottom.white": "White Base Indented", + "block.minecraft.banner.triangles_bottom.yellow": "Yellow Base Indented", + "block.minecraft.banner.triangles_top.black": "Black Chief Indented", + "block.minecraft.banner.triangles_top.blue": "Blue Chief Indented", + "block.minecraft.banner.triangles_top.brown": "Brown Chief Indented", + "block.minecraft.banner.triangles_top.cyan": "Cyan Chief Indented", + "block.minecraft.banner.triangles_top.gray": "Gray Chief Indented", + "block.minecraft.banner.triangles_top.green": "Green Chief Indented", + "block.minecraft.banner.triangles_top.light_blue": "Light Blue Chief Indented", + "block.minecraft.banner.triangles_top.light_gray": "Light Gray Chief Indented", + "block.minecraft.banner.triangles_top.lime": "Lime Chief Indented", + "block.minecraft.banner.triangles_top.magenta": "Magenta Chief Indented", + "block.minecraft.banner.triangles_top.orange": "Orange Chief Indented", + "block.minecraft.banner.triangles_top.pink": "Pink Chief Indented", + "block.minecraft.banner.triangles_top.purple": "Purple Chief Indented", + "block.minecraft.banner.triangles_top.red": "Red Chief Indented", + "block.minecraft.banner.triangles_top.white": "White Chief Indented", + "block.minecraft.banner.triangles_top.yellow": "Yellow Chief Indented", + "block.minecraft.barrel": "Barrel", + "block.minecraft.barrier": "Barrier", + "block.minecraft.basalt": "Basalt", + "block.minecraft.beacon": "Beacon", + "block.minecraft.beacon.primary": "Primary Power", + "block.minecraft.beacon.secondary": "Secondary Power", + "block.minecraft.bed.no_sleep": "You can sleep only at night or during thunderstorms", + "block.minecraft.bed.not_safe": "You may not rest now; there are monsters nearby", + "block.minecraft.bed.obstructed": "This bed is obstructed", + "block.minecraft.bed.occupied": "This bed is occupied", + "block.minecraft.bed.too_far_away": "You may not rest now; the bed is too far away", + "block.minecraft.bedrock": "Bedrock", + "block.minecraft.bee_nest": "Bee Nest", + "block.minecraft.beehive": "Beehive", + "block.minecraft.beetroots": "Beetroots", + "block.minecraft.bell": "Bell", + "block.minecraft.big_dripleaf": "Big Dripleaf", + "block.minecraft.big_dripleaf_stem": "Big Dripleaf Stem", + "block.minecraft.birch_button": "Birch Button", + "block.minecraft.birch_door": "Birch Door", + "block.minecraft.birch_fence": "Birch Fence", + "block.minecraft.birch_fence_gate": "Birch Fence Gate", + "block.minecraft.birch_hanging_sign": "Birch Hanging Sign", + "block.minecraft.birch_leaves": "Birch Leaves", + "block.minecraft.birch_log": "Birch Log", + "block.minecraft.birch_planks": "Birch Planks", + "block.minecraft.birch_pressure_plate": "Birch Pressure Plate", + "block.minecraft.birch_sapling": "Birch Sapling", + "block.minecraft.birch_sign": "Birch Sign", + "block.minecraft.birch_slab": "Birch Slab", + "block.minecraft.birch_stairs": "Birch Stairs", + "block.minecraft.birch_trapdoor": "Birch Trapdoor", + "block.minecraft.birch_wall_hanging_sign": "Birch Wall Hanging Sign", + "block.minecraft.birch_wall_sign": "Birch Wall Sign", + "block.minecraft.birch_wood": "Birch Wood", + "block.minecraft.black_banner": "Black Banner", + "block.minecraft.black_bed": "Black Bed", + "block.minecraft.black_candle": "Black Candle", + "block.minecraft.black_candle_cake": "Cake with Black Candle", + "block.minecraft.black_carpet": "Black Carpet", + "block.minecraft.black_concrete": "Black Concrete", + "block.minecraft.black_concrete_powder": "Black Concrete Powder", + "block.minecraft.black_glazed_terracotta": "Black Glazed Terracotta", + "block.minecraft.black_shulker_box": "Black Shulker Box", + "block.minecraft.black_stained_glass": "Black Stained Glass", + "block.minecraft.black_stained_glass_pane": "Black Stained Glass Pane", + "block.minecraft.black_terracotta": "Black Terracotta", + "block.minecraft.black_wool": "Black Wool", + "block.minecraft.blackstone": "Blackstone", + "block.minecraft.blackstone_slab": "Blackstone Slab", + "block.minecraft.blackstone_stairs": "Blackstone Stairs", + "block.minecraft.blackstone_wall": "Blackstone Wall", + "block.minecraft.blast_furnace": "Blast Furnace", + "block.minecraft.blue_banner": "Blue Banner", + "block.minecraft.blue_bed": "Blue Bed", + "block.minecraft.blue_candle": "Blue Candle", + "block.minecraft.blue_candle_cake": "Cake with Blue Candle", + "block.minecraft.blue_carpet": "Blue Carpet", + "block.minecraft.blue_concrete": "Blue Concrete", + "block.minecraft.blue_concrete_powder": "Blue Concrete Powder", + "block.minecraft.blue_glazed_terracotta": "Blue Glazed Terracotta", + "block.minecraft.blue_ice": "Blue Ice", + "block.minecraft.blue_orchid": "Blue Orchid", + "block.minecraft.blue_shulker_box": "Blue Shulker Box", + "block.minecraft.blue_stained_glass": "Blue Stained Glass", + "block.minecraft.blue_stained_glass_pane": "Blue Stained Glass Pane", + "block.minecraft.blue_terracotta": "Blue Terracotta", + "block.minecraft.blue_wool": "Blue Wool", + "block.minecraft.bone_block": "Bone Block", + "block.minecraft.bookshelf": "Bookshelf", + "block.minecraft.brain_coral": "Brain Coral", + "block.minecraft.brain_coral_block": "Brain Coral Block", + "block.minecraft.brain_coral_fan": "Brain Coral Fan", + "block.minecraft.brain_coral_wall_fan": "Brain Coral Wall Fan", + "block.minecraft.brewing_stand": "Brewing Stand", + "block.minecraft.brick_slab": "Brick Slab", + "block.minecraft.brick_stairs": "Brick Stairs", + "block.minecraft.brick_wall": "Brick Wall", + "block.minecraft.bricks": "Bricks", + "block.minecraft.brown_banner": "Brown Banner", + "block.minecraft.brown_bed": "Brown Bed", + "block.minecraft.brown_candle": "Brown Candle", + "block.minecraft.brown_candle_cake": "Cake with Brown Candle", + "block.minecraft.brown_carpet": "Brown Carpet", + "block.minecraft.brown_concrete": "Brown Concrete", + "block.minecraft.brown_concrete_powder": "Brown Concrete Powder", + "block.minecraft.brown_glazed_terracotta": "Brown Glazed Terracotta", + "block.minecraft.brown_mushroom": "Brown Mushroom", + "block.minecraft.brown_mushroom_block": "Brown Mushroom Block", + "block.minecraft.brown_shulker_box": "Brown Shulker Box", + "block.minecraft.brown_stained_glass": "Brown Stained Glass", + "block.minecraft.brown_stained_glass_pane": "Brown Stained Glass Pane", + "block.minecraft.brown_terracotta": "Brown Terracotta", + "block.minecraft.brown_wool": "Brown Wool", + "block.minecraft.bubble_column": "Bubble Column", + "block.minecraft.bubble_coral": "Bubble Coral", + "block.minecraft.bubble_coral_block": "Bubble Coral Block", + "block.minecraft.bubble_coral_fan": "Bubble Coral Fan", + "block.minecraft.bubble_coral_wall_fan": "Bubble Coral Wall Fan", + "block.minecraft.budding_amethyst": "Budding Amethyst", + "block.minecraft.cactus": "Cactus", + "block.minecraft.cake": "Cake", + "block.minecraft.calcite": "Calcite", + "block.minecraft.calibrated_sculk_sensor": "Calibrated Sculk Sensor", + "block.minecraft.campfire": "Campfire", + "block.minecraft.candle": "Candle", + "block.minecraft.candle_cake": "Cake with Candle", + "block.minecraft.carrots": "Carrots", + "block.minecraft.cartography_table": "Cartography Table", + "block.minecraft.carved_pumpkin": "Carved Pumpkin", + "block.minecraft.cauldron": "Cauldron", + "block.minecraft.cave_air": "Cave Air", + "block.minecraft.cave_vines": "Cave Vines", + "block.minecraft.cave_vines_plant": "Cave Vines Plant", + "block.minecraft.chain": "Chain", + "block.minecraft.chain_command_block": "Chain Command Block", + "block.minecraft.cherry_button": "Cherry Button", + "block.minecraft.cherry_door": "Cherry Door", + "block.minecraft.cherry_fence": "Cherry Fence", + "block.minecraft.cherry_fence_gate": "Cherry Fence Gate", + "block.minecraft.cherry_hanging_sign": "Cherry Hanging Sign", + "block.minecraft.cherry_leaves": "Cherry Leaves", + "block.minecraft.cherry_log": "Cherry Log", + "block.minecraft.cherry_planks": "Cherry Planks", + "block.minecraft.cherry_pressure_plate": "Cherry Pressure Plate", + "block.minecraft.cherry_sapling": "Cherry Sapling", + "block.minecraft.cherry_sign": "Cherry Sign", + "block.minecraft.cherry_slab": "Cherry Slab", + "block.minecraft.cherry_stairs": "Cherry Stairs", + "block.minecraft.cherry_trapdoor": "Cherry Trapdoor", + "block.minecraft.cherry_wall_hanging_sign": "Cherry Wall Hanging Sign", + "block.minecraft.cherry_wall_sign": "Cherry Wall Sign", + "block.minecraft.cherry_wood": "Cherry Wood", + "block.minecraft.chest": "Chest", + "block.minecraft.chipped_anvil": "Chipped Anvil", + "block.minecraft.chiseled_bookshelf": "Chiseled Bookshelf", + "block.minecraft.chiseled_copper": "Chiseled Copper", + "block.minecraft.chiseled_deepslate": "Chiseled Deepslate", + "block.minecraft.chiseled_nether_bricks": "Chiseled Nether Bricks", + "block.minecraft.chiseled_polished_blackstone": "Chiseled Polished Blackstone", + "block.minecraft.chiseled_quartz_block": "Chiseled Quartz Block", + "block.minecraft.chiseled_red_sandstone": "Chiseled Red Sandstone", + "block.minecraft.chiseled_sandstone": "Chiseled Sandstone", + "block.minecraft.chiseled_stone_bricks": "Chiseled Stone Bricks", + "block.minecraft.chiseled_tuff": "Chiseled Tuff", + "block.minecraft.chiseled_tuff_bricks": "Chiseled Tuff Bricks", + "block.minecraft.chorus_flower": "Chorus Flower", + "block.minecraft.chorus_plant": "Chorus Plant", + "block.minecraft.clay": "Clay", + "block.minecraft.coal_block": "Block of Coal", + "block.minecraft.coal_ore": "Coal Ore", + "block.minecraft.coarse_dirt": "Coarse Dirt", + "block.minecraft.cobbled_deepslate": "Cobbled Deepslate", + "block.minecraft.cobbled_deepslate_slab": "Cobbled Deepslate Slab", + "block.minecraft.cobbled_deepslate_stairs": "Cobbled Deepslate Stairs", + "block.minecraft.cobbled_deepslate_wall": "Cobbled Deepslate Wall", + "block.minecraft.cobblestone": "Cobblestone", + "block.minecraft.cobblestone_slab": "Cobblestone Slab", + "block.minecraft.cobblestone_stairs": "Cobblestone Stairs", + "block.minecraft.cobblestone_wall": "Cobblestone Wall", + "block.minecraft.cobweb": "Cobweb", + "block.minecraft.cocoa": "Cocoa", + "block.minecraft.command_block": "Command Block", + "block.minecraft.comparator": "Redstone Comparator", + "block.minecraft.composter": "Composter", + "block.minecraft.conduit": "Conduit", + "block.minecraft.copper_block": "Block of Copper", + "block.minecraft.copper_bulb": "Copper Bulb", + "block.minecraft.copper_door": "Copper Door", + "block.minecraft.copper_grate": "Copper Grate", + "block.minecraft.copper_ore": "Copper Ore", + "block.minecraft.copper_trapdoor": "Copper Trapdoor", + "block.minecraft.cornflower": "Cornflower", + "block.minecraft.cracked_deepslate_bricks": "Cracked Deepslate Bricks", + "block.minecraft.cracked_deepslate_tiles": "Cracked Deepslate Tiles", + "block.minecraft.cracked_nether_bricks": "Cracked Nether Bricks", + "block.minecraft.cracked_polished_blackstone_bricks": "Cracked Polished Blackstone Bricks", + "block.minecraft.cracked_stone_bricks": "Cracked Stone Bricks", + "block.minecraft.crafter": "Crafter", + "block.minecraft.crafting_table": "Crafting Table", + "block.minecraft.creeper_head": "Creeper Head", + "block.minecraft.creeper_wall_head": "Creeper Wall Head", + "block.minecraft.crimson_button": "Crimson Button", + "block.minecraft.crimson_door": "Crimson Door", + "block.minecraft.crimson_fence": "Crimson Fence", + "block.minecraft.crimson_fence_gate": "Crimson Fence Gate", + "block.minecraft.crimson_fungus": "Crimson Fungus", + "block.minecraft.crimson_hanging_sign": "Crimson Hanging Sign", + "block.minecraft.crimson_hyphae": "Crimson Hyphae", + "block.minecraft.crimson_nylium": "Crimson Nylium", + "block.minecraft.crimson_planks": "Crimson Planks", + "block.minecraft.crimson_pressure_plate": "Crimson Pressure Plate", + "block.minecraft.crimson_roots": "Crimson Roots", + "block.minecraft.crimson_sign": "Crimson Sign", + "block.minecraft.crimson_slab": "Crimson Slab", + "block.minecraft.crimson_stairs": "Crimson Stairs", + "block.minecraft.crimson_stem": "Crimson Stem", + "block.minecraft.crimson_trapdoor": "Crimson Trapdoor", + "block.minecraft.crimson_wall_hanging_sign": "Crimson Wall Hanging Sign", + "block.minecraft.crimson_wall_sign": "Crimson Wall Sign", + "block.minecraft.crying_obsidian": "Crying Obsidian", + "block.minecraft.cut_copper": "Cut Copper", + "block.minecraft.cut_copper_slab": "Cut Copper Slab", + "block.minecraft.cut_copper_stairs": "Cut Copper Stairs", + "block.minecraft.cut_red_sandstone": "Cut Red Sandstone", + "block.minecraft.cut_red_sandstone_slab": "Cut Red Sandstone Slab", + "block.minecraft.cut_sandstone": "Cut Sandstone", + "block.minecraft.cut_sandstone_slab": "Cut Sandstone Slab", + "block.minecraft.cyan_banner": "Cyan Banner", + "block.minecraft.cyan_bed": "Cyan Bed", + "block.minecraft.cyan_candle": "Cyan Candle", + "block.minecraft.cyan_candle_cake": "Cake with Cyan Candle", + "block.minecraft.cyan_carpet": "Cyan Carpet", + "block.minecraft.cyan_concrete": "Cyan Concrete", + "block.minecraft.cyan_concrete_powder": "Cyan Concrete Powder", + "block.minecraft.cyan_glazed_terracotta": "Cyan Glazed Terracotta", + "block.minecraft.cyan_shulker_box": "Cyan Shulker Box", + "block.minecraft.cyan_stained_glass": "Cyan Stained Glass", + "block.minecraft.cyan_stained_glass_pane": "Cyan Stained Glass Pane", + "block.minecraft.cyan_terracotta": "Cyan Terracotta", + "block.minecraft.cyan_wool": "Cyan Wool", + "block.minecraft.damaged_anvil": "Damaged Anvil", + "block.minecraft.dandelion": "Dandelion", + "block.minecraft.dark_oak_button": "Dark Oak Button", + "block.minecraft.dark_oak_door": "Dark Oak Door", + "block.minecraft.dark_oak_fence": "Dark Oak Fence", + "block.minecraft.dark_oak_fence_gate": "Dark Oak Fence Gate", + "block.minecraft.dark_oak_hanging_sign": "Dark Oak Hanging Sign", + "block.minecraft.dark_oak_leaves": "Dark Oak Leaves", + "block.minecraft.dark_oak_log": "Dark Oak Log", + "block.minecraft.dark_oak_planks": "Dark Oak Planks", + "block.minecraft.dark_oak_pressure_plate": "Dark Oak Pressure Plate", + "block.minecraft.dark_oak_sapling": "Dark Oak Sapling", + "block.minecraft.dark_oak_sign": "Dark Oak Sign", + "block.minecraft.dark_oak_slab": "Dark Oak Slab", + "block.minecraft.dark_oak_stairs": "Dark Oak Stairs", + "block.minecraft.dark_oak_trapdoor": "Dark Oak Trapdoor", + "block.minecraft.dark_oak_wall_hanging_sign": "Dark Oak Wall Hanging Sign", + "block.minecraft.dark_oak_wall_sign": "Dark Oak Wall Sign", + "block.minecraft.dark_oak_wood": "Dark Oak Wood", + "block.minecraft.dark_prismarine": "Dark Prismarine", + "block.minecraft.dark_prismarine_slab": "Dark Prismarine Slab", + "block.minecraft.dark_prismarine_stairs": "Dark Prismarine Stairs", + "block.minecraft.daylight_detector": "Daylight Detector", + "block.minecraft.dead_brain_coral": "Dead Brain Coral", + "block.minecraft.dead_brain_coral_block": "Dead Brain Coral Block", + "block.minecraft.dead_brain_coral_fan": "Dead Brain Coral Fan", + "block.minecraft.dead_brain_coral_wall_fan": "Dead Brain Coral Wall Fan", + "block.minecraft.dead_bubble_coral": "Dead Bubble Coral", + "block.minecraft.dead_bubble_coral_block": "Dead Bubble Coral Block", + "block.minecraft.dead_bubble_coral_fan": "Dead Bubble Coral Fan", + "block.minecraft.dead_bubble_coral_wall_fan": "Dead Bubble Coral Wall Fan", + "block.minecraft.dead_bush": "Dead Bush", + "block.minecraft.dead_fire_coral": "Dead Fire Coral", + "block.minecraft.dead_fire_coral_block": "Dead Fire Coral Block", + "block.minecraft.dead_fire_coral_fan": "Dead Fire Coral Fan", + "block.minecraft.dead_fire_coral_wall_fan": "Dead Fire Coral Wall Fan", + "block.minecraft.dead_horn_coral": "Dead Horn Coral", + "block.minecraft.dead_horn_coral_block": "Dead Horn Coral Block", + "block.minecraft.dead_horn_coral_fan": "Dead Horn Coral Fan", + "block.minecraft.dead_horn_coral_wall_fan": "Dead Horn Coral Wall Fan", + "block.minecraft.dead_tube_coral": "Dead Tube Coral", + "block.minecraft.dead_tube_coral_block": "Dead Tube Coral Block", + "block.minecraft.dead_tube_coral_fan": "Dead Tube Coral Fan", + "block.minecraft.dead_tube_coral_wall_fan": "Dead Tube Coral Wall Fan", + "block.minecraft.decorated_pot": "Decorated Pot", + "block.minecraft.deepslate": "Deepslate", + "block.minecraft.deepslate_brick_slab": "Deepslate Brick Slab", + "block.minecraft.deepslate_brick_stairs": "Deepslate Brick Stairs", + "block.minecraft.deepslate_brick_wall": "Deepslate Brick Wall", + "block.minecraft.deepslate_bricks": "Deepslate Bricks", + "block.minecraft.deepslate_coal_ore": "Deepslate Coal Ore", + "block.minecraft.deepslate_copper_ore": "Deepslate Copper Ore", + "block.minecraft.deepslate_diamond_ore": "Deepslate Diamond Ore", + "block.minecraft.deepslate_emerald_ore": "Deepslate Emerald Ore", + "block.minecraft.deepslate_gold_ore": "Deepslate Gold Ore", + "block.minecraft.deepslate_iron_ore": "Deepslate Iron Ore", + "block.minecraft.deepslate_lapis_ore": "Deepslate Lapis Lazuli Ore", + "block.minecraft.deepslate_redstone_ore": "Deepslate Redstone Ore", + "block.minecraft.deepslate_tile_slab": "Deepslate Tile Slab", + "block.minecraft.deepslate_tile_stairs": "Deepslate Tile Stairs", + "block.minecraft.deepslate_tile_wall": "Deepslate Tile Wall", + "block.minecraft.deepslate_tiles": "Deepslate Tiles", + "block.minecraft.detector_rail": "Detector Rail", + "block.minecraft.diamond_block": "Block of Diamond", + "block.minecraft.diamond_ore": "Diamond Ore", + "block.minecraft.diorite": "Diorite", + "block.minecraft.diorite_slab": "Diorite Slab", + "block.minecraft.diorite_stairs": "Diorite Stairs", + "block.minecraft.diorite_wall": "Diorite Wall", + "block.minecraft.dirt": "Dirt", + "block.minecraft.dirt_path": "Dirt Path", + "block.minecraft.dispenser": "Dispenser", + "block.minecraft.dragon_egg": "Dragon Egg", + "block.minecraft.dragon_head": "Dragon Head", + "block.minecraft.dragon_wall_head": "Dragon Wall Head", + "block.minecraft.dried_kelp_block": "Dried Kelp Block", + "block.minecraft.dripstone_block": "Dripstone Block", + "block.minecraft.dropper": "Dropper", + "block.minecraft.emerald_block": "Block of Emerald", + "block.minecraft.emerald_ore": "Emerald Ore", + "block.minecraft.enchanting_table": "Enchanting Table", + "block.minecraft.end_gateway": "End Gateway", + "block.minecraft.end_portal": "End Portal", + "block.minecraft.end_portal_frame": "End Portal Frame", + "block.minecraft.end_rod": "End Rod", + "block.minecraft.end_stone": "End Stone", + "block.minecraft.end_stone_brick_slab": "End Stone Brick Slab", + "block.minecraft.end_stone_brick_stairs": "End Stone Brick Stairs", + "block.minecraft.end_stone_brick_wall": "End Stone Brick Wall", + "block.minecraft.end_stone_bricks": "End Stone Bricks", + "block.minecraft.ender_chest": "Ender Chest", + "block.minecraft.exposed_chiseled_copper": "Exposed Chiseled Copper", + "block.minecraft.exposed_copper": "Exposed Copper", + "block.minecraft.exposed_copper_bulb": "Exposed Copper Bulb", + "block.minecraft.exposed_copper_door": "Exposed Copper Door", + "block.minecraft.exposed_copper_grate": "Exposed Copper Grate", + "block.minecraft.exposed_copper_trapdoor": "Exposed Copper Trapdoor", + "block.minecraft.exposed_cut_copper": "Exposed Cut Copper", + "block.minecraft.exposed_cut_copper_slab": "Exposed Cut Copper Slab", + "block.minecraft.exposed_cut_copper_stairs": "Exposed Cut Copper Stairs", + "block.minecraft.farmland": "Farmland", + "block.minecraft.fern": "Fern", + "block.minecraft.fire": "Fire", + "block.minecraft.fire_coral": "Fire Coral", + "block.minecraft.fire_coral_block": "Fire Coral Block", + "block.minecraft.fire_coral_fan": "Fire Coral Fan", + "block.minecraft.fire_coral_wall_fan": "Fire Coral Wall Fan", + "block.minecraft.fletching_table": "Fletching Table", + "block.minecraft.flower_pot": "Flower Pot", + "block.minecraft.flowering_azalea": "Flowering Azalea", + "block.minecraft.flowering_azalea_leaves": "Flowering Azalea Leaves", + "block.minecraft.frogspawn": "Frogspawn", + "block.minecraft.frosted_ice": "Frosted Ice", + "block.minecraft.furnace": "Furnace", + "block.minecraft.gilded_blackstone": "Gilded Blackstone", + "block.minecraft.glass": "Glass", + "block.minecraft.glass_pane": "Glass Pane", + "block.minecraft.glow_lichen": "Glow Lichen", + "block.minecraft.glowstone": "Glowstone", + "block.minecraft.gold_block": "Block of Gold", + "block.minecraft.gold_ore": "Gold Ore", + "block.minecraft.granite": "Granite", + "block.minecraft.granite_slab": "Granite Slab", + "block.minecraft.granite_stairs": "Granite Stairs", + "block.minecraft.granite_wall": "Granite Wall", + "block.minecraft.grass": "Grass", + "block.minecraft.grass_block": "Grass Block", + "block.minecraft.gravel": "Gravel", + "block.minecraft.gray_banner": "Gray Banner", + "block.minecraft.gray_bed": "Gray Bed", + "block.minecraft.gray_candle": "Gray Candle", + "block.minecraft.gray_candle_cake": "Cake with Gray Candle", + "block.minecraft.gray_carpet": "Gray Carpet", + "block.minecraft.gray_concrete": "Gray Concrete", + "block.minecraft.gray_concrete_powder": "Gray Concrete Powder", + "block.minecraft.gray_glazed_terracotta": "Gray Glazed Terracotta", + "block.minecraft.gray_shulker_box": "Gray Shulker Box", + "block.minecraft.gray_stained_glass": "Gray Stained Glass", + "block.minecraft.gray_stained_glass_pane": "Gray Stained Glass Pane", + "block.minecraft.gray_terracotta": "Gray Terracotta", + "block.minecraft.gray_wool": "Gray Wool", + "block.minecraft.green_banner": "Green Banner", + "block.minecraft.green_bed": "Green Bed", + "block.minecraft.green_candle": "Green Candle", + "block.minecraft.green_candle_cake": "Cake with Green Candle", + "block.minecraft.green_carpet": "Green Carpet", + "block.minecraft.green_concrete": "Green Concrete", + "block.minecraft.green_concrete_powder": "Green Concrete Powder", + "block.minecraft.green_glazed_terracotta": "Green Glazed Terracotta", + "block.minecraft.green_shulker_box": "Green Shulker Box", + "block.minecraft.green_stained_glass": "Green Stained Glass", + "block.minecraft.green_stained_glass_pane": "Green Stained Glass Pane", + "block.minecraft.green_terracotta": "Green Terracotta", + "block.minecraft.green_wool": "Green Wool", + "block.minecraft.grindstone": "Grindstone", + "block.minecraft.hanging_roots": "Hanging Roots", + "block.minecraft.hay_block": "Hay Bale", + "block.minecraft.heavy_core": "Heavy Core", + "block.minecraft.heavy_weighted_pressure_plate": "Heavy Weighted Pressure Plate", + "block.minecraft.honey_block": "Honey Block", + "block.minecraft.honeycomb_block": "Honeycomb Block", + "block.minecraft.hopper": "Hopper", + "block.minecraft.horn_coral": "Horn Coral", + "block.minecraft.horn_coral_block": "Horn Coral Block", + "block.minecraft.horn_coral_fan": "Horn Coral Fan", + "block.minecraft.horn_coral_wall_fan": "Horn Coral Wall Fan", + "block.minecraft.ice": "Ice", + "block.minecraft.infested_chiseled_stone_bricks": "Infested Chiseled Stone Bricks", + "block.minecraft.infested_cobblestone": "Infested Cobblestone", + "block.minecraft.infested_cracked_stone_bricks": "Infested Cracked Stone Bricks", + "block.minecraft.infested_deepslate": "Infested Deepslate", + "block.minecraft.infested_mossy_stone_bricks": "Infested Mossy Stone Bricks", + "block.minecraft.infested_stone": "Infested Stone", + "block.minecraft.infested_stone_bricks": "Infested Stone Bricks", + "block.minecraft.iron_bars": "Iron Bars", + "block.minecraft.iron_block": "Block of Iron", + "block.minecraft.iron_door": "Iron Door", + "block.minecraft.iron_ore": "Iron Ore", + "block.minecraft.iron_trapdoor": "Iron Trapdoor", + "block.minecraft.jack_o_lantern": "Jack o'Lantern", + "block.minecraft.jigsaw": "Jigsaw Block", + "block.minecraft.jukebox": "Jukebox", + "block.minecraft.jungle_button": "Jungle Button", + "block.minecraft.jungle_door": "Jungle Door", + "block.minecraft.jungle_fence": "Jungle Fence", + "block.minecraft.jungle_fence_gate": "Jungle Fence Gate", + "block.minecraft.jungle_hanging_sign": "Jungle Hanging Sign", + "block.minecraft.jungle_leaves": "Jungle Leaves", + "block.minecraft.jungle_log": "Jungle Log", + "block.minecraft.jungle_planks": "Jungle Planks", + "block.minecraft.jungle_pressure_plate": "Jungle Pressure Plate", + "block.minecraft.jungle_sapling": "Jungle Sapling", + "block.minecraft.jungle_sign": "Jungle Sign", + "block.minecraft.jungle_slab": "Jungle Slab", + "block.minecraft.jungle_stairs": "Jungle Stairs", + "block.minecraft.jungle_trapdoor": "Jungle Trapdoor", + "block.minecraft.jungle_wall_hanging_sign": "Jungle Wall Hanging Sign", + "block.minecraft.jungle_wall_sign": "Jungle Wall Sign", + "block.minecraft.jungle_wood": "Jungle Wood", + "block.minecraft.kelp": "Kelp", + "block.minecraft.kelp_plant": "Kelp Plant", + "block.minecraft.ladder": "Ladder", + "block.minecraft.lantern": "Lantern", + "block.minecraft.lapis_block": "Block of Lapis Lazuli", + "block.minecraft.lapis_ore": "Lapis Lazuli Ore", + "block.minecraft.large_amethyst_bud": "Large Amethyst Bud", + "block.minecraft.large_fern": "Large Fern", + "block.minecraft.lava": "Lava", + "block.minecraft.lava_cauldron": "Lava Cauldron", + "block.minecraft.lectern": "Lectern", + "block.minecraft.lever": "Lever", + "block.minecraft.light": "Light", + "block.minecraft.light_blue_banner": "Light Blue Banner", + "block.minecraft.light_blue_bed": "Light Blue Bed", + "block.minecraft.light_blue_candle": "Light Blue Candle", + "block.minecraft.light_blue_candle_cake": "Cake with Light Blue Candle", + "block.minecraft.light_blue_carpet": "Light Blue Carpet", + "block.minecraft.light_blue_concrete": "Light Blue Concrete", + "block.minecraft.light_blue_concrete_powder": "Light Blue Concrete Powder", + "block.minecraft.light_blue_glazed_terracotta": "Light Blue Glazed Terracotta", + "block.minecraft.light_blue_shulker_box": "Light Blue Shulker Box", + "block.minecraft.light_blue_stained_glass": "Light Blue Stained Glass", + "block.minecraft.light_blue_stained_glass_pane": "Light Blue Stained Glass Pane", + "block.minecraft.light_blue_terracotta": "Light Blue Terracotta", + "block.minecraft.light_blue_wool": "Light Blue Wool", + "block.minecraft.light_gray_banner": "Light Gray Banner", + "block.minecraft.light_gray_bed": "Light Gray Bed", + "block.minecraft.light_gray_candle": "Light Gray Candle", + "block.minecraft.light_gray_candle_cake": "Cake with Light Gray Candle", + "block.minecraft.light_gray_carpet": "Light Gray Carpet", + "block.minecraft.light_gray_concrete": "Light Gray Concrete", + "block.minecraft.light_gray_concrete_powder": "Light Gray Concrete Powder", + "block.minecraft.light_gray_glazed_terracotta": "Light Gray Glazed Terracotta", + "block.minecraft.light_gray_shulker_box": "Light Gray Shulker Box", + "block.minecraft.light_gray_stained_glass": "Light Gray Stained Glass", + "block.minecraft.light_gray_stained_glass_pane": "Light Gray Stained Glass Pane", + "block.minecraft.light_gray_terracotta": "Light Gray Terracotta", + "block.minecraft.light_gray_wool": "Light Gray Wool", + "block.minecraft.light_weighted_pressure_plate": "Light Weighted Pressure Plate", + "block.minecraft.lightning_rod": "Lightning Rod", + "block.minecraft.lilac": "Lilac", + "block.minecraft.lily_of_the_valley": "Lily of the Valley", + "block.minecraft.lily_pad": "Lily Pad", + "block.minecraft.lime_banner": "Lime Banner", + "block.minecraft.lime_bed": "Lime Bed", + "block.minecraft.lime_candle": "Lime Candle", + "block.minecraft.lime_candle_cake": "Cake with Lime Candle", + "block.minecraft.lime_carpet": "Lime Carpet", + "block.minecraft.lime_concrete": "Lime Concrete", + "block.minecraft.lime_concrete_powder": "Lime Concrete Powder", + "block.minecraft.lime_glazed_terracotta": "Lime Glazed Terracotta", + "block.minecraft.lime_shulker_box": "Lime Shulker Box", + "block.minecraft.lime_stained_glass": "Lime Stained Glass", + "block.minecraft.lime_stained_glass_pane": "Lime Stained Glass Pane", + "block.minecraft.lime_terracotta": "Lime Terracotta", + "block.minecraft.lime_wool": "Lime Wool", + "block.minecraft.lodestone": "Lodestone", + "block.minecraft.loom": "Loom", + "block.minecraft.magenta_banner": "Magenta Banner", + "block.minecraft.magenta_bed": "Magenta Bed", + "block.minecraft.magenta_candle": "Magenta Candle", + "block.minecraft.magenta_candle_cake": "Cake with Magenta Candle", + "block.minecraft.magenta_carpet": "Magenta Carpet", + "block.minecraft.magenta_concrete": "Magenta Concrete", + "block.minecraft.magenta_concrete_powder": "Magenta Concrete Powder", + "block.minecraft.magenta_glazed_terracotta": "Magenta Glazed Terracotta", + "block.minecraft.magenta_shulker_box": "Magenta Shulker Box", + "block.minecraft.magenta_stained_glass": "Magenta Stained Glass", + "block.minecraft.magenta_stained_glass_pane": "Magenta Stained Glass Pane", + "block.minecraft.magenta_terracotta": "Magenta Terracotta", + "block.minecraft.magenta_wool": "Magenta Wool", + "block.minecraft.magma_block": "Magma Block", + "block.minecraft.mangrove_button": "Mangrove Button", + "block.minecraft.mangrove_door": "Mangrove Door", + "block.minecraft.mangrove_fence": "Mangrove Fence", + "block.minecraft.mangrove_fence_gate": "Mangrove Fence Gate", + "block.minecraft.mangrove_hanging_sign": "Mangrove Hanging Sign", + "block.minecraft.mangrove_leaves": "Mangrove Leaves", + "block.minecraft.mangrove_log": "Mangrove Log", + "block.minecraft.mangrove_planks": "Mangrove Planks", + "block.minecraft.mangrove_pressure_plate": "Mangrove Pressure Plate", + "block.minecraft.mangrove_propagule": "Mangrove Propagule", + "block.minecraft.mangrove_roots": "Mangrove Roots", + "block.minecraft.mangrove_sign": "Mangrove Sign", + "block.minecraft.mangrove_slab": "Mangrove Slab", + "block.minecraft.mangrove_stairs": "Mangrove Stairs", + "block.minecraft.mangrove_trapdoor": "Mangrove Trapdoor", + "block.minecraft.mangrove_wall_hanging_sign": "Mangrove Wall Hanging Sign", + "block.minecraft.mangrove_wall_sign": "Mangrove Wall Sign", + "block.minecraft.mangrove_wood": "Mangrove Wood", + "block.minecraft.medium_amethyst_bud": "Medium Amethyst Bud", + "block.minecraft.melon": "Melon", + "block.minecraft.melon_stem": "Melon Stem", + "block.minecraft.moss_block": "Moss Block", + "block.minecraft.moss_carpet": "Moss Carpet", + "block.minecraft.mossy_cobblestone": "Mossy Cobblestone", + "block.minecraft.mossy_cobblestone_slab": "Mossy Cobblestone Slab", + "block.minecraft.mossy_cobblestone_stairs": "Mossy Cobblestone Stairs", + "block.minecraft.mossy_cobblestone_wall": "Mossy Cobblestone Wall", + "block.minecraft.mossy_stone_brick_slab": "Mossy Stone Brick Slab", + "block.minecraft.mossy_stone_brick_stairs": "Mossy Stone Brick Stairs", + "block.minecraft.mossy_stone_brick_wall": "Mossy Stone Brick Wall", + "block.minecraft.mossy_stone_bricks": "Mossy Stone Bricks", + "block.minecraft.moving_piston": "Moving Piston", + "block.minecraft.mud": "Mud", + "block.minecraft.mud_brick_slab": "Mud Brick Slab", + "block.minecraft.mud_brick_stairs": "Mud Brick Stairs", + "block.minecraft.mud_brick_wall": "Mud Brick Wall", + "block.minecraft.mud_bricks": "Mud Bricks", + "block.minecraft.muddy_mangrove_roots": "Muddy Mangrove Roots", + "block.minecraft.mushroom_stem": "Mushroom Stem", + "block.minecraft.mycelium": "Mycelium", + "block.minecraft.nether_brick_fence": "Nether Brick Fence", + "block.minecraft.nether_brick_slab": "Nether Brick Slab", + "block.minecraft.nether_brick_stairs": "Nether Brick Stairs", + "block.minecraft.nether_brick_wall": "Nether Brick Wall", + "block.minecraft.nether_bricks": "Nether Bricks", + "block.minecraft.nether_gold_ore": "Nether Gold Ore", + "block.minecraft.nether_portal": "Nether Portal", + "block.minecraft.nether_quartz_ore": "Nether Quartz Ore", + "block.minecraft.nether_sprouts": "Nether Sprouts", + "block.minecraft.nether_wart": "Nether Wart", + "block.minecraft.nether_wart_block": "Nether Wart Block", + "block.minecraft.netherite_block": "Block of Netherite", + "block.minecraft.netherrack": "Netherrack", + "block.minecraft.note_block": "Note Block", + "block.minecraft.oak_button": "Oak Button", + "block.minecraft.oak_door": "Oak Door", + "block.minecraft.oak_fence": "Oak Fence", + "block.minecraft.oak_fence_gate": "Oak Fence Gate", + "block.minecraft.oak_hanging_sign": "Oak Hanging Sign", + "block.minecraft.oak_leaves": "Oak Leaves", + "block.minecraft.oak_log": "Oak Log", + "block.minecraft.oak_planks": "Oak Planks", + "block.minecraft.oak_pressure_plate": "Oak Pressure Plate", + "block.minecraft.oak_sapling": "Oak Sapling", + "block.minecraft.oak_sign": "Oak Sign", + "block.minecraft.oak_slab": "Oak Slab", + "block.minecraft.oak_stairs": "Oak Stairs", + "block.minecraft.oak_trapdoor": "Oak Trapdoor", + "block.minecraft.oak_wall_hanging_sign": "Oak Wall Hanging Sign", + "block.minecraft.oak_wall_sign": "Oak Wall Sign", + "block.minecraft.oak_wood": "Oak Wood", + "block.minecraft.observer": "Observer", + "block.minecraft.obsidian": "Obsidian", + "block.minecraft.ochre_froglight": "Ochre Froglight", + "block.minecraft.ominous_banner": "Ominous Banner", + "block.minecraft.orange_banner": "Orange Banner", + "block.minecraft.orange_bed": "Orange Bed", + "block.minecraft.orange_candle": "Orange Candle", + "block.minecraft.orange_candle_cake": "Cake with Orange Candle", + "block.minecraft.orange_carpet": "Orange Carpet", + "block.minecraft.orange_concrete": "Orange Concrete", + "block.minecraft.orange_concrete_powder": "Orange Concrete Powder", + "block.minecraft.orange_glazed_terracotta": "Orange Glazed Terracotta", + "block.minecraft.orange_shulker_box": "Orange Shulker Box", + "block.minecraft.orange_stained_glass": "Orange Stained Glass", + "block.minecraft.orange_stained_glass_pane": "Orange Stained Glass Pane", + "block.minecraft.orange_terracotta": "Orange Terracotta", + "block.minecraft.orange_tulip": "Orange Tulip", + "block.minecraft.orange_wool": "Orange Wool", + "block.minecraft.oxeye_daisy": "Oxeye Daisy", + "block.minecraft.oxidized_chiseled_copper": "Oxidized Chiseled Copper", + "block.minecraft.oxidized_copper": "Oxidized Copper", + "block.minecraft.oxidized_copper_bulb": "Oxidized Copper Bulb", + "block.minecraft.oxidized_copper_door": "Oxidized Copper Door", + "block.minecraft.oxidized_copper_grate": "Oxidized Copper Grate", + "block.minecraft.oxidized_copper_trapdoor": "Oxidized Copper Trapdoor", + "block.minecraft.oxidized_cut_copper": "Oxidized Cut Copper", + "block.minecraft.oxidized_cut_copper_slab": "Oxidized Cut Copper Slab", + "block.minecraft.oxidized_cut_copper_stairs": "Oxidized Cut Copper Stairs", + "block.minecraft.packed_ice": "Packed Ice", + "block.minecraft.packed_mud": "Packed Mud", + "block.minecraft.pearlescent_froglight": "Pearlescent Froglight", + "block.minecraft.peony": "Peony", + "block.minecraft.petrified_oak_slab": "Petrified Oak Slab", + "block.minecraft.piglin_head": "Piglin Head", + "block.minecraft.piglin_wall_head": "Piglin Wall Head", + "block.minecraft.pink_banner": "Pink Banner", + "block.minecraft.pink_bed": "Pink Bed", + "block.minecraft.pink_candle": "Pink Candle", + "block.minecraft.pink_candle_cake": "Cake with Pink Candle", + "block.minecraft.pink_carpet": "Pink Carpet", + "block.minecraft.pink_concrete": "Pink Concrete", + "block.minecraft.pink_concrete_powder": "Pink Concrete Powder", + "block.minecraft.pink_glazed_terracotta": "Pink Glazed Terracotta", + "block.minecraft.pink_petals": "Pink Petals", + "block.minecraft.pink_shulker_box": "Pink Shulker Box", + "block.minecraft.pink_stained_glass": "Pink Stained Glass", + "block.minecraft.pink_stained_glass_pane": "Pink Stained Glass Pane", + "block.minecraft.pink_terracotta": "Pink Terracotta", + "block.minecraft.pink_tulip": "Pink Tulip", + "block.minecraft.pink_wool": "Pink Wool", + "block.minecraft.piston": "Piston", + "block.minecraft.piston_head": "Piston Head", + "block.minecraft.pitcher_crop": "Pitcher Crop", + "block.minecraft.pitcher_plant": "Pitcher Plant", + "block.minecraft.player_head": "Player Head", + "block.minecraft.player_head.named": "%s's Head", + "block.minecraft.player_wall_head": "Player Wall Head", + "block.minecraft.podzol": "Podzol", + "block.minecraft.pointed_dripstone": "Pointed Dripstone", + "block.minecraft.polished_andesite": "Polished Andesite", + "block.minecraft.polished_andesite_slab": "Polished Andesite Slab", + "block.minecraft.polished_andesite_stairs": "Polished Andesite Stairs", + "block.minecraft.polished_basalt": "Polished Basalt", + "block.minecraft.polished_blackstone": "Polished Blackstone", + "block.minecraft.polished_blackstone_brick_slab": "Polished Blackstone Brick Slab", + "block.minecraft.polished_blackstone_brick_stairs": "Polished Blackstone Brick Stairs", + "block.minecraft.polished_blackstone_brick_wall": "Polished Blackstone Brick Wall", + "block.minecraft.polished_blackstone_bricks": "Polished Blackstone Bricks", + "block.minecraft.polished_blackstone_button": "Polished Blackstone Button", + "block.minecraft.polished_blackstone_pressure_plate": "Polished Blackstone Pressure Plate", + "block.minecraft.polished_blackstone_slab": "Polished Blackstone Slab", + "block.minecraft.polished_blackstone_stairs": "Polished Blackstone Stairs", + "block.minecraft.polished_blackstone_wall": "Polished Blackstone Wall", + "block.minecraft.polished_deepslate": "Polished Deepslate", + "block.minecraft.polished_deepslate_slab": "Polished Deepslate Slab", + "block.minecraft.polished_deepslate_stairs": "Polished Deepslate Stairs", + "block.minecraft.polished_deepslate_wall": "Polished Deepslate Wall", + "block.minecraft.polished_diorite": "Polished Diorite", + "block.minecraft.polished_diorite_slab": "Polished Diorite Slab", + "block.minecraft.polished_diorite_stairs": "Polished Diorite Stairs", + "block.minecraft.polished_granite": "Polished Granite", + "block.minecraft.polished_granite_slab": "Polished Granite Slab", + "block.minecraft.polished_granite_stairs": "Polished Granite Stairs", + "block.minecraft.polished_tuff": "Polished Tuff", + "block.minecraft.polished_tuff_slab": "Polished Tuff Slab", + "block.minecraft.polished_tuff_stairs": "Polished Tuff Stairs", + "block.minecraft.polished_tuff_wall": "Polished Tuff Wall", + "block.minecraft.poppy": "Poppy", + "block.minecraft.potatoes": "Potatoes", + "block.minecraft.potted_acacia_sapling": "Potted Acacia Sapling", + "block.minecraft.potted_allium": "Potted Allium", + "block.minecraft.potted_azalea_bush": "Potted Azalea", + "block.minecraft.potted_azure_bluet": "Potted Azure Bluet", + "block.minecraft.potted_bamboo": "Potted Bamboo", + "block.minecraft.potted_birch_sapling": "Potted Birch Sapling", + "block.minecraft.potted_blue_orchid": "Potted Blue Orchid", + "block.minecraft.potted_brown_mushroom": "Potted Brown Mushroom", + "block.minecraft.potted_cactus": "Potted Cactus", + "block.minecraft.potted_cherry_sapling": "Potted Cherry Sapling", + "block.minecraft.potted_cornflower": "Potted Cornflower", + "block.minecraft.potted_crimson_fungus": "Potted Crimson Fungus", + "block.minecraft.potted_crimson_roots": "Potted Crimson Roots", + "block.minecraft.potted_dandelion": "Potted Dandelion", + "block.minecraft.potted_dark_oak_sapling": "Potted Dark Oak Sapling", + "block.minecraft.potted_dead_bush": "Potted Dead Bush", + "block.minecraft.potted_fern": "Potted Fern", + "block.minecraft.potted_flowering_azalea_bush": "Potted Flowering Azalea", + "block.minecraft.potted_jungle_sapling": "Potted Jungle Sapling", + "block.minecraft.potted_lily_of_the_valley": "Potted Lily of the Valley", + "block.minecraft.potted_mangrove_propagule": "Potted Mangrove Propagule", + "block.minecraft.potted_oak_sapling": "Potted Oak Sapling", + "block.minecraft.potted_orange_tulip": "Potted Orange Tulip", + "block.minecraft.potted_oxeye_daisy": "Potted Oxeye Daisy", + "block.minecraft.potted_pink_tulip": "Potted Pink Tulip", + "block.minecraft.potted_poppy": "Potted Poppy", + "block.minecraft.potted_red_mushroom": "Potted Red Mushroom", + "block.minecraft.potted_red_tulip": "Potted Red Tulip", + "block.minecraft.potted_spruce_sapling": "Potted Spruce Sapling", + "block.minecraft.potted_torchflower": "Potted Torchflower", + "block.minecraft.potted_warped_fungus": "Potted Warped Fungus", + "block.minecraft.potted_warped_roots": "Potted Warped Roots", + "block.minecraft.potted_white_tulip": "Potted White Tulip", + "block.minecraft.potted_wither_rose": "Potted Wither Rose", + "block.minecraft.powder_snow": "Powder Snow", + "block.minecraft.powder_snow_cauldron": "Powder Snow Cauldron", + "block.minecraft.powered_rail": "Powered Rail", + "block.minecraft.prismarine": "Prismarine", + "block.minecraft.prismarine_brick_slab": "Prismarine Brick Slab", + "block.minecraft.prismarine_brick_stairs": "Prismarine Brick Stairs", + "block.minecraft.prismarine_bricks": "Prismarine Bricks", + "block.minecraft.prismarine_slab": "Prismarine Slab", + "block.minecraft.prismarine_stairs": "Prismarine Stairs", + "block.minecraft.prismarine_wall": "Prismarine Wall", + "block.minecraft.pumpkin": "Pumpkin", + "block.minecraft.pumpkin_stem": "Pumpkin Stem", + "block.minecraft.purple_banner": "Purple Banner", + "block.minecraft.purple_bed": "Purple Bed", + "block.minecraft.purple_candle": "Purple Candle", + "block.minecraft.purple_candle_cake": "Cake with Purple Candle", + "block.minecraft.purple_carpet": "Purple Carpet", + "block.minecraft.purple_concrete": "Purple Concrete", + "block.minecraft.purple_concrete_powder": "Purple Concrete Powder", + "block.minecraft.purple_glazed_terracotta": "Purple Glazed Terracotta", + "block.minecraft.purple_shulker_box": "Purple Shulker Box", + "block.minecraft.purple_stained_glass": "Purple Stained Glass", + "block.minecraft.purple_stained_glass_pane": "Purple Stained Glass Pane", + "block.minecraft.purple_terracotta": "Purple Terracotta", + "block.minecraft.purple_wool": "Purple Wool", + "block.minecraft.purpur_block": "Purpur Block", + "block.minecraft.purpur_pillar": "Purpur Pillar", + "block.minecraft.purpur_slab": "Purpur Slab", + "block.minecraft.purpur_stairs": "Purpur Stairs", + "block.minecraft.quartz_block": "Block of Quartz", + "block.minecraft.quartz_bricks": "Quartz Bricks", + "block.minecraft.quartz_pillar": "Quartz Pillar", + "block.minecraft.quartz_slab": "Quartz Slab", + "block.minecraft.quartz_stairs": "Quartz Stairs", + "block.minecraft.rail": "Rail", + "block.minecraft.raw_copper_block": "Block of Raw Copper", + "block.minecraft.raw_gold_block": "Block of Raw Gold", + "block.minecraft.raw_iron_block": "Block of Raw Iron", + "block.minecraft.red_banner": "Red Banner", + "block.minecraft.red_bed": "Red Bed", + "block.minecraft.red_candle": "Red Candle", + "block.minecraft.red_candle_cake": "Cake with Red Candle", + "block.minecraft.red_carpet": "Red Carpet", + "block.minecraft.red_concrete": "Red Concrete", + "block.minecraft.red_concrete_powder": "Red Concrete Powder", + "block.minecraft.red_glazed_terracotta": "Red Glazed Terracotta", + "block.minecraft.red_mushroom": "Red Mushroom", + "block.minecraft.red_mushroom_block": "Red Mushroom Block", + "block.minecraft.red_nether_brick_slab": "Red Nether Brick Slab", + "block.minecraft.red_nether_brick_stairs": "Red Nether Brick Stairs", + "block.minecraft.red_nether_brick_wall": "Red Nether Brick Wall", + "block.minecraft.red_nether_bricks": "Red Nether Bricks", + "block.minecraft.red_sand": "Red Sand", + "block.minecraft.red_sandstone": "Red Sandstone", + "block.minecraft.red_sandstone_slab": "Red Sandstone Slab", + "block.minecraft.red_sandstone_stairs": "Red Sandstone Stairs", + "block.minecraft.red_sandstone_wall": "Red Sandstone Wall", + "block.minecraft.red_shulker_box": "Red Shulker Box", + "block.minecraft.red_stained_glass": "Red Stained Glass", + "block.minecraft.red_stained_glass_pane": "Red Stained Glass Pane", + "block.minecraft.red_terracotta": "Red Terracotta", + "block.minecraft.red_tulip": "Red Tulip", + "block.minecraft.red_wool": "Red Wool", + "block.minecraft.redstone_block": "Block of Redstone", + "block.minecraft.redstone_lamp": "Redstone Lamp", + "block.minecraft.redstone_ore": "Redstone Ore", + "block.minecraft.redstone_torch": "Redstone Torch", + "block.minecraft.redstone_wall_torch": "Redstone Wall Torch", + "block.minecraft.redstone_wire": "Redstone Wire", + "block.minecraft.reinforced_deepslate": "Reinforced Deepslate", + "block.minecraft.repeater": "Redstone Repeater", + "block.minecraft.repeating_command_block": "Repeating Command Block", + "block.minecraft.respawn_anchor": "Respawn Anchor", + "block.minecraft.rooted_dirt": "Rooted Dirt", + "block.minecraft.rose_bush": "Rose Bush", + "block.minecraft.sand": "Sand", + "block.minecraft.sandstone": "Sandstone", + "block.minecraft.sandstone_slab": "Sandstone Slab", + "block.minecraft.sandstone_stairs": "Sandstone Stairs", + "block.minecraft.sandstone_wall": "Sandstone Wall", + "block.minecraft.scaffolding": "Scaffolding", + "block.minecraft.sculk": "Sculk", + "block.minecraft.sculk_catalyst": "Sculk Catalyst", + "block.minecraft.sculk_sensor": "Sculk Sensor", + "block.minecraft.sculk_shrieker": "Sculk Shrieker", + "block.minecraft.sculk_vein": "Sculk Vein", + "block.minecraft.sea_lantern": "Sea Lantern", + "block.minecraft.sea_pickle": "Sea Pickle", + "block.minecraft.seagrass": "Seagrass", + "block.minecraft.set_spawn": "Respawn point set", + "block.minecraft.short_grass": "Short Grass", + "block.minecraft.shroomlight": "Shroomlight", + "block.minecraft.shulker_box": "Shulker Box", + "block.minecraft.skeleton_skull": "Skeleton Skull", + "block.minecraft.skeleton_wall_skull": "Skeleton Wall Skull", + "block.minecraft.slime_block": "Slime Block", + "block.minecraft.small_amethyst_bud": "Small Amethyst Bud", + "block.minecraft.small_dripleaf": "Small Dripleaf", + "block.minecraft.smithing_table": "Smithing Table", + "block.minecraft.smoker": "Smoker", + "block.minecraft.smooth_basalt": "Smooth Basalt", + "block.minecraft.smooth_quartz": "Smooth Quartz Block", + "block.minecraft.smooth_quartz_slab": "Smooth Quartz Slab", + "block.minecraft.smooth_quartz_stairs": "Smooth Quartz Stairs", + "block.minecraft.smooth_red_sandstone": "Smooth Red Sandstone", + "block.minecraft.smooth_red_sandstone_slab": "Smooth Red Sandstone Slab", + "block.minecraft.smooth_red_sandstone_stairs": "Smooth Red Sandstone Stairs", + "block.minecraft.smooth_sandstone": "Smooth Sandstone", + "block.minecraft.smooth_sandstone_slab": "Smooth Sandstone Slab", + "block.minecraft.smooth_sandstone_stairs": "Smooth Sandstone Stairs", + "block.minecraft.smooth_stone": "Smooth Stone", + "block.minecraft.smooth_stone_slab": "Smooth Stone Slab", + "block.minecraft.sniffer_egg": "Sniffer Egg", + "block.minecraft.snow": "Snow", + "block.minecraft.snow_block": "Snow Block", + "block.minecraft.soul_campfire": "Soul Campfire", + "block.minecraft.soul_fire": "Soul Fire", + "block.minecraft.soul_lantern": "Soul Lantern", + "block.minecraft.soul_sand": "Soul Sand", + "block.minecraft.soul_soil": "Soul Soil", + "block.minecraft.soul_torch": "Soul Torch", + "block.minecraft.soul_wall_torch": "Soul Wall Torch", + "block.minecraft.spawn.not_valid": "You have no home bed or charged respawn anchor, or it was obstructed", + "block.minecraft.spawner": "Monster Spawner", + "block.minecraft.spawner.desc1": "Interact with Spawn Egg:", + "block.minecraft.spawner.desc2": "Sets Mob Type", + "block.minecraft.sponge": "Sponge", + "block.minecraft.spore_blossom": "Spore Blossom", + "block.minecraft.spruce_button": "Spruce Button", + "block.minecraft.spruce_door": "Spruce Door", + "block.minecraft.spruce_fence": "Spruce Fence", + "block.minecraft.spruce_fence_gate": "Spruce Fence Gate", + "block.minecraft.spruce_hanging_sign": "Spruce Hanging Sign", + "block.minecraft.spruce_leaves": "Spruce Leaves", + "block.minecraft.spruce_log": "Spruce Log", + "block.minecraft.spruce_planks": "Spruce Planks", + "block.minecraft.spruce_pressure_plate": "Spruce Pressure Plate", + "block.minecraft.spruce_sapling": "Spruce Sapling", + "block.minecraft.spruce_sign": "Spruce Sign", + "block.minecraft.spruce_slab": "Spruce Slab", + "block.minecraft.spruce_stairs": "Spruce Stairs", + "block.minecraft.spruce_trapdoor": "Spruce Trapdoor", + "block.minecraft.spruce_wall_hanging_sign": "Spruce Wall Hanging Sign", + "block.minecraft.spruce_wall_sign": "Spruce Wall Sign", + "block.minecraft.spruce_wood": "Spruce Wood", + "block.minecraft.sticky_piston": "Sticky Piston", + "block.minecraft.stone": "Stone", + "block.minecraft.stone_brick_slab": "Stone Brick Slab", + "block.minecraft.stone_brick_stairs": "Stone Brick Stairs", + "block.minecraft.stone_brick_wall": "Stone Brick Wall", + "block.minecraft.stone_bricks": "Stone Bricks", + "block.minecraft.stone_button": "Stone Button", + "block.minecraft.stone_pressure_plate": "Stone Pressure Plate", + "block.minecraft.stone_slab": "Stone Slab", + "block.minecraft.stone_stairs": "Stone Stairs", + "block.minecraft.stonecutter": "Stonecutter", + "block.minecraft.stripped_acacia_log": "Stripped Acacia Log", + "block.minecraft.stripped_acacia_wood": "Stripped Acacia Wood", + "block.minecraft.stripped_bamboo_block": "Block of Stripped Bamboo", + "block.minecraft.stripped_birch_log": "Stripped Birch Log", + "block.minecraft.stripped_birch_wood": "Stripped Birch Wood", + "block.minecraft.stripped_cherry_log": "Stripped Cherry Log", + "block.minecraft.stripped_cherry_wood": "Stripped Cherry Wood", + "block.minecraft.stripped_crimson_hyphae": "Stripped Crimson Hyphae", + "block.minecraft.stripped_crimson_stem": "Stripped Crimson Stem", + "block.minecraft.stripped_dark_oak_log": "Stripped Dark Oak Log", + "block.minecraft.stripped_dark_oak_wood": "Stripped Dark Oak Wood", + "block.minecraft.stripped_jungle_log": "Stripped Jungle Log", + "block.minecraft.stripped_jungle_wood": "Stripped Jungle Wood", + "block.minecraft.stripped_mangrove_log": "Stripped Mangrove Log", + "block.minecraft.stripped_mangrove_wood": "Stripped Mangrove Wood", + "block.minecraft.stripped_oak_log": "Stripped Oak Log", + "block.minecraft.stripped_oak_wood": "Stripped Oak Wood", + "block.minecraft.stripped_spruce_log": "Stripped Spruce Log", + "block.minecraft.stripped_spruce_wood": "Stripped Spruce Wood", + "block.minecraft.stripped_warped_hyphae": "Stripped Warped Hyphae", + "block.minecraft.stripped_warped_stem": "Stripped Warped Stem", + "block.minecraft.structure_block": "Structure Block", + "block.minecraft.structure_void": "Structure Void", + "block.minecraft.sugar_cane": "Sugar Cane", + "block.minecraft.sunflower": "Sunflower", + "block.minecraft.suspicious_gravel": "Suspicious Gravel", + "block.minecraft.suspicious_sand": "Suspicious Sand", + "block.minecraft.sweet_berry_bush": "Sweet Berry Bush", + "block.minecraft.tall_grass": "Tall Grass", + "block.minecraft.tall_seagrass": "Tall Seagrass", + "block.minecraft.target": "Target", + "block.minecraft.terracotta": "Terracotta", + "block.minecraft.tinted_glass": "Tinted Glass", + "block.minecraft.tnt": "TNT", + "block.minecraft.torch": "Torch", + "block.minecraft.torchflower": "Torchflower", + "block.minecraft.torchflower_crop": "Torchflower Crop", + "block.minecraft.trapped_chest": "Trapped Chest", + "block.minecraft.trial_spawner": "Trial Spawner", + "block.minecraft.tripwire": "Tripwire", + "block.minecraft.tripwire_hook": "Tripwire Hook", + "block.minecraft.tube_coral": "Tube Coral", + "block.minecraft.tube_coral_block": "Tube Coral Block", + "block.minecraft.tube_coral_fan": "Tube Coral Fan", + "block.minecraft.tube_coral_wall_fan": "Tube Coral Wall Fan", + "block.minecraft.tuff": "Tuff", + "block.minecraft.tuff_brick_slab": "Tuff Brick Slab", + "block.minecraft.tuff_brick_stairs": "Tuff Brick Stairs", + "block.minecraft.tuff_brick_wall": "Tuff Brick Wall", + "block.minecraft.tuff_bricks": "Tuff Bricks", + "block.minecraft.tuff_slab": "Tuff Slab", + "block.minecraft.tuff_stairs": "Tuff Stairs", + "block.minecraft.tuff_wall": "Tuff Wall", + "block.minecraft.turtle_egg": "Turtle Egg", + "block.minecraft.twisting_vines": "Twisting Vines", + "block.minecraft.twisting_vines_plant": "Twisting Vines Plant", + "block.minecraft.vault": "Vault", + "block.minecraft.verdant_froglight": "Verdant Froglight", + "block.minecraft.vine": "Vines", + "block.minecraft.void_air": "Void Air", + "block.minecraft.wall_torch": "Wall Torch", + "block.minecraft.warped_button": "Warped Button", + "block.minecraft.warped_door": "Warped Door", + "block.minecraft.warped_fence": "Warped Fence", + "block.minecraft.warped_fence_gate": "Warped Fence Gate", + "block.minecraft.warped_fungus": "Warped Fungus", + "block.minecraft.warped_hanging_sign": "Warped Hanging Sign", + "block.minecraft.warped_hyphae": "Warped Hyphae", + "block.minecraft.warped_nylium": "Warped Nylium", + "block.minecraft.warped_planks": "Warped Planks", + "block.minecraft.warped_pressure_plate": "Warped Pressure Plate", + "block.minecraft.warped_roots": "Warped Roots", + "block.minecraft.warped_sign": "Warped Sign", + "block.minecraft.warped_slab": "Warped Slab", + "block.minecraft.warped_stairs": "Warped Stairs", + "block.minecraft.warped_stem": "Warped Stem", + "block.minecraft.warped_trapdoor": "Warped Trapdoor", + "block.minecraft.warped_wall_hanging_sign": "Warped Wall Hanging Sign", + "block.minecraft.warped_wall_sign": "Warped Wall Sign", + "block.minecraft.warped_wart_block": "Warped Wart Block", + "block.minecraft.water": "Water", + "block.minecraft.water_cauldron": "Water Cauldron", + "block.minecraft.waxed_chiseled_copper": "Waxed Chiseled Copper", + "block.minecraft.waxed_copper_block": "Waxed Block of Copper", + "block.minecraft.waxed_copper_bulb": "Waxed Copper Bulb", + "block.minecraft.waxed_copper_door": "Waxed Copper Door", + "block.minecraft.waxed_copper_grate": "Waxed Copper Grate", + "block.minecraft.waxed_copper_trapdoor": "Waxed Copper Trapdoor", + "block.minecraft.waxed_cut_copper": "Waxed Cut Copper", + "block.minecraft.waxed_cut_copper_slab": "Waxed Cut Copper Slab", + "block.minecraft.waxed_cut_copper_stairs": "Waxed Cut Copper Stairs", + "block.minecraft.waxed_exposed_chiseled_copper": "Waxed Exposed Chiseled Copper", + "block.minecraft.waxed_exposed_copper": "Waxed Exposed Copper", + "block.minecraft.waxed_exposed_copper_bulb": "Waxed Exposed Copper Bulb", + "block.minecraft.waxed_exposed_copper_door": "Waxed Exposed Copper Door", + "block.minecraft.waxed_exposed_copper_grate": "Waxed Exposed Copper Grate", + "block.minecraft.waxed_exposed_copper_trapdoor": "Waxed Exposed Copper Trapdoor", + "block.minecraft.waxed_exposed_cut_copper": "Waxed Exposed Cut Copper", + "block.minecraft.waxed_exposed_cut_copper_slab": "Waxed Exposed Cut Copper Slab", + "block.minecraft.waxed_exposed_cut_copper_stairs": "Waxed Exposed Cut Copper Stairs", + "block.minecraft.waxed_oxidized_chiseled_copper": "Waxed Oxidized Chiseled Copper", + "block.minecraft.waxed_oxidized_copper": "Waxed Oxidized Copper", + "block.minecraft.waxed_oxidized_copper_bulb": "Waxed Oxidized Copper Bulb", + "block.minecraft.waxed_oxidized_copper_door": "Waxed Oxidized Copper Door", + "block.minecraft.waxed_oxidized_copper_grate": "Waxed Oxidized Copper Grate", + "block.minecraft.waxed_oxidized_copper_trapdoor": "Waxed Oxidized Copper Trapdoor", + "block.minecraft.waxed_oxidized_cut_copper": "Waxed Oxidized Cut Copper", + "block.minecraft.waxed_oxidized_cut_copper_slab": "Waxed Oxidized Cut Copper Slab", + "block.minecraft.waxed_oxidized_cut_copper_stairs": "Waxed Oxidized Cut Copper Stairs", + "block.minecraft.waxed_weathered_chiseled_copper": "Waxed Weathered Chiseled Copper", + "block.minecraft.waxed_weathered_copper": "Waxed Weathered Copper", + "block.minecraft.waxed_weathered_copper_bulb": "Waxed Weathered Copper Bulb", + "block.minecraft.waxed_weathered_copper_door": "Waxed Weathered Copper Door", + "block.minecraft.waxed_weathered_copper_grate": "Waxed Weathered Copper Grate", + "block.minecraft.waxed_weathered_copper_trapdoor": "Waxed Weathered Copper Trapdoor", + "block.minecraft.waxed_weathered_cut_copper": "Waxed Weathered Cut Copper", + "block.minecraft.waxed_weathered_cut_copper_slab": "Waxed Weathered Cut Copper Slab", + "block.minecraft.waxed_weathered_cut_copper_stairs": "Waxed Weathered Cut Copper Stairs", + "block.minecraft.weathered_chiseled_copper": "Weathered Chiseled Copper", + "block.minecraft.weathered_copper": "Weathered Copper", + "block.minecraft.weathered_copper_bulb": "Weathered Copper Bulb", + "block.minecraft.weathered_copper_door": "Weathered Copper Door", + "block.minecraft.weathered_copper_grate": "Weathered Copper Grate", + "block.minecraft.weathered_copper_trapdoor": "Weathered Copper Trapdoor", + "block.minecraft.weathered_cut_copper": "Weathered Cut Copper", + "block.minecraft.weathered_cut_copper_slab": "Weathered Cut Copper Slab", + "block.minecraft.weathered_cut_copper_stairs": "Weathered Cut Copper Stairs", + "block.minecraft.weeping_vines": "Weeping Vines", + "block.minecraft.weeping_vines_plant": "Weeping Vines Plant", + "block.minecraft.wet_sponge": "Wet Sponge", + "block.minecraft.wheat": "Wheat Crops", + "block.minecraft.white_banner": "White Banner", + "block.minecraft.white_bed": "White Bed", + "block.minecraft.white_candle": "White Candle", + "block.minecraft.white_candle_cake": "Cake with White Candle", + "block.minecraft.white_carpet": "White Carpet", + "block.minecraft.white_concrete": "White Concrete", + "block.minecraft.white_concrete_powder": "White Concrete Powder", + "block.minecraft.white_glazed_terracotta": "White Glazed Terracotta", + "block.minecraft.white_shulker_box": "White Shulker Box", + "block.minecraft.white_stained_glass": "White Stained Glass", + "block.minecraft.white_stained_glass_pane": "White Stained Glass Pane", + "block.minecraft.white_terracotta": "White Terracotta", + "block.minecraft.white_tulip": "White Tulip", + "block.minecraft.white_wool": "White Wool", + "block.minecraft.wither_rose": "Wither Rose", + "block.minecraft.wither_skeleton_skull": "Wither Skeleton Skull", + "block.minecraft.wither_skeleton_wall_skull": "Wither Skeleton Wall Skull", + "block.minecraft.yellow_banner": "Yellow Banner", + "block.minecraft.yellow_bed": "Yellow Bed", + "block.minecraft.yellow_candle": "Yellow Candle", + "block.minecraft.yellow_candle_cake": "Cake with Yellow Candle", + "block.minecraft.yellow_carpet": "Yellow Carpet", + "block.minecraft.yellow_concrete": "Yellow Concrete", + "block.minecraft.yellow_concrete_powder": "Yellow Concrete Powder", + "block.minecraft.yellow_glazed_terracotta": "Yellow Glazed Terracotta", + "block.minecraft.yellow_shulker_box": "Yellow Shulker Box", + "block.minecraft.yellow_stained_glass": "Yellow Stained Glass", + "block.minecraft.yellow_stained_glass_pane": "Yellow Stained Glass Pane", + "block.minecraft.yellow_terracotta": "Yellow Terracotta", + "block.minecraft.yellow_wool": "Yellow Wool", + "block.minecraft.zombie_head": "Zombie Head", + "block.minecraft.zombie_wall_head": "Zombie Wall Head", + "book.byAuthor": "by %1$s", + "book.editTitle": "Enter Book Title:", + "book.finalizeButton": "Sign and Close", + "book.finalizeWarning": "Note! When you sign the book, it will no longer be editable.", + "book.generation.0": "Original", + "book.generation.1": "Copy of original", + "book.generation.2": "Copy of a copy", + "book.generation.3": "Tattered", + "book.invalid.tag": "* Invalid book tag *", + "book.pageIndicator": "Page %1$s of %2$s", + "book.signButton": "Sign", + "build.tooHigh": "Height limit for building is %s", + "chat_screen.message": "Message to send: %s", + "chat_screen.title": "Chat screen", + "chat_screen.usage": "Input message and press Enter to send", + "chat.cannotSend": "Cannot send chat message", + "chat.coordinates": "%s, %s, %s", + "chat.coordinates.tooltip": "Click to teleport", + "chat.copy": "Copy to Clipboard", + "chat.copy.click": "Click to Copy to Clipboard", + "chat.deleted_marker": "This chat message has been deleted by the server.", + "chat.disabled.chain_broken": "Chat disabled due to broken chain. Please try reconnecting.", + "chat.disabled.expiredProfileKey": "Chat disabled due to expired profile public key. Please try reconnecting.", + "chat.disabled.invalid_command_signature": "Command had unexpected or missing command argument signatures.", + "chat.disabled.invalid_signature": "Chat had an invalid signature. Please try reconnecting.", + "chat.disabled.launcher": "Chat disabled by launcher option. Cannot send message.", + "chat.disabled.missingProfileKey": "Chat disabled due to missing profile public key. Please try reconnecting.", + "chat.disabled.options": "Chat disabled in client options.", + "chat.disabled.out_of_order_chat": "Chat received out-of-order. Did your system time change?", + "chat.disabled.profile": "Chat is not allowed by account settings. Press '%s' again for more information.", + "chat.disabled.profile.moreInfo": "Chat is not allowed by account settings. Cannot send or view messages.", + "chat.editBox": "chat", + "chat.filtered": "Filtered by the server.", + "chat.filtered_full": "The server has hidden your message for some players.", + "chat.link.confirm": "Are you sure you want to open the following website?", + "chat.link.confirmTrusted": "Do you want to open this link or copy it to your clipboard?", + "chat.link.open": "Open in Browser", + "chat.link.warning": "Never open links from people that you don't trust!", + "chat.queue": "[+%s pending lines]", + "chat.square_brackets": "[%s]", + "chat.tag.error": "Server sent invalid message.", + "chat.tag.modified": "Message modified by the server. Original:", + "chat.tag.not_secure": "Unverified message. Cannot be reported.", + "chat.tag.system": "Server message. Cannot be reported.", + "chat.tag.system_single_player": "Server message.", + "chat.type.admin": "[%s: %s]", + "chat.type.advancement.challenge": "%s has completed the challenge %s", + "chat.type.advancement.goal": "%s has reached the goal %s", + "chat.type.advancement.task": "%s has made the advancement %s", + "chat.type.announcement": "[%s] %s", + "chat.type.emote": "* %s %s", + "chat.type.team.hover": "Message Team", + "chat.type.team.sent": "-> %s <%s> %s", + "chat.type.team.text": "%s <%s> %s", + "chat.type.text": "<%s> %s", + "chat.type.text.narrate": "%s says %s", + "chat.validation_error": "Chat validation error", + "chunk.toast.checkLog": "See log for more details", + "chunk.toast.loadFailure": "Failed to load chunk at %s", + "chunk.toast.lowDiskSpace": "Low disk space!", + "chunk.toast.lowDiskSpace.description": "Might not be able to save the world.", + "chunk.toast.saveFailure": "Failed to save chunk at %s", + "clear.failed.multiple": "No items were found on %s players", + "clear.failed.single": "No items were found on player %s", + "color.minecraft.black": "Black", + "color.minecraft.blue": "Blue", + "color.minecraft.brown": "Brown", + "color.minecraft.cyan": "Cyan", + "color.minecraft.gray": "Gray", + "color.minecraft.green": "Green", + "color.minecraft.light_blue": "Light Blue", + "color.minecraft.light_gray": "Light Gray", + "color.minecraft.lime": "Lime", + "color.minecraft.magenta": "Magenta", + "color.minecraft.orange": "Orange", + "color.minecraft.pink": "Pink", + "color.minecraft.purple": "Purple", + "color.minecraft.red": "Red", + "color.minecraft.white": "White", + "color.minecraft.yellow": "Yellow", + "command.context.here": "<--[HERE]", + "command.context.parse_error": "%s at position %s: %s", + "command.exception": "Could not parse command: %s", + "command.expected.separator": "Expected whitespace to end one argument, but found trailing data", + "command.failed": "An unexpected error occurred trying to execute that command", + "command.forkLimit": "Maximum number of contexts (%s) reached", + "command.unknown.argument": "Incorrect argument for command", + "command.unknown.command": "Unknown or incomplete command, see below for error", + "commands.advancement.advancementNotFound": "No advancement was found by the name '%1$s'", + "commands.advancement.criterionNotFound": "The advancement %1$s does not contain the criterion '%2$s'", + "commands.advancement.grant.criterion.to.many.failure": "Couldn't grant criterion '%s' of advancement %s to %s players as they already have it", + "commands.advancement.grant.criterion.to.many.success": "Granted criterion '%s' of advancement %s to %s players", + "commands.advancement.grant.criterion.to.one.failure": "Couldn't grant criterion '%s' of advancement %s to %s as they already have it", + "commands.advancement.grant.criterion.to.one.success": "Granted criterion '%s' of advancement %s to %s", + "commands.advancement.grant.many.to.many.failure": "Couldn't grant %s advancements to %s players as they already have them", + "commands.advancement.grant.many.to.many.success": "Granted %s advancements to %s players", + "commands.advancement.grant.many.to.one.failure": "Couldn't grant %s advancements to %s as they already have them", + "commands.advancement.grant.many.to.one.success": "Granted %s advancements to %s", + "commands.advancement.grant.one.to.many.failure": "Couldn't grant advancement %s to %s players as they already have it", + "commands.advancement.grant.one.to.many.success": "Granted the advancement %s to %s players", + "commands.advancement.grant.one.to.one.failure": "Couldn't grant advancement %s to %s as they already have it", + "commands.advancement.grant.one.to.one.success": "Granted the advancement %s to %s", + "commands.advancement.revoke.criterion.to.many.failure": "Couldn't revoke criterion '%s' of advancement %s from %s players as they don't have it", + "commands.advancement.revoke.criterion.to.many.success": "Revoked criterion '%s' of advancement %s from %s players", + "commands.advancement.revoke.criterion.to.one.failure": "Couldn't revoke criterion '%s' of advancement %s from %s as they don't have it", + "commands.advancement.revoke.criterion.to.one.success": "Revoked criterion '%s' of advancement %s from %s", + "commands.advancement.revoke.many.to.many.failure": "Couldn't revoke %s advancements from %s players as they don't have them", + "commands.advancement.revoke.many.to.many.success": "Revoked %s advancements from %s players", + "commands.advancement.revoke.many.to.one.failure": "Couldn't revoke %s advancements from %s as they don't have them", + "commands.advancement.revoke.many.to.one.success": "Revoked %s advancements from %s", + "commands.advancement.revoke.one.to.many.failure": "Couldn't revoke advancement %s from %s players as they don't have it", + "commands.advancement.revoke.one.to.many.success": "Revoked the advancement %s from %s players", + "commands.advancement.revoke.one.to.one.failure": "Couldn't revoke advancement %s from %s as they don't have it", + "commands.advancement.revoke.one.to.one.success": "Revoked the advancement %s from %s", + "commands.attribute.base_value.get.success": "Base value of attribute %s for entity %s is %s", + "commands.attribute.base_value.set.success": "Base value for attribute %s for entity %s set to %s", + "commands.attribute.failed.entity": "%s is not a valid entity for this command", + "commands.attribute.failed.modifier_already_present": "Modifier %s is already present on attribute %s for entity %s", + "commands.attribute.failed.no_attribute": "Entity %s has no attribute %s", + "commands.attribute.failed.no_modifier": "Attribute %s for entity %s has no modifier %s", + "commands.attribute.modifier.add.success": "Added modifier %s to attribute %s for entity %s", + "commands.attribute.modifier.remove.success": "Removed modifier %s from attribute %s for entity %s", + "commands.attribute.modifier.value.get.success": "Value of modifier %s on attribute %s for entity %s is %s", + "commands.attribute.value.get.success": "Value of attribute %s for entity %s is %s", + "commands.ban.failed": "Nothing changed. The player is already banned", + "commands.ban.success": "Banned %s: %s", + "commands.banip.failed": "Nothing changed. That IP is already banned", + "commands.banip.info": "This ban affects %s player(s): %s", + "commands.banip.invalid": "Invalid IP address or unknown player", + "commands.banip.success": "Banned IP %s: %s", + "commands.banlist.entry": "%s was banned by %s: %s", + "commands.banlist.entry.unknown": "(Unknown)", + "commands.banlist.list": "There are %s ban(s):", + "commands.banlist.none": "There are no bans", + "commands.bossbar.create.failed": "A bossbar already exists with the ID '%s'", + "commands.bossbar.create.success": "Created custom bossbar %s", + "commands.bossbar.get.max": "Custom bossbar %s has a maximum of %s", + "commands.bossbar.get.players.none": "Custom bossbar %s has no players currently online", + "commands.bossbar.get.players.some": "Custom bossbar %s has %s player(s) currently online: %s", + "commands.bossbar.get.value": "Custom bossbar %s has a value of %s", + "commands.bossbar.get.visible.hidden": "Custom bossbar %s is currently hidden", + "commands.bossbar.get.visible.visible": "Custom bossbar %s is currently shown", + "commands.bossbar.list.bars.none": "There are no custom bossbars active", + "commands.bossbar.list.bars.some": "There are %s custom bossbar(s) active: %s", + "commands.bossbar.remove.success": "Removed custom bossbar %s", + "commands.bossbar.set.color.success": "Custom bossbar %s has changed color", + "commands.bossbar.set.color.unchanged": "Nothing changed. That's already the color of this bossbar", + "commands.bossbar.set.max.success": "Custom bossbar %s has changed maximum to %s", + "commands.bossbar.set.max.unchanged": "Nothing changed. That's already the max of this bossbar", + "commands.bossbar.set.name.success": "Custom bossbar %s has been renamed", + "commands.bossbar.set.name.unchanged": "Nothing changed. That's already the name of this bossbar", + "commands.bossbar.set.players.success.none": "Custom bossbar %s no longer has any players", + "commands.bossbar.set.players.success.some": "Custom bossbar %s now has %s player(s): %s", + "commands.bossbar.set.players.unchanged": "Nothing changed. Those players are already on the bossbar with nobody to add or remove", + "commands.bossbar.set.style.success": "Custom bossbar %s has changed style", + "commands.bossbar.set.style.unchanged": "Nothing changed. That's already the style of this bossbar", + "commands.bossbar.set.value.success": "Custom bossbar %s has changed value to %s", + "commands.bossbar.set.value.unchanged": "Nothing changed. That's already the value of this bossbar", + "commands.bossbar.set.visibility.unchanged.hidden": "Nothing changed. The bossbar is already hidden", + "commands.bossbar.set.visibility.unchanged.visible": "Nothing changed. The bossbar is already visible", + "commands.bossbar.set.visible.success.hidden": "Custom bossbar %s is now hidden", + "commands.bossbar.set.visible.success.visible": "Custom bossbar %s is now visible", + "commands.bossbar.unknown": "No bossbar exists with the ID '%s'", + "commands.clear.success.multiple": "Removed %s item(s) from %s players", + "commands.clear.success.single": "Removed %s item(s) from player %s", + "commands.clear.test.multiple": "Found %s matching item(s) on %s players", + "commands.clear.test.single": "Found %s matching item(s) on player %s", + "commands.clone.failed": "No blocks were cloned", + "commands.clone.overlap": "The source and destination areas cannot overlap", + "commands.clone.success": "Successfully cloned %s block(s)", + "commands.clone.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", + "commands.damage.invulnerable": "Target is invulnerable to the given damage type", + "commands.damage.success": "Applied %s damage to %s", + "commands.data.block.get": "%s on block %s, %s, %s after scale factor of %s is %s", + "commands.data.block.invalid": "The target block is not a block entity", + "commands.data.block.modified": "Modified block data of %s, %s, %s", + "commands.data.block.query": "%s, %s, %s has the following block data: %s", + "commands.data.entity.get": "%s on %s after scale factor of %s is %s", + "commands.data.entity.invalid": "Unable to modify player data", + "commands.data.entity.modified": "Modified entity data of %s", + "commands.data.entity.query": "%s has the following entity data: %s", + "commands.data.get.invalid": "Can't get %s; only numeric tags are allowed", + "commands.data.get.multiple": "This argument accepts a single NBT value", + "commands.data.get.unknown": "Can't get %s; tag doesn't exist", + "commands.data.merge.failed": "Nothing changed. The specified properties already have these values", + "commands.data.modify.expected_list": "Expected list, got: %s", + "commands.data.modify.expected_object": "Expected object, got: %s", + "commands.data.modify.expected_value": "Expected value, got: %s", + "commands.data.modify.invalid_index": "Invalid list index: %s", + "commands.data.modify.invalid_substring": "Invalid substring indices: %s to %s", + "commands.data.storage.get": "%s in storage %s after scale factor of %s is %s", + "commands.data.storage.modified": "Modified storage %s", + "commands.data.storage.query": "Storage %s has the following contents: %s", + "commands.datapack.disable.failed": "Pack '%s' is not enabled!", + "commands.datapack.disable.failed.feature": "Pack '%s' cannot be disabled, since it is part of an enabled flag!", + "commands.datapack.enable.failed": "Pack '%s' is already enabled!", + "commands.datapack.enable.failed.no_flags": "Pack '%s' cannot be enabled, since required flags are not enabled in this world: %s!", + "commands.datapack.list.available.none": "There are no more data packs available", + "commands.datapack.list.available.success": "There are %s data pack(s) available: %s", + "commands.datapack.list.enabled.none": "There are no data packs enabled", + "commands.datapack.list.enabled.success": "There are %s data pack(s) enabled: %s", + "commands.datapack.modify.disable": "Disabling data pack %s", + "commands.datapack.modify.enable": "Enabling data pack %s", + "commands.datapack.unknown": "Unknown data pack '%s'", + "commands.debug.alreadyRunning": "The tick profiler is already started", + "commands.debug.function.noRecursion": "Can't trace from inside of function", + "commands.debug.function.noReturnRun": "Tracing can't be used with return run", + "commands.debug.function.success.multiple": "Traced %s command(s) from %s functions to output file %s", + "commands.debug.function.success.single": "Traced %s command(s) from function '%s' to output file %s", + "commands.debug.function.traceFailed": "Failed to trace function", + "commands.debug.notRunning": "The tick profiler hasn't started", + "commands.debug.started": "Started tick profiling", + "commands.debug.stopped": "Stopped tick profiling after %s seconds and %s ticks (%s ticks per second)", + "commands.defaultgamemode.success": "The default game mode is now %s", + "commands.deop.failed": "Nothing changed. The player is not an operator", + "commands.deop.success": "Made %s no longer a server operator", + "commands.difficulty.failure": "The difficulty did not change; it is already set to %s", + "commands.difficulty.query": "The difficulty is %s", + "commands.difficulty.success": "The difficulty has been set to %s", + "commands.drop.no_held_items": "Entity can't hold any items", + "commands.drop.no_loot_table": "Entity %s has no loot table", + "commands.drop.success.multiple": "Dropped %s items", + "commands.drop.success.multiple_with_table": "Dropped %s items from loot table %s", + "commands.drop.success.single": "Dropped %s %s", + "commands.drop.success.single_with_table": "Dropped %s %s from loot table %s", + "commands.effect.clear.everything.failed": "Target has no effects to remove", + "commands.effect.clear.everything.success.multiple": "Removed every effect from %s targets", + "commands.effect.clear.everything.success.single": "Removed every effect from %s", + "commands.effect.clear.specific.failed": "Target doesn't have the requested effect", + "commands.effect.clear.specific.success.multiple": "Removed effect %s from %s targets", + "commands.effect.clear.specific.success.single": "Removed effect %s from %s", + "commands.effect.give.failed": "Unable to apply this effect (target is either immune to effects, or has something stronger)", + "commands.effect.give.success.multiple": "Applied effect %s to %s targets", + "commands.effect.give.success.single": "Applied effect %s to %s", + "commands.enchant.failed": "Nothing changed. Targets either have no item in their hands or the enchantment could not be applied", + "commands.enchant.failed.entity": "%s is not a valid entity for this command", + "commands.enchant.failed.incompatible": "%s cannot support that enchantment", + "commands.enchant.failed.itemless": "%s is not holding any item", + "commands.enchant.failed.level": "%s is higher than the maximum level of %s supported by that enchantment", + "commands.enchant.success.multiple": "Applied enchantment %s to %s entities", + "commands.enchant.success.single": "Applied enchantment %s to %s's item", + "commands.execute.blocks.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", + "commands.execute.conditional.fail": "Test failed", + "commands.execute.conditional.fail_count": "Test failed, count: %s", + "commands.execute.conditional.pass": "Test passed", + "commands.execute.conditional.pass_count": "Test passed, count: %s", + "commands.execute.function.instantiationFailure": "Failed to instantiate function %s: %s", + "commands.experience.add.levels.success.multiple": "Gave %s experience levels to %s players", + "commands.experience.add.levels.success.single": "Gave %s experience levels to %s", + "commands.experience.add.points.success.multiple": "Gave %s experience points to %s players", + "commands.experience.add.points.success.single": "Gave %s experience points to %s", + "commands.experience.query.levels": "%s has %s experience levels", + "commands.experience.query.points": "%s has %s experience points", + "commands.experience.set.levels.success.multiple": "Set %s experience levels on %s players", + "commands.experience.set.levels.success.single": "Set %s experience levels on %s", + "commands.experience.set.points.invalid": "Cannot set experience points above the maximum points for the player's current level", + "commands.experience.set.points.success.multiple": "Set %s experience points on %s players", + "commands.experience.set.points.success.single": "Set %s experience points on %s", + "commands.fill.failed": "No blocks were filled", + "commands.fill.success": "Successfully filled %s block(s)", + "commands.fill.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", + "commands.fillbiome.success": "Biomes set between %s, %s, %s and %s, %s, %s", + "commands.fillbiome.success.count": "%s biome entry/entries set between %s, %s, %s and %s, %s, %s", + "commands.fillbiome.toobig": "Too many blocks in the specified volume (maximum %s, specified %s)", + "commands.forceload.added.failure": "No chunks were marked for force loading", + "commands.forceload.added.multiple": "Marked %s chunks in %s from %s to %s to be force loaded", + "commands.forceload.added.none": "No force loaded chunks were found in %s", + "commands.forceload.added.single": "Marked chunk %s in %s to be force loaded", + "commands.forceload.list.multiple": "%s force loaded chunks were found in %s at: %s", + "commands.forceload.list.single": "A force loaded chunk was found in %s at: %s", + "commands.forceload.query.failure": "Chunk at %s in %s is not marked for force loading", + "commands.forceload.query.success": "Chunk at %s in %s is marked for force loading", + "commands.forceload.removed.all": "Unmarked all force loaded chunks in %s", + "commands.forceload.removed.failure": "No chunks were removed from force loading", + "commands.forceload.removed.multiple": "Unmarked %s chunks in %s from %s to %s for force loading", + "commands.forceload.removed.single": "Unmarked chunk %s in %s for force loading", + "commands.forceload.toobig": "Too many chunks in the specified area (maximum %s, specified %s)", + "commands.function.error.argument_not_compound": "Invalid argument type: %s, expected Compound", + "commands.function.error.missing_argument": "Missing argument %2$s to function %1$s", + "commands.function.error.missing_arguments": "Missing arguments to function %s", + "commands.function.error.parse": "While instantiating macro %s: Command '%s' caused error: %s", + "commands.function.instantiationFailure": "Failed to instantiate function %s: %s", + "commands.function.result": "Function %s returned %s", + "commands.function.scheduled.multiple": "Running functions %s", + "commands.function.scheduled.no_functions": "Can't find any functions for name %s", + "commands.function.scheduled.single": "Running function %s", + "commands.function.success.multiple": "Executed %s command(s) from %s functions", + "commands.function.success.multiple.result": "Executed %s functions", + "commands.function.success.single": "Executed %s command(s) from function '%s'", + "commands.function.success.single.result": "Function '%2$s' returned %1$s", + "commands.gamemode.success.other": "Set %s's game mode to %s", + "commands.gamemode.success.self": "Set own game mode to %s", + "commands.gamerule.query": "Gamerule %s is currently set to: %s", + "commands.gamerule.set": "Gamerule %s is now set to: %s", + "commands.give.failed.toomanyitems": "Can't give more than %s of %s", + "commands.give.success.multiple": "Gave %s %s to %s players", + "commands.give.success.single": "Gave %s %s to %s", + "commands.help.failed": "Unknown command or insufficient permissions", + "commands.item.block.set.success": "Replaced a slot at %s, %s, %s with %s", + "commands.item.entity.set.success.multiple": "Replaced a slot on %s entities with %s", + "commands.item.entity.set.success.single": "Replaced a slot on %s with %s", + "commands.item.source.no_such_slot": "The source does not have slot %s", + "commands.item.source.not_a_container": "Source position %s, %s, %s is not a container", + "commands.item.target.no_changed.known_item": "No targets accepted item %s into slot %s", + "commands.item.target.no_changes": "No targets accepted item into slot %s", + "commands.item.target.no_such_slot": "The target does not have slot %s", + "commands.item.target.not_a_container": "Target position %s, %s, %s is not a container", + "commands.jfr.dump.failed": "Failed to dump JFR recording: %s", + "commands.jfr.start.failed": "Failed to start JFR profiling", + "commands.jfr.started": "JFR profiling started", + "commands.jfr.stopped": "JFR profiling stopped and dumped to %s", + "commands.kick.owner.failed": "Cannot kick server owner in LAN game", + "commands.kick.singleplayer.failed": "Cannot kick in an offline singleplayer game", + "commands.kick.success": "Kicked %s: %s", + "commands.kill.success.multiple": "Killed %s entities", + "commands.kill.success.single": "Killed %s", + "commands.list.nameAndId": "%s (%s)", + "commands.list.players": "There are %s of a max of %s players online: %s", + "commands.locate.biome.not_found": "Could not find a biome of type \"%s\" within reasonable distance", + "commands.locate.biome.success": "The nearest %s is at %s (%s blocks away)", + "commands.locate.poi.not_found": "Could not find a point of interest of type \"%s\" within reasonable distance", + "commands.locate.poi.success": "The nearest %s is at %s (%s blocks away)", + "commands.locate.structure.invalid": "There is no structure with type \"%s\"", + "commands.locate.structure.not_found": "Could not find a structure of type \"%s\" nearby", + "commands.locate.structure.success": "The nearest %s is at %s (%s blocks away)", + "commands.message.display.incoming": "%s whispers to you: %s", + "commands.message.display.outgoing": "You whisper to %s: %s", + "commands.op.failed": "Nothing changed. The player already is an operator", + "commands.op.success": "Made %s a server operator", + "commands.pardon.failed": "Nothing changed. The player isn't banned", + "commands.pardon.success": "Unbanned %s", + "commands.pardonip.failed": "Nothing changed. That IP isn't banned", + "commands.pardonip.invalid": "Invalid IP address", + "commands.pardonip.success": "Unbanned IP %s", + "commands.particle.failed": "The particle was not visible for anybody", + "commands.particle.success": "Displaying particle %s", + "commands.perf.alreadyRunning": "The performance profiler is already started", + "commands.perf.notRunning": "The performance profiler hasn't started", + "commands.perf.reportFailed": "Failed to create debug report", + "commands.perf.reportSaved": "Created debug report in %s", + "commands.perf.started": "Started 10 second performance profiling run (use '/perf stop' to stop early)", + "commands.perf.stopped": "Stopped performance profiling after %s second(s) and %s tick(s) (%s tick(s) per second)", + "commands.place.feature.failed": "Failed to place feature", + "commands.place.feature.invalid": "There is no feature with type \"%s\"", + "commands.place.feature.success": "Placed \"%s\" at %s, %s, %s", + "commands.place.jigsaw.failed": "Failed to generate jigsaw", + "commands.place.jigsaw.invalid": "There is no template pool with type \"%s\"", + "commands.place.jigsaw.success": "Generated jigsaw at %s, %s, %s", + "commands.place.structure.failed": "Failed to place structure", + "commands.place.structure.invalid": "There is no structure with type \"%s\"", + "commands.place.structure.success": "Generated structure \"%s\" at %s, %s, %s", + "commands.place.template.failed": "Failed to place template", + "commands.place.template.invalid": "There is no template with id \"%s\"", + "commands.place.template.success": "Loaded template \"%s\" at %s, %s, %s", + "commands.playsound.failed": "The sound is too far away to be heard", + "commands.playsound.success.multiple": "Played sound %s to %s players", + "commands.playsound.success.single": "Played sound %s to %s", + "commands.publish.alreadyPublished": "Multiplayer game is already hosted on port %s", + "commands.publish.failed": "Unable to host local game", + "commands.publish.started": "Local game hosted on port %s", + "commands.publish.success": "Multiplayer game is now hosted on port %s", + "commands.random.error.range_too_large": "The range of the random value must be at most 2147483646", + "commands.random.error.range_too_small": "The range of the random value must be at least 2", + "commands.random.reset.all.success": "Reset %s random sequence(s)", + "commands.random.reset.success": "Reset random sequence %s", + "commands.random.roll": "%s rolled %s (from %s to %s)", + "commands.random.sample.success": "Randomized value: %s", + "commands.recipe.give.failed": "No new recipes were learned", + "commands.recipe.give.success.multiple": "Unlocked %s recipes for %s players", + "commands.recipe.give.success.single": "Unlocked %s recipes for %s", + "commands.recipe.take.failed": "No recipes could be forgotten", + "commands.recipe.take.success.multiple": "Took %s recipes from %s players", + "commands.recipe.take.success.single": "Took %s recipes from %s", + "commands.reload.failure": "Reload failed; keeping old data", + "commands.reload.success": "Reloading!", + "commands.ride.already_riding": "%s is already riding %s", + "commands.ride.dismount.success": "%s stopped riding %s", + "commands.ride.mount.failure.cant_ride_players": "Players can't be ridden", + "commands.ride.mount.failure.generic": "%s couldn't start riding %s", + "commands.ride.mount.failure.loop": "Can't mount entity on itself or any of its passengers", + "commands.ride.mount.failure.wrong_dimension": "Can't mount entity in different dimension", + "commands.ride.mount.success": "%s started riding %s", + "commands.ride.not_riding": "%s is not riding any vehicle", + "commands.save.alreadyOff": "Saving is already turned off", + "commands.save.alreadyOn": "Saving is already turned on", + "commands.save.disabled": "Automatic saving is now disabled", + "commands.save.enabled": "Automatic saving is now enabled", + "commands.save.failed": "Unable to save the game (is there enough disk space?)", + "commands.save.saving": "Saving the game (this may take a moment!)", + "commands.save.success": "Saved the game", + "commands.schedule.cleared.failure": "No schedules with id %s", + "commands.schedule.cleared.success": "Removed %s schedule(s) with id %s", + "commands.schedule.created.function": "Scheduled function '%s' in %s tick(s) at gametime %s", + "commands.schedule.created.tag": "Scheduled tag '%s' in %s ticks at gametime %s", + "commands.schedule.same_tick": "Can't schedule for current tick", + "commands.scoreboard.objectives.add.duplicate": "An objective already exists by that name", + "commands.scoreboard.objectives.add.success": "Created new objective %s", + "commands.scoreboard.objectives.display.alreadyEmpty": "Nothing changed. That display slot is already empty", + "commands.scoreboard.objectives.display.alreadySet": "Nothing changed. That display slot is already showing that objective", + "commands.scoreboard.objectives.display.cleared": "Cleared any objectives in display slot %s", + "commands.scoreboard.objectives.display.set": "Set display slot %s to show objective %s", + "commands.scoreboard.objectives.list.empty": "There are no objectives", + "commands.scoreboard.objectives.list.success": "There are %s objective(s): %s", + "commands.scoreboard.objectives.modify.displayAutoUpdate.disable": "Disabled display auto-update for objective %s", + "commands.scoreboard.objectives.modify.displayAutoUpdate.enable": "Enabled display auto-update for objective %s", + "commands.scoreboard.objectives.modify.displayname": "Changed the display name of %s to %s", + "commands.scoreboard.objectives.modify.objectiveFormat.clear": "Cleared default number format of objective %s", + "commands.scoreboard.objectives.modify.objectiveFormat.set": "Changed default number format of objective %s", + "commands.scoreboard.objectives.modify.rendertype": "Changed the render type of objective %s", + "commands.scoreboard.objectives.remove.success": "Removed objective %s", + "commands.scoreboard.players.add.success.multiple": "Added %s to %s for %s entities", + "commands.scoreboard.players.add.success.single": "Added %s to %s for %s (now %s)", + "commands.scoreboard.players.display.name.clear.success.multiple": "Cleared display name for %s entities in %s", + "commands.scoreboard.players.display.name.clear.success.single": "Cleared display name for %s in %s", + "commands.scoreboard.players.display.name.set.success.multiple": "Changed display name to %s for %s entities in %s", + "commands.scoreboard.players.display.name.set.success.single": "Changed display name to %s for %s in %s", + "commands.scoreboard.players.display.numberFormat.clear.success.multiple": "Cleared number format for %s entities in %s", + "commands.scoreboard.players.display.numberFormat.clear.success.single": "Cleared number format for %s in %s", + "commands.scoreboard.players.display.numberFormat.set.success.multiple": "Changed number format for %s entities in %s", + "commands.scoreboard.players.display.numberFormat.set.success.single": "Changed number format for %s in %s", + "commands.scoreboard.players.enable.failed": "Nothing changed. That trigger is already enabled", + "commands.scoreboard.players.enable.invalid": "Enable only works on trigger-objectives", + "commands.scoreboard.players.enable.success.multiple": "Enabled trigger %s for %s entities", + "commands.scoreboard.players.enable.success.single": "Enabled trigger %s for %s", + "commands.scoreboard.players.get.null": "Can't get value of %s for %s; none is set", + "commands.scoreboard.players.get.success": "%s has %s %s", + "commands.scoreboard.players.list.empty": "There are no tracked entities", + "commands.scoreboard.players.list.entity.empty": "%s has no scores to show", + "commands.scoreboard.players.list.entity.entry": "%s: %s", + "commands.scoreboard.players.list.entity.success": "%s has %s score(s):", + "commands.scoreboard.players.list.success": "There are %s tracked entity/entities: %s", + "commands.scoreboard.players.operation.success.multiple": "Updated %s for %s entities", + "commands.scoreboard.players.operation.success.single": "Set %s for %s to %s", + "commands.scoreboard.players.remove.success.multiple": "Removed %s from %s for %s entities", + "commands.scoreboard.players.remove.success.single": "Removed %s from %s for %s (now %s)", + "commands.scoreboard.players.reset.all.multiple": "Reset all scores for %s entities", + "commands.scoreboard.players.reset.all.single": "Reset all scores for %s", + "commands.scoreboard.players.reset.specific.multiple": "Reset %s for %s entities", + "commands.scoreboard.players.reset.specific.single": "Reset %s for %s", + "commands.scoreboard.players.set.success.multiple": "Set %s for %s entities to %s", + "commands.scoreboard.players.set.success.single": "Set %s for %s to %s", + "commands.seed.success": "Seed: %s", + "commands.setblock.failed": "Could not set the block", + "commands.setblock.success": "Changed the block at %s, %s, %s", + "commands.setidletimeout.success": "The player idle timeout is now %s minute(s)", + "commands.setworldspawn.failure.not_overworld": "Can only set the world spawn for overworld", + "commands.setworldspawn.success": "Set the world spawn point to %s, %s, %s [%s]", + "commands.spawnpoint.success.multiple": "Set spawn point to %s, %s, %s [%s] in %s for %s players", + "commands.spawnpoint.success.single": "Set spawn point to %s, %s, %s [%s] in %s for %s", + "commands.spectate.not_spectator": "%s is not in spectator mode", + "commands.spectate.self": "Cannot spectate yourself", + "commands.spectate.success.started": "Now spectating %s", + "commands.spectate.success.stopped": "No longer spectating an entity", + "commands.spreadplayers.failed.entities": "Could not spread %s entity/entities around %s, %s (too many entities for space - try using spread of at most %s)", + "commands.spreadplayers.failed.invalid.height": "Invalid maxHeight %s; expected higher than world minimum %s", + "commands.spreadplayers.failed.teams": "Could not spread %s team(s) around %s, %s (too many entities for space - try using spread of at most %s)", + "commands.spreadplayers.success.entities": "Spread %s player(s) around %s, %s with an average distance of %s blocks apart", + "commands.spreadplayers.success.teams": "Spread %s team(s) around %s, %s with an average distance of %s blocks apart", + "commands.stop.stopping": "Stopping the server", + "commands.stopsound.success.source.any": "Stopped all '%s' sounds", + "commands.stopsound.success.source.sound": "Stopped sound '%s' on source '%s'", + "commands.stopsound.success.sourceless.any": "Stopped all sounds", + "commands.stopsound.success.sourceless.sound": "Stopped sound '%s'", + "commands.summon.failed": "Unable to summon entity", + "commands.summon.failed.uuid": "Unable to summon entity due to duplicate UUIDs", + "commands.summon.invalidPosition": "Invalid position for summon", + "commands.summon.success": "Summoned new %s", + "commands.tag.add.failed": "Target either already has the tag or has too many tags", + "commands.tag.add.success.multiple": "Added tag '%s' to %s entities", + "commands.tag.add.success.single": "Added tag '%s' to %s", + "commands.tag.list.multiple.empty": "There are no tags on the %s entities", + "commands.tag.list.multiple.success": "The %s entities have %s total tags: %s", + "commands.tag.list.single.empty": "%s has no tags", + "commands.tag.list.single.success": "%s has %s tags: %s", + "commands.tag.remove.failed": "Target does not have this tag", + "commands.tag.remove.success.multiple": "Removed tag '%s' from %s entities", + "commands.tag.remove.success.single": "Removed tag '%s' from %s", + "commands.team.add.duplicate": "A team already exists by that name", + "commands.team.add.success": "Created team %s", + "commands.team.empty.success": "Removed %s member(s) from team %s", + "commands.team.empty.unchanged": "Nothing changed. That team is already empty", + "commands.team.join.success.multiple": "Added %s members to team %s", + "commands.team.join.success.single": "Added %s to team %s", + "commands.team.leave.success.multiple": "Removed %s members from any team", + "commands.team.leave.success.single": "Removed %s from any team", + "commands.team.list.members.empty": "There are no members on team %s", + "commands.team.list.members.success": "Team %s has %s member(s): %s", + "commands.team.list.teams.empty": "There are no teams", + "commands.team.list.teams.success": "There are %s team(s): %s", + "commands.team.option.collisionRule.success": "Collision rule for team %s is now \"%s\"", + "commands.team.option.collisionRule.unchanged": "Nothing changed. Collision rule is already that value", + "commands.team.option.color.success": "Updated the color for team %s to %s", + "commands.team.option.color.unchanged": "Nothing changed. That team already has that color", + "commands.team.option.deathMessageVisibility.success": "Death message visibility for team %s is now \"%s\"", + "commands.team.option.deathMessageVisibility.unchanged": "Nothing changed. Death message visibility is already that value", + "commands.team.option.friendlyfire.alreadyDisabled": "Nothing changed. Friendly fire is already disabled for that team", + "commands.team.option.friendlyfire.alreadyEnabled": "Nothing changed. Friendly fire is already enabled for that team", + "commands.team.option.friendlyfire.disabled": "Disabled friendly fire for team %s", + "commands.team.option.friendlyfire.enabled": "Enabled friendly fire for team %s", + "commands.team.option.name.success": "Updated the name of team %s", + "commands.team.option.name.unchanged": "Nothing changed. That team already has that name", + "commands.team.option.nametagVisibility.success": "Nametag visibility for team %s is now \"%s\"", + "commands.team.option.nametagVisibility.unchanged": "Nothing changed. Nametag visibility is already that value", + "commands.team.option.prefix.success": "Team prefix set to %s", + "commands.team.option.seeFriendlyInvisibles.alreadyDisabled": "Nothing changed. That team already can't see invisible teammates", + "commands.team.option.seeFriendlyInvisibles.alreadyEnabled": "Nothing changed. That team can already see invisible teammates", + "commands.team.option.seeFriendlyInvisibles.disabled": "Team %s can no longer see invisible teammates", + "commands.team.option.seeFriendlyInvisibles.enabled": "Team %s can now see invisible teammates", + "commands.team.option.suffix.success": "Team suffix set to %s", + "commands.team.remove.success": "Removed team %s", + "commands.teammsg.failed.noteam": "You must be on a team to message your team", + "commands.teleport.invalidPosition": "Invalid position for teleport", + "commands.teleport.success.entity.multiple": "Teleported %s entities to %s", + "commands.teleport.success.entity.single": "Teleported %s to %s", + "commands.teleport.success.location.multiple": "Teleported %s entities to %s, %s, %s", + "commands.teleport.success.location.single": "Teleported %s to %s, %s, %s", + "commands.tick.query.percentiles": "Percentiles: P50: %sms P95: %sms P99: %sms, sample: %s", + "commands.tick.query.rate.running": "Target tick rate: %s per second.\nAverage time per tick: %sms (Target: %sms)", + "commands.tick.query.rate.sprinting": "Target tick rate: %s per second (ignored, reference only).\nAverage time per tick: %sms", + "commands.tick.rate.success": "Set the target tick rate to %s per second", + "commands.tick.sprint.report": "Sprint completed with %s ticks per second, or %s ms per tick", + "commands.tick.sprint.stop.fail": "No tick sprint in progress", + "commands.tick.sprint.stop.success": "Interrupted the current tick sprint", + "commands.tick.status.frozen": "The game is frozen", + "commands.tick.status.lagging": "The game is running, but can't keep up with the target tick rate", + "commands.tick.status.running": "The game is running normally", + "commands.tick.status.sprinting": "The game is sprinting", + "commands.tick.step.fail": "Unable to step the game - the game must be frozen first", + "commands.tick.step.stop.fail": "No tick step in progress", + "commands.tick.step.stop.success": "Interrupted the current tick step", + "commands.tick.step.success": "Stepping %s tick(s)", + "commands.time.query": "The time is %s", + "commands.time.set": "Set the time to %s", + "commands.title.cleared.multiple": "Cleared titles for %s players", + "commands.title.cleared.single": "Cleared titles for %s", + "commands.title.reset.multiple": "Reset title options for %s players", + "commands.title.reset.single": "Reset title options for %s", + "commands.title.show.actionbar.multiple": "Showing new actionbar title for %s players", + "commands.title.show.actionbar.single": "Showing new actionbar title for %s", + "commands.title.show.subtitle.multiple": "Showing new subtitle for %s players", + "commands.title.show.subtitle.single": "Showing new subtitle for %s", + "commands.title.show.title.multiple": "Showing new title for %s players", + "commands.title.show.title.single": "Showing new title for %s", + "commands.title.times.multiple": "Changed title display times for %s players", + "commands.title.times.single": "Changed title display times for %s", + "commands.transfer.error.no_players": "Must specify at least one player to transfer", + "commands.transfer.success.multiple": "Transferring %s players to %s:%s", + "commands.transfer.success.single": "Transferring %s to %s:%s", + "commands.trigger.add.success": "Triggered %s (added %s to value)", + "commands.trigger.failed.invalid": "You can only trigger objectives that are 'trigger' type", + "commands.trigger.failed.unprimed": "You cannot trigger this objective yet", + "commands.trigger.set.success": "Triggered %s (set value to %s)", + "commands.trigger.simple.success": "Triggered %s", + "commands.weather.set.clear": "Set the weather to clear", + "commands.weather.set.rain": "Set the weather to rain", + "commands.weather.set.thunder": "Set the weather to rain & thunder", + "commands.whitelist.add.failed": "Player is already whitelisted", + "commands.whitelist.add.success": "Added %s to the whitelist", + "commands.whitelist.alreadyOff": "Whitelist is already turned off", + "commands.whitelist.alreadyOn": "Whitelist is already turned on", + "commands.whitelist.disabled": "Whitelist is now turned off", + "commands.whitelist.enabled": "Whitelist is now turned on", + "commands.whitelist.list": "There are %s whitelisted player(s): %s", + "commands.whitelist.none": "There are no whitelisted players", + "commands.whitelist.reloaded": "Reloaded the whitelist", + "commands.whitelist.remove.failed": "Player is not whitelisted", + "commands.whitelist.remove.success": "Removed %s from the whitelist", + "commands.worldborder.center.failed": "Nothing changed. The world border is already centered there", + "commands.worldborder.center.success": "Set the center of the world border to %s, %s", + "commands.worldborder.damage.amount.failed": "Nothing changed. The world border damage is already that amount", + "commands.worldborder.damage.amount.success": "Set the world border damage to %s per block each second", + "commands.worldborder.damage.buffer.failed": "Nothing changed. The world border damage buffer is already that distance", + "commands.worldborder.damage.buffer.success": "Set the world border damage buffer to %s block(s)", + "commands.worldborder.get": "The world border is currently %s block(s) wide", + "commands.worldborder.set.failed.big": "World border cannot be bigger than %s blocks wide", + "commands.worldborder.set.failed.far": "World border cannot be further out than %s blocks", + "commands.worldborder.set.failed.nochange": "Nothing changed. The world border is already that size", + "commands.worldborder.set.failed.small": "World border cannot be smaller than 1 block wide", + "commands.worldborder.set.grow": "Growing the world border to %s blocks wide over %s seconds", + "commands.worldborder.set.immediate": "Set the world border to %s block(s) wide", + "commands.worldborder.set.shrink": "Shrinking the world border to %s block(s) wide over %s second(s)", + "commands.worldborder.warning.distance.failed": "Nothing changed. The world border warning is already that distance", + "commands.worldborder.warning.distance.success": "Set the world border warning distance to %s block(s)", + "commands.worldborder.warning.time.failed": "Nothing changed. The world border warning is already that amount of time", + "commands.worldborder.warning.time.success": "Set the world border warning time to %s second(s)", + "compliance.playtime.greaterThan24Hours": "You've been playing for greater than 24 hours", + "compliance.playtime.hours": "You've been playing for %s hour(s)", + "compliance.playtime.message": "Excessive gaming may interfere with normal daily life", + "connect.aborted": "Aborted", + "connect.authorizing": "Logging in...", + "connect.connecting": "Connecting to the server...", + "connect.encrypting": "Encrypting...", + "connect.failed": "Failed to connect to the server", + "connect.failed.transfer": "Connection failed while transferring to the server", + "connect.joining": "Joining world...", + "connect.negotiating": "Negotiating...", + "connect.reconfiging": "Reconfiguring...", + "connect.reconfiguring": "Reconfiguring...", + "connect.transferring": "Transferring to new server...", + "container.barrel": "Barrel", + "container.beacon": "Beacon", + "container.blast_furnace": "Blast Furnace", + "container.brewing": "Brewing Stand", + "container.cartography_table": "Cartography Table", + "container.chest": "Chest", + "container.chestDouble": "Large Chest", + "container.crafter": "Crafter", + "container.crafting": "Crafting", + "container.creative": "Item Selection", + "container.dispenser": "Dispenser", + "container.dropper": "Dropper", + "container.enchant": "Enchant", + "container.enchant.clue": "%s . . . ?", + "container.enchant.lapis.many": "%s Lapis Lazuli", + "container.enchant.lapis.one": "1 Lapis Lazuli", + "container.enchant.level.many": "%s Enchantment Levels", + "container.enchant.level.one": "1 Enchantment Level", + "container.enchant.level.requirement": "Level Requirement: %s", + "container.enderchest": "Ender Chest", + "container.furnace": "Furnace", + "container.grindstone_title": "Repair & Disenchant", + "container.hopper": "Item Hopper", + "container.inventory": "Inventory", + "container.isLocked": "%s is locked!", + "container.lectern": "Lectern", + "container.loom": "Loom", + "container.repair": "Repair & Name", + "container.repair.cost": "Enchantment Cost: %1$s", + "container.repair.expensive": "Too Expensive!", + "container.shulkerBox": "Shulker Box", + "container.shulkerBox.itemCount": "%s x%s", + "container.shulkerBox.more": "and %s more...", + "container.shulkerBox.unknownContents": "???????", + "container.smoker": "Smoker", + "container.spectatorCantOpen": "Unable to open. Loot not generated yet.", + "container.stonecutter": "Stonecutter", + "container.upgrade": "Upgrade Gear", + "container.upgrade.error_tooltip": "Item can't be upgraded this way", + "container.upgrade.missing_template_tooltip": "Add Smithing Template", + "controls.keybinds": "Key Binds...", + "controls.keybinds.duplicateKeybinds": "This key is also used for:\n%s", + "controls.keybinds.title": "Key Binds", + "controls.reset": "Reset", + "controls.resetAll": "Reset Keys", + "controls.title": "Controls", + "createWorld.customize.buffet.biome": "Please select a biome", + "createWorld.customize.buffet.title": "Buffet world customization", + "createWorld.customize.custom.baseSize": "Depth Base Size", + "createWorld.customize.custom.biomeDepthOffset": "Biome Depth Offset", + "createWorld.customize.custom.biomeDepthWeight": "Biome Depth Weight", + "createWorld.customize.custom.biomeScaleOffset": "Biome Scale Offset", + "createWorld.customize.custom.biomeScaleWeight": "Biome Scale Weight", + "createWorld.customize.custom.biomeSize": "Biome Size", + "createWorld.customize.custom.center": "Center Height", + "createWorld.customize.custom.confirm1": "This will overwrite your current", + "createWorld.customize.custom.confirm2": "settings and cannot be undone.", + "createWorld.customize.custom.confirmTitle": "Warning!", + "createWorld.customize.custom.coordinateScale": "Coordinate Scale", + "createWorld.customize.custom.count": "Spawn Tries", + "createWorld.customize.custom.defaults": "Defaults", + "createWorld.customize.custom.depthNoiseScaleExponent": "Depth Noise Exponent", + "createWorld.customize.custom.depthNoiseScaleX": "Depth Noise Scale X", + "createWorld.customize.custom.depthNoiseScaleZ": "Depth Noise Scale Z", + "createWorld.customize.custom.dungeonChance": "Dungeon Count", + "createWorld.customize.custom.fixedBiome": "Biome", + "createWorld.customize.custom.heightScale": "Height Scale", + "createWorld.customize.custom.lavaLakeChance": "Lava Lake Rarity", + "createWorld.customize.custom.lowerLimitScale": "Lower Limit Scale", + "createWorld.customize.custom.mainNoiseScaleX": "Main Noise Scale X", + "createWorld.customize.custom.mainNoiseScaleY": "Main Noise Scale Y", + "createWorld.customize.custom.mainNoiseScaleZ": "Main Noise Scale Z", + "createWorld.customize.custom.maxHeight": "Max. Height", + "createWorld.customize.custom.minHeight": "Min. Height", + "createWorld.customize.custom.next": "Next Page", + "createWorld.customize.custom.page0": "Basic Settings", + "createWorld.customize.custom.page1": "Ore Settings", + "createWorld.customize.custom.page2": "Advanced Settings (Expert Users Only!)", + "createWorld.customize.custom.page3": "Extra Advanced Settings (Expert Users Only!)", + "createWorld.customize.custom.preset.caveChaos": "Caves of Chaos", + "createWorld.customize.custom.preset.caveDelight": "Caver's Delight", + "createWorld.customize.custom.preset.drought": "Drought", + "createWorld.customize.custom.preset.goodLuck": "Good Luck", + "createWorld.customize.custom.preset.isleLand": "Isle Land", + "createWorld.customize.custom.preset.mountains": "Mountain Madness", + "createWorld.customize.custom.preset.waterWorld": "Water World", + "createWorld.customize.custom.presets": "Presets", + "createWorld.customize.custom.presets.title": "Customize World Presets", + "createWorld.customize.custom.prev": "Previous Page", + "createWorld.customize.custom.randomize": "Randomize", + "createWorld.customize.custom.riverSize": "River Size", + "createWorld.customize.custom.seaLevel": "Sea Level", + "createWorld.customize.custom.size": "Spawn Size", + "createWorld.customize.custom.spread": "Spread Height", + "createWorld.customize.custom.stretchY": "Height Stretch", + "createWorld.customize.custom.upperLimitScale": "Upper Limit Scale", + "createWorld.customize.custom.useCaves": "Caves", + "createWorld.customize.custom.useDungeons": "Dungeons", + "createWorld.customize.custom.useLavaLakes": "Lava Lakes", + "createWorld.customize.custom.useLavaOceans": "Lava Oceans", + "createWorld.customize.custom.useMansions": "Woodland Mansions", + "createWorld.customize.custom.useMineShafts": "Mineshafts", + "createWorld.customize.custom.useMonuments": "Ocean Monuments", + "createWorld.customize.custom.useOceanRuins": "Ocean Ruins", + "createWorld.customize.custom.useRavines": "Ravines", + "createWorld.customize.custom.useStrongholds": "Strongholds", + "createWorld.customize.custom.useTemples": "Temples", + "createWorld.customize.custom.useVillages": "Villages", + "createWorld.customize.custom.useWaterLakes": "Water Lakes", + "createWorld.customize.custom.waterLakeChance": "Water Lake Rarity", + "createWorld.customize.flat.height": "Height", + "createWorld.customize.flat.layer": "%s", + "createWorld.customize.flat.layer.bottom": "Bottom - %s", + "createWorld.customize.flat.layer.top": "Top - %s", + "createWorld.customize.flat.removeLayer": "Remove Layer", + "createWorld.customize.flat.tile": "Layer Material", + "createWorld.customize.flat.title": "Superflat Customization", + "createWorld.customize.presets": "Presets", + "createWorld.customize.presets.list": "Alternatively, here's some we made earlier!", + "createWorld.customize.presets.select": "Use Preset", + "createWorld.customize.presets.share": "Want to share your preset with someone? Use the box below!", + "createWorld.customize.presets.title": "Select a Preset", + "createWorld.preparing": "Preparing for world creation...", + "createWorld.tab.game.title": "Game", + "createWorld.tab.more.title": "More", + "createWorld.tab.world.title": "World", + "credits_and_attribution.button.attribution": "Attribution", + "credits_and_attribution.button.credits": "Credits", + "credits_and_attribution.button.licenses": "Licenses", + "credits_and_attribution.screen.title": "Credits and Attribution", + "dataPack.bundle.description": "Enables experimental Bundle item", + "dataPack.bundle.name": "Bundles", + "dataPack.title": "Select Data Packs", + "dataPack.trade_rebalance.description": "Updated trades for Villagers", + "dataPack.trade_rebalance.name": "Villager Trade Rebalance", + "dataPack.update_1_20.description": "New features and content for Minecraft 1.20", + "dataPack.update_1_20.name": "Update 1.20", + "dataPack.update_1_21.description": "New features and content for Minecraft 1.21", + "dataPack.update_1_21.name": "Update 1.21", + "dataPack.validation.back": "Go Back", + "dataPack.validation.failed": "Data pack validation failed!", + "dataPack.validation.reset": "Reset to Default", + "dataPack.validation.working": "Validating selected data packs...", + "dataPack.vanilla.description": "The default data for Minecraft", + "dataPack.vanilla.name": "Default", + "datapackFailure.safeMode": "Safe Mode", + "datapackFailure.safeMode.failed.description": "This world contains invalid or corrupted save data.", + "datapackFailure.safeMode.failed.title": "Failed to load world in Safe Mode.", + "datapackFailure.title": "Errors in currently selected data packs prevented the world from loading.\nYou can either try to load it with only the vanilla data pack (\"safe mode\"), or go back to the title screen and fix it manually.", + "death.attack.anvil": "%1$s was squashed by a falling anvil", + "death.attack.anvil.player": "%1$s was squashed by a falling anvil while fighting %2$s", + "death.attack.arrow": "%1$s was shot by %2$s", + "death.attack.arrow.item": "%1$s was shot by %2$s using %3$s", + "death.attack.badRespawnPoint.link": "Intentional Game Design", + "death.attack.badRespawnPoint.message": "%1$s was killed by %2$s", + "death.attack.cactus": "%1$s was pricked to death", + "death.attack.cactus.player": "%1$s walked into a cactus while trying to escape %2$s", + "death.attack.cramming": "%1$s was squished too much", + "death.attack.cramming.player": "%1$s was squashed by %2$s", + "death.attack.dragonBreath": "%1$s was roasted in dragon's breath", + "death.attack.dragonBreath.player": "%1$s was roasted in dragon's breath by %2$s", + "death.attack.drown": "%1$s drowned", + "death.attack.drown.player": "%1$s drowned while trying to escape %2$s", + "death.attack.dryout": "%1$s died from dehydration", + "death.attack.dryout.player": "%1$s died from dehydration while trying to escape %2$s", + "death.attack.even_more_magic": "%1$s was killed by even more magic", + "death.attack.explosion": "%1$s blew up", + "death.attack.explosion.player": "%1$s was blown up by %2$s", + "death.attack.explosion.player.item": "%1$s was blown up by %2$s using %3$s", + "death.attack.fall": "%1$s hit the ground too hard", + "death.attack.fall.player": "%1$s hit the ground too hard while trying to escape %2$s", + "death.attack.fallingBlock": "%1$s was squashed by a falling block", + "death.attack.fallingBlock.player": "%1$s was squashed by a falling block while fighting %2$s", + "death.attack.fallingStalactite": "%1$s was skewered by a falling stalactite", + "death.attack.fallingStalactite.player": "%1$s was skewered by a falling stalactite while fighting %2$s", + "death.attack.fireball": "%1$s was fireballed by %2$s", + "death.attack.fireball.item": "%1$s was fireballed by %2$s using %3$s", + "death.attack.fireworks": "%1$s went off with a bang", + "death.attack.fireworks.item": "%1$s went off with a bang due to a firework fired from %3$s by %2$s", + "death.attack.fireworks.player": "%1$s went off with a bang while fighting %2$s", + "death.attack.flyIntoWall": "%1$s experienced kinetic energy", + "death.attack.flyIntoWall.player": "%1$s experienced kinetic energy while trying to escape %2$s", + "death.attack.freeze": "%1$s froze to death", + "death.attack.freeze.player": "%1$s was frozen to death by %2$s", + "death.attack.generic": "%1$s died", + "death.attack.generic.player": "%1$s died because of %2$s", + "death.attack.genericKill": "%1$s was killed", + "death.attack.genericKill.player": "%1$s was killed while fighting %2$s", + "death.attack.hotFloor": "%1$s discovered the floor was lava", + "death.attack.hotFloor.player": "%1$s walked into the danger zone due to %2$s", + "death.attack.indirectMagic": "%1$s was killed by %2$s using magic", + "death.attack.indirectMagic.item": "%1$s was killed by %2$s using %3$s", + "death.attack.inFire": "%1$s went up in flames", + "death.attack.inFire.player": "%1$s walked into fire while fighting %2$s", + "death.attack.inWall": "%1$s suffocated in a wall", + "death.attack.inWall.player": "%1$s suffocated in a wall while fighting %2$s", + "death.attack.lava": "%1$s tried to swim in lava", + "death.attack.lava.player": "%1$s tried to swim in lava to escape %2$s", + "death.attack.lightningBolt": "%1$s was struck by lightning", + "death.attack.lightningBolt.player": "%1$s was struck by lightning while fighting %2$s", + "death.attack.magic": "%1$s was killed by magic", + "death.attack.magic.player": "%1$s was killed by magic while trying to escape %2$s", + "death.attack.message_too_long": "Actually, the message was too long to deliver fully. Sorry! Here's a stripped version: %s", + "death.attack.mob": "%1$s was slain by %2$s", + "death.attack.mob.item": "%1$s was slain by %2$s using %3$s", + "death.attack.onFire": "%1$s burned to death", + "death.attack.onFire.item": "%1$s was burned to a crisp while fighting %2$s wielding %3$s", + "death.attack.onFire.player": "%1$s was burned to a crisp while fighting %2$s", + "death.attack.outOfWorld": "%1$s fell out of the world", + "death.attack.outOfWorld.player": "%1$s didn't want to live in the same world as %2$s", + "death.attack.outsideBorder": "%1$s left the confines of this world", + "death.attack.outsideBorder.player": "%1$s left the confines of this world while fighting %2$s", + "death.attack.player": "%1$s was slain by %2$s", + "death.attack.player.item": "%1$s was slain by %2$s using %3$s", + "death.attack.sonic_boom": "%1$s was obliterated by a sonically-charged shriek", + "death.attack.sonic_boom.item": "%1$s was obliterated by a sonically-charged shriek while trying to escape %2$s wielding %3$s", + "death.attack.sonic_boom.player": "%1$s was obliterated by a sonically-charged shriek while trying to escape %2$s", + "death.attack.stalagmite": "%1$s was impaled on a stalagmite", + "death.attack.stalagmite.player": "%1$s was impaled on a stalagmite while fighting %2$s", + "death.attack.starve": "%1$s starved to death", + "death.attack.starve.player": "%1$s starved to death while fighting %2$s", + "death.attack.sting": "%1$s was stung to death", + "death.attack.sting.item": "%1$s was stung to death by %2$s using %3$s", + "death.attack.sting.player": "%1$s was stung to death by %2$s", + "death.attack.sweetBerryBush": "%1$s was poked to death by a sweet berry bush", + "death.attack.sweetBerryBush.player": "%1$s was poked to death by a sweet berry bush while trying to escape %2$s", + "death.attack.thorns": "%1$s was killed while trying to hurt %2$s", + "death.attack.thorns.item": "%1$s was killed by %3$s while trying to hurt %2$s", + "death.attack.thrown": "%1$s was pummeled by %2$s", + "death.attack.thrown.item": "%1$s was pummeled by %2$s using %3$s", + "death.attack.trident": "%1$s was impaled by %2$s", + "death.attack.trident.item": "%1$s was impaled by %2$s with %3$s", + "death.attack.wither": "%1$s withered away", + "death.attack.wither.player": "%1$s withered away while fighting %2$s", + "death.attack.witherSkull": "%1$s was shot by a skull from %2$s", + "death.attack.witherSkull.item": "%1$s was shot by a skull from %2$s using %3$s", + "death.fell.accident.generic": "%1$s fell from a high place", + "death.fell.accident.ladder": "%1$s fell off a ladder", + "death.fell.accident.other_climbable": "%1$s fell while climbing", + "death.fell.accident.scaffolding": "%1$s fell off scaffolding", + "death.fell.accident.twisting_vines": "%1$s fell off some twisting vines", + "death.fell.accident.vines": "%1$s fell off some vines", + "death.fell.accident.weeping_vines": "%1$s fell off some weeping vines", + "death.fell.assist": "%1$s was doomed to fall by %2$s", + "death.fell.assist.item": "%1$s was doomed to fall by %2$s using %3$s", + "death.fell.finish": "%1$s fell too far and was finished by %2$s", + "death.fell.finish.item": "%1$s fell too far and was finished by %2$s using %3$s", + "death.fell.killer": "%1$s was doomed to fall", + "deathScreen.quit.confirm": "Are you sure you want to quit?", + "deathScreen.respawn": "Respawn", + "deathScreen.score": "Score", + "deathScreen.score.value": "Score: %s", + "deathScreen.spectate": "Spectate World", + "deathScreen.title": "You Died!", + "deathScreen.title.hardcore": "Game Over!", + "deathScreen.titleScreen": "Title Screen", + "debug.advanced_tooltips.help": "F3 + H = Advanced tooltips", + "debug.advanced_tooltips.off": "Advanced tooltips: hidden", + "debug.advanced_tooltips.on": "Advanced tooltips: shown", + "debug.chunk_boundaries.help": "F3 + G = Show chunk boundaries", + "debug.chunk_boundaries.off": "Chunk borders: hidden", + "debug.chunk_boundaries.on": "Chunk borders: shown", + "debug.clear_chat.help": "F3 + D = Clear chat", + "debug.copy_location.help": "F3 + C = Copy location as /tp command, hold F3 + C to crash the game", + "debug.copy_location.message": "Copied location to clipboard", + "debug.crash.message": "F3 + C is held down. This will crash the game unless released.", + "debug.crash.warning": "Crashing in %s...", + "debug.creative_spectator.error": "Unable to switch game mode; no permission", + "debug.creative_spectator.help": "F3 + N = Cycle previous game mode <-> spectator", + "debug.dump_dynamic_textures": "Saved dynamic textures to %s", + "debug.dump_dynamic_textures.help": "F3 + S = Dump dynamic textures", + "debug.gamemodes.error": "Unable to open game mode switcher; no permission", + "debug.gamemodes.help": "F3 + F4 = Open game mode switcher", + "debug.gamemodes.press_f4": "[ F4 ]", + "debug.gamemodes.select_next": "%s Next", + "debug.help.help": "F3 + Q = Show this list", + "debug.help.message": "Key bindings:", + "debug.inspect.client.block": "Copied client-side block data to clipboard", + "debug.inspect.client.entity": "Copied client-side entity data to clipboard", + "debug.inspect.help": "F3 + I = Copy entity or block data to clipboard", + "debug.inspect.server.block": "Copied server-side block data to clipboard", + "debug.inspect.server.entity": "Copied server-side entity data to clipboard", + "debug.pause_focus.help": "F3 + P = Pause on lost focus", + "debug.pause_focus.off": "Pause on lost focus: disabled", + "debug.pause_focus.on": "Pause on lost focus: enabled", + "debug.pause.help": "F3 + Esc = Pause without pause menu (if pausing is possible)", + "debug.prefix": "[Debug]:", + "debug.profiling.help": "F3 + L = Start/stop profiling", + "debug.profiling.start": "Profiling started for %s seconds. Use F3 + L to stop early", + "debug.profiling.stop": "Profiling ended. Saved results to %s", + "debug.reload_chunks.help": "F3 + A = Reload chunks", + "debug.reload_chunks.message": "Reloading all chunks", + "debug.reload_resourcepacks.help": "F3 + T = Reload resource packs", + "debug.reload_resourcepacks.message": "Reloaded resource packs", + "debug.show_hitboxes.help": "F3 + B = Show hitboxes", + "debug.show_hitboxes.off": "Hitboxes: hidden", + "debug.show_hitboxes.on": "Hitboxes: shown", + "demo.day.1": "This demo will last five game days. Do your best!", + "demo.day.2": "Day Two", + "demo.day.3": "Day Three", + "demo.day.4": "Day Four", + "demo.day.5": "This is your last day!", + "demo.day.6": "You have passed your fifth day. Use %s to save a screenshot of your creation.", + "demo.day.warning": "Your time is almost up!", + "demo.demoExpired": "Demo time's up!", + "demo.help.buy": "Purchase Now!", + "demo.help.fullWrapped": "This demo will last 5 in-game days (about 1 hour and 40 minutes of real time). Check the advancements for hints! Have fun!", + "demo.help.inventory": "Use the %1$s key to open your inventory", + "demo.help.jump": "Jump by pressing the %1$s key", + "demo.help.later": "Continue Playing!", + "demo.help.movement": "Use the %1$s, %2$s, %3$s, %4$s keys and the mouse to move around", + "demo.help.movementMouse": "Look around using the mouse", + "demo.help.movementShort": "Move by pressing the %1$s, %2$s, %3$s, %4$s keys", + "demo.help.title": "Minecraft Demo Mode", + "demo.remainingTime": "Remaining time: %s", + "demo.reminder": "The demo time has expired. Buy the game to continue or start a new world!", + "difficulty.lock.question": "Are you sure you want to lock the difficulty of this world? This will set this world to always be %1$s, and you will never be able to change that again.", + "difficulty.lock.title": "Lock World Difficulty", + "disconnect.closed": "Connection closed", + "disconnect.disconnected": "Disconnected by Server", + "disconnect.endOfStream": "End of stream", + "disconnect.exceeded_packet_rate": "Kicked for exceeding packet rate limit", + "disconnect.genericReason": "%s", + "disconnect.ignoring_status_request": "Ignoring status request", + "disconnect.kicked": "Was kicked from the game", + "disconnect.loginFailed": "Failed to log in", + "disconnect.loginFailedInfo": "Failed to log in: %s", + "disconnect.loginFailedInfo.insufficientPrivileges": "Multiplayer is disabled. Please check your Microsoft account settings.", + "disconnect.loginFailedInfo.invalidSession": "Invalid session (Try restarting your game and the launcher)", + "disconnect.loginFailedInfo.serversUnavailable": "The authentication servers are currently not reachable. Please try again.", + "disconnect.loginFailedInfo.userBanned": "You are banned from playing online", + "disconnect.lost": "Connection Lost", + "disconnect.overflow": "Buffer overflow", + "disconnect.packetError": "Network Protocol Error", + "disconnect.quitting": "Quitting", + "disconnect.spam": "Kicked for spamming", + "disconnect.timeout": "Timed out", + "disconnect.transfer": "Transferred to another server", + "disconnect.unknownHost": "Unknown host", + "download.pack.failed": "%s out of %s pack(s) failed to download", + "download.pack.progress.bytes": "Progress: %s (total size unknown)", + "download.pack.progress.percent": "Progress: %s%%", + "download.pack.title": "Downloading resource pack %s/%s", + "editGamerule.default": "Default: %s", + "editGamerule.title": "Edit Game Rules", + "effect.duration.infinite": "∞", + "effect.minecraft.absorption": "Absorption", + "effect.minecraft.bad_omen": "Bad Omen", + "effect.minecraft.blindness": "Blindness", + "effect.minecraft.conduit_power": "Conduit Power", + "effect.minecraft.darkness": "Darkness", + "effect.minecraft.dolphins_grace": "Dolphin's Grace", + "effect.minecraft.fire_resistance": "Fire Resistance", + "effect.minecraft.glowing": "Glowing", + "effect.minecraft.haste": "Haste", + "effect.minecraft.health_boost": "Health Boost", + "effect.minecraft.hero_of_the_village": "Hero of the Village", + "effect.minecraft.hunger": "Hunger", + "effect.minecraft.infested": "Infested", + "effect.minecraft.instant_damage": "Instant Damage", + "effect.minecraft.instant_health": "Instant Health", + "effect.minecraft.invisibility": "Invisibility", + "effect.minecraft.jump_boost": "Jump Boost", + "effect.minecraft.levitation": "Levitation", + "effect.minecraft.luck": "Luck", + "effect.minecraft.mining_fatigue": "Mining Fatigue", + "effect.minecraft.nausea": "Nausea", + "effect.minecraft.night_vision": "Night Vision", + "effect.minecraft.oozing": "Oozing", + "effect.minecraft.poison": "Poison", + "effect.minecraft.raid_omen": "Raid Omen", + "effect.minecraft.regeneration": "Regeneration", + "effect.minecraft.resistance": "Resistance", + "effect.minecraft.saturation": "Saturation", + "effect.minecraft.slow_falling": "Slow Falling", + "effect.minecraft.slowness": "Slowness", + "effect.minecraft.speed": "Speed", + "effect.minecraft.strength": "Strength", + "effect.minecraft.trial_omen": "Trial Omen", + "effect.minecraft.unluck": "Bad Luck", + "effect.minecraft.water_breathing": "Water Breathing", + "effect.minecraft.weakness": "Weakness", + "effect.minecraft.weaving": "Weaving", + "effect.minecraft.wind_charged": "Wind Charged", + "effect.minecraft.wither": "Wither", + "effect.none": "No Effects", + "enchantment.level.1": "I", + "enchantment.level.2": "II", + "enchantment.level.3": "III", + "enchantment.level.4": "IV", + "enchantment.level.5": "V", + "enchantment.level.6": "VI", + "enchantment.level.7": "VII", + "enchantment.level.8": "VIII", + "enchantment.level.9": "IX", + "enchantment.level.10": "X", + "enchantment.minecraft.aqua_affinity": "Aqua Affinity", + "enchantment.minecraft.bane_of_arthropods": "Bane of Arthropods", + "enchantment.minecraft.binding_curse": "Curse of Binding", + "enchantment.minecraft.blast_protection": "Blast Protection", + "enchantment.minecraft.breach": "Breach", + "enchantment.minecraft.channeling": "Channeling", + "enchantment.minecraft.density": "Density", + "enchantment.minecraft.depth_strider": "Depth Strider", + "enchantment.minecraft.efficiency": "Efficiency", + "enchantment.minecraft.feather_falling": "Feather Falling", + "enchantment.minecraft.fire_aspect": "Fire Aspect", + "enchantment.minecraft.fire_protection": "Fire Protection", + "enchantment.minecraft.flame": "Flame", + "enchantment.minecraft.fortune": "Fortune", + "enchantment.minecraft.frost_walker": "Frost Walker", + "enchantment.minecraft.impaling": "Impaling", + "enchantment.minecraft.infinity": "Infinity", + "enchantment.minecraft.knockback": "Knockback", + "enchantment.minecraft.looting": "Looting", + "enchantment.minecraft.loyalty": "Loyalty", + "enchantment.minecraft.luck_of_the_sea": "Luck of the Sea", + "enchantment.minecraft.lure": "Lure", + "enchantment.minecraft.mending": "Mending", + "enchantment.minecraft.multishot": "Multishot", + "enchantment.minecraft.piercing": "Piercing", + "enchantment.minecraft.power": "Power", + "enchantment.minecraft.projectile_protection": "Projectile Protection", + "enchantment.minecraft.protection": "Protection", + "enchantment.minecraft.punch": "Punch", + "enchantment.minecraft.quick_charge": "Quick Charge", + "enchantment.minecraft.respiration": "Respiration", + "enchantment.minecraft.riptide": "Riptide", + "enchantment.minecraft.sharpness": "Sharpness", + "enchantment.minecraft.silk_touch": "Silk Touch", + "enchantment.minecraft.smite": "Smite", + "enchantment.minecraft.soul_speed": "Soul Speed", + "enchantment.minecraft.sweeping": "Sweeping Edge", + "enchantment.minecraft.sweeping_edge": "Sweeping Edge", + "enchantment.minecraft.swift_sneak": "Swift Sneak", + "enchantment.minecraft.thorns": "Thorns", + "enchantment.minecraft.unbreaking": "Unbreaking", + "enchantment.minecraft.vanishing_curse": "Curse of Vanishing", + "enchantment.minecraft.wind_burst": "Wind Burst", + "entity.minecraft.allay": "Allay", + "entity.minecraft.area_effect_cloud": "Area Effect Cloud", + "entity.minecraft.armadillo": "Armadillo", + "entity.minecraft.armor_stand": "Armor Stand", + "entity.minecraft.arrow": "Arrow", + "entity.minecraft.axolotl": "Axolotl", + "entity.minecraft.bat": "Bat", + "entity.minecraft.bee": "Bee", + "entity.minecraft.blaze": "Blaze", + "entity.minecraft.block_display": "Block Display", + "entity.minecraft.boat": "Boat", + "entity.minecraft.bogged": "Bogged", + "entity.minecraft.breeze": "Breeze", + "entity.minecraft.breeze_wind_charge": "Wind Charge", + "entity.minecraft.camel": "Camel", + "entity.minecraft.cat": "Cat", + "entity.minecraft.cave_spider": "Cave Spider", + "entity.minecraft.chest_boat": "Boat with Chest", + "entity.minecraft.chest_minecart": "Minecart with Chest", + "entity.minecraft.chicken": "Chicken", + "entity.minecraft.cod": "Cod", + "entity.minecraft.command_block_minecart": "Minecart with Command Block", + "entity.minecraft.cow": "Cow", + "entity.minecraft.creeper": "Creeper", + "entity.minecraft.dolphin": "Dolphin", + "entity.minecraft.donkey": "Donkey", + "entity.minecraft.dragon_fireball": "Dragon Fireball", + "entity.minecraft.drowned": "Drowned", + "entity.minecraft.egg": "Thrown Egg", + "entity.minecraft.elder_guardian": "Elder Guardian", + "entity.minecraft.end_crystal": "End Crystal", + "entity.minecraft.ender_dragon": "Ender Dragon", + "entity.minecraft.ender_pearl": "Thrown Ender Pearl", + "entity.minecraft.enderman": "Enderman", + "entity.minecraft.endermite": "Endermite", + "entity.minecraft.evoker": "Evoker", + "entity.minecraft.evoker_fangs": "Evoker Fangs", + "entity.minecraft.experience_bottle": "Thrown Bottle o' Enchanting", + "entity.minecraft.experience_orb": "Experience Orb", + "entity.minecraft.eye_of_ender": "Eye of Ender", + "entity.minecraft.falling_block": "Falling Block", + "entity.minecraft.falling_block_type": "Falling %s", + "entity.minecraft.fireball": "Fireball", + "entity.minecraft.firework_rocket": "Firework Rocket", + "entity.minecraft.fishing_bobber": "Fishing Bobber", + "entity.minecraft.fox": "Fox", + "entity.minecraft.frog": "Frog", + "entity.minecraft.furnace_minecart": "Minecart with Furnace", + "entity.minecraft.ghast": "Ghast", + "entity.minecraft.giant": "Giant", + "entity.minecraft.glow_item_frame": "Glow Item Frame", + "entity.minecraft.glow_squid": "Glow Squid", + "entity.minecraft.goat": "Goat", + "entity.minecraft.guardian": "Guardian", + "entity.minecraft.hoglin": "Hoglin", + "entity.minecraft.hopper_minecart": "Minecart with Hopper", + "entity.minecraft.horse": "Horse", + "entity.minecraft.husk": "Husk", + "entity.minecraft.illusioner": "Illusioner", + "entity.minecraft.interaction": "Interaction", + "entity.minecraft.iron_golem": "Iron Golem", + "entity.minecraft.item": "Item", + "entity.minecraft.item_display": "Item Display", + "entity.minecraft.item_frame": "Item Frame", + "entity.minecraft.killer_bunny": "The Killer Bunny", + "entity.minecraft.leash_knot": "Leash Knot", + "entity.minecraft.lightning_bolt": "Lightning Bolt", + "entity.minecraft.llama": "Llama", + "entity.minecraft.llama_spit": "Llama Spit", + "entity.minecraft.magma_cube": "Magma Cube", + "entity.minecraft.marker": "Marker", + "entity.minecraft.minecart": "Minecart", + "entity.minecraft.mooshroom": "Mooshroom", + "entity.minecraft.mule": "Mule", + "entity.minecraft.ocelot": "Ocelot", + "entity.minecraft.ominous_item_spawner": "Ominous Item Spawner", + "entity.minecraft.painting": "Painting", + "entity.minecraft.panda": "Panda", + "entity.minecraft.parrot": "Parrot", + "entity.minecraft.phantom": "Phantom", + "entity.minecraft.pig": "Pig", + "entity.minecraft.piglin": "Piglin", + "entity.minecraft.piglin_brute": "Piglin Brute", + "entity.minecraft.pillager": "Pillager", + "entity.minecraft.player": "Player", + "entity.minecraft.polar_bear": "Polar Bear", + "entity.minecraft.potion": "Potion", + "entity.minecraft.pufferfish": "Pufferfish", + "entity.minecraft.rabbit": "Rabbit", + "entity.minecraft.ravager": "Ravager", + "entity.minecraft.salmon": "Salmon", + "entity.minecraft.sheep": "Sheep", + "entity.minecraft.shulker": "Shulker", + "entity.minecraft.shulker_bullet": "Shulker Bullet", + "entity.minecraft.silverfish": "Silverfish", + "entity.minecraft.skeleton": "Skeleton", + "entity.minecraft.skeleton_horse": "Skeleton Horse", + "entity.minecraft.slime": "Slime", + "entity.minecraft.small_fireball": "Small Fireball", + "entity.minecraft.sniffer": "Sniffer", + "entity.minecraft.snow_golem": "Snow Golem", + "entity.minecraft.snowball": "Snowball", + "entity.minecraft.spawner_minecart": "Minecart with Monster Spawner", + "entity.minecraft.spectral_arrow": "Spectral Arrow", + "entity.minecraft.spider": "Spider", + "entity.minecraft.squid": "Squid", + "entity.minecraft.stray": "Stray", + "entity.minecraft.strider": "Strider", + "entity.minecraft.tadpole": "Tadpole", + "entity.minecraft.text_display": "Text Display", + "entity.minecraft.tnt": "Primed TNT", + "entity.minecraft.tnt_minecart": "Minecart with TNT", + "entity.minecraft.trader_llama": "Trader Llama", + "entity.minecraft.trident": "Trident", + "entity.minecraft.tropical_fish": "Tropical Fish", + "entity.minecraft.tropical_fish.predefined.0": "Anemone", + "entity.minecraft.tropical_fish.predefined.1": "Black Tang", + "entity.minecraft.tropical_fish.predefined.2": "Blue Tang", + "entity.minecraft.tropical_fish.predefined.3": "Butterflyfish", + "entity.minecraft.tropical_fish.predefined.4": "Cichlid", + "entity.minecraft.tropical_fish.predefined.5": "Clownfish", + "entity.minecraft.tropical_fish.predefined.6": "Cotton Candy Betta", + "entity.minecraft.tropical_fish.predefined.7": "Dottyback", + "entity.minecraft.tropical_fish.predefined.8": "Emperor Red Snapper", + "entity.minecraft.tropical_fish.predefined.9": "Goatfish", + "entity.minecraft.tropical_fish.predefined.10": "Moorish Idol", + "entity.minecraft.tropical_fish.predefined.11": "Ornate Butterflyfish", + "entity.minecraft.tropical_fish.predefined.12": "Parrotfish", + "entity.minecraft.tropical_fish.predefined.13": "Queen Angelfish", + "entity.minecraft.tropical_fish.predefined.14": "Red Cichlid", + "entity.minecraft.tropical_fish.predefined.15": "Red Lipped Blenny", + "entity.minecraft.tropical_fish.predefined.16": "Red Snapper", + "entity.minecraft.tropical_fish.predefined.17": "Threadfin", + "entity.minecraft.tropical_fish.predefined.18": "Tomato Clownfish", + "entity.minecraft.tropical_fish.predefined.19": "Triggerfish", + "entity.minecraft.tropical_fish.predefined.20": "Yellowtail Parrotfish", + "entity.minecraft.tropical_fish.predefined.21": "Yellow Tang", + "entity.minecraft.tropical_fish.type.betty": "Betty", + "entity.minecraft.tropical_fish.type.blockfish": "Blockfish", + "entity.minecraft.tropical_fish.type.brinely": "Brinely", + "entity.minecraft.tropical_fish.type.clayfish": "Clayfish", + "entity.minecraft.tropical_fish.type.dasher": "Dasher", + "entity.minecraft.tropical_fish.type.flopper": "Flopper", + "entity.minecraft.tropical_fish.type.glitter": "Glitter", + "entity.minecraft.tropical_fish.type.kob": "Kob", + "entity.minecraft.tropical_fish.type.snooper": "Snooper", + "entity.minecraft.tropical_fish.type.spotty": "Spotty", + "entity.minecraft.tropical_fish.type.stripey": "Stripey", + "entity.minecraft.tropical_fish.type.sunstreak": "Sunstreak", + "entity.minecraft.turtle": "Turtle", + "entity.minecraft.vex": "Vex", + "entity.minecraft.villager": "Villager", + "entity.minecraft.villager.armorer": "Armorer", + "entity.minecraft.villager.butcher": "Butcher", + "entity.minecraft.villager.cartographer": "Cartographer", + "entity.minecraft.villager.cleric": "Cleric", + "entity.minecraft.villager.farmer": "Farmer", + "entity.minecraft.villager.fisherman": "Fisherman", + "entity.minecraft.villager.fletcher": "Fletcher", + "entity.minecraft.villager.leatherworker": "Leatherworker", + "entity.minecraft.villager.librarian": "Librarian", + "entity.minecraft.villager.mason": "Mason", + "entity.minecraft.villager.nitwit": "Nitwit", + "entity.minecraft.villager.none": "Villager", + "entity.minecraft.villager.shepherd": "Shepherd", + "entity.minecraft.villager.toolsmith": "Toolsmith", + "entity.minecraft.villager.weaponsmith": "Weaponsmith", + "entity.minecraft.vindicator": "Vindicator", + "entity.minecraft.wandering_trader": "Wandering Trader", + "entity.minecraft.warden": "Warden", + "entity.minecraft.wind_charge": "Wind Charge", + "entity.minecraft.witch": "Witch", + "entity.minecraft.wither": "Wither", + "entity.minecraft.wither_skeleton": "Wither Skeleton", + "entity.minecraft.wither_skull": "Wither Skull", + "entity.minecraft.wolf": "Wolf", + "entity.minecraft.zoglin": "Zoglin", + "entity.minecraft.zombie": "Zombie", + "entity.minecraft.zombie_horse": "Zombie Horse", + "entity.minecraft.zombie_villager": "Zombie Villager", + "entity.minecraft.zombified_piglin": "Zombified Piglin", + "entity.not_summonable": "Can't summon entity of type %s", + "event.minecraft.raid": "Raid", + "event.minecraft.raid.defeat": "Defeat", + "event.minecraft.raid.defeat.full": "Raid - Defeat", + "event.minecraft.raid.raiders_remaining": "Raiders Remaining: %s", + "event.minecraft.raid.victory": "Victory", + "event.minecraft.raid.victory.full": "Raid - Victory", + "filled_map.buried_treasure": "Buried Treasure Map", + "filled_map.explorer_jungle": "Jungle Explorer Map", + "filled_map.explorer_swamp": "Swamp Explorer Map", + "filled_map.id": "Id #%s", + "filled_map.level": "(Level %s/%s)", + "filled_map.locked": "Locked", + "filled_map.mansion": "Woodland Explorer Map", + "filled_map.monument": "Ocean Explorer Map", + "filled_map.scale": "Scaling at 1:%s", + "filled_map.trial_chambers": "Trial Explorer Map", + "filled_map.unknown": "Unknown Map", + "filled_map.village_desert": "Desert Village Map", + "filled_map.village_plains": "Plains Village Map", + "filled_map.village_savanna": "Savanna Village Map", + "filled_map.village_snowy": "Snowy Village Map", + "filled_map.village_taiga": "Taiga Village Map", + "flat_world_preset.minecraft.bottomless_pit": "Bottomless Pit", + "flat_world_preset.minecraft.classic_flat": "Classic Flat", + "flat_world_preset.minecraft.desert": "Desert", + "flat_world_preset.minecraft.overworld": "Overworld", + "flat_world_preset.minecraft.redstone_ready": "Redstone Ready", + "flat_world_preset.minecraft.snowy_kingdom": "Snowy Kingdom", + "flat_world_preset.minecraft.the_void": "The Void", + "flat_world_preset.minecraft.tunnelers_dream": "Tunnelers' Dream", + "flat_world_preset.minecraft.water_world": "Water World", + "flat_world_preset.unknown": "???", + "gameMode.adventure": "Adventure Mode", + "gameMode.changed": "Your game mode has been updated to %s", + "gameMode.creative": "Creative Mode", + "gameMode.hardcore": "Hardcore Mode!", + "gameMode.spectator": "Spectator Mode", + "gameMode.survival": "Survival Mode", + "gamerule.announceAdvancements": "Announce advancements", + "gamerule.blockExplosionDropDecay": "In block interaction explosions, some blocks won't drop their loot", + "gamerule.blockExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by block interactions are lost in the explosion.", + "gamerule.category.chat": "Chat", + "gamerule.category.drops": "Drops", + "gamerule.category.misc": "Miscellaneous", + "gamerule.category.mobs": "Mobs", + "gamerule.category.player": "Player", + "gamerule.category.spawning": "Spawning", + "gamerule.category.updates": "World Updates", + "gamerule.commandBlockOutput": "Broadcast command block output", + "gamerule.commandModificationBlockLimit": "Command modification block limit", + "gamerule.commandModificationBlockLimit.description": "Number of blocks that can be changed at once by one command, such as fill or clone.", + "gamerule.disableElytraMovementCheck": "Disable elytra movement check", + "gamerule.disableRaids": "Disable raids", + "gamerule.doDaylightCycle": "Advance time of day", + "gamerule.doEntityDrops": "Drop entity equipment", + "gamerule.doEntityDrops.description": "Controls drops from minecarts (including inventories), item frames, boats, etc.", + "gamerule.doFireTick": "Update fire", + "gamerule.doImmediateRespawn": "Respawn immediately", + "gamerule.doInsomnia": "Spawn phantoms", + "gamerule.doLimitedCrafting": "Require recipe for crafting", + "gamerule.doLimitedCrafting.description": "If enabled, players will be able to craft only unlocked recipes.", + "gamerule.doMobLoot": "Drop mob loot", + "gamerule.doMobLoot.description": "Controls resource drops from mobs, including experience orbs.", + "gamerule.doMobSpawning": "Spawn mobs", + "gamerule.doMobSpawning.description": "Some entities might have separate rules.", + "gamerule.doPatrolSpawning": "Spawn pillager patrols", + "gamerule.doTileDrops": "Drop blocks", + "gamerule.doTileDrops.description": "Controls resource drops from blocks, including experience orbs.", + "gamerule.doTraderSpawning": "Spawn Wandering Traders", + "gamerule.doVinesSpread": "Vines spread", + "gamerule.doVinesSpread.description": "Controls whether or not the Vines block spreads randomly to adjacent blocks. Does not affect other types of vine blocks such as Weeping Vines, Twisting Vines, etc.", + "gamerule.doWardenSpawning": "Spawn Wardens", + "gamerule.doWeatherCycle": "Update weather", + "gamerule.drowningDamage": "Deal drowning damage", + "gamerule.enderPearlsVanishOnDeath": "Thrown Ender Pearls vanish on death", + "gamerule.enderPearlsVanishOnDeath.description": "Whether Ender Pearls thrown by a player vanish when that player dies.", + "gamerule.entitiesWithPassengersCanUsePortals": "Entities with passengers can use portals", + "gamerule.entitiesWithPassengersCanUsePortals.description": "Allow entities with passengers to teleport through Nether Portals, End Portals, and End Gateways.", + "gamerule.fallDamage": "Deal fall damage", + "gamerule.fireDamage": "Deal fire damage", + "gamerule.forgiveDeadPlayers": "Forgive dead players", + "gamerule.forgiveDeadPlayers.description": "Angered neutral mobs stop being angry when the targeted player dies nearby.", + "gamerule.freezeDamage": "Deal freeze damage", + "gamerule.globalSoundEvents": "Global sound events", + "gamerule.globalSoundEvents.description": "When certain game events happen, like a boss spawning, the sound is heard everywhere.", + "gamerule.keepInventory": "Keep inventory after death", + "gamerule.lavaSourceConversion": "Lava converts to source", + "gamerule.lavaSourceConversion.description": "When flowing lava is surrounded on two sides by lava sources it converts into a source.", + "gamerule.logAdminCommands": "Broadcast admin commands", + "gamerule.maxCommandChainLength": "Command chain size limit", + "gamerule.maxCommandChainLength.description": "Applies to command block chains and functions.", + "gamerule.maxCommandForkCount": "Command context limit", + "gamerule.maxCommandForkCount.description": "Maximum number of contexts that can be used by commands like 'execute as'.", + "gamerule.maxEntityCramming": "Entity cramming threshold", + "gamerule.mobExplosionDropDecay": "In mob explosions, some blocks won't drop their loot", + "gamerule.mobExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by mobs are lost in the explosion.", + "gamerule.mobGriefing": "Allow destructive mob actions", + "gamerule.naturalRegeneration": "Regenerate health", + "gamerule.playersNetherPortalCreativeDelay": "Player's Nether portal delay in creative mode", + "gamerule.playersNetherPortalCreativeDelay.description": "Time (in ticks) that a creative mode player needs to stand in a Nether portal before changing dimensions.", + "gamerule.playersNetherPortalDefaultDelay": "Player's Nether portal delay in non-creative mode", + "gamerule.playersNetherPortalDefaultDelay.description": "Time (in ticks) that a non-creative mode player needs to stand in a Nether portal before changing dimensions.", + "gamerule.playersSleepingPercentage": "Sleep percentage", + "gamerule.playersSleepingPercentage.description": "The percentage of players who must be sleeping to skip the night.", + "gamerule.projectilesCanBreakBlocks": "Projectiles can break blocks", + "gamerule.projectilesCanBreakBlocks.description": "Controls whether impact projectiles will destroy blocks that are destructible by them.", + "gamerule.randomTickSpeed": "Random tick speed rate", + "gamerule.reducedDebugInfo": "Reduce debug info", + "gamerule.reducedDebugInfo.description": "Limits contents of debug screen.", + "gamerule.sendCommandFeedback": "Send command feedback", + "gamerule.showDeathMessages": "Show death messages", + "gamerule.snowAccumulationHeight": "Snow accumulation height", + "gamerule.snowAccumulationHeight.description": "When it snows, layers of snow form on the ground up to at most this number of layers.", + "gamerule.spawnChunkRadius": "Spawn chunk radius", + "gamerule.spawnChunkRadius.description": "Amount of chunks that stay loaded around the overworld spawn position.", + "gamerule.spawnRadius": "Respawn location radius", + "gamerule.spawnRadius.description": "Controls the size of the area around the spawn point that players can spawn in.", + "gamerule.spectatorsGenerateChunks": "Allow spectators to generate terrain", + "gamerule.tntExplosionDropDecay": "In TNT explosions, some blocks won't drop their loot", + "gamerule.tntExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by TNT are lost in the explosion.", + "gamerule.universalAnger": "Universal anger", + "gamerule.universalAnger.description": "Angered neutral mobs attack any nearby player, not just the player that angered them. Works best if forgiveDeadPlayers is disabled.", + "gamerule.waterSourceConversion": "Water converts to source", + "gamerule.waterSourceConversion.description": "When flowing water is surrounded on two sides by water sources it converts into a source.", + "generator.custom": "Custom", + "generator.customized": "Old Customized", + "generator.minecraft.amplified": "AMPLIFIED", + "generator.minecraft.amplified.info": "Notice: Just for fun! Requires a beefy computer.", + "generator.minecraft.debug_all_block_states": "Debug Mode", + "generator.minecraft.flat": "Superflat", + "generator.minecraft.large_biomes": "Large Biomes", + "generator.minecraft.normal": "Default", + "generator.minecraft.single_biome_surface": "Single Biome", + "generator.single_biome_caves": "Caves", + "generator.single_biome_floating_islands": "Floating Islands", + "gui.abuseReport.attestation": "By submitting this report, you confirm that the information you have provided is accurate and complete to the best of your knowledge.", + "gui.abuseReport.comments": "Comments", + "gui.abuseReport.describe": "Sharing details will help us make a well-informed decision.", + "gui.abuseReport.discard.content": "If you leave, you'll lose this report and your comments.\nAre you sure you want to leave?", + "gui.abuseReport.discard.discard": "Leave and Discard Report", + "gui.abuseReport.discard.draft": "Save as Draft", + "gui.abuseReport.discard.return": "Continue Editing", + "gui.abuseReport.discard.title": "Discard report and comments?", + "gui.abuseReport.draft.content": "Would you like to continue editing the existing report or discard it and create a new one?", + "gui.abuseReport.draft.discard": "Discard", + "gui.abuseReport.draft.edit": "Continue Editing", + "gui.abuseReport.draft.quittotitle.content": "Would you like to continue editing it or discard it?", + "gui.abuseReport.draft.quittotitle.title": "You have a draft chat report that will be lost if you quit", + "gui.abuseReport.draft.title": "Edit draft chat report?", + "gui.abuseReport.error.title": "Problem sending your report", + "gui.abuseReport.message": "Where did you observe the bad behavior?\nThis will help us in researching your case.", + "gui.abuseReport.more_comments": "Please describe what happened:", + "gui.abuseReport.name.reporting": "You are reporting \"%s\".", + "gui.abuseReport.name.title": "Report Player Name", + "gui.abuseReport.observed_what": "Why are you reporting this?", + "gui.abuseReport.read_info": "Learn About Reporting", + "gui.abuseReport.reason.alcohol_tobacco_drugs": "Drugs or alcohol", + "gui.abuseReport.reason.alcohol_tobacco_drugs.description": "Someone is encouraging others to partake in illegal drug related activities or encouraging underage drinking.", + "gui.abuseReport.reason.child_sexual_exploitation_or_abuse": "Child sexual exploitation or abuse", + "gui.abuseReport.reason.child_sexual_exploitation_or_abuse.description": "Someone is talking about or otherwise promoting indecent behavior involving children.", + "gui.abuseReport.reason.defamation_impersonation_false_information": "Defamation", + "gui.abuseReport.reason.defamation_impersonation_false_information.description": "Someone is damaging your or someone else's reputation, for example sharing false information with the aim to exploit or mislead others.", + "gui.abuseReport.reason.description": "Description:", + "gui.abuseReport.reason.false_reporting": "False Reporting", + "gui.abuseReport.reason.generic": "I want to report them", + "gui.abuseReport.reason.generic.description": "I'm annoyed with them / they have done something I do not like.", + "gui.abuseReport.reason.harassment_or_bullying": "Harassment or bullying", + "gui.abuseReport.reason.harassment_or_bullying.description": "Someone is shaming, attacking, or bullying you or someone else. This includes when someone is repeatedly trying to contact you or someone else without consent or posting private personal information about you or someone else without consent (\"doxing\").", + "gui.abuseReport.reason.hate_speech": "Hate speech", + "gui.abuseReport.reason.hate_speech.description": "Someone is attacking you or another player based on characteristics of their identity, like religion, race, or sexuality.", + "gui.abuseReport.reason.imminent_harm": "Threat of harm to others", + "gui.abuseReport.reason.imminent_harm.description": "Someone is threatening to harm you or someone else in real life.", + "gui.abuseReport.reason.narration": "%s: %s", + "gui.abuseReport.reason.non_consensual_intimate_imagery": "Non-consensual intimate imagery", + "gui.abuseReport.reason.non_consensual_intimate_imagery.description": "Someone is talking about, sharing, or otherwise promoting private and intimate images.", + "gui.abuseReport.reason.self_harm_or_suicide": "Self-harm or suicide", + "gui.abuseReport.reason.self_harm_or_suicide.description": "Someone is threatening to harm themselves in real life or talking about harming themselves in real life.", + "gui.abuseReport.reason.terrorism_or_violent_extremism": "Terrorism or violent extremism", + "gui.abuseReport.reason.terrorism_or_violent_extremism.description": "Someone is talking about, promoting, or threatening to commit acts of terrorism or violent extremism for political, religious, ideological, or other reasons.", + "gui.abuseReport.reason.title": "Select Report Category", + "gui.abuseReport.report_sent_msg": "We’ve successfully received your report. Thank you!\n\nOur team will review it as soon as possible.", + "gui.abuseReport.select_reason": "Select Report Category", + "gui.abuseReport.send": "Send Report", + "gui.abuseReport.send.comment_too_long": "Please shorten the comment", + "gui.abuseReport.send.error_message": "An error was returned while sending your report:\n'%s'", + "gui.abuseReport.send.generic_error": "Encountered an unexpected error while sending your report.", + "gui.abuseReport.send.http_error": "An unexpected HTTP error occurred while sending your report.", + "gui.abuseReport.send.json_error": "Encountered malformed payload while sending your report.", + "gui.abuseReport.send.no_reason": "Please select a report category", + "gui.abuseReport.send.not_attested": "Please read the text above and tick the checkbox to be able to send the report", + "gui.abuseReport.send.service_unavailable": "Unable to reach the Abuse Reporting service. Please make sure you are connected to the internet and try again.", + "gui.abuseReport.sending.title": "Sending your report...", + "gui.abuseReport.sent.title": "Report sent", + "gui.abuseReport.skin.title": "Report Player Skin", + "gui.abuseReport.title": "Report Player", + "gui.abuseReport.type.chat": "Chat Messages", + "gui.abuseReport.type.name": "Player Name", + "gui.abuseReport.type.skin": "Player Skin", + "gui.acknowledge": "Acknowledge", + "gui.advancements": "Advancements", + "gui.all": "All", + "gui.back": "Back", + "gui.banned.description": "%s\n\n%s\n\nLearn more at the following link: %s", + "gui.banned.description.permanent": "Your account is permanently banned, which means you can’t play online or join Realms.", + "gui.banned.description.reason": "We recently received a report for bad behavior by your account. Our moderators have now reviewed your case and identified it as %s, which goes against the Minecraft Community Standards.", + "gui.banned.description.reason_id": "Code: %s", + "gui.banned.description.reason_id_message": "Code: %s - %s", + "gui.banned.description.temporary": "%s Until then, you can’t play online or join Realms.", + "gui.banned.description.temporary.duration": "Your account is temporarily suspended and will be reactivated in %s.", + "gui.banned.description.unknownreason": "We recently received a report for bad behavior by your account. Our moderators have now reviewed your case and identified that it goes against the Minecraft Community Standards.", + "gui.banned.name.description": "Your current name - \"%s\" - violates our Community Standards. You can play singleplayer, but will need to change your name to play online.\n\nLearn more or submit a case review at the following link: %s", + "gui.banned.name.title": "Name Not Allowed in Multiplayer", + "gui.banned.reason.defamation_impersonation_false_information": "Impersonation or sharing information to exploit or mislead others", + "gui.banned.reason.drugs": "References to illegal drugs", + "gui.banned.reason.extreme_violence_or_gore": "Depictions of real-life excessive violence or gore", + "gui.banned.reason.false_reporting": "Excessive false or inaccurate reports", + "gui.banned.reason.fraud": "Fraudulent acquisition or use of content", + "gui.banned.reason.generic_violation": "Violating Community Standards", + "gui.banned.reason.harassment_or_bullying": "Abusive language used in a directed, harmful manner", + "gui.banned.reason.hate_speech": "Hate speech or discrimination", + "gui.banned.reason.hate_terrorism_notorious_figure": "References to hate groups, terrorist organizations, or notorious figures", + "gui.banned.reason.imminent_harm_to_person_or_property": "Intent to cause real-life harm to persons or property", + "gui.banned.reason.nudity_or_pornography": "Displaying lewd or pornographic material", + "gui.banned.reason.sexually_inappropriate": "Topics or content of a sexual nature", + "gui.banned.reason.spam_or_advertising": "Spam or advertising", + "gui.banned.skin.description": "Your current skin violates our Community Standards. You can still play with a default skin, or select a new one.\n\nLearn more or submit a case review at the following link: %s", + "gui.banned.skin.title": "Skin Not Allowed", + "gui.banned.title.permanent": "Account permanently banned", + "gui.banned.title.temporary": "Account temporarily suspended", + "gui.cancel": "Cancel", + "gui.chatReport.comments": "Comments", + "gui.chatReport.describe": "Sharing details will help us make a well-informed decision.", + "gui.chatReport.discard.content": "If you leave, you'll lose this report and your comments.\nAre you sure you want to leave?", + "gui.chatReport.discard.discard": "Leave and Discard Report", + "gui.chatReport.discard.draft": "Save as Draft", + "gui.chatReport.discard.return": "Continue Editing", + "gui.chatReport.discard.title": "Discard report and comments?", + "gui.chatReport.draft.content": "Would you like to continue editing the existing report or discard it and create a new one?", + "gui.chatReport.draft.discard": "Discard", + "gui.chatReport.draft.edit": "Continue Editing", + "gui.chatReport.draft.quittotitle.content": "Would you like to continue editing it or discard it?", + "gui.chatReport.draft.quittotitle.title": "You have a draft chat report that will be lost if you quit", + "gui.chatReport.draft.title": "Edit draft chat report?", + "gui.chatReport.more_comments": "Please describe what happened:", + "gui.chatReport.observed_what": "Why are you reporting this?", + "gui.chatReport.read_info": "Learn About Reporting", + "gui.chatReport.report_sent_msg": "We’ve successfully received your report. Thank you!\n\nOur team will review it as soon as possible.", + "gui.chatReport.select_chat": "Select Chat Messages to Report", + "gui.chatReport.select_reason": "Select Report Category", + "gui.chatReport.selected_chat": "%s Chat Message(s) Selected to Report", + "gui.chatReport.send": "Send Report", + "gui.chatReport.send.comments_too_long": "Please shorten the comment", + "gui.chatReport.send.no_reason": "Please select a report category", + "gui.chatReport.send.no_reported_messages": "Please select at least one chat message to report", + "gui.chatReport.send.too_many_messages": "Trying to include too many messages in the report", + "gui.chatReport.title": "Report Player Chat", + "gui.chatSelection.context": "Messages surrounding this selection will be included to provide additional context", + "gui.chatSelection.fold": "%s message(s) hidden", + "gui.chatSelection.heading": "%s %s", + "gui.chatSelection.join": "%s joined the chat", + "gui.chatSelection.message.narrate": "%s said: %s at %s", + "gui.chatSelection.selected": "%s/%s message(s) selected", + "gui.chatSelection.title": "Select Chat Messages to Report", + "gui.continue": "Continue", + "gui.copy_link_to_clipboard": "Copy Link to Clipboard", + "gui.days": "%s day(s)", + "gui.done": "Done", + "gui.down": "Down", + "gui.entity_tooltip.type": "Type: %s", + "gui.fileDropFailure.detail": "Rejected %d files", + "gui.fileDropFailure.title": "Failed to add files", + "gui.hours": "%s hour(s)", + "gui.loadingMinecraft": "Loading Minecraft", + "gui.minutes": "%s minute(s)", + "gui.multiLineEditBox.character_limit": "%s/%s", + "gui.narrate.button": "%s button", + "gui.narrate.editBox": "%s edit box: %s", + "gui.narrate.slider": "%s slider", + "gui.narrate.tab": "%s tab", + "gui.no": "No", + "gui.none": "None", + "gui.ok": "Ok", + "gui.open_report_dir": "Open Report Directory", + "gui.proceed": "Proceed", + "gui.recipebook.moreRecipes": "Right Click for More", + "gui.recipebook.page": "%s/%s", + "gui.recipebook.search_hint": "Search...", + "gui.recipebook.toggleRecipes.all": "Showing All", + "gui.recipebook.toggleRecipes.blastable": "Showing Blastable", + "gui.recipebook.toggleRecipes.craftable": "Showing Craftable", + "gui.recipebook.toggleRecipes.smeltable": "Showing Smeltable", + "gui.recipebook.toggleRecipes.smokable": "Showing Smokable", + "gui.report_to_server": "Report To Server", + "gui.socialInteractions.blocking_hint": "Manage with Microsoft account", + "gui.socialInteractions.empty_blocked": "No blocked players in chat", + "gui.socialInteractions.empty_hidden": "No players hidden in chat", + "gui.socialInteractions.hidden_in_chat": "Chat messages from %s will be hidden", + "gui.socialInteractions.hide": "Hide in Chat", + "gui.socialInteractions.narration.hide": "Hide messages from %s", + "gui.socialInteractions.narration.report": "Report player %s", + "gui.socialInteractions.narration.show": "Show messages from %s", + "gui.socialInteractions.report": "Report", + "gui.socialInteractions.search_empty": "Couldn't find any players with that name", + "gui.socialInteractions.search_hint": "Search...", + "gui.socialInteractions.server_label.multiple": "%s - %s players", + "gui.socialInteractions.server_label.single": "%s - %s player", + "gui.socialInteractions.show": "Show in Chat", + "gui.socialInteractions.shown_in_chat": "Chat messages from %s will be shown", + "gui.socialInteractions.status_blocked": "Blocked", + "gui.socialInteractions.status_blocked_offline": "Blocked - Offline", + "gui.socialInteractions.status_hidden": "Hidden", + "gui.socialInteractions.status_hidden_offline": "Hidden - Offline", + "gui.socialInteractions.status_offline": "Offline", + "gui.socialInteractions.tab_all": "All", + "gui.socialInteractions.tab_blocked": "Blocked", + "gui.socialInteractions.tab_hidden": "Hidden", + "gui.socialInteractions.title": "Social Interactions", + "gui.socialInteractions.tooltip.hide": "Hide messages", + "gui.socialInteractions.tooltip.report": "Report player", + "gui.socialInteractions.tooltip.report.disabled": "The reporting service is unavailable", + "gui.socialInteractions.tooltip.report.no_messages": "No reportable messages from player %s", + "gui.socialInteractions.tooltip.report.not_reportable": "This player can't be reported, because their chat messages can't be verified on this server", + "gui.socialInteractions.tooltip.show": "Show messages", + "gui.stats": "Statistics", + "gui.togglable_slot": "Click to disable slot", + "gui.toMenu": "Back to Server List", + "gui.toRealms": "Back to Realms List", + "gui.toTitle": "Back to Title Screen", + "gui.toWorld": "Back to World List", + "gui.up": "Up", + "gui.yes": "Yes", + "hanging_sign.edit": "Edit Hanging Sign Message", + "instrument.minecraft.admire_goat_horn": "Admire", + "instrument.minecraft.call_goat_horn": "Call", + "instrument.minecraft.dream_goat_horn": "Dream", + "instrument.minecraft.feel_goat_horn": "Feel", + "instrument.minecraft.ponder_goat_horn": "Ponder", + "instrument.minecraft.seek_goat_horn": "Seek", + "instrument.minecraft.sing_goat_horn": "Sing", + "instrument.minecraft.yearn_goat_horn": "Yearn", + "inventory.binSlot": "Destroy Item", + "inventory.hotbarInfo": "Save hotbar with %1$s+%2$s", + "inventory.hotbarSaved": "Item hotbar saved (restore with %1$s+%2$s)", + "item_modifier.unknown": "Unknown item modifier: %s", + "item.canBreak": "Can break:", + "item.canPlace": "Can be placed on:", + "item.canUse.unknown": "Unknown", + "item.color": "Color: %s", + "item.components": "%s component(s)", + "item.disabled": "Disabled item", + "item.durability": "Durability: %s / %s", + "item.dyed": "Dyed", + "item.minecraft.acacia_boat": "Acacia Boat", + "item.minecraft.acacia_chest_boat": "Acacia Boat with Chest", + "item.minecraft.allay_spawn_egg": "Allay Spawn Egg", + "item.minecraft.amethyst_shard": "Amethyst Shard", + "item.minecraft.angler_pottery_shard": "Angler Pottery Shard", + "item.minecraft.angler_pottery_sherd": "Angler Pottery Sherd", + "item.minecraft.apple": "Apple", + "item.minecraft.archer_pottery_shard": "Archer Pottery Shard", + "item.minecraft.archer_pottery_sherd": "Archer Pottery Sherd", + "item.minecraft.armadillo_scute": "Armadillo Scute", + "item.minecraft.armadillo_spawn_egg": "Armadillo Spawn Egg", + "item.minecraft.armor_stand": "Armor Stand", + "item.minecraft.arms_up_pottery_shard": "Arms Up Pottery Shard", + "item.minecraft.arms_up_pottery_sherd": "Arms Up Pottery Sherd", + "item.minecraft.arrow": "Arrow", + "item.minecraft.axolotl_bucket": "Bucket of Axolotl", + "item.minecraft.axolotl_spawn_egg": "Axolotl Spawn Egg", + "item.minecraft.baked_potato": "Baked Potato", + "item.minecraft.bamboo_chest_raft": "Bamboo Raft with Chest", + "item.minecraft.bamboo_raft": "Bamboo Raft", + "item.minecraft.bat_spawn_egg": "Bat Spawn Egg", + "item.minecraft.bee_spawn_egg": "Bee Spawn Egg", + "item.minecraft.beef": "Raw Beef", + "item.minecraft.beetroot": "Beetroot", + "item.minecraft.beetroot_seeds": "Beetroot Seeds", + "item.minecraft.beetroot_soup": "Beetroot Soup", + "item.minecraft.birch_boat": "Birch Boat", + "item.minecraft.birch_chest_boat": "Birch Boat with Chest", + "item.minecraft.black_dye": "Black Dye", + "item.minecraft.blade_pottery_shard": "Blade Pottery Shard", + "item.minecraft.blade_pottery_sherd": "Blade Pottery Sherd", + "item.minecraft.blaze_powder": "Blaze Powder", + "item.minecraft.blaze_rod": "Blaze Rod", + "item.minecraft.blaze_spawn_egg": "Blaze Spawn Egg", + "item.minecraft.blue_dye": "Blue Dye", + "item.minecraft.bogged_spawn_egg": "Bogged Spawn Egg", + "item.minecraft.bolt_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.bone": "Bone", + "item.minecraft.bone_meal": "Bone Meal", + "item.minecraft.book": "Book", + "item.minecraft.bow": "Bow", + "item.minecraft.bowl": "Bowl", + "item.minecraft.bread": "Bread", + "item.minecraft.breeze_rod": "Breeze Rod", + "item.minecraft.breeze_spawn_egg": "Breeze Spawn Egg", + "item.minecraft.brewer_pottery_shard": "Brewer Pottery Shard", + "item.minecraft.brewer_pottery_sherd": "Brewer Pottery Sherd", + "item.minecraft.brewing_stand": "Brewing Stand", + "item.minecraft.brick": "Brick", + "item.minecraft.brown_dye": "Brown Dye", + "item.minecraft.brush": "Brush", + "item.minecraft.bucket": "Bucket", + "item.minecraft.bundle": "Bundle", + "item.minecraft.bundle.fullness": "%s/%s", + "item.minecraft.burn_pottery_shard": "Burn Pottery Shard", + "item.minecraft.burn_pottery_sherd": "Burn Pottery Sherd", + "item.minecraft.camel_spawn_egg": "Camel Spawn Egg", + "item.minecraft.carrot": "Carrot", + "item.minecraft.carrot_on_a_stick": "Carrot on a Stick", + "item.minecraft.cat_spawn_egg": "Cat Spawn Egg", + "item.minecraft.cauldron": "Cauldron", + "item.minecraft.cave_spider_spawn_egg": "Cave Spider Spawn Egg", + "item.minecraft.chainmail_boots": "Chainmail Boots", + "item.minecraft.chainmail_chestplate": "Chainmail Chestplate", + "item.minecraft.chainmail_helmet": "Chainmail Helmet", + "item.minecraft.chainmail_leggings": "Chainmail Leggings", + "item.minecraft.charcoal": "Charcoal", + "item.minecraft.cherry_boat": "Cherry Boat", + "item.minecraft.cherry_chest_boat": "Cherry Boat with Chest", + "item.minecraft.chest_minecart": "Minecart with Chest", + "item.minecraft.chicken": "Raw Chicken", + "item.minecraft.chicken_spawn_egg": "Chicken Spawn Egg", + "item.minecraft.chorus_fruit": "Chorus Fruit", + "item.minecraft.clay_ball": "Clay Ball", + "item.minecraft.clock": "Clock", + "item.minecraft.coal": "Coal", + "item.minecraft.coast_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.cocoa_beans": "Cocoa Beans", + "item.minecraft.cod": "Raw Cod", + "item.minecraft.cod_bucket": "Bucket of Cod", + "item.minecraft.cod_spawn_egg": "Cod Spawn Egg", + "item.minecraft.command_block_minecart": "Minecart with Command Block", + "item.minecraft.compass": "Compass", + "item.minecraft.cooked_beef": "Steak", + "item.minecraft.cooked_chicken": "Cooked Chicken", + "item.minecraft.cooked_cod": "Cooked Cod", + "item.minecraft.cooked_mutton": "Cooked Mutton", + "item.minecraft.cooked_porkchop": "Cooked Porkchop", + "item.minecraft.cooked_rabbit": "Cooked Rabbit", + "item.minecraft.cooked_salmon": "Cooked Salmon", + "item.minecraft.cookie": "Cookie", + "item.minecraft.copper_ingot": "Copper Ingot", + "item.minecraft.cow_spawn_egg": "Cow Spawn Egg", + "item.minecraft.creeper_banner_pattern": "Banner Pattern", + "item.minecraft.creeper_banner_pattern.desc": "Creeper Charge", + "item.minecraft.creeper_spawn_egg": "Creeper Spawn Egg", + "item.minecraft.crossbow": "Crossbow", + "item.minecraft.crossbow.projectile": "Projectile:", + "item.minecraft.cyan_dye": "Cyan Dye", + "item.minecraft.danger_pottery_shard": "Danger Pottery Shard", + "item.minecraft.danger_pottery_sherd": "Danger Pottery Sherd", + "item.minecraft.dark_oak_boat": "Dark Oak Boat", + "item.minecraft.dark_oak_chest_boat": "Dark Oak Boat with Chest", + "item.minecraft.debug_stick": "Debug Stick", + "item.minecraft.debug_stick.empty": "%s has no properties", + "item.minecraft.debug_stick.select": "selected \"%s\" (%s)", + "item.minecraft.debug_stick.update": "\"%s\" to %s", + "item.minecraft.diamond": "Diamond", + "item.minecraft.diamond_axe": "Diamond Axe", + "item.minecraft.diamond_boots": "Diamond Boots", + "item.minecraft.diamond_chestplate": "Diamond Chestplate", + "item.minecraft.diamond_helmet": "Diamond Helmet", + "item.minecraft.diamond_hoe": "Diamond Hoe", + "item.minecraft.diamond_horse_armor": "Diamond Horse Armor", + "item.minecraft.diamond_leggings": "Diamond Leggings", + "item.minecraft.diamond_pickaxe": "Diamond Pickaxe", + "item.minecraft.diamond_shovel": "Diamond Shovel", + "item.minecraft.diamond_sword": "Diamond Sword", + "item.minecraft.disc_fragment_5": "Disc Fragment", + "item.minecraft.disc_fragment_5.desc": "Music Disc - 5", + "item.minecraft.dolphin_spawn_egg": "Dolphin Spawn Egg", + "item.minecraft.donkey_spawn_egg": "Donkey Spawn Egg", + "item.minecraft.dragon_breath": "Dragon's Breath", + "item.minecraft.dried_kelp": "Dried Kelp", + "item.minecraft.drowned_spawn_egg": "Drowned Spawn Egg", + "item.minecraft.dune_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.echo_shard": "Echo Shard", + "item.minecraft.egg": "Egg", + "item.minecraft.elder_guardian_spawn_egg": "Elder Guardian Spawn Egg", + "item.minecraft.elytra": "Elytra", + "item.minecraft.emerald": "Emerald", + "item.minecraft.enchanted_book": "Enchanted Book", + "item.minecraft.enchanted_golden_apple": "Enchanted Golden Apple", + "item.minecraft.end_crystal": "End Crystal", + "item.minecraft.ender_dragon_spawn_egg": "Ender Dragon Spawn Egg", + "item.minecraft.ender_eye": "Eye of Ender", + "item.minecraft.ender_pearl": "Ender Pearl", + "item.minecraft.enderman_spawn_egg": "Enderman Spawn Egg", + "item.minecraft.endermite_spawn_egg": "Endermite Spawn Egg", + "item.minecraft.evoker_spawn_egg": "Evoker Spawn Egg", + "item.minecraft.experience_bottle": "Bottle o' Enchanting", + "item.minecraft.explorer_pottery_shard": "Explorer Pottery Shard", + "item.minecraft.explorer_pottery_sherd": "Explorer Pottery Sherd", + "item.minecraft.eye_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.feather": "Feather", + "item.minecraft.fermented_spider_eye": "Fermented Spider Eye", + "item.minecraft.filled_map": "Map", + "item.minecraft.fire_charge": "Fire Charge", + "item.minecraft.firework_rocket": "Firework Rocket", + "item.minecraft.firework_rocket.flight": "Flight Duration:", + "item.minecraft.firework_star": "Firework Star", + "item.minecraft.firework_star.black": "Black", + "item.minecraft.firework_star.blue": "Blue", + "item.minecraft.firework_star.brown": "Brown", + "item.minecraft.firework_star.custom_color": "Custom", + "item.minecraft.firework_star.cyan": "Cyan", + "item.minecraft.firework_star.fade_to": "Fade to", + "item.minecraft.firework_star.flicker": "Twinkle", + "item.minecraft.firework_star.gray": "Gray", + "item.minecraft.firework_star.green": "Green", + "item.minecraft.firework_star.light_blue": "Light Blue", + "item.minecraft.firework_star.light_gray": "Light Gray", + "item.minecraft.firework_star.lime": "Lime", + "item.minecraft.firework_star.magenta": "Magenta", + "item.minecraft.firework_star.orange": "Orange", + "item.minecraft.firework_star.pink": "Pink", + "item.minecraft.firework_star.purple": "Purple", + "item.minecraft.firework_star.red": "Red", + "item.minecraft.firework_star.shape": "Unknown Shape", + "item.minecraft.firework_star.shape.burst": "Burst", + "item.minecraft.firework_star.shape.creeper": "Creeper-shaped", + "item.minecraft.firework_star.shape.large_ball": "Large Ball", + "item.minecraft.firework_star.shape.small_ball": "Small Ball", + "item.minecraft.firework_star.shape.star": "Star-shaped", + "item.minecraft.firework_star.trail": "Trail", + "item.minecraft.firework_star.white": "White", + "item.minecraft.firework_star.yellow": "Yellow", + "item.minecraft.fishing_rod": "Fishing Rod", + "item.minecraft.flint": "Flint", + "item.minecraft.flint_and_steel": "Flint and Steel", + "item.minecraft.flow_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.flow_banner_pattern": "Banner Pattern", + "item.minecraft.flow_banner_pattern.desc": "Flow", + "item.minecraft.flow_pottery_sherd": "Flow Pottery Sherd", + "item.minecraft.flower_banner_pattern": "Banner Pattern", + "item.minecraft.flower_banner_pattern.desc": "Flower Charge", + "item.minecraft.flower_pot": "Flower Pot", + "item.minecraft.fox_spawn_egg": "Fox Spawn Egg", + "item.minecraft.friend_pottery_shard": "Friend Pottery Shard", + "item.minecraft.friend_pottery_sherd": "Friend Pottery Sherd", + "item.minecraft.frog_spawn_egg": "Frog Spawn Egg", + "item.minecraft.furnace_minecart": "Minecart with Furnace", + "item.minecraft.ghast_spawn_egg": "Ghast Spawn Egg", + "item.minecraft.ghast_tear": "Ghast Tear", + "item.minecraft.glass_bottle": "Glass Bottle", + "item.minecraft.glistering_melon_slice": "Glistering Melon Slice", + "item.minecraft.globe_banner_pattern": "Banner Pattern", + "item.minecraft.globe_banner_pattern.desc": "Globe", + "item.minecraft.glow_berries": "Glow Berries", + "item.minecraft.glow_ink_sac": "Glow Ink Sac", + "item.minecraft.glow_item_frame": "Glow Item Frame", + "item.minecraft.glow_squid_spawn_egg": "Glow Squid Spawn Egg", + "item.minecraft.glowstone_dust": "Glowstone Dust", + "item.minecraft.goat_horn": "Goat Horn", + "item.minecraft.goat_spawn_egg": "Goat Spawn Egg", + "item.minecraft.gold_ingot": "Gold Ingot", + "item.minecraft.gold_nugget": "Gold Nugget", + "item.minecraft.golden_apple": "Golden Apple", + "item.minecraft.golden_axe": "Golden Axe", + "item.minecraft.golden_boots": "Golden Boots", + "item.minecraft.golden_carrot": "Golden Carrot", + "item.minecraft.golden_chestplate": "Golden Chestplate", + "item.minecraft.golden_helmet": "Golden Helmet", + "item.minecraft.golden_hoe": "Golden Hoe", + "item.minecraft.golden_horse_armor": "Golden Horse Armor", + "item.minecraft.golden_leggings": "Golden Leggings", + "item.minecraft.golden_pickaxe": "Golden Pickaxe", + "item.minecraft.golden_shovel": "Golden Shovel", + "item.minecraft.golden_sword": "Golden Sword", + "item.minecraft.gray_dye": "Gray Dye", + "item.minecraft.green_dye": "Green Dye", + "item.minecraft.guardian_spawn_egg": "Guardian Spawn Egg", + "item.minecraft.gunpowder": "Gunpowder", + "item.minecraft.guster_banner_pattern": "Banner Pattern", + "item.minecraft.guster_banner_pattern.desc": "Guster", + "item.minecraft.guster_pottery_sherd": "Guster Pottery Sherd", + "item.minecraft.heart_of_the_sea": "Heart of the Sea", + "item.minecraft.heart_pottery_shard": "Heart Pottery Shard", + "item.minecraft.heart_pottery_sherd": "Heart Pottery Sherd", + "item.minecraft.heartbreak_pottery_shard": "Heartbreak Pottery Shard", + "item.minecraft.heartbreak_pottery_sherd": "Heartbreak Pottery Sherd", + "item.minecraft.hoglin_spawn_egg": "Hoglin Spawn Egg", + "item.minecraft.honey_bottle": "Honey Bottle", + "item.minecraft.honeycomb": "Honeycomb", + "item.minecraft.hopper_minecart": "Minecart with Hopper", + "item.minecraft.horse_spawn_egg": "Horse Spawn Egg", + "item.minecraft.host_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.howl_pottery_shard": "Howl Pottery Shard", + "item.minecraft.howl_pottery_sherd": "Howl Pottery Sherd", + "item.minecraft.husk_spawn_egg": "Husk Spawn Egg", + "item.minecraft.ink_sac": "Ink Sac", + "item.minecraft.iron_axe": "Iron Axe", + "item.minecraft.iron_boots": "Iron Boots", + "item.minecraft.iron_chestplate": "Iron Chestplate", + "item.minecraft.iron_golem_spawn_egg": "Iron Golem Spawn Egg", + "item.minecraft.iron_helmet": "Iron Helmet", + "item.minecraft.iron_hoe": "Iron Hoe", + "item.minecraft.iron_horse_armor": "Iron Horse Armor", + "item.minecraft.iron_ingot": "Iron Ingot", + "item.minecraft.iron_leggings": "Iron Leggings", + "item.minecraft.iron_nugget": "Iron Nugget", + "item.minecraft.iron_pickaxe": "Iron Pickaxe", + "item.minecraft.iron_shovel": "Iron Shovel", + "item.minecraft.iron_sword": "Iron Sword", + "item.minecraft.item_frame": "Item Frame", + "item.minecraft.jungle_boat": "Jungle Boat", + "item.minecraft.jungle_chest_boat": "Jungle Boat with Chest", + "item.minecraft.knowledge_book": "Knowledge Book", + "item.minecraft.lapis_lazuli": "Lapis Lazuli", + "item.minecraft.lava_bucket": "Lava Bucket", + "item.minecraft.lead": "Lead", + "item.minecraft.leather": "Leather", + "item.minecraft.leather_boots": "Leather Boots", + "item.minecraft.leather_chestplate": "Leather Tunic", + "item.minecraft.leather_helmet": "Leather Cap", + "item.minecraft.leather_horse_armor": "Leather Horse Armor", + "item.minecraft.leather_leggings": "Leather Pants", + "item.minecraft.light_blue_dye": "Light Blue Dye", + "item.minecraft.light_gray_dye": "Light Gray Dye", + "item.minecraft.lime_dye": "Lime Dye", + "item.minecraft.lingering_potion": "Lingering Potion", + "item.minecraft.lingering_potion.effect.awkward": "Awkward Lingering Potion", + "item.minecraft.lingering_potion.effect.empty": "Lingering Uncraftable Potion", + "item.minecraft.lingering_potion.effect.fire_resistance": "Lingering Potion of Fire Resistance", + "item.minecraft.lingering_potion.effect.harming": "Lingering Potion of Harming", + "item.minecraft.lingering_potion.effect.healing": "Lingering Potion of Healing", + "item.minecraft.lingering_potion.effect.infested": "Lingering Potion of Infestation", + "item.minecraft.lingering_potion.effect.invisibility": "Lingering Potion of Invisibility", + "item.minecraft.lingering_potion.effect.leaping": "Lingering Potion of Leaping", + "item.minecraft.lingering_potion.effect.levitation": "Lingering Potion of Levitation", + "item.minecraft.lingering_potion.effect.luck": "Lingering Potion of Luck", + "item.minecraft.lingering_potion.effect.mundane": "Mundane Lingering Potion", + "item.minecraft.lingering_potion.effect.night_vision": "Lingering Potion of Night Vision", + "item.minecraft.lingering_potion.effect.oozing": "Lingering Potion of Oozing", + "item.minecraft.lingering_potion.effect.poison": "Lingering Potion of Poison", + "item.minecraft.lingering_potion.effect.regeneration": "Lingering Potion of Regeneration", + "item.minecraft.lingering_potion.effect.slow_falling": "Lingering Potion of Slow Falling", + "item.minecraft.lingering_potion.effect.slowness": "Lingering Potion of Slowness", + "item.minecraft.lingering_potion.effect.strength": "Lingering Potion of Strength", + "item.minecraft.lingering_potion.effect.swiftness": "Lingering Potion of Swiftness", + "item.minecraft.lingering_potion.effect.thick": "Thick Lingering Potion", + "item.minecraft.lingering_potion.effect.turtle_master": "Lingering Potion of the Turtle Master", + "item.minecraft.lingering_potion.effect.water": "Lingering Water Bottle", + "item.minecraft.lingering_potion.effect.water_breathing": "Lingering Potion of Water Breathing", + "item.minecraft.lingering_potion.effect.weakness": "Lingering Potion of Weakness", + "item.minecraft.lingering_potion.effect.weaving": "Lingering Potion of Weaving", + "item.minecraft.lingering_potion.effect.wind_charged": "Lingering Potion of Wind Charging", + "item.minecraft.llama_spawn_egg": "Llama Spawn Egg", + "item.minecraft.lodestone_compass": "Lodestone Compass", + "item.minecraft.mace": "Mace", + "item.minecraft.magenta_dye": "Magenta Dye", + "item.minecraft.magma_cream": "Magma Cream", + "item.minecraft.magma_cube_spawn_egg": "Magma Cube Spawn Egg", + "item.minecraft.mangrove_boat": "Mangrove Boat", + "item.minecraft.mangrove_chest_boat": "Mangrove Boat with Chest", + "item.minecraft.map": "Empty Map", + "item.minecraft.melon_seeds": "Melon Seeds", + "item.minecraft.melon_slice": "Melon Slice", + "item.minecraft.milk_bucket": "Milk Bucket", + "item.minecraft.minecart": "Minecart", + "item.minecraft.miner_pottery_shard": "Miner Pottery Shard", + "item.minecraft.miner_pottery_sherd": "Miner Pottery Sherd", + "item.minecraft.mojang_banner_pattern": "Banner Pattern", + "item.minecraft.mojang_banner_pattern.desc": "Thing", + "item.minecraft.mooshroom_spawn_egg": "Mooshroom Spawn Egg", + "item.minecraft.mourner_pottery_shard": "Mourner Pottery Shard", + "item.minecraft.mourner_pottery_sherd": "Mourner Pottery Sherd", + "item.minecraft.mule_spawn_egg": "Mule Spawn Egg", + "item.minecraft.mushroom_stew": "Mushroom Stew", + "item.minecraft.music_disc_5": "Music Disc", + "item.minecraft.music_disc_5.desc": "Samuel Åberg - 5", + "item.minecraft.music_disc_11": "Music Disc", + "item.minecraft.music_disc_11.desc": "C418 - 11", + "item.minecraft.music_disc_13": "Music Disc", + "item.minecraft.music_disc_13.desc": "C418 - 13", + "item.minecraft.music_disc_blocks": "Music Disc", + "item.minecraft.music_disc_blocks.desc": "C418 - blocks", + "item.minecraft.music_disc_cat": "Music Disc", + "item.minecraft.music_disc_cat.desc": "C418 - cat", + "item.minecraft.music_disc_chirp": "Music Disc", + "item.minecraft.music_disc_chirp.desc": "C418 - chirp", + "item.minecraft.music_disc_creator": "Music Disc", + "item.minecraft.music_disc_creator_music_box": "Music Disc", + "item.minecraft.music_disc_creator_music_box.desc": "Lena Raine - Creator (Music Box)", + "item.minecraft.music_disc_creator.desc": "Lena Raine - Creator", + "item.minecraft.music_disc_far": "Music Disc", + "item.minecraft.music_disc_far.desc": "C418 - far", + "item.minecraft.music_disc_mall": "Music Disc", + "item.minecraft.music_disc_mall.desc": "C418 - mall", + "item.minecraft.music_disc_mellohi": "Music Disc", + "item.minecraft.music_disc_mellohi.desc": "C418 - mellohi", + "item.minecraft.music_disc_otherside": "Music Disc", + "item.minecraft.music_disc_otherside.desc": "Lena Raine - otherside", + "item.minecraft.music_disc_pigstep": "Music Disc", + "item.minecraft.music_disc_pigstep.desc": "Lena Raine - Pigstep", + "item.minecraft.music_disc_precipice": "Music Disc", + "item.minecraft.music_disc_precipice.desc": "Aaron Cherof - Precipice", + "item.minecraft.music_disc_relic": "Music Disc", + "item.minecraft.music_disc_relic.desc": "Aaron Cherof - Relic", + "item.minecraft.music_disc_stal": "Music Disc", + "item.minecraft.music_disc_stal.desc": "C418 - stal", + "item.minecraft.music_disc_strad": "Music Disc", + "item.minecraft.music_disc_strad.desc": "C418 - strad", + "item.minecraft.music_disc_wait": "Music Disc", + "item.minecraft.music_disc_wait.desc": "C418 - wait", + "item.minecraft.music_disc_ward": "Music Disc", + "item.minecraft.music_disc_ward.desc": "C418 - ward", + "item.minecraft.mutton": "Raw Mutton", + "item.minecraft.name_tag": "Name Tag", + "item.minecraft.nautilus_shell": "Nautilus Shell", + "item.minecraft.nether_brick": "Nether Brick", + "item.minecraft.nether_star": "Nether Star", + "item.minecraft.nether_wart": "Nether Wart", + "item.minecraft.netherite_axe": "Netherite Axe", + "item.minecraft.netherite_boots": "Netherite Boots", + "item.minecraft.netherite_chestplate": "Netherite Chestplate", + "item.minecraft.netherite_helmet": "Netherite Helmet", + "item.minecraft.netherite_hoe": "Netherite Hoe", + "item.minecraft.netherite_ingot": "Netherite Ingot", + "item.minecraft.netherite_leggings": "Netherite Leggings", + "item.minecraft.netherite_pickaxe": "Netherite Pickaxe", + "item.minecraft.netherite_scrap": "Netherite Scrap", + "item.minecraft.netherite_shovel": "Netherite Shovel", + "item.minecraft.netherite_sword": "Netherite Sword", + "item.minecraft.netherite_upgrade_smithing_template": "Smithing Template", + "item.minecraft.oak_boat": "Oak Boat", + "item.minecraft.oak_chest_boat": "Oak Boat with Chest", + "item.minecraft.ocelot_spawn_egg": "Ocelot Spawn Egg", + "item.minecraft.ominous_bottle": "Ominous Bottle", + "item.minecraft.ominous_trial_key": "Ominous Trial Key", + "item.minecraft.orange_dye": "Orange Dye", + "item.minecraft.painting": "Painting", + "item.minecraft.panda_spawn_egg": "Panda Spawn Egg", + "item.minecraft.paper": "Paper", + "item.minecraft.parrot_spawn_egg": "Parrot Spawn Egg", + "item.minecraft.phantom_membrane": "Phantom Membrane", + "item.minecraft.phantom_spawn_egg": "Phantom Spawn Egg", + "item.minecraft.pig_spawn_egg": "Pig Spawn Egg", + "item.minecraft.piglin_banner_pattern": "Banner Pattern", + "item.minecraft.piglin_banner_pattern.desc": "Snout", + "item.minecraft.piglin_brute_spawn_egg": "Piglin Brute Spawn Egg", + "item.minecraft.piglin_spawn_egg": "Piglin Spawn Egg", + "item.minecraft.pillager_spawn_egg": "Pillager Spawn Egg", + "item.minecraft.pink_dye": "Pink Dye", + "item.minecraft.pitcher_plant": "Pitcher Plant", + "item.minecraft.pitcher_pod": "Pitcher Pod", + "item.minecraft.plenty_pottery_shard": "Plenty Pottery Shard", + "item.minecraft.plenty_pottery_sherd": "Plenty Pottery Sherd", + "item.minecraft.poisonous_potato": "Poisonous Potato", + "item.minecraft.polar_bear_spawn_egg": "Polar Bear Spawn Egg", + "item.minecraft.popped_chorus_fruit": "Popped Chorus Fruit", + "item.minecraft.porkchop": "Raw Porkchop", + "item.minecraft.potato": "Potato", + "item.minecraft.potion": "Potion", + "item.minecraft.potion.effect.awkward": "Awkward Potion", + "item.minecraft.potion.effect.empty": "Uncraftable Potion", + "item.minecraft.potion.effect.fire_resistance": "Potion of Fire Resistance", + "item.minecraft.potion.effect.harming": "Potion of Harming", + "item.minecraft.potion.effect.healing": "Potion of Healing", + "item.minecraft.potion.effect.infested": "Potion of Infestation", + "item.minecraft.potion.effect.invisibility": "Potion of Invisibility", + "item.minecraft.potion.effect.leaping": "Potion of Leaping", + "item.minecraft.potion.effect.levitation": "Potion of Levitation", + "item.minecraft.potion.effect.luck": "Potion of Luck", + "item.minecraft.potion.effect.mundane": "Mundane Potion", + "item.minecraft.potion.effect.night_vision": "Potion of Night Vision", + "item.minecraft.potion.effect.oozing": "Potion of Oozing", + "item.minecraft.potion.effect.poison": "Potion of Poison", + "item.minecraft.potion.effect.regeneration": "Potion of Regeneration", + "item.minecraft.potion.effect.slow_falling": "Potion of Slow Falling", + "item.minecraft.potion.effect.slowness": "Potion of Slowness", + "item.minecraft.potion.effect.strength": "Potion of Strength", + "item.minecraft.potion.effect.swiftness": "Potion of Swiftness", + "item.minecraft.potion.effect.thick": "Thick Potion", + "item.minecraft.potion.effect.turtle_master": "Potion of the Turtle Master", + "item.minecraft.potion.effect.water": "Water Bottle", + "item.minecraft.potion.effect.water_breathing": "Potion of Water Breathing", + "item.minecraft.potion.effect.weakness": "Potion of Weakness", + "item.minecraft.potion.effect.weaving": "Potion of Weaving", + "item.minecraft.potion.effect.wind_charged": "Potion of Wind Charging", + "item.minecraft.pottery_shard_archer": "Archer Pottery Shard", + "item.minecraft.pottery_shard_arms_up": "Arms Up Pottery Shard", + "item.minecraft.pottery_shard_prize": "Prize Pottery Shard", + "item.minecraft.pottery_shard_skull": "Skull Pottery Shard", + "item.minecraft.powder_snow_bucket": "Powder Snow Bucket", + "item.minecraft.prismarine_crystals": "Prismarine Crystals", + "item.minecraft.prismarine_shard": "Prismarine Shard", + "item.minecraft.prize_pottery_shard": "Prize Pottery Shard", + "item.minecraft.prize_pottery_sherd": "Prize Pottery Sherd", + "item.minecraft.pufferfish": "Pufferfish", + "item.minecraft.pufferfish_bucket": "Bucket of Pufferfish", + "item.minecraft.pufferfish_spawn_egg": "Pufferfish Spawn Egg", + "item.minecraft.pumpkin_pie": "Pumpkin Pie", + "item.minecraft.pumpkin_seeds": "Pumpkin Seeds", + "item.minecraft.purple_dye": "Purple Dye", + "item.minecraft.quartz": "Nether Quartz", + "item.minecraft.rabbit": "Raw Rabbit", + "item.minecraft.rabbit_foot": "Rabbit's Foot", + "item.minecraft.rabbit_hide": "Rabbit Hide", + "item.minecraft.rabbit_spawn_egg": "Rabbit Spawn Egg", + "item.minecraft.rabbit_stew": "Rabbit Stew", + "item.minecraft.raiser_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.ravager_spawn_egg": "Ravager Spawn Egg", + "item.minecraft.raw_copper": "Raw Copper", + "item.minecraft.raw_gold": "Raw Gold", + "item.minecraft.raw_iron": "Raw Iron", + "item.minecraft.recovery_compass": "Recovery Compass", + "item.minecraft.red_dye": "Red Dye", + "item.minecraft.redstone": "Redstone Dust", + "item.minecraft.rib_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.rotten_flesh": "Rotten Flesh", + "item.minecraft.saddle": "Saddle", + "item.minecraft.salmon": "Raw Salmon", + "item.minecraft.salmon_bucket": "Bucket of Salmon", + "item.minecraft.salmon_spawn_egg": "Salmon Spawn Egg", + "item.minecraft.scrape_pottery_sherd": "Scrape Pottery Sherd", + "item.minecraft.scute": "Scute", + "item.minecraft.sentry_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.shaper_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.sheaf_pottery_shard": "Sheaf Pottery Shard", + "item.minecraft.sheaf_pottery_sherd": "Sheaf Pottery Sherd", + "item.minecraft.shears": "Shears", + "item.minecraft.sheep_spawn_egg": "Sheep Spawn Egg", + "item.minecraft.shelter_pottery_shard": "Shelter Pottery Shard", + "item.minecraft.shelter_pottery_sherd": "Shelter Pottery Sherd", + "item.minecraft.shield": "Shield", + "item.minecraft.shield.black": "Black Shield", + "item.minecraft.shield.blue": "Blue Shield", + "item.minecraft.shield.brown": "Brown Shield", + "item.minecraft.shield.cyan": "Cyan Shield", + "item.minecraft.shield.gray": "Gray Shield", + "item.minecraft.shield.green": "Green Shield", + "item.minecraft.shield.light_blue": "Light Blue Shield", + "item.minecraft.shield.light_gray": "Light Gray Shield", + "item.minecraft.shield.lime": "Lime Shield", + "item.minecraft.shield.magenta": "Magenta Shield", + "item.minecraft.shield.orange": "Orange Shield", + "item.minecraft.shield.pink": "Pink Shield", + "item.minecraft.shield.purple": "Purple Shield", + "item.minecraft.shield.red": "Red Shield", + "item.minecraft.shield.white": "White Shield", + "item.minecraft.shield.yellow": "Yellow Shield", + "item.minecraft.shulker_shell": "Shulker Shell", + "item.minecraft.shulker_spawn_egg": "Shulker Spawn Egg", + "item.minecraft.sign": "Sign", + "item.minecraft.silence_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.silverfish_spawn_egg": "Silverfish Spawn Egg", + "item.minecraft.skeleton_horse_spawn_egg": "Skeleton Horse Spawn Egg", + "item.minecraft.skeleton_spawn_egg": "Skeleton Spawn Egg", + "item.minecraft.skull_banner_pattern": "Banner Pattern", + "item.minecraft.skull_banner_pattern.desc": "Skull Charge", + "item.minecraft.skull_pottery_shard": "Skull Pottery Shard", + "item.minecraft.skull_pottery_sherd": "Skull Pottery Sherd", + "item.minecraft.slime_ball": "Slimeball", + "item.minecraft.slime_spawn_egg": "Slime Spawn Egg", + "item.minecraft.smithing_template": "Smithing Template", + "item.minecraft.smithing_template.applies_to": "Applies to:", + "item.minecraft.smithing_template.armor_trim.additions_slot_description": "Add ingot or crystal", + "item.minecraft.smithing_template.armor_trim.applies_to": "Armor", + "item.minecraft.smithing_template.armor_trim.base_slot_description": "Add a piece of armor", + "item.minecraft.smithing_template.armor_trim.ingredients": "Ingots & Crystals", + "item.minecraft.smithing_template.ingredients": "Ingredients:", + "item.minecraft.smithing_template.netherite_upgrade.additions_slot_description": "Add Netherite Ingot", + "item.minecraft.smithing_template.netherite_upgrade.applies_to": "Diamond Equipment", + "item.minecraft.smithing_template.netherite_upgrade.base_slot_description": "Add diamond armor, weapon, or tool", + "item.minecraft.smithing_template.netherite_upgrade.ingredients": "Netherite Ingot", + "item.minecraft.smithing_template.upgrade": "Upgrade: ", + "item.minecraft.sniffer_spawn_egg": "Sniffer Spawn Egg", + "item.minecraft.snort_pottery_shard": "Snort Pottery Shard", + "item.minecraft.snort_pottery_sherd": "Snort Pottery Sherd", + "item.minecraft.snout_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.snow_golem_spawn_egg": "Snow Golem Spawn Egg", + "item.minecraft.snowball": "Snowball", + "item.minecraft.spectral_arrow": "Spectral Arrow", + "item.minecraft.spider_eye": "Spider Eye", + "item.minecraft.spider_spawn_egg": "Spider Spawn Egg", + "item.minecraft.spire_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.splash_potion": "Splash Potion", + "item.minecraft.splash_potion.effect.awkward": "Awkward Splash Potion", + "item.minecraft.splash_potion.effect.empty": "Splash Uncraftable Potion", + "item.minecraft.splash_potion.effect.fire_resistance": "Splash Potion of Fire Resistance", + "item.minecraft.splash_potion.effect.harming": "Splash Potion of Harming", + "item.minecraft.splash_potion.effect.healing": "Splash Potion of Healing", + "item.minecraft.splash_potion.effect.infested": "Splash Potion of Infestation", + "item.minecraft.splash_potion.effect.invisibility": "Splash Potion of Invisibility", + "item.minecraft.splash_potion.effect.leaping": "Splash Potion of Leaping", + "item.minecraft.splash_potion.effect.levitation": "Splash Potion of Levitation", + "item.minecraft.splash_potion.effect.luck": "Splash Potion of Luck", + "item.minecraft.splash_potion.effect.mundane": "Mundane Splash Potion", + "item.minecraft.splash_potion.effect.night_vision": "Splash Potion of Night Vision", + "item.minecraft.splash_potion.effect.oozing": "Splash Potion of Oozing", + "item.minecraft.splash_potion.effect.poison": "Splash Potion of Poison", + "item.minecraft.splash_potion.effect.regeneration": "Splash Potion of Regeneration", + "item.minecraft.splash_potion.effect.slow_falling": "Splash Potion of Slow Falling", + "item.minecraft.splash_potion.effect.slowness": "Splash Potion of Slowness", + "item.minecraft.splash_potion.effect.strength": "Splash Potion of Strength", + "item.minecraft.splash_potion.effect.swiftness": "Splash Potion of Swiftness", + "item.minecraft.splash_potion.effect.thick": "Thick Splash Potion", + "item.minecraft.splash_potion.effect.turtle_master": "Splash Potion of the Turtle Master", + "item.minecraft.splash_potion.effect.water": "Splash Water Bottle", + "item.minecraft.splash_potion.effect.water_breathing": "Splash Potion of Water Breathing", + "item.minecraft.splash_potion.effect.weakness": "Splash Potion of Weakness", + "item.minecraft.splash_potion.effect.weaving": "Splash Potion of Weaving", + "item.minecraft.splash_potion.effect.wind_charged": "Splash Potion of Wind Charging", + "item.minecraft.spruce_boat": "Spruce Boat", + "item.minecraft.spruce_chest_boat": "Spruce Boat with Chest", + "item.minecraft.spyglass": "Spyglass", + "item.minecraft.squid_spawn_egg": "Squid Spawn Egg", + "item.minecraft.stick": "Stick", + "item.minecraft.stone_axe": "Stone Axe", + "item.minecraft.stone_hoe": "Stone Hoe", + "item.minecraft.stone_pickaxe": "Stone Pickaxe", + "item.minecraft.stone_shovel": "Stone Shovel", + "item.minecraft.stone_sword": "Stone Sword", + "item.minecraft.stray_spawn_egg": "Stray Spawn Egg", + "item.minecraft.strider_spawn_egg": "Strider Spawn Egg", + "item.minecraft.string": "String", + "item.minecraft.sugar": "Sugar", + "item.minecraft.suspicious_stew": "Suspicious Stew", + "item.minecraft.sweet_berries": "Sweet Berries", + "item.minecraft.tadpole_bucket": "Bucket of Tadpole", + "item.minecraft.tadpole_spawn_egg": "Tadpole Spawn Egg", + "item.minecraft.tide_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.tipped_arrow": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.awkward": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.empty": "Uncraftable Tipped Arrow", + "item.minecraft.tipped_arrow.effect.fire_resistance": "Arrow of Fire Resistance", + "item.minecraft.tipped_arrow.effect.harming": "Arrow of Harming", + "item.minecraft.tipped_arrow.effect.healing": "Arrow of Healing", + "item.minecraft.tipped_arrow.effect.infested": "Arrow of Infestation", + "item.minecraft.tipped_arrow.effect.invisibility": "Arrow of Invisibility", + "item.minecraft.tipped_arrow.effect.leaping": "Arrow of Leaping", + "item.minecraft.tipped_arrow.effect.levitation": "Arrow of Levitation", + "item.minecraft.tipped_arrow.effect.luck": "Arrow of Luck", + "item.minecraft.tipped_arrow.effect.mundane": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.night_vision": "Arrow of Night Vision", + "item.minecraft.tipped_arrow.effect.oozing": "Arrow of Oozing", + "item.minecraft.tipped_arrow.effect.poison": "Arrow of Poison", + "item.minecraft.tipped_arrow.effect.regeneration": "Arrow of Regeneration", + "item.minecraft.tipped_arrow.effect.slow_falling": "Arrow of Slow Falling", + "item.minecraft.tipped_arrow.effect.slowness": "Arrow of Slowness", + "item.minecraft.tipped_arrow.effect.strength": "Arrow of Strength", + "item.minecraft.tipped_arrow.effect.swiftness": "Arrow of Swiftness", + "item.minecraft.tipped_arrow.effect.thick": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.turtle_master": "Arrow of the Turtle Master", + "item.minecraft.tipped_arrow.effect.water": "Arrow of Splashing", + "item.minecraft.tipped_arrow.effect.water_breathing": "Arrow of Water Breathing", + "item.minecraft.tipped_arrow.effect.weakness": "Arrow of Weakness", + "item.minecraft.tipped_arrow.effect.weaving": "Arrow of Weaving", + "item.minecraft.tipped_arrow.effect.wind_charged": "Arrow of Wind Charging", + "item.minecraft.tnt_minecart": "Minecart with TNT", + "item.minecraft.torchflower_seeds": "Torchflower Seeds", + "item.minecraft.totem_of_undying": "Totem of Undying", + "item.minecraft.trader_llama_spawn_egg": "Trader Llama Spawn Egg", + "item.minecraft.trial_key": "Trial Key", + "item.minecraft.trident": "Trident", + "item.minecraft.tropical_fish": "Tropical Fish", + "item.minecraft.tropical_fish_bucket": "Bucket of Tropical Fish", + "item.minecraft.tropical_fish_spawn_egg": "Tropical Fish Spawn Egg", + "item.minecraft.turtle_helmet": "Turtle Shell", + "item.minecraft.turtle_scute": "Turtle Scute", + "item.minecraft.turtle_spawn_egg": "Turtle Spawn Egg", + "item.minecraft.vex_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.vex_spawn_egg": "Vex Spawn Egg", + "item.minecraft.villager_spawn_egg": "Villager Spawn Egg", + "item.minecraft.vindicator_spawn_egg": "Vindicator Spawn Egg", + "item.minecraft.wandering_trader_spawn_egg": "Wandering Trader Spawn Egg", + "item.minecraft.ward_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.warden_spawn_egg": "Warden Spawn Egg", + "item.minecraft.warped_fungus_on_a_stick": "Warped Fungus on a Stick", + "item.minecraft.water_bucket": "Water Bucket", + "item.minecraft.wayfinder_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.wheat": "Wheat", + "item.minecraft.wheat_seeds": "Wheat Seeds", + "item.minecraft.white_dye": "White Dye", + "item.minecraft.wild_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.wind_charge": "Wind Charge", + "item.minecraft.witch_spawn_egg": "Witch Spawn Egg", + "item.minecraft.wither_skeleton_spawn_egg": "Wither Skeleton Spawn Egg", + "item.minecraft.wither_spawn_egg": "Wither Spawn Egg", + "item.minecraft.wolf_armor": "Wolf Armor", + "item.minecraft.wolf_spawn_egg": "Wolf Spawn Egg", + "item.minecraft.wooden_axe": "Wooden Axe", + "item.minecraft.wooden_hoe": "Wooden Hoe", + "item.minecraft.wooden_pickaxe": "Wooden Pickaxe", + "item.minecraft.wooden_shovel": "Wooden Shovel", + "item.minecraft.wooden_sword": "Wooden Sword", + "item.minecraft.writable_book": "Book and Quill", + "item.minecraft.written_book": "Written Book", + "item.minecraft.yellow_dye": "Yellow Dye", + "item.minecraft.zoglin_spawn_egg": "Zoglin Spawn Egg", + "item.minecraft.zombie_horse_spawn_egg": "Zombie Horse Spawn Egg", + "item.minecraft.zombie_spawn_egg": "Zombie Spawn Egg", + "item.minecraft.zombie_villager_spawn_egg": "Zombie Villager Spawn Egg", + "item.minecraft.zombified_piglin_spawn_egg": "Zombified Piglin Spawn Egg", + "item.modifiers.any": "When equipped:", + "item.modifiers.armor": "When worn:", + "item.modifiers.body": "When equipped:", + "item.modifiers.chest": "When on Body:", + "item.modifiers.feet": "When on Feet:", + "item.modifiers.hand": "When held:", + "item.modifiers.head": "When on Head:", + "item.modifiers.legs": "When on Legs:", + "item.modifiers.mainhand": "When in Main Hand:", + "item.modifiers.offhand": "When in Off Hand:", + "item.nbt_tags": "NBT: %s tag(s)", + "item.unbreakable": "Unbreakable", + "itemGroup.buildingBlocks": "Building Blocks", + "itemGroup.coloredBlocks": "Colored Blocks", + "itemGroup.combat": "Combat", + "itemGroup.consumables": "Consumables", + "itemGroup.crafting": "Crafting", + "itemGroup.foodAndDrink": "Food & Drinks", + "itemGroup.functional": "Functional Blocks", + "itemGroup.hotbar": "Saved Hotbars", + "itemGroup.ingredients": "Ingredients", + "itemGroup.inventory": "Survival Inventory", + "itemGroup.natural": "Natural Blocks", + "itemGroup.op": "Operator Utilities", + "itemGroup.redstone": "Redstone Blocks", + "itemGroup.search": "Search Items", + "itemGroup.spawnEggs": "Spawn Eggs", + "itemGroup.tools": "Tools & Utilities", + "jigsaw_block.final_state": "Turns into:", + "jigsaw_block.generate": "Generate", + "jigsaw_block.joint_label": "Joint Type:", + "jigsaw_block.joint.aligned": "Aligned", + "jigsaw_block.joint.rollable": "Rollable", + "jigsaw_block.keep_jigsaws": "Keep Jigsaws", + "jigsaw_block.levels": "Levels: %s", + "jigsaw_block.name": "Name:", + "jigsaw_block.placement_priority": "Placement Priority:", + "jigsaw_block.placement_priority.tooltip": "When this Jigsaw block connects to a piece, this is the order in which that piece is processed for connections in the wider structure.\n\nPieces will be processed in descending priority with insertion order breaking ties.", + "jigsaw_block.pool": "Target Pool:", + "jigsaw_block.selection_priority": "Selection Priority:", + "jigsaw_block.selection_priority.tooltip": "When the parent piece is being processed for connections, this is the order in which this Jigsaw block attempts to connect to its target piece.\n\nJigsaws will be processed in descending priority with random ordering breaking ties.", + "jigsaw_block.target": "Target Name:", + "jukebox_song.minecraft.5": "Samuel Åberg - 5", + "jukebox_song.minecraft.11": "C418 - 11", + "jukebox_song.minecraft.13": "C418 - 13", + "jukebox_song.minecraft.blocks": "C418 - blocks", + "jukebox_song.minecraft.cat": "C418 - cat", + "jukebox_song.minecraft.chirp": "C418 - chirp", + "jukebox_song.minecraft.creator": "Lena Raine - Creator", + "jukebox_song.minecraft.creator_music_box": "Lena Raine - Creator (Music Box)", + "jukebox_song.minecraft.far": "C418 - far", + "jukebox_song.minecraft.mall": "C418 - mall", + "jukebox_song.minecraft.mellohi": "C418 - mellohi", + "jukebox_song.minecraft.otherside": "Lena Raine - otherside", + "jukebox_song.minecraft.pigstep": "Lena Raine - Pigstep", + "jukebox_song.minecraft.precipice": "Aaron Cherof - Precipice", + "jukebox_song.minecraft.relic": "Aaron Cherof - Relic", + "jukebox_song.minecraft.stal": "C418 - stal", + "jukebox_song.minecraft.strad": "C418 - strad", + "jukebox_song.minecraft.wait": "C418 - wait", + "jukebox_song.minecraft.ward": "C418 - ward", + "key.advancements": "Advancements", + "key.attack": "Attack/Destroy", + "key.back": "Walk Backwards", + "key.categories.creative": "Creative Mode", + "key.categories.gameplay": "Gameplay", + "key.categories.inventory": "Inventory", + "key.categories.misc": "Miscellaneous", + "key.categories.movement": "Movement", + "key.categories.multiplayer": "Multiplayer", + "key.categories.ui": "Game Interface", + "key.chat": "Open Chat", + "key.command": "Open Command", + "key.drop": "Drop Selected Item", + "key.forward": "Walk Forwards", + "key.fullscreen": "Toggle Fullscreen", + "key.hotbar.1": "Hotbar Slot 1", + "key.hotbar.2": "Hotbar Slot 2", + "key.hotbar.3": "Hotbar Slot 3", + "key.hotbar.4": "Hotbar Slot 4", + "key.hotbar.5": "Hotbar Slot 5", + "key.hotbar.6": "Hotbar Slot 6", + "key.hotbar.7": "Hotbar Slot 7", + "key.hotbar.8": "Hotbar Slot 8", + "key.hotbar.9": "Hotbar Slot 9", + "key.inventory": "Open/Close Inventory", + "key.jump": "Jump", + "key.keyboard.apostrophe": "'", + "key.keyboard.backslash": "\\", + "key.keyboard.backspace": "Backspace", + "key.keyboard.caps.lock": "Caps Lock", + "key.keyboard.comma": ",", + "key.keyboard.delete": "Delete", + "key.keyboard.down": "Down Arrow", + "key.keyboard.end": "End", + "key.keyboard.enter": "Enter", + "key.keyboard.equal": "=", + "key.keyboard.escape": "Escape", + "key.keyboard.f1": "F1", + "key.keyboard.f2": "F2", + "key.keyboard.f3": "F3", + "key.keyboard.f4": "F4", + "key.keyboard.f5": "F5", + "key.keyboard.f6": "F6", + "key.keyboard.f7": "F7", + "key.keyboard.f8": "F8", + "key.keyboard.f9": "F9", + "key.keyboard.f10": "F10", + "key.keyboard.f11": "F11", + "key.keyboard.f12": "F12", + "key.keyboard.f13": "F13", + "key.keyboard.f14": "F14", + "key.keyboard.f15": "F15", + "key.keyboard.f16": "F16", + "key.keyboard.f17": "F17", + "key.keyboard.f18": "F18", + "key.keyboard.f19": "F19", + "key.keyboard.f20": "F20", + "key.keyboard.f21": "F21", + "key.keyboard.f22": "F22", + "key.keyboard.f23": "F23", + "key.keyboard.f24": "F24", + "key.keyboard.f25": "F25", + "key.keyboard.grave.accent": "`", + "key.keyboard.home": "Home", + "key.keyboard.insert": "Insert", + "key.keyboard.keypad.0": "Keypad 0", + "key.keyboard.keypad.1": "Keypad 1", + "key.keyboard.keypad.2": "Keypad 2", + "key.keyboard.keypad.3": "Keypad 3", + "key.keyboard.keypad.4": "Keypad 4", + "key.keyboard.keypad.5": "Keypad 5", + "key.keyboard.keypad.6": "Keypad 6", + "key.keyboard.keypad.7": "Keypad 7", + "key.keyboard.keypad.8": "Keypad 8", + "key.keyboard.keypad.9": "Keypad 9", + "key.keyboard.keypad.add": "Keypad +", + "key.keyboard.keypad.decimal": "Keypad Decimal", + "key.keyboard.keypad.divide": "Keypad /", + "key.keyboard.keypad.enter": "Keypad Enter", + "key.keyboard.keypad.equal": "Keypad =", + "key.keyboard.keypad.multiply": "Keypad *", + "key.keyboard.keypad.subtract": "Keypad -", + "key.keyboard.left": "Left Arrow", + "key.keyboard.left.alt": "Left Alt", + "key.keyboard.left.bracket": "[", + "key.keyboard.left.control": "Left Control", + "key.keyboard.left.shift": "Left Shift", + "key.keyboard.left.win": "Left Win", + "key.keyboard.menu": "Menu", + "key.keyboard.minus": "-", + "key.keyboard.num.lock": "Num Lock", + "key.keyboard.page.down": "Page Down", + "key.keyboard.page.up": "Page Up", + "key.keyboard.pause": "Pause", + "key.keyboard.period": ".", + "key.keyboard.print.screen": "Print Screen", + "key.keyboard.right": "Right Arrow", + "key.keyboard.right.alt": "Right Alt", + "key.keyboard.right.bracket": "]", + "key.keyboard.right.control": "Right Control", + "key.keyboard.right.shift": "Right Shift", + "key.keyboard.right.win": "Right Win", + "key.keyboard.scroll.lock": "Scroll Lock", + "key.keyboard.semicolon": ";", + "key.keyboard.slash": "/", + "key.keyboard.space": "Space", + "key.keyboard.tab": "Tab", + "key.keyboard.unknown": "Not Bound", + "key.keyboard.up": "Up Arrow", + "key.keyboard.world.1": "World 1", + "key.keyboard.world.2": "World 2", + "key.left": "Strafe Left", + "key.loadToolbarActivator": "Load Hotbar Activator", + "key.mouse": "Button %1$s", + "key.mouse.left": "Left Button", + "key.mouse.middle": "Middle Button", + "key.mouse.right": "Right Button", + "key.pickItem": "Pick Block", + "key.playerlist": "List Players", + "key.right": "Strafe Right", + "key.saveToolbarActivator": "Save Hotbar Activator", + "key.screenshot": "Take Screenshot", + "key.smoothCamera": "Toggle Cinematic Camera", + "key.sneak": "Sneak", + "key.socialInteractions": "Social Interactions Screen", + "key.spectatorOutlines": "Highlight Players (Spectators)", + "key.sprint": "Sprint", + "key.swapOffhand": "Swap Item With Off Hand", + "key.togglePerspective": "Toggle Perspective", + "key.use": "Use Item/Place Block", + "known_server_link.announcements": "Announcements", + "known_server_link.community": "Community", + "known_server_link.community_guidelines": "Community Guidelines", + "known_server_link.feedback": "Feedback", + "known_server_link.forums": "Forums", + "known_server_link.news": "News", + "known_server_link.report_bug": "Report Server Bug", + "known_server_link.status": "Status", + "known_server_link.support": "Support", + "known_server_link.website": "Website", + "language.code": "en_us", + "language.name": "English", + "language.region": "United States", + "lanServer.otherPlayers": "Settings for Other Players", + "lanServer.port": "Port Number", + "lanServer.port.invalid": "Not a valid port.\nLeave the edit box empty or enter a number between 1024 and 65535.", + "lanServer.port.invalid.new": "Not a valid port.\nLeave the edit box empty or enter a number between %s and %s.", + "lanServer.port.unavailable": "Port not available.\nLeave the edit box empty or enter a different number between 1024 and 65535.", + "lanServer.port.unavailable.new": "Port not available.\nLeave the edit box empty or enter a different number between %s and %s.", + "lanServer.scanning": "Scanning for games on your local network", + "lanServer.start": "Start LAN World", + "lanServer.title": "LAN World", + "lectern.take_book": "Take Book", + "loading.progress": "%s%%", + "mco.account.privacy.info": "Read more about Mojang and privacy laws", + "mco.account.privacy.info.button": "Read more about GDPR", + "mco.account.privacy.information": "Mojang implements certain procedures to help protect children and their privacy including complying with the Children’s Online Privacy Protection Act (COPPA) and General Data Protection Regulation (GDPR).\n\nYou may need to obtain parental consent before accessing your Realms account.", + "mco.account.privacyinfo": "Mojang implements certain procedures to help protect children and their privacy including complying with the Children’s Online Privacy Protection Act (COPPA) and General Data Protection Regulation (GDPR).\n\nYou may need to obtain parental consent before accessing your Realms account.\n\nIf you have an older Minecraft account (you log in with your username), you need to migrate the account to a Mojang account in order to access Realms.", + "mco.account.update": "Update account", + "mco.activity.noactivity": "No activity for the past %s day(s)", + "mco.activity.title": "Player activity", + "mco.backup.button.download": "Download Latest", + "mco.backup.button.reset": "Reset World", + "mco.backup.button.restore": "Restore", + "mco.backup.button.upload": "Upload World", + "mco.backup.changes.tooltip": "Changes", + "mco.backup.entry": "Backup (%s)", + "mco.backup.entry.description": "Description", + "mco.backup.entry.enabledPack": "Enabled Pack(s)", + "mco.backup.entry.gameDifficulty": "Game Difficulty", + "mco.backup.entry.gameMode": "Game Mode", + "mco.backup.entry.gameServerVersion": "Game Server Version", + "mco.backup.entry.name": "Name", + "mco.backup.entry.seed": "Seed", + "mco.backup.entry.templateName": "Template Name", + "mco.backup.entry.undefined": "Undefined Change", + "mco.backup.entry.uploaded": "Uploaded", + "mco.backup.entry.worldType": "World Type", + "mco.backup.generate.world": "Generate world", + "mco.backup.info.title": "Changes From Last Backup", + "mco.backup.narration": "Backup from %s", + "mco.backup.nobackups": "This realm doesn't have any backups currently.", + "mco.backup.restoring": "Restoring your realm", + "mco.backup.unknown": "UNKNOWN", + "mco.brokenworld.download": "Download", + "mco.brokenworld.downloaded": "Downloaded", + "mco.brokenworld.message.line1": "Please reset or select another world.", + "mco.brokenworld.message.line2": "You can also choose to download the world to singleplayer.", + "mco.brokenworld.minigame.title": "This minigame is no longer supported", + "mco.brokenworld.nonowner.error": "Please wait for the realm owner to reset the world", + "mco.brokenworld.nonowner.title": "World is out of date", + "mco.brokenworld.play": "Play", + "mco.brokenworld.reset": "Reset", + "mco.brokenworld.title": "Your current world is no longer supported", + "mco.client.incompatible.msg.line1": "Your client is not compatible with Realms.", + "mco.client.incompatible.msg.line2": "Please use the most recent version of Minecraft.", + "mco.client.incompatible.msg.line3": "Realms is not compatible with snapshot versions.", + "mco.client.incompatible.title": "Client incompatible!", + "mco.client.outdated.stable.version": "Your client version (%s) is not compatible with Realms.\n\nPlease use the most recent version of Minecraft.", + "mco.client.unsupported.snapshot.version": "Your client version (%s) is not compatible with Realms.\n\nRealms is not available for this snapshot version.", + "mco.compatibility.downgrade": "Downgrade", + "mco.compatibility.downgrade.description": "This world was last played in version %s; you are on version %s. Downgrading a world could cause corruption - we cannot guarantee that it will load or work.\n\nA backup of your world will be saved under \"World Backups\". Please restore your world if needed.", + "mco.compatibility.incompatible.popup.title": "Incompatible version", + "mco.compatibility.incompatible.releaseType.popup.message": "The world you are trying to join is incompatible with the version you are on.", + "mco.compatibility.incompatible.series.popup.message": "This world was last played in version %s; you are on version %s.\n\nThese series are not compatible with each other. A new world is needed to play on this version.", + "mco.compatibility.unverifiable.message": "The version this world was last played in could not be verified. If the world gets upgraded or downgraded, a backup will be automatically created and saved under \"World Backups\".", + "mco.compatibility.unverifiable.title": "Compatibility not verifiable", + "mco.compatibility.upgrade": "Upgrade", + "mco.compatibility.upgrade.description": "This world was last played in version %s; you are on version %s.\n\nA backup of your world will be saved under \"World Backups\".\n\nPlease restore your world if needed.", + "mco.compatibility.upgrade.friend.description": "This world was last played in version %s; you are on version %s.\n\nA backup of the world will be saved under \"World Backups\".\n\nThe owner of the Realm can restore the world if needed.", + "mco.compatibility.upgrade.title": "Do you really want to upgrade this world?", + "mco.configure.current.minigame": "Current", + "mco.configure.world.activityfeed.disabled": "Player feed temporarily disabled", + "mco.configure.world.backup": "World Backups", + "mco.configure.world.buttons.activity": "Player activity", + "mco.configure.world.buttons.close": "Close Realm", + "mco.configure.world.buttons.delete": "Delete", + "mco.configure.world.buttons.done": "Done", + "mco.configure.world.buttons.edit": "Settings", + "mco.configure.world.buttons.invite": "Invite Player", + "mco.configure.world.buttons.moreoptions": "More options", + "mco.configure.world.buttons.open": "Open Realm", + "mco.configure.world.buttons.options": "World Options", + "mco.configure.world.buttons.players": "Players", + "mco.configure.world.buttons.resetworld": "Reset World", + "mco.configure.world.buttons.settings": "Settings", + "mco.configure.world.buttons.subscription": "Subscription", + "mco.configure.world.buttons.switchminigame": "Switch Minigame", + "mco.configure.world.close.question.line1": "Your realm will become unavailable.", + "mco.configure.world.close.question.line2": "Are you sure you want to continue?", + "mco.configure.world.closing": "Closing the realm...", + "mco.configure.world.commandBlocks": "Command Blocks", + "mco.configure.world.delete.button": "Delete Realm", + "mco.configure.world.delete.question.line1": "Your realm will be permanently deleted", + "mco.configure.world.delete.question.line2": "Are you sure you want to continue?", + "mco.configure.world.description": "Realm Description", + "mco.configure.world.edit.slot.name": "World Name", + "mco.configure.world.edit.subscreen.adventuremap": "Some settings are disabled since your current world is an adventure", + "mco.configure.world.edit.subscreen.experience": "Some settings are disabled since your current world is an experience", + "mco.configure.world.edit.subscreen.inspiration": "Some settings are disabled since your current world is an inspiration", + "mco.configure.world.forceGameMode": "Force Game Mode", + "mco.configure.world.invite.narration": "You have %s new invite(s)", + "mco.configure.world.invite.profile.name": "Name", + "mco.configure.world.invited": "Invited", + "mco.configure.world.invited.number": "Invited (%s)", + "mco.configure.world.invites.normal.tooltip": "Normal User", + "mco.configure.world.invites.ops.tooltip": "Operator", + "mco.configure.world.invites.remove.tooltip": "Remove", + "mco.configure.world.leave.question.line1": "If you leave this realm you won't see it unless you are invited again", + "mco.configure.world.leave.question.line2": "Are you sure you want to continue?", + "mco.configure.world.location": "Location", + "mco.configure.world.minigame": "Current: %s", + "mco.configure.world.name": "Realm Name", + "mco.configure.world.opening": "Opening the realm...", + "mco.configure.world.players.error": "A player with the provided name does not exist", + "mco.configure.world.players.inviting": "Inviting player...", + "mco.configure.world.players.title": "Players", + "mco.configure.world.pvp": "PVP", + "mco.configure.world.reset.question.line1": "Your world will be regenerated and your current world will be lost", + "mco.configure.world.reset.question.line2": "Are you sure you want to continue?", + "mco.configure.world.resourcepack.question": "You need a custom resource pack to play on this realm\n\nDo you want to download it and play?", + "mco.configure.world.resourcepack.question.line1": "You need a custom resource pack to play on this realm", + "mco.configure.world.resourcepack.question.line2": "Do you want to download it and play?", + "mco.configure.world.restore.download.question.line1": "The world will be downloaded and added to your single player worlds.", + "mco.configure.world.restore.download.question.line2": "Do you want to continue?", + "mco.configure.world.restore.question.line1": "Your world will be restored to date '%s' (%s)", + "mco.configure.world.restore.question.line2": "Are you sure you want to continue?", + "mco.configure.world.settings.title": "Settings", + "mco.configure.world.slot": "World %s", + "mco.configure.world.slot.empty": "Empty", + "mco.configure.world.slot.switch.question.line1": "Your realm will be switched to another world", + "mco.configure.world.slot.switch.question.line2": "Are you sure you want to continue?", + "mco.configure.world.slot.tooltip": "Switch to world", + "mco.configure.world.slot.tooltip.active": "Join", + "mco.configure.world.slot.tooltip.minigame": "Switch to minigame", + "mco.configure.world.spawn_toggle.message": "Turning this option off will remove all existing entities of that type", + "mco.configure.world.spawn_toggle.message.npc": "Turning this option off will remove all existing entities of that type, like Villagers", + "mco.configure.world.spawn_toggle.title": "Warning!", + "mco.configure.world.spawnAnimals": "Spawn Animals", + "mco.configure.world.spawnMonsters": "Spawn Monsters", + "mco.configure.world.spawnNPCs": "Spawn NPCs", + "mco.configure.world.spawnProtection": "Spawn Protection", + "mco.configure.world.status": "Status", + "mco.configure.world.subscription.day": "day", + "mco.configure.world.subscription.days": "days", + "mco.configure.world.subscription.expired": "Expired", + "mco.configure.world.subscription.extend": "Extend Subscription", + "mco.configure.world.subscription.less_than_a_day": "Less than a day", + "mco.configure.world.subscription.month": "month", + "mco.configure.world.subscription.months": "months", + "mco.configure.world.subscription.recurring.daysleft": "Renewed automatically in", + "mco.configure.world.subscription.recurring.info": "Changes made to your Realms subscription such as stacking time or turning off recurring billing will not be reflected until your next bill date.", + "mco.configure.world.subscription.remaining.days": "%1$s day(s)", + "mco.configure.world.subscription.remaining.months": "%1$s month(s)", + "mco.configure.world.subscription.remaining.months.days": "%1$s month(s), %2$s day(s)", + "mco.configure.world.subscription.start": "Start Date", + "mco.configure.world.subscription.timeleft": "Time Left", + "mco.configure.world.subscription.title": "Your Subscription", + "mco.configure.world.subscription.unknown": "Unknown", + "mco.configure.world.switch.slot": "Create World", + "mco.configure.world.switch.slot.subtitle": "This world is empty, choose how to create your world", + "mco.configure.world.title": "Configure Realm:", + "mco.configure.world.uninvite.player": "Are you sure that you want to uninvite '%s'?", + "mco.configure.world.uninvite.question": "Are you sure that you want to uninvite", + "mco.configure.worlds.title": "Worlds", + "mco.connect.authorizing": "Logging in...", + "mco.connect.connecting": "Connecting to the realm...", + "mco.connect.failed": "Failed to connect to the realm", + "mco.connect.success": "Done", + "mco.create.world": "Create", + "mco.create.world.error": "You must enter a name!", + "mco.create.world.reset.title": "Creating world...", + "mco.create.world.skip": "Skip", + "mco.create.world.subtitle": "Optionally, select what world to put on your new realm", + "mco.create.world.wait": "Creating the realm...", + "mco.download.cancelled": "Download cancelled", + "mco.download.confirmation.line1": "The world you are going to download is larger than %s", + "mco.download.confirmation.line2": "You won't be able to upload this world to your realm again", + "mco.download.confirmation.oversized": "The world you are going to download is larger than %s\n\nYou won't be able to upload this world to your realm again", + "mco.download.done": "Download done", + "mco.download.downloading": "Downloading", + "mco.download.extracting": "Extracting", + "mco.download.failed": "Download failed", + "mco.download.percent": "%s %%", + "mco.download.preparing": "Preparing download", + "mco.download.resourcePack.fail": "Failed to download resource pack!", + "mco.download.speed": "(%s/s)", + "mco.download.speed.narration": "%s/s", + "mco.download.title": "Downloading Latest World", + "mco.error.invalid.session.message": "Please try restarting Minecraft", + "mco.error.invalid.session.title": "Invalid Session", + "mco.errorMessage.6001": "Client outdated", + "mco.errorMessage.6002": "Terms of service not accepted", + "mco.errorMessage.6003": "Download limit reached", + "mco.errorMessage.6004": "Upload limit reached", + "mco.errorMessage.6005": "World locked", + "mco.errorMessage.6006": "World is out of date", + "mco.errorMessage.6007": "User in too many Realms", + "mco.errorMessage.6008": "Invalid Realm name", + "mco.errorMessage.6009": "Invalid Realm description", + "mco.errorMessage.connectionFailure": "An error occurred, please try again later.", + "mco.errorMessage.generic": "An error occurred: ", + "mco.errorMessage.noDetails": "No error details provided", + "mco.errorMessage.realmsService": "An error occurred (%s):", + "mco.errorMessage.realmsService.connectivity": "Could not connect to Realms: %s", + "mco.errorMessage.realmsService.realmsError": "Realms (%s):", + "mco.errorMessage.realmsService.unknownCompatibility": "Could not check compatible version, got response: %s", + "mco.errorMessage.retry": "Retry operation", + "mco.errorMessage.serviceBusy": "Realms is busy at the moment.\nPlease try connecting to your Realm again in a couple of minutes.", + "mco.gui.button": "Button", + "mco.gui.ok": "Ok", + "mco.info": "Info!", + "mco.invited.player.narration": "Invited player %s", + "mco.invites.button.accept": "Accept", + "mco.invites.button.reject": "Reject", + "mco.invites.nopending": "No pending invites!", + "mco.invites.pending": "New invite(s)!", + "mco.invites.title": "Pending Invites", + "mco.minigame.world.changeButton": "Select Another Minigame", + "mco.minigame.world.info.line1": "This will temporarily replace your world with a minigame!", + "mco.minigame.world.info.line2": "You can later return to your original world without losing anything.", + "mco.minigame.world.noSelection": "Please make a selection", + "mco.minigame.world.restore": "Ending Minigame...", + "mco.minigame.world.restore.question.line1": "The minigame will end and your realm will be restored.", + "mco.minigame.world.restore.question.line2": "Are you sure you want to continue?", + "mco.minigame.world.selected": "Selected Minigame:", + "mco.minigame.world.slot.screen.title": "Switching World...", + "mco.minigame.world.startButton": "Switch", + "mco.minigame.world.starting.screen.title": "Starting Minigame...", + "mco.minigame.world.stopButton": "End Minigame", + "mco.minigame.world.switch.new": "Select another minigame?", + "mco.minigame.world.switch.title": "Switch Minigame", + "mco.minigame.world.title": "Switch Realm to Minigame", + "mco.news": "Realms news", + "mco.notification.dismiss": "Dismiss", + "mco.notification.transferSubscription.buttonText": "Transfer Now", + "mco.notification.transferSubscription.message": "Java Realms subscriptions are moving to the Microsoft Store. Do not let your subscription expire!\nTransfer now and get 30 days of Realms for free.\nGo to Profile on minecraft.net to transfer your subscription.", + "mco.notification.visitUrl.buttonText.default": "Open Link", + "mco.notification.visitUrl.message.default": "Please visit the link below", + "mco.onlinePlayers": "Online Players", + "mco.question": "Question", + "mco.reset.world.adventure": "Adventures", + "mco.reset.world.experience": "Experiences", + "mco.reset.world.generate": "New World", + "mco.reset.world.inspiration": "Inspiration", + "mco.reset.world.resetting.screen.title": "Resetting world...", + "mco.reset.world.seed": "Seed (Optional)", + "mco.reset.world.template": "World Templates", + "mco.reset.world.title": "Reset World", + "mco.reset.world.upload": "Upload world", + "mco.reset.world.warning": "This will replace the current world of your realm", + "mco.selectServer.buy": "Buy a Realm!", + "mco.selectServer.close": "Close", + "mco.selectServer.closed": "Closed realm", + "mco.selectServer.closeserver": "Close realm", + "mco.selectServer.configure": "Configure", + "mco.selectServer.configureRealm": "Configure realm", + "mco.selectServer.create": "Create Realm", + "mco.selectServer.create.subtitle": "Select what world to put on your new realm", + "mco.selectServer.expired": "Expired realm", + "mco.selectServer.expiredList": "Your subscription has expired", + "mco.selectServer.expiredRenew": "Renew", + "mco.selectServer.expiredSubscribe": "Subscribe", + "mco.selectServer.expiredTrial": "Your trial has ended", + "mco.selectServer.expires.day": "Expires in a day", + "mco.selectServer.expires.days": "Expires in %s days", + "mco.selectServer.expires.soon": "Expires soon", + "mco.selectServer.leave": "Leave Realm", + "mco.selectServer.loading": "Loading Realms List", + "mco.selectServer.mapOnlySupportedForVersion": "This map is unsupported in %s", + "mco.selectServer.minigame": "Minigame:", + "mco.selectServer.minigameName": "Minigame: %s", + "mco.selectServer.minigameNotSupportedInVersion": "Can't play this minigame in %s", + "mco.selectServer.noRealms": "You don't seem to have a Realm. Add a Realm to play together with your friends.", + "mco.selectServer.note": "Note:", + "mco.selectServer.open": "Open realm", + "mco.selectServer.openserver": "Open realm", + "mco.selectServer.play": "Play", + "mco.selectServer.popup": "Realms is a safe, simple way to enjoy an online Minecraft world with up to ten friends at a time. It supports loads of minigames and plenty of custom worlds! Only the owner of the realm needs to pay.", + "mco.selectServer.purchase": "Add Realm", + "mco.selectServer.trial": "Get a Trial!", + "mco.selectServer.uninitialized": "Click to start your new realm!", + "mco.snapshot.createSnapshotPopup.text": "You are about to create a free Snapshot Realm that will be paired with your paid Realms subscription. This new Snapshot Realm will be accessible for as long as the paid subscription is active. Your paid Realm will not be affected.", + "mco.snapshot.createSnapshotPopup.title": "Create Snapshot Realm?", + "mco.snapshot.creating": "Creating Snapshot Realm...", + "mco.snapshot.description": "Paired with \"%s\"", + "mco.snapshot.friendsRealm.downgrade": "You need to be on version %s to join this Realm", + "mco.snapshot.friendsRealm.upgrade": "%s needs to upgrade their Realm before you can play from this version", + "mco.snapshot.paired": "This Snapshot Realm is paired with \"%s\"", + "mco.snapshot.parent.tooltip": "Use the latest release of Minecraft to play on this Realm", + "mco.snapshot.start": "Start free Snapshot Realm", + "mco.snapshot.subscription.info": "This is a Snapshot Realm that is paired to the subscription of your Realm '%s'. It will stay active for as long as its paired Realm is.", + "mco.snapshot.tooltip": "Use Snapshot Realms to get a sneak peek at upcoming versions of Minecraft, which might include new features and other changes.\n\nYou can find your normal Realms in the release version of the game.", + "mco.snapshotRealmsPopup.message": "Realms are now available in Snapshots starting with Snapshot 23w41a. Every Realms subscription comes with a free Snapshot Realm that is separate from your normal Java Realm!", + "mco.snapshotRealmsPopup.title": "Realms now available in Snapshots", + "mco.snapshotRealmsPopup.urlText": "Learn More", + "mco.template.button.publisher": "Publisher", + "mco.template.button.select": "Select", + "mco.template.button.trailer": "Trailer", + "mco.template.default.name": "World template", + "mco.template.info.tooltip": "Publisher website", + "mco.template.name": "Template", + "mco.template.select.failure": "We couldn't retrieve the list of content for this category.\nPlease check your internet connection, or try again later.", + "mco.template.select.narrate.authors": "Authors: %s", + "mco.template.select.narrate.version": "version %s", + "mco.template.select.none": "Oops, it looks like this content category is currently empty.\nPlease check back later for new content, or if you're a creator,\n%s.", + "mco.template.select.none.linkTitle": "consider submitting something yourself", + "mco.template.title": "World templates", + "mco.template.title.minigame": "Minigames", + "mco.template.trailer.tooltip": "Map trailer", + "mco.terms.buttons.agree": "Agree", + "mco.terms.buttons.disagree": "Don't agree", + "mco.terms.sentence.1": "I agree to the Minecraft Realms", + "mco.terms.sentence.2": "Terms of Service", + "mco.terms.title": "Realms Terms of Service", + "mco.time.daysAgo": "%1$s day(s) ago", + "mco.time.hoursAgo": "%1$s hour(s) ago", + "mco.time.minutesAgo": "%1$s minute(s) ago", + "mco.time.now": "right now", + "mco.time.secondsAgo": "%1$s second(s) ago", + "mco.trial.message.line1": "Want to get your own realm?", + "mco.trial.message.line2": "Click here for more info!", + "mco.upload.button.name": "Upload", + "mco.upload.cancelled": "Upload cancelled", + "mco.upload.close.failure": "Could not close your realm, please try again later", + "mco.upload.done": "Upload done", + "mco.upload.entry.cheats": "%1$s, %2$s", + "mco.upload.entry.commands": "%1$s, %2$s", + "mco.upload.entry.id": "%1$s (%2$s)", + "mco.upload.failed": "Upload failed! (%s)", + "mco.upload.hardcore": "Hardcore worlds can't be uploaded!", + "mco.upload.percent": "%s %%", + "mco.upload.preparing": "Preparing your world", + "mco.upload.select.world.none": "No singleplayer worlds found!", + "mco.upload.select.world.subtitle": "Please select a singleplayer world to upload", + "mco.upload.select.world.title": "Upload World", + "mco.upload.size.failure.line1": "'%s' is too big!", + "mco.upload.size.failure.line2": "It is %s. The maximum allowed size is %s.", + "mco.upload.uploading": "Uploading '%s'", + "mco.upload.verifying": "Verifying your world", + "mco.version": "Version: %s", + "mco.warning": "Warning!", + "mco.worldSlot.minigame": "Minigame", + "menu.convertingLevel": "Converting world", + "menu.disconnect": "Disconnect", + "menu.feedback": "Feedback...", + "menu.feedback.title": "Feedback", + "menu.game": "Game Menu", + "menu.generatingLevel": "Generating world", + "menu.generatingTerrain": "Building terrain", + "menu.loadingForcedChunks": "Loading forced chunks for dimension %s", + "menu.loadingLevel": "Loading world", + "menu.modded": " (Modded)", + "menu.multiplayer": "Multiplayer", + "menu.online": "Minecraft Realms", + "menu.options": "Options...", + "menu.paused": "Game Paused", + "menu.playdemo": "Play Demo World", + "menu.playerReporting": "Player Reporting", + "menu.preparingSpawn": "Preparing spawn area: %s%%", + "menu.quit": "Quit Game", + "menu.reportBugs": "Report Bugs", + "menu.resetdemo": "Reset Demo World", + "menu.respawning": "Respawning", + "menu.returnToGame": "Back to Game", + "menu.returnToMenu": "Save and Quit to Title", + "menu.savingChunks": "Saving chunks", + "menu.savingLevel": "Saving world", + "menu.sendFeedback": "Give Feedback", + "menu.server_links": "Server Links...", + "menu.server_links.title": "Server Links", + "menu.shareToLan": "Open to LAN", + "menu.singleplayer": "Singleplayer", + "menu.working": "Working...", + "merchant.current_level": "Trader's current level", + "merchant.deprecated": "Villagers restock up to two times per day.", + "merchant.level.1": "Novice", + "merchant.level.2": "Apprentice", + "merchant.level.3": "Journeyman", + "merchant.level.4": "Expert", + "merchant.level.5": "Master", + "merchant.next_level": "Trader's next level", + "merchant.title": "%s - %s", + "merchant.trades": "Trades", + "mirror.front_back": "↑ ↓", + "mirror.left_right": "← →", + "mirror.none": "|", + "mount.onboard": "Press %1$s to Dismount", + "multiplayer.applyingPack": "Applying resource pack", + "multiplayer.disconnect.authservers_down": "Authentication servers are down. Please try again later, sorry!", + "multiplayer.disconnect.banned": "You are banned from this server", + "multiplayer.disconnect.banned_ip.expiration": "\nYour ban will be removed on %s", + "multiplayer.disconnect.banned_ip.reason": "Your IP address is banned from this server.\nReason: %s", + "multiplayer.disconnect.banned.expiration": "\nYour ban will be removed on %s", + "multiplayer.disconnect.banned.reason": "You are banned from this server.\nReason: %s", + "multiplayer.disconnect.chat_validation_failed": "Chat message validation failure", + "multiplayer.disconnect.duplicate_login": "You logged in from another location", + "multiplayer.disconnect.expired_public_key": "Expired profile public key. Check that your system time is synchronized, and try restarting your game.", + "multiplayer.disconnect.flying": "Flying is not enabled on this server", + "multiplayer.disconnect.generic": "Disconnected", + "multiplayer.disconnect.idling": "You have been idle for too long!", + "multiplayer.disconnect.illegal_characters": "Illegal characters in chat", + "multiplayer.disconnect.incompatible": "Incompatible client! Please use %s", + "multiplayer.disconnect.invalid_entity_attacked": "Attempting to attack an invalid entity", + "multiplayer.disconnect.invalid_packet": "Server sent an invalid packet", + "multiplayer.disconnect.invalid_player_data": "Invalid player data", + "multiplayer.disconnect.invalid_player_movement": "Invalid move player packet received", + "multiplayer.disconnect.invalid_public_key_signature": "Invalid signature for profile public key.\nTry restarting your game.", + "multiplayer.disconnect.invalid_public_key_signature.new": "Invalid signature for profile public key.\nTry restarting your game.", + "multiplayer.disconnect.invalid_vehicle_movement": "Invalid move vehicle packet received", + "multiplayer.disconnect.ip_banned": "You have been IP banned from this server", + "multiplayer.disconnect.kicked": "Kicked by an operator", + "multiplayer.disconnect.missing_tags": "Incomplete set of tags received from server.\nPlease contact server operator.", + "multiplayer.disconnect.name_taken": "That name is already taken", + "multiplayer.disconnect.not_whitelisted": "You are not white-listed on this server!", + "multiplayer.disconnect.out_of_order_chat": "Out-of-order chat packet received. Did your system time change?", + "multiplayer.disconnect.outdated_client": "Incompatible client! Please use %s", + "multiplayer.disconnect.outdated_server": "Incompatible client! Please use %s", + "multiplayer.disconnect.server_full": "The server is full!", + "multiplayer.disconnect.server_shutdown": "Server closed", + "multiplayer.disconnect.slow_login": "Took too long to log in", + "multiplayer.disconnect.too_many_pending_chats": "Too many unacknowledged chat messages", + "multiplayer.disconnect.transfers_disabled": "Server does not accept transfers", + "multiplayer.disconnect.unexpected_query_response": "Unexpected custom data from client", + "multiplayer.disconnect.unsigned_chat": "Received chat packet with missing or invalid signature.", + "multiplayer.disconnect.unverified_username": "Failed to verify username!", + "multiplayer.downloadingStats": "Retrieving statistics...", + "multiplayer.downloadingTerrain": "Loading terrain...", + "multiplayer.lan.server_found": "New server found: %s", + "multiplayer.message_not_delivered": "Can't deliver chat message, check server logs: %s", + "multiplayer.player.joined": "%s joined the game", + "multiplayer.player.joined.renamed": "%s (formerly known as %s) joined the game", + "multiplayer.player.left": "%s left the game", + "multiplayer.player.list.hp": "%shp", + "multiplayer.player.list.narration": "Online players: %s", + "multiplayer.requiredTexturePrompt.disconnect": "Server requires a custom resource pack", + "multiplayer.requiredTexturePrompt.line1": "This server requires the use of a custom resource pack.", + "multiplayer.requiredTexturePrompt.line2": "Rejecting this custom resource pack will disconnect you from this server.", + "multiplayer.socialInteractions.not_available": "Social Interactions are only available in Multiplayer worlds", + "multiplayer.status.and_more": "... and %s more ...", + "multiplayer.status.cancelled": "Cancelled", + "multiplayer.status.cannot_connect": "Can't connect to server", + "multiplayer.status.cannot_resolve": "Can't resolve hostname", + "multiplayer.status.finished": "Finished", + "multiplayer.status.incompatible": "Incompatible version!", + "multiplayer.status.motd.narration": "Message of the day: %s", + "multiplayer.status.no_connection": "(no connection)", + "multiplayer.status.old": "Old", + "multiplayer.status.online": "Online", + "multiplayer.status.ping": "%s ms", + "multiplayer.status.ping.narration": "Ping %s milliseconds", + "multiplayer.status.pinging": "Pinging...", + "multiplayer.status.player_count": "%s/%s", + "multiplayer.status.player_count.narration": "%s out of %s players online", + "multiplayer.status.quitting": "Quitting", + "multiplayer.status.request_handled": "Status request has been handled", + "multiplayer.status.unknown": "???", + "multiplayer.status.unrequested": "Received unrequested status", + "multiplayer.status.version.narration": "Server version: %s", + "multiplayer.stopSleeping": "Leave Bed", + "multiplayer.texturePrompt.failure.line1": "Server resource pack couldn't be applied", + "multiplayer.texturePrompt.failure.line2": "Any functionality that requires custom resources might not work as expected", + "multiplayer.texturePrompt.line1": "This server recommends the use of a custom resource pack.", + "multiplayer.texturePrompt.line2": "Would you like to download and install it automagically?", + "multiplayer.texturePrompt.serverPrompt": "%s\n\nMessage from server:\n%s", + "multiplayer.title": "Play Multiplayer", + "multiplayer.unsecureserver.toast": "Messages sent on this server may be modified and might not reflect the original message", + "multiplayer.unsecureserver.toast.title": "Chat messages can't be verified", + "multiplayerWarning.check": "Do not show this screen again", + "multiplayerWarning.header": "Caution: Third-Party Online Play", + "multiplayerWarning.message": "Caution: Online play is offered by third-party servers that are not owned, operated, or supervised by Mojang Studios or Microsoft. During online play, you may be exposed to unmoderated chat messages or other types of user-generated content that may not be suitable for everyone.", + "narration.button": "Button: %s", + "narration.button.usage.focused": "Press Enter to activate", + "narration.button.usage.hovered": "Left click to activate", + "narration.checkbox": "Checkbox: %s", + "narration.checkbox.usage.focused": "Press Enter to toggle", + "narration.checkbox.usage.hovered": "Left click to toggle", + "narration.component_list.usage": "Press Tab to navigate to next element", + "narration.cycle_button.usage.focused": "Press Enter to switch to %s", + "narration.cycle_button.usage.hovered": "Left click to switch to %s", + "narration.edit_box": "Edit box: %s", + "narration.recipe": "Recipe for %s", + "narration.recipe.usage": "Left click to select", + "narration.recipe.usage.more": "Right click to show more recipes", + "narration.selection.usage": "Press up and down buttons to move to another entry", + "narration.slider.usage.focused": "Press left or right keyboard buttons to change value", + "narration.slider.usage.hovered": "Drag slider to change value", + "narration.suggestion": "Selected suggestion %d out of %d: %s", + "narration.suggestion.tooltip": "Selected suggestion %d out of %d: %s (%s)", + "narration.suggestion.usage.cycle.fixed": "Press Tab to cycle to the next suggestion", + "narration.suggestion.usage.cycle.hidable": "Press Tab to cycle to the next suggestion, or Escape to leave suggestions", + "narration.suggestion.usage.fill.fixed": "Press Tab to use suggestion", + "narration.suggestion.usage.fill.hidable": "Press Tab to use suggestion, or Escape to leave suggestions", + "narration.tab_navigation.usage": "Press Ctrl and Tab to switch between tabs", + "narrator.button.accessibility": "Accessibility", + "narrator.button.difficulty_lock": "Difficulty lock", + "narrator.button.difficulty_lock.locked": "Locked", + "narrator.button.difficulty_lock.unlocked": "Unlocked", + "narrator.button.language": "Language", + "narrator.controls.bound": "%s is bound to %s", + "narrator.controls.reset": "Reset %s button", + "narrator.controls.unbound": "%s is not bound", + "narrator.joining": "Joining", + "narrator.loading": "Loading: %s", + "narrator.loading.done": "Done", + "narrator.position.list": "Selected list row %s out of %s", + "narrator.position.object_list": "Selected row element %s out of %s", + "narrator.position.screen": "Screen element %s out of %s", + "narrator.position.tab": "Selected tab %s out of %s", + "narrator.ready_to_play": "Ready to play", + "narrator.screen.title": "Title Screen", + "narrator.screen.usage": "Use mouse cursor or Tab button to select element", + "narrator.select": "Selected: %s", + "narrator.select.world": "Selected %s, last played: %s, %s, %s, version: %s", + "narrator.select.world_info": "Selected %s, last played: %s, %s", + "narrator.toast.disabled": "Narrator Disabled", + "narrator.toast.enabled": "Narrator Enabled", + "optimizeWorld.confirm.description": "This will attempt to optimize your world by making sure all data is stored in the most recent game format. This can take a very long time, depending on your world. Once done, your world may play faster but will no longer be compatible with older versions of the game. Are you sure you wish to proceed?", + "optimizeWorld.confirm.title": "Optimize World", + "optimizeWorld.info.converted": "Upgraded chunks: %s", + "optimizeWorld.info.skipped": "Skipped chunks: %s", + "optimizeWorld.info.total": "Total chunks: %s", + "optimizeWorld.progress.counter": "%s / %s", + "optimizeWorld.progress.percentage": "%s%%", + "optimizeWorld.stage.counting": "Counting chunks...", + "optimizeWorld.stage.failed": "Failed! :(", + "optimizeWorld.stage.finished": "Finishing up...", + "optimizeWorld.stage.finished.chunks": "Finishing up upgrading chunks...", + "optimizeWorld.stage.finished.entities": "Finishing up upgrading entities...", + "optimizeWorld.stage.finished.poi": "Finishing up upgrading points of interest...", + "optimizeWorld.stage.upgrading": "Upgrading all chunks...", + "optimizeWorld.stage.upgrading.chunks": "Upgrading all chunks...", + "optimizeWorld.stage.upgrading.entities": "Upgrading all entities...", + "optimizeWorld.stage.upgrading.poi": "Upgrading all points of interest...", + "optimizeWorld.title": "Optimizing World '%s'", + "options.accessibility": "Accessibility Settings...", + "options.accessibility.high_contrast": "High Contrast", + "options.accessibility.high_contrast.error.tooltip": "High Contrast resource pack is not available.", + "options.accessibility.high_contrast.tooltip": "Enhances the contrast of UI elements.", + "options.accessibility.link": "Accessibility Guide", + "options.accessibility.menu_background_blurriness": "Menu Background Blur", + "options.accessibility.menu_background_blurriness.tooltip": "Changes the blurriness of menu backgrounds.", + "options.accessibility.narrator_hotkey": "Narrator Hotkey", + "options.accessibility.narrator_hotkey.mac.tooltip": "Allows the Narrator to be toggled on and off with 'Cmd+B'.", + "options.accessibility.narrator_hotkey.tooltip": "Allows the Narrator to be toggled on and off with 'Ctrl+B'.", + "options.accessibility.panorama_speed": "Panorama Scroll Speed", + "options.accessibility.text_background": "Text Background", + "options.accessibility.text_background_opacity": "Text Background Opacity", + "options.accessibility.text_background.chat": "Chat", + "options.accessibility.text_background.everywhere": "Everywhere", + "options.accessibility.title": "Accessibility Settings", + "options.allowServerListing": "Allow Server Listings", + "options.allowServerListing.tooltip": "Servers may list online players as part of their public status.\nWith this option off your name will not show up in such lists.", + "options.ao": "Smooth Lighting", + "options.ao.max": "Maximum", + "options.ao.min": "Minimum", + "options.ao.off": "OFF", + "options.attack.crosshair": "Crosshair", + "options.attack.hotbar": "Hotbar", + "options.attackIndicator": "Attack Indicator", + "options.audioDevice": "Device", + "options.audioDevice.default": "System Default", + "options.autoJump": "Auto-Jump", + "options.autosaveIndicator": "Autosave Indicator", + "options.autoSuggestCommands": "Command Suggestions", + "options.biomeBlendRadius": "Biome Blend", + "options.biomeBlendRadius.1": "OFF (Fastest)", + "options.biomeBlendRadius.3": "3x3 (Fast)", + "options.biomeBlendRadius.5": "5x5 (Normal)", + "options.biomeBlendRadius.7": "7x7 (High)", + "options.biomeBlendRadius.9": "9x9 (Very High)", + "options.biomeBlendRadius.11": "11x11 (Extreme)", + "options.biomeBlendRadius.13": "13x13 (Showoff)", + "options.biomeBlendRadius.15": "15x15 (Maximum)", + "options.chat": "Chat Settings...", + "options.chat.color": "Colors", + "options.chat.delay": "Chat Delay: %s seconds", + "options.chat.delay_none": "Chat Delay: None", + "options.chat.height.focused": "Focused Height", + "options.chat.height.unfocused": "Unfocused Height", + "options.chat.line_spacing": "Line Spacing", + "options.chat.links": "Web Links", + "options.chat.links.prompt": "Prompt on Links", + "options.chat.opacity": "Chat Text Opacity", + "options.chat.scale": "Chat Text Size", + "options.chat.title": "Chat Settings", + "options.chat.visibility": "Chat", + "options.chat.visibility.full": "Shown", + "options.chat.visibility.hidden": "Hidden", + "options.chat.visibility.system": "Commands Only", + "options.chat.width": "Width", + "options.chunks": "%s chunks", + "options.clouds.fancy": "Fancy", + "options.clouds.fast": "Fast", + "options.controls": "Controls...", + "options.credits_and_attribution": "Credits & Attribution...", + "options.customizeTitle": "Customize World Settings", + "options.damageTiltStrength": "Damage Tilt", + "options.damageTiltStrength.tooltip": "The amount of camera shake caused by being hurt.", + "options.darkMojangStudiosBackgroundColor": "Monochrome Logo", + "options.darkMojangStudiosBackgroundColor.tooltip": "Changes the Mojang Studios loading screen background color to black.", + "options.darknessEffectScale": "Darkness Pulsing", + "options.darknessEffectScale.tooltip": "Controls how much the Darkness effect pulses when a Warden or Sculk Shrieker gives it to you.", + "options.difficulty": "Difficulty", + "options.difficulty.easy": "Easy", + "options.difficulty.easy.info": "Hostile mobs spawn but deal less damage. Hunger bar depletes and drains health down to 5 hearts.", + "options.difficulty.hard": "Hard", + "options.difficulty.hard.info": "Hostile mobs spawn and deal more damage. Hunger bar depletes and drains all health.", + "options.difficulty.hardcore": "Hardcore", + "options.difficulty.normal": "Normal", + "options.difficulty.normal.info": "Hostile mobs spawn and deal standard damage. Hunger bar depletes and drains health down to half a heart.", + "options.difficulty.online": "Server Difficulty", + "options.difficulty.peaceful": "Peaceful", + "options.difficulty.peaceful.info": "No hostile mobs and only some neutral mobs spawn. Hunger bar doesn't deplete and health replenishes over time.", + "options.directionalAudio": "Directional Audio", + "options.directionalAudio.off.tooltip": "Classic Stereo sound.", + "options.directionalAudio.on.tooltip": "Uses HRTF-based directional audio to improve the simulation of 3D sound. Requires HRTF compatible audio hardware, and is best experienced with headphones.", + "options.discrete_mouse_scroll": "Discrete Scrolling", + "options.entityDistanceScaling": "Entity Distance", + "options.entityShadows": "Entity Shadows", + "options.font": "Font Settings...", + "options.font.title": "Font Settings", + "options.forceUnicodeFont": "Force Unicode Font", + "options.fov": "FOV", + "options.fov.max": "Quake Pro", + "options.fov.min": "Normal", + "options.fovEffectScale": "FOV Effects", + "options.fovEffectScale.tooltip": "Controls how much the field of view can change with gameplay effects.", + "options.framerate": "%s fps", + "options.framerateLimit": "Max Framerate", + "options.framerateLimit.max": "Unlimited", + "options.fullscreen": "Fullscreen", + "options.fullscreen.current": "Current", + "options.fullscreen.entry": "%sx%s@%s (%sbit)", + "options.fullscreen.resolution": "Fullscreen Resolution", + "options.fullscreen.unavailable": "Setting unavailable", + "options.gamma": "Brightness", + "options.gamma.default": "Default", + "options.gamma.max": "Bright", + "options.gamma.min": "Moody", + "options.generic_value": "%s: %s", + "options.glintSpeed": "Glint Speed", + "options.glintSpeed.tooltip": "Controls how fast the visual glint shimmers across enchanted items.", + "options.glintStrength": "Glint Strength", + "options.glintStrength.tooltip": "Controls how transparent the visual glint is on enchanted items.", + "options.graphics": "Graphics", + "options.graphics.fabulous": "Fabulous!", + "options.graphics.fabulous.tooltip": "%s graphics uses screen shaders for drawing weather, clouds, and particles behind translucent blocks and water.\nThis may severely impact performance for portable devices and 4K displays.", + "options.graphics.fancy": "Fancy", + "options.graphics.fancy.tooltip": "Fancy graphics balances performance and quality for the majority of machines.\nWeather, clouds, and particles may not appear behind translucent blocks or water.", + "options.graphics.fast": "Fast", + "options.graphics.fast.tooltip": "Fast graphics reduces the amount of visible rain and snow.\nTransparency effects are disabled for various blocks such as leaves.", + "options.graphics.warning.accept": "Continue Without Support", + "options.graphics.warning.cancel": "Take Me Back", + "options.graphics.warning.message": "Your graphics device is detected as unsupported for the %s graphics option.\n\nYou may ignore this and continue, however support will not be provided for your device if you choose to use %s graphics.", + "options.graphics.warning.renderer": "Renderer detected: [%s]", + "options.graphics.warning.title": "Graphics Device Unsupported", + "options.graphics.warning.vendor": "Vendor detected: [%s]", + "options.graphics.warning.version": "OpenGL Version detected: [%s]", + "options.guiScale": "GUI Scale", + "options.guiScale.auto": "Auto", + "options.hidden": "Hidden", + "options.hideLightningFlashes": "Hide Lightning Flashes", + "options.hideLightningFlashes.tooltip": "Prevents Lightning Bolts from making the sky flash. The bolts themselves will still be visible.", + "options.hideMatchedNames": "Hide Matched Names", + "options.hideMatchedNames.tooltip": "3rd-party Servers may send chat messages in non-standard formats.\nWith this option on, hidden players will be matched based on chat sender names.", + "options.hideSplashTexts": "Hide Splash Texts", + "options.hideSplashTexts.tooltip": "Hides the yellow splash text in the main menu.", + "options.invertMouse": "Invert Mouse", + "options.japaneseGlyphVariants": "Japanese Glyph Variants", + "options.japaneseGlyphVariants.tooltip": "Uses Japanese variants of CJK characters in the default font.", + "options.key.hold": "Hold", + "options.key.toggle": "Toggle", + "options.language": "Language...", + "options.language.title": "Language", + "options.languageAccuracyWarning": "(Language translations may not be 100%% accurate)", + "options.languageWarning": "Language translations may not be 100%% accurate", + "options.mainHand": "Main Hand", + "options.mainHand.left": "Left", + "options.mainHand.right": "Right", + "options.mipmapLevels": "Mipmap Levels", + "options.modelPart.cape": "Cape", + "options.modelPart.hat": "Hat", + "options.modelPart.jacket": "Jacket", + "options.modelPart.left_pants_leg": "Left Pant Leg", + "options.modelPart.left_sleeve": "Left Sleeve", + "options.modelPart.right_pants_leg": "Right Pant Leg", + "options.modelPart.right_sleeve": "Right Sleeve", + "options.mouse_settings": "Mouse Settings...", + "options.mouse_settings.title": "Mouse Settings", + "options.mouseWheelSensitivity": "Scroll Sensitivity", + "options.multiplayer.title": "Multiplayer Settings...", + "options.multiplier": "%sx", + "options.narrator": "Narrator", + "options.narrator.all": "Narrates All", + "options.narrator.chat": "Narrates Chat", + "options.narrator.notavailable": "Not Available", + "options.narrator.off": "OFF", + "options.narrator.system": "Narrates System", + "options.notifications.display_time": "Notification Time", + "options.notifications.display_time.tooltip": "Affects the length of time that all notifications stay visible on the screen.", + "options.off": "OFF", + "options.off.composed": "%s: OFF", + "options.on": "ON", + "options.on.composed": "%s: ON", + "options.online": "Online...", + "options.online.title": "Online Options", + "options.onlyShowSecureChat": "Only Show Secure Chat", + "options.onlyShowSecureChat.tooltip": "Only display messages from other players that can be verified to have been sent by that player, and have not been modified.", + "options.operatorItemsTab": "Operator Items Tab", + "options.particles": "Particles", + "options.particles.all": "All", + "options.particles.decreased": "Decreased", + "options.particles.minimal": "Minimal", + "options.percent_add_value": "%s: +%s%%", + "options.percent_value": "%s: %s%%", + "options.pixel_value": "%s: %spx", + "options.prioritizeChunkUpdates": "Chunk Builder", + "options.prioritizeChunkUpdates.byPlayer": "Semi Blocking", + "options.prioritizeChunkUpdates.byPlayer.tooltip": "Some actions within a chunk will recompile the chunk immediately. This includes block placing & destroying.", + "options.prioritizeChunkUpdates.nearby": "Fully Blocking", + "options.prioritizeChunkUpdates.nearby.tooltip": "Nearby chunks are always compiled immediately. This may impact game performance when blocks are placed or destroyed.", + "options.prioritizeChunkUpdates.none": "Threaded", + "options.prioritizeChunkUpdates.none.tooltip": "Nearby chunks are compiled in parallel threads. This may result in brief visual holes when blocks are destroyed.", + "options.rawMouseInput": "Raw Input", + "options.realmsNotifications": "Realms News & Invites", + "options.realmsNotifications.tooltip": "Fetches Realms news and invites in the title screen and displays their respective icon on the Realms button.", + "options.reducedDebugInfo": "Reduced Debug Info", + "options.renderClouds": "Clouds", + "options.renderDistance": "Render Distance", + "options.resourcepack": "Resource Packs...", + "options.screenEffectScale": "Distortion Effects", + "options.screenEffectScale.tooltip": "Strength of nausea and Nether portal screen distortion effects.\nAt lower values, the nausea effect is replaced with a green overlay.", + "options.sensitivity": "Sensitivity", + "options.sensitivity.max": "HYPERSPEED!!!", + "options.sensitivity.min": "*yawn*", + "options.showSubtitles": "Show Subtitles", + "options.simulationDistance": "Simulation Distance", + "options.skinCustomisation": "Skin Customization...", + "options.skinCustomisation.title": "Skin Customization", + "options.sounds": "Music & Sounds...", + "options.sounds.title": "Music & Sound Options", + "options.telemetry": "Telemetry Data...", + "options.telemetry.button": "Data Collection", + "options.telemetry.button.tooltip": "\"%s\" includes only the required data.\n\"%s\" includes optional, as well as the required data.", + "options.telemetry.disabled": "Telemetry is disabled.", + "options.telemetry.state.all": "All", + "options.telemetry.state.minimal": "Minimal", + "options.telemetry.state.none": "None", + "options.title": "Options", + "options.touchscreen": "Touchscreen Mode", + "options.video": "Video Settings...", + "options.videoTitle": "Video Settings", + "options.viewBobbing": "View Bobbing", + "options.visible": "Shown", + "options.vsync": "VSync", + "outOfMemory.message": "Minecraft has run out of memory.\n\nThis could be caused by a bug in the game or by the Java Virtual Machine not being allocated enough memory.\n\nTo prevent world corruption, the current game has quit. We've tried to free up enough memory to let you go back to the main menu and back to playing, but this may not have worked.\n\nPlease restart the game if you see this message again.", + "outOfMemory.title": "Out of memory!", + "pack.available.title": "Available", + "pack.copyFailure": "Failed to copy packs", + "pack.dropConfirm": "Do you want to add the following packs to Minecraft?", + "pack.dropInfo": "Drag and drop files into this window to add packs", + "pack.dropRejected.message": "The following entries were not valid packs and were not copied:\n %s", + "pack.dropRejected.title": "Non-pack entries", + "pack.folderInfo": "(Place pack files here)", + "pack.incompatible": "Incompatible", + "pack.incompatible.confirm.new": "This pack was made for a newer version of Minecraft and may not work correctly.", + "pack.incompatible.confirm.old": "This pack was made for an older version of Minecraft and may no longer work correctly.", + "pack.incompatible.confirm.title": "Are you sure you want to load this pack?", + "pack.incompatible.new": "(Made for a newer version of Minecraft)", + "pack.incompatible.old": "(Made for an older version of Minecraft)", + "pack.nameAndSource": "%s (%s)", + "pack.openFolder": "Open Pack Folder", + "pack.selected.title": "Selected", + "pack.source.builtin": "built-in", + "pack.source.feature": "feature", + "pack.source.local": "local", + "pack.source.server": "server", + "pack.source.world": "world", + "painting.dimensions": "%sx%s", + "painting.minecraft.alban.author": "Kristoffer Zetterstrand", + "painting.minecraft.alban.title": "Albanian", + "painting.minecraft.aztec.author": "Kristoffer Zetterstrand", + "painting.minecraft.aztec.title": "de_aztec", + "painting.minecraft.aztec2.author": "Kristoffer Zetterstrand", + "painting.minecraft.aztec2.title": "de_aztec", + "painting.minecraft.backyard.author": "Kristoffer Zetterstrand", + "painting.minecraft.backyard.title": "Backyard", + "painting.minecraft.baroque.author": "Sarah Boeving", + "painting.minecraft.baroque.title": "Baroque", + "painting.minecraft.bomb.author": "Kristoffer Zetterstrand", + "painting.minecraft.bomb.title": "Target Successfully Bombed", + "painting.minecraft.bouquet.author": "Kristoffer Zetterstrand", + "painting.minecraft.bouquet.title": "Bouquet", + "painting.minecraft.burning_skull.author": "Kristoffer Zetterstrand", + "painting.minecraft.burning_skull.title": "Skull On Fire", + "painting.minecraft.bust.author": "Kristoffer Zetterstrand", + "painting.minecraft.bust.title": "Bust", + "painting.minecraft.cavebird.author": "Kristoffer Zetterstrand", + "painting.minecraft.cavebird.title": "Cavebird", + "painting.minecraft.changing.author": "Kristoffer Zetterstrand", + "painting.minecraft.changing.title": "Changing", + "painting.minecraft.cotan.author": "Kristoffer Zetterstrand", + "painting.minecraft.cotan.title": "Cotán", + "painting.minecraft.courbet.author": "Kristoffer Zetterstrand", + "painting.minecraft.courbet.title": "Bonjour Monsieur Courbet", + "painting.minecraft.creebet.author": "Kristoffer Zetterstrand", + "painting.minecraft.creebet.title": "Creebet", + "painting.minecraft.donkey_kong.author": "Kristoffer Zetterstrand", + "painting.minecraft.donkey_kong.title": "Kong", + "painting.minecraft.earth.author": "Mojang", + "painting.minecraft.earth.title": "Earth", + "painting.minecraft.endboss.author": "Kristoffer Zetterstrand", + "painting.minecraft.endboss.title": "Endboss", + "painting.minecraft.fern.author": "Kristoffer Zetterstrand", + "painting.minecraft.fern.title": "Fern", + "painting.minecraft.fighters.author": "Kristoffer Zetterstrand", + "painting.minecraft.fighters.title": "Fighters", + "painting.minecraft.finding.author": "Kristoffer Zetterstrand", + "painting.minecraft.finding.title": "Finding", + "painting.minecraft.fire.author": "Mojang", + "painting.minecraft.fire.title": "Fire", + "painting.minecraft.graham.author": "Kristoffer Zetterstrand", + "painting.minecraft.graham.title": "Graham", + "painting.minecraft.humble.author": "Sarah Boeving", + "painting.minecraft.humble.title": "Humble", + "painting.minecraft.kebab.author": "Kristoffer Zetterstrand", + "painting.minecraft.kebab.title": "Kebab med tre pepperoni", + "painting.minecraft.lowmist.author": "Kristoffer Zetterstrand", + "painting.minecraft.lowmist.title": "Lowmist", + "painting.minecraft.match.author": "Kristoffer Zetterstrand", + "painting.minecraft.match.title": "Match", + "painting.minecraft.meditative.author": "Sarah Boeving", + "painting.minecraft.meditative.title": "Meditative", + "painting.minecraft.orb.author": "Kristoffer Zetterstrand", + "painting.minecraft.orb.title": "Orb", + "painting.minecraft.owlemons.author": "Kristoffer Zetterstrand", + "painting.minecraft.owlemons.title": "Owlemons", + "painting.minecraft.passage.author": "Kristoffer Zetterstrand", + "painting.minecraft.passage.title": "Passage", + "painting.minecraft.pigscene.author": "Kristoffer Zetterstrand", + "painting.minecraft.pigscene.title": "Pigscene", + "painting.minecraft.plant.author": "Kristoffer Zetterstrand", + "painting.minecraft.plant.title": "Paradisträd", + "painting.minecraft.pointer.author": "Kristoffer Zetterstrand", + "painting.minecraft.pointer.title": "Pointer", + "painting.minecraft.pond.author": "Kristoffer Zetterstrand", + "painting.minecraft.pond.title": "Pond", + "painting.minecraft.pool.author": "Kristoffer Zetterstrand", + "painting.minecraft.pool.title": "The Pool", + "painting.minecraft.prairie_ride.author": "Sarah Boeving", + "painting.minecraft.prairie_ride.title": "Prairie Ride", + "painting.minecraft.sea.author": "Kristoffer Zetterstrand", + "painting.minecraft.sea.title": "Seaside", + "painting.minecraft.skeleton.author": "Kristoffer Zetterstrand", + "painting.minecraft.skeleton.title": "Mortal Coil", + "painting.minecraft.skull_and_roses.author": "Kristoffer Zetterstrand", + "painting.minecraft.skull_and_roses.title": "Skull and Roses", + "painting.minecraft.stage.author": "Kristoffer Zetterstrand", + "painting.minecraft.stage.title": "The Stage Is Set", + "painting.minecraft.sunflowers.author": "Kristoffer Zetterstrand", + "painting.minecraft.sunflowers.title": "Sunflowers", + "painting.minecraft.sunset.author": "Kristoffer Zetterstrand", + "painting.minecraft.sunset.title": "sunset_dense", + "painting.minecraft.tides.author": "Kristoffer Zetterstrand", + "painting.minecraft.tides.title": "Tides", + "painting.minecraft.unpacked.author": "Sarah Boeving", + "painting.minecraft.unpacked.title": "Unpacked", + "painting.minecraft.void.author": "Kristoffer Zetterstrand", + "painting.minecraft.void.title": "The void", + "painting.minecraft.wanderer.author": "Kristoffer Zetterstrand", + "painting.minecraft.wanderer.title": "Wanderer", + "painting.minecraft.wasteland.author": "Kristoffer Zetterstrand", + "painting.minecraft.wasteland.title": "Wasteland", + "painting.minecraft.water.author": "Mojang", + "painting.minecraft.water.title": "Water", + "painting.minecraft.wind.author": "Mojang", + "painting.minecraft.wind.title": "Wind", + "painting.minecraft.wither.author": "Mojang", + "painting.minecraft.wither.title": "Wither", + "painting.random": "Random variant", + "parsing.bool.expected": "Expected boolean", + "parsing.bool.invalid": "Invalid boolean, expected 'true' or 'false' but found '%s'", + "parsing.double.expected": "Expected double", + "parsing.double.invalid": "Invalid double '%s'", + "parsing.expected": "Expected '%s'", + "parsing.float.expected": "Expected float", + "parsing.float.invalid": "Invalid float '%s'", + "parsing.int.expected": "Expected integer", + "parsing.int.invalid": "Invalid integer '%s'", + "parsing.long.expected": "Expected long", + "parsing.long.invalid": "Invalid long '%s'", + "parsing.quote.escape": "Invalid escape sequence '\\%s' in quoted string", + "parsing.quote.expected.end": "Unclosed quoted string", + "parsing.quote.expected.start": "Expected quote to start a string", + "particle.invalidOptions": "Can't parse particle options: %s", + "particle.notFound": "Unknown particle: %s", + "permissions.requires.entity": "An entity is required to run this command here", + "permissions.requires.player": "A player is required to run this command here", + "potion.potency.0": "", + "potion.potency.1": "II", + "potion.potency.2": "III", + "potion.potency.3": "IV", + "potion.potency.4": "V", + "potion.potency.5": "VI", + "potion.whenDrank": "When Applied:", + "potion.withAmplifier": "%s %s", + "potion.withDuration": "%s (%s)", + "predicate.unknown": "Unknown predicate: %s", + "quickplay.error.invalid_identifier": "Could not find world with the provided identifier", + "quickplay.error.realm_connect": "Could not connect to Realm", + "quickplay.error.realm_permission": "Lacking permission to connect to this Realm", + "quickplay.error.title": "Failed to Quick Play", + "realms.missing.module.error.text": "Realms could not be opened right now, please try again later", + "realms.missing.snapshot.error.text": "Realms is currently not supported in snapshots", + "recipe.notFound": "Unknown recipe: %s", + "recipe.toast.description": "Check your recipe book", + "recipe.toast.title": "New Recipes Unlocked!", + "record.nowPlaying": "Now Playing: %s", + "recover_world.bug_tracker": "Report a Bug", + "recover_world.button": "Attempt to Recover", + "recover_world.done.failed": "Failed to recover from previous state.", + "recover_world.done.success": "Recovery was successful!", + "recover_world.done.title": "Recovery done", + "recover_world.issue.missing_file": "Missing file", + "recover_world.issue.none": "No issues", + "recover_world.message": "The following issues occurred while trying to read world folder \"%s\".\nIt might be possible to restore the world from an older state or you can report this issue on the bug tracker.", + "recover_world.no_fallback": "No state to recover from available", + "recover_world.restore": "Attempt to Restore", + "recover_world.restoring": "Attempting to restore world...", + "recover_world.state_entry": "State from %s: ", + "recover_world.state_entry.unknown": "unknown", + "recover_world.title": "Failed to load world", + "recover_world.warning": "Failed to load world summary", + "resourcePack.broken_assets": "BROKEN ASSETS DETECTED", + "resourcepack.downloading": "Downloading Resource Pack", + "resourcePack.high_contrast.name": "High Contrast", + "resourcePack.load_fail": "Resource reload failed", + "resourcePack.programmer_art.name": "Programmer Art", + "resourcepack.progress": "Downloading file (%s MB)...", + "resourcepack.requesting": "Making Request...", + "resourcePack.server.name": "World Specific Resources", + "resourcePack.title": "Select Resource Packs", + "resourcePack.vanilla.description": "The default look and feel of Minecraft", + "resourcePack.vanilla.name": "Default", + "screenshot.failure": "Couldn't save screenshot: %s", + "screenshot.success": "Saved screenshot as %s", + "selectServer.add": "Add Server", + "selectServer.defaultName": "Minecraft Server", + "selectServer.delete": "Delete", + "selectServer.deleteButton": "Delete", + "selectServer.deleteQuestion": "Are you sure you want to remove this server?", + "selectServer.deleteWarning": "'%s' will be lost forever! (A long time!)", + "selectServer.direct": "Direct Connection", + "selectServer.edit": "Edit", + "selectServer.hiddenAddress": "(Hidden)", + "selectServer.refresh": "Refresh", + "selectServer.select": "Join Server", + "selectServer.title": "Select Server", + "selectWorld.access_failure": "Failed to access world", + "selectWorld.allowCommands": "Allow Cheats", + "selectWorld.allowCommands.info": "Commands like /gamemode, /experience", + "selectWorld.allowCommands.new": "Allow Commands", + "selectWorld.backupEraseCache": "Erase Cached Data", + "selectWorld.backupJoinConfirmButton": "Create Backup and Load", + "selectWorld.backupJoinSkipButton": "I know what I'm doing!", + "selectWorld.backupQuestion.customized": "Customized worlds are no longer supported", + "selectWorld.backupQuestion.downgrade": "Downgrading a world is not supported", + "selectWorld.backupQuestion.experimental": "Worlds using Experimental Settings are not supported", + "selectWorld.backupQuestion.snapshot": "Do you really want to load this world?", + "selectWorld.backupWarning.customized": "Unfortunately, we do not support customized worlds in this version of Minecraft. We can still load this world and keep everything the way it was, but any newly generated terrain will no longer be customized. We're sorry for the inconvenience!", + "selectWorld.backupWarning.downgrade": "This world was last played in version %s; you are on version %s. Downgrading a world could cause corruption - we cannot guarantee that it will load or work. If you still want to continue, please make a backup.", + "selectWorld.backupWarning.experimental": "This world uses experimental settings that could stop working at any time. We cannot guarantee it will load or work. Here be dragons!", + "selectWorld.backupWarning.snapshot": "This world was last played in version %s; you are on version %s. Please make a backup in case you experience world corruptions.", + "selectWorld.bonusItems": "Bonus Chest", + "selectWorld.cheats": "Cheats", + "selectWorld.commands": "Commands", + "selectWorld.conversion": "Must be converted!", + "selectWorld.conversion.tooltip": "This world must be opened in an older version (like 1.6.4) to be safely converted", + "selectWorld.create": "Create New World", + "selectWorld.createDemo": "Play New Demo World", + "selectWorld.customizeType": "Customize", + "selectWorld.data_read": "Reading world data...", + "selectWorld.dataPacks": "Data Packs", + "selectWorld.delete": "Delete", + "selectWorld.delete_failure": "Failed to delete world", + "selectWorld.deleteButton": "Delete", + "selectWorld.deleteQuestion": "Are you sure you want to delete this world?", + "selectWorld.deleteWarning": "'%s' will be lost forever! (A long time!)", + "selectWorld.edit": "Edit", + "selectWorld.edit.backup": "Make Backup", + "selectWorld.edit.backupCreated": "Backed up: %s", + "selectWorld.edit.backupFailed": "Backup failed", + "selectWorld.edit.backupFolder": "Open Backups Folder", + "selectWorld.edit.backupSize": "size: %s MB", + "selectWorld.edit.export_worldgen_settings": "Export World Generation Settings", + "selectWorld.edit.export_worldgen_settings.failure": "Export failed", + "selectWorld.edit.export_worldgen_settings.success": "Exported", + "selectWorld.edit.openFolder": "Open World Folder", + "selectWorld.edit.optimize": "Optimize World", + "selectWorld.edit.resetIcon": "Reset Icon", + "selectWorld.edit.save": "Save", + "selectWorld.edit.title": "Edit World", + "selectWorld.enterName": "World Name", + "selectWorld.enterSeed": "Seed for the world generator", + "selectWorld.experimental": "Experimental", + "selectWorld.experimental.details": "Details", + "selectWorld.experimental.details.entry": "Required experimental features: %s", + "selectWorld.experimental.details.title": "Experimental Feature Requirements", + "selectWorld.experimental.message": "Be careful!\nThis configuration requires features that are still under development. Your world might crash, break, or not work with future updates.", + "selectWorld.experimental.title": "Experimental Features Warning", + "selectWorld.experiments": "Experiments", + "selectWorld.experiments.info": "Experiments are potential new features. Be careful as things might break. Experiments can't be turned off after world creation.", + "selectWorld.futureworld.error.text": "Something went wrong while trying to load a world from a future version. This was a risky operation to begin with; sorry it didn't work.", + "selectWorld.futureworld.error.title": "An error occurred!", + "selectWorld.gameMode": "Game Mode", + "selectWorld.gameMode.adventure": "Adventure", + "selectWorld.gameMode.adventure.info": "Same as Survival Mode, but blocks can't be added or removed.", + "selectWorld.gameMode.adventure.line1": "Same as Survival Mode, but blocks can't", + "selectWorld.gameMode.adventure.line2": "be added or removed", + "selectWorld.gameMode.creative": "Creative", + "selectWorld.gameMode.creative.info": "Create, build, and explore without limits. You can fly, have endless materials, and can't be hurt by monsters.", + "selectWorld.gameMode.creative.line1": "Unlimited resources, free flying and", + "selectWorld.gameMode.creative.line2": "destroy blocks instantly", + "selectWorld.gameMode.hardcore": "Hardcore", + "selectWorld.gameMode.hardcore.info": "Survival Mode locked to 'Hard' difficulty. You can't respawn if you die.", + "selectWorld.gameMode.hardcore.line1": "Same as Survival Mode, locked at hardest", + "selectWorld.gameMode.hardcore.line2": "difficulty, and one life only", + "selectWorld.gameMode.spectator": "Spectator", + "selectWorld.gameMode.spectator.info": "You can look but don't touch.", + "selectWorld.gameMode.spectator.line1": "You can look but don't touch", + "selectWorld.gameMode.spectator.line2": "", + "selectWorld.gameMode.survival": "Survival", + "selectWorld.gameMode.survival.info": "Explore a mysterious world where you build, collect, craft, and fight monsters.", + "selectWorld.gameMode.survival.line1": "Search for resources, craft, gain", + "selectWorld.gameMode.survival.line2": "levels, health and hunger", + "selectWorld.gameRules": "Game Rules", + "selectWorld.import_worldgen_settings": "Import Settings", + "selectWorld.import_worldgen_settings.failure": "Error importing settings", + "selectWorld.import_worldgen_settings.select_file": "Select settings file (.json)", + "selectWorld.incompatible_series": "Created by an incompatible version", + "selectWorld.incompatible.description": "This world cannot be opened in this version.\nIt was last played in version %s.", + "selectWorld.incompatible.info": "Incompatible version: %s", + "selectWorld.incompatible.title": "Incompatible version", + "selectWorld.incompatible.tooltip": "This world cannot be opened because it was created by an incompatible version.", + "selectWorld.load_folder_access": "Unable to read or access folder where game worlds are saved!", + "selectWorld.loading_list": "Loading World List", + "selectWorld.locked": "Locked by another running instance of Minecraft", + "selectWorld.mapFeatures": "Generate Structures", + "selectWorld.mapFeatures.info": "Villages, Shipwrecks, etc.", + "selectWorld.mapType": "World Type", + "selectWorld.mapType.normal": "Normal", + "selectWorld.moreWorldOptions": "More World Options...", + "selectWorld.newWorld": "New World", + "selectWorld.recreate": "Re-Create", + "selectWorld.recreate.customized.text": "Customized worlds are no longer supported in this version of Minecraft. We can try to recreate it with the same seed and properties, but any terrain customizations will be lost. We're sorry for the inconvenience!", + "selectWorld.recreate.customized.title": "Customized worlds are no longer supported", + "selectWorld.recreate.error.text": "Something went wrong while trying to recreate a world.", + "selectWorld.recreate.error.title": "An error occurred!", + "selectWorld.resource_load": "Preparing Resources...", + "selectWorld.resultFolder": "Will be saved in:", + "selectWorld.search": "search for worlds", + "selectWorld.seedInfo": "Leave blank for a random seed", + "selectWorld.select": "Play Selected World", + "selectWorld.targetFolder": "Save folder: %s", + "selectWorld.title": "Select World", + "selectWorld.tooltip.fromNewerVersion1": "World was saved in a newer version,", + "selectWorld.tooltip.fromNewerVersion2": "loading this world could cause problems!", + "selectWorld.tooltip.snapshot1": "Don't forget to back up this world", + "selectWorld.tooltip.snapshot2": "before you load it in this snapshot.", + "selectWorld.unable_to_load": "Unable to load worlds", + "selectWorld.version": "Version:", + "selectWorld.versionJoinButton": "Load Anyway", + "selectWorld.versionQuestion": "Do you really want to load this world?", + "selectWorld.versionUnknown": "unknown", + "selectWorld.versionWarning": "This world was last played in version %s and loading it in this version could cause corruption!", + "selectWorld.warning.deprecated.question": "Some features used are deprecated and will stop working in the future. Do you wish to proceed?", + "selectWorld.warning.deprecated.title": "Warning! These settings are using deprecated features", + "selectWorld.warning.experimental.question": "These settings are experimental and could one day stop working. Do you wish to proceed?", + "selectWorld.warning.experimental.title": "Warning! These settings are using experimental features", + "selectWorld.warning.lowDiskSpace.description": "There is not much space left on your device.\nRunning out of disk space while in game can lead to your world being damaged.", + "selectWorld.warning.lowDiskSpace.title": "Warning! Low disk space!", + "selectWorld.world": "World", + "sign.edit": "Edit Sign Message", + "sleep.not_possible": "No amount of rest can pass this night", + "sleep.players_sleeping": "%s/%s players sleeping", + "sleep.skipping_night": "Sleeping through this night", + "slot.only_single_allowed": "Only single slots allowed, got '%s'", + "slot.unknown": "Unknown slot '%s'", + "soundCategory.ambient": "Ambient/Environment", + "soundCategory.block": "Blocks", + "soundCategory.hostile": "Hostile Creatures", + "soundCategory.master": "Master Volume", + "soundCategory.music": "Music", + "soundCategory.neutral": "Friendly Creatures", + "soundCategory.player": "Players", + "soundCategory.record": "Jukebox/Note Blocks", + "soundCategory.voice": "Voice/Speech", + "soundCategory.weather": "Weather", + "spectatorMenu.close": "Close Menu", + "spectatorMenu.next_page": "Next Page", + "spectatorMenu.previous_page": "Previous Page", + "spectatorMenu.root.prompt": "Press a key to select a command, and again to use it.", + "spectatorMenu.team_teleport": "Teleport to Team Member", + "spectatorMenu.team_teleport.prompt": "Select a team to teleport to", + "spectatorMenu.teleport": "Teleport to Player", + "spectatorMenu.teleport.prompt": "Select a player to teleport to", + "stat_type.minecraft.broken": "Times Broken", + "stat_type.minecraft.crafted": "Times Crafted", + "stat_type.minecraft.dropped": "Dropped", + "stat_type.minecraft.killed": "You killed %s %s", + "stat_type.minecraft.killed_by": "%s killed you %s time(s)", + "stat_type.minecraft.killed_by.none": "You have never been killed by %s", + "stat_type.minecraft.killed.none": "You have never killed %s", + "stat_type.minecraft.mined": "Times Mined", + "stat_type.minecraft.picked_up": "Picked Up", + "stat_type.minecraft.used": "Times Used", + "stat.generalButton": "General", + "stat.itemsButton": "Items", + "stat.minecraft.animals_bred": "Animals Bred", + "stat.minecraft.aviate_one_cm": "Distance by Elytra", + "stat.minecraft.bell_ring": "Bells Rung", + "stat.minecraft.boat_one_cm": "Distance by Boat", + "stat.minecraft.clean_armor": "Armor Pieces Cleaned", + "stat.minecraft.clean_banner": "Banners Cleaned", + "stat.minecraft.clean_shulker_box": "Shulker Boxes Cleaned", + "stat.minecraft.climb_one_cm": "Distance Climbed", + "stat.minecraft.crouch_one_cm": "Distance Crouched", + "stat.minecraft.damage_absorbed": "Damage Absorbed", + "stat.minecraft.damage_blocked_by_shield": "Damage Blocked by Shield", + "stat.minecraft.damage_dealt": "Damage Dealt", + "stat.minecraft.damage_dealt_absorbed": "Damage Dealt (Absorbed)", + "stat.minecraft.damage_dealt_resisted": "Damage Dealt (Resisted)", + "stat.minecraft.damage_resisted": "Damage Resisted", + "stat.minecraft.damage_taken": "Damage Taken", + "stat.minecraft.deaths": "Number of Deaths", + "stat.minecraft.drop": "Items Dropped", + "stat.minecraft.eat_cake_slice": "Cake Slices Eaten", + "stat.minecraft.enchant_item": "Items Enchanted", + "stat.minecraft.fall_one_cm": "Distance Fallen", + "stat.minecraft.fill_cauldron": "Cauldrons Filled", + "stat.minecraft.fish_caught": "Fish Caught", + "stat.minecraft.fly_one_cm": "Distance Flown", + "stat.minecraft.horse_one_cm": "Distance by Horse", + "stat.minecraft.inspect_dispenser": "Dispensers Searched", + "stat.minecraft.inspect_dropper": "Droppers Searched", + "stat.minecraft.inspect_hopper": "Hoppers Searched", + "stat.minecraft.interact_with_anvil": "Interactions with Anvil", + "stat.minecraft.interact_with_beacon": "Interactions with Beacon", + "stat.minecraft.interact_with_blast_furnace": "Interactions with Blast Furnace", + "stat.minecraft.interact_with_brewingstand": "Interactions with Brewing Stand", + "stat.minecraft.interact_with_campfire": "Interactions with Campfire", + "stat.minecraft.interact_with_cartography_table": "Interactions with Cartography Table", + "stat.minecraft.interact_with_crafting_table": "Interactions with Crafting Table", + "stat.minecraft.interact_with_furnace": "Interactions with Furnace", + "stat.minecraft.interact_with_grindstone": "Interactions with Grindstone", + "stat.minecraft.interact_with_lectern": "Interactions with Lectern", + "stat.minecraft.interact_with_loom": "Interactions with Loom", + "stat.minecraft.interact_with_smithing_table": "Interactions with Smithing Table", + "stat.minecraft.interact_with_smoker": "Interactions with Smoker", + "stat.minecraft.interact_with_stonecutter": "Interactions with Stonecutter", + "stat.minecraft.jump": "Jumps", + "stat.minecraft.junk_fished": "Junk Fished", + "stat.minecraft.leave_game": "Games Quit", + "stat.minecraft.minecart_one_cm": "Distance by Minecart", + "stat.minecraft.mob_kills": "Mob Kills", + "stat.minecraft.open_barrel": "Barrels Opened", + "stat.minecraft.open_chest": "Chests Opened", + "stat.minecraft.open_enderchest": "Ender Chests Opened", + "stat.minecraft.open_shulker_box": "Shulker Boxes Opened", + "stat.minecraft.pig_one_cm": "Distance by Pig", + "stat.minecraft.play_noteblock": "Note Blocks Played", + "stat.minecraft.play_record": "Music Discs Played", + "stat.minecraft.play_time": "Time Played", + "stat.minecraft.player_kills": "Player Kills", + "stat.minecraft.pot_flower": "Plants Potted", + "stat.minecraft.raid_trigger": "Raids Triggered", + "stat.minecraft.raid_win": "Raids Won", + "stat.minecraft.ring_bell": "Bells Rung", + "stat.minecraft.sleep_in_bed": "Times Slept in a Bed", + "stat.minecraft.sneak_time": "Sneak Time", + "stat.minecraft.sprint_one_cm": "Distance Sprinted", + "stat.minecraft.strider_one_cm": "Distance by Strider", + "stat.minecraft.swim_one_cm": "Distance Swum", + "stat.minecraft.talked_to_villager": "Talked to Villagers", + "stat.minecraft.target_hit": "Targets Hit", + "stat.minecraft.time_since_death": "Time Since Last Death", + "stat.minecraft.time_since_rest": "Time Since Last Rest", + "stat.minecraft.total_world_time": "Time with World Open", + "stat.minecraft.traded_with_villager": "Traded with Villagers", + "stat.minecraft.treasure_fished": "Treasure Fished", + "stat.minecraft.trigger_trapped_chest": "Trapped Chests Triggered", + "stat.minecraft.tune_noteblock": "Note Blocks Tuned", + "stat.minecraft.use_cauldron": "Water Taken from Cauldron", + "stat.minecraft.walk_on_water_one_cm": "Distance Walked on Water", + "stat.minecraft.walk_one_cm": "Distance Walked", + "stat.minecraft.walk_under_water_one_cm": "Distance Walked under Water", + "stat.mobsButton": "Mobs", + "stats.none": "-", + "stats.tooltip.type.statistic": "Statistic", + "structure_block.button.detect_size": "DETECT", + "structure_block.button.load": "LOAD", + "structure_block.button.save": "SAVE", + "structure_block.custom_data": "Custom Data Tag Name", + "structure_block.detect_size": "Detect Structure Size and Position:", + "structure_block.hover.corner": "Corner: %s", + "structure_block.hover.data": "Data: %s", + "structure_block.hover.load": "Load: %s", + "structure_block.hover.save": "Save: %s", + "structure_block.include_entities": "Include Entities:", + "structure_block.integrity": "Structure Integrity and Seed", + "structure_block.integrity.integrity": "Structure Integrity", + "structure_block.integrity.seed": "Structure Seed", + "structure_block.invalid_structure_name": "Invalid structure name '%s'", + "structure_block.load_not_found": "Structure '%s' is not available", + "structure_block.load_prepare": "Structure '%s' position prepared", + "structure_block.load_success": "Structure loaded from '%s'", + "structure_block.mode_info.corner": "Corner Mode - Placement and Size Marker", + "structure_block.mode_info.data": "Data Mode - Game Logic Marker", + "structure_block.mode_info.load": "Load Mode - Load from File", + "structure_block.mode_info.save": "Save Mode - Write to File", + "structure_block.mode.corner": "Corner", + "structure_block.mode.data": "Data", + "structure_block.mode.load": "Load", + "structure_block.mode.save": "Save", + "structure_block.position": "Relative Position", + "structure_block.position.x": "relative Position x", + "structure_block.position.y": "relative position y", + "structure_block.position.z": "relative position z", + "structure_block.save_failure": "Unable to save structure '%s'", + "structure_block.save_success": "Structure saved as '%s'", + "structure_block.show_air": "Show Invisible Blocks:", + "structure_block.show_boundingbox": "Show Bounding Box:", + "structure_block.size": "Structure Size", + "structure_block.size_failure": "Unable to detect structure size. Add corners with matching structure names", + "structure_block.size_success": "Size successfully detected for '%s'", + "structure_block.size.x": "structure size x", + "structure_block.size.y": "structure size y", + "structure_block.size.z": "structure size z", + "structure_block.structure_name": "Structure Name", + "subtitles.ambient.cave": "Eerie noise", + "subtitles.block.amethyst_block.chime": "Amethyst chimes", + "subtitles.block.amethyst_block.resonate": "Amethyst resonates", + "subtitles.block.anvil.destroy": "Anvil destroyed", + "subtitles.block.anvil.land": "Anvil landed", + "subtitles.block.anvil.use": "Anvil used", + "subtitles.block.barrel.close": "Barrel closes", + "subtitles.block.barrel.open": "Barrel opens", + "subtitles.block.beacon.activate": "Beacon activates", + "subtitles.block.beacon.ambient": "Beacon hums", + "subtitles.block.beacon.deactivate": "Beacon deactivates", + "subtitles.block.beacon.power_select": "Beacon power selected", + "subtitles.block.beehive.drip": "Honey drips", + "subtitles.block.beehive.enter": "Bee enters hive", + "subtitles.block.beehive.exit": "Bee leaves hive", + "subtitles.block.beehive.shear": "Shears scrape", + "subtitles.block.beehive.work": "Bees work", + "subtitles.block.bell.resonate": "Bell resonates", + "subtitles.block.bell.use": "Bell rings", + "subtitles.block.big_dripleaf.tilt_down": "Dripleaf tilts down", + "subtitles.block.big_dripleaf.tilt_up": "Dripleaf tilts up", + "subtitles.block.blastfurnace.fire_crackle": "Blast Furnace crackles", + "subtitles.block.brewing_stand.brew": "Brewing Stand bubbles", + "subtitles.block.bubble_column.bubble_pop": "Bubbles pop", + "subtitles.block.bubble_column.upwards_ambient": "Bubbles flow", + "subtitles.block.bubble_column.upwards_inside": "Bubbles woosh", + "subtitles.block.bubble_column.whirlpool_ambient": "Bubbles whirl", + "subtitles.block.bubble_column.whirlpool_inside": "Bubbles zoom", + "subtitles.block.button.click": "Button clicks", + "subtitles.block.cake.add_candle": "Cake squishes", + "subtitles.block.campfire.crackle": "Campfire crackles", + "subtitles.block.candle.crackle": "Candle crackles", + "subtitles.block.candle.extinguish": "Candle extinguishes", + "subtitles.block.chest.close": "Chest closes", + "subtitles.block.chest.locked": "Chest locked", + "subtitles.block.chest.open": "Chest opens", + "subtitles.block.chorus_flower.death": "Chorus Flower withers", + "subtitles.block.chorus_flower.grow": "Chorus Flower grows", + "subtitles.block.comparator.click": "Comparator clicks", + "subtitles.block.composter.empty": "Composter emptied", + "subtitles.block.composter.fill": "Composter filled", + "subtitles.block.composter.ready": "Composter composts", + "subtitles.block.conduit.activate": "Conduit activates", + "subtitles.block.conduit.ambient": "Conduit pulses", + "subtitles.block.conduit.attack.target": "Conduit attacks", + "subtitles.block.conduit.deactivate": "Conduit deactivates", + "subtitles.block.copper_bulb.turn_off": "Copper Bulb turns off", + "subtitles.block.copper_bulb.turn_on": "Copper Bulb turns on", + "subtitles.block.copper_trapdoor.close": "Trapdoor closes", + "subtitles.block.copper_trapdoor.open": "Trapdoor opens", + "subtitles.block.crafter.craft": "Crafter crafts", + "subtitles.block.crafter.fail": "Crafter fails crafting", + "subtitles.block.decorated_pot.insert": "Decorated Pot fills", + "subtitles.block.decorated_pot.insert_fail": "Decorated Pot wobbles", + "subtitles.block.decorated_pot.shatter": "Decorated Pot shatters", + "subtitles.block.dispenser.dispense": "Dispensed item", + "subtitles.block.dispenser.fail": "Dispenser failed", + "subtitles.block.door.toggle": "Door creaks", + "subtitles.block.enchantment_table.use": "Enchanting Table used", + "subtitles.block.end_portal_frame.fill": "Eye of Ender attaches", + "subtitles.block.end_portal.spawn": "End Portal opens", + "subtitles.block.fence_gate.toggle": "Fence Gate creaks", + "subtitles.block.fire.ambient": "Fire crackles", + "subtitles.block.fire.extinguish": "Fire extinguished", + "subtitles.block.frogspawn.hatch": "Tadpole hatches", + "subtitles.block.furnace.fire_crackle": "Furnace crackles", + "subtitles.block.generic.break": "Block broken", + "subtitles.block.generic.footsteps": "Footsteps", + "subtitles.block.generic.hit": "Block breaking", + "subtitles.block.generic.place": "Block placed", + "subtitles.block.grindstone.use": "Grindstone used", + "subtitles.block.growing_plant.crop": "Plant cropped", + "subtitles.block.hanging_sign.waxed_interact_fail": "Sign wobbles", + "subtitles.block.honey_block.slide": "Sliding down a honey block", + "subtitles.block.iron_trapdoor.close": "Trapdoor closes", + "subtitles.block.iron_trapdoor.open": "Trapdoor opens", + "subtitles.block.lava.ambient": "Lava pops", + "subtitles.block.lava.extinguish": "Lava hisses", + "subtitles.block.lever.click": "Lever clicks", + "subtitles.block.note_block.note": "Note Block plays", + "subtitles.block.piston.move": "Piston moves", + "subtitles.block.pointed_dripstone.drip_lava": "Lava drips", + "subtitles.block.pointed_dripstone.drip_lava_into_cauldron": "Lava drips into Cauldron", + "subtitles.block.pointed_dripstone.drip_water": "Water drips", + "subtitles.block.pointed_dripstone.drip_water_into_cauldron": "Water drips into Cauldron", + "subtitles.block.pointed_dripstone.land": "Stalactite crashes down", + "subtitles.block.portal.ambient": "Portal whooshes", + "subtitles.block.portal.travel": "Portal noise fades", + "subtitles.block.portal.trigger": "Portal noise intensifies", + "subtitles.block.pressure_plate.click": "Pressure Plate clicks", + "subtitles.block.pumpkin.carve": "Shears carve", + "subtitles.block.redstone_torch.burnout": "Torch fizzes", + "subtitles.block.respawn_anchor.ambient": "Respawn Anchor whooshes", + "subtitles.block.respawn_anchor.charge": "Respawn Anchor is charged", + "subtitles.block.respawn_anchor.deplete": "Respawn Anchor depletes", + "subtitles.block.respawn_anchor.set_spawn": "Respawn Anchor sets spawn", + "subtitles.block.sculk_catalyst.bloom": "Sculk Catalyst blooms", + "subtitles.block.sculk_sensor.clicking": "Sculk Sensor clicks", + "subtitles.block.sculk_sensor.clicking_stop": "Sculk Sensor stops clicking", + "subtitles.block.sculk_shrieker.shriek": "Sculk Shrieker shrieks", + "subtitles.block.sculk.charge": "Sculk bubbles", + "subtitles.block.sculk.spread": "Sculk spreads", + "subtitles.block.shulker_box.close": "Shulker closes", + "subtitles.block.shulker_box.open": "Shulker opens", + "subtitles.block.sign.waxed_interact_fail": "Sign wobbles", + "subtitles.block.smithing_table.use": "Smithing Table used", + "subtitles.block.smoker.smoke": "Smoker smokes", + "subtitles.block.sniffer_egg.crack": "Sniffer Egg cracks", + "subtitles.block.sniffer_egg.hatch": "Sniffer Egg hatches", + "subtitles.block.sniffer_egg.plop": "Sniffer plops", + "subtitles.block.sponge.absorb": "Sponge sucks", + "subtitles.block.sweet_berry_bush.pick_berries": "Berries pop", + "subtitles.block.trapdoor.toggle": "Trapdoor creaks", + "subtitles.block.trial_spawner.about_to_spawn_item": "Ominous item prepares", + "subtitles.block.trial_spawner.ambient": "Trial Spawner crackles", + "subtitles.block.trial_spawner.ambient_charged": "Ominous crackling", + "subtitles.block.trial_spawner.ambient_ominous": "Ominous crackling", + "subtitles.block.trial_spawner.charge_activate": "Omen engulfs Trial Spawner", + "subtitles.block.trial_spawner.close_shutter": "Trial Spawner closes", + "subtitles.block.trial_spawner.detect_player": "Trial Spawner charges up", + "subtitles.block.trial_spawner.eject_item": "Trial Spawner ejects items", + "subtitles.block.trial_spawner.ominous_activate": "Omen engulfs Trial Spawner", + "subtitles.block.trial_spawner.open_shutter": "Trial Spawner opens", + "subtitles.block.trial_spawner.spawn_item": "Ominous item drops", + "subtitles.block.trial_spawner.spawn_item_begin": "Ominous item appears", + "subtitles.block.trial_spawner.spawn_mob": "Trial Spawner spawns a mob", + "subtitles.block.tripwire.attach": "Tripwire attaches", + "subtitles.block.tripwire.click": "Tripwire clicks", + "subtitles.block.tripwire.detach": "Tripwire detaches", + "subtitles.block.vault.activate": "Vault ignites", + "subtitles.block.vault.ambient": "Vault crackles", + "subtitles.block.vault.close_shutter": "Vault closes", + "subtitles.block.vault.deactivate": "Vault extinguishes", + "subtitles.block.vault.eject_item": "Vault ejects item", + "subtitles.block.vault.insert_item": "Vault unlocks", + "subtitles.block.vault.insert_item_fail": "Vault rejects item", + "subtitles.block.vault.open_shutter": "Vault opens", + "subtitles.block.vault.reject_rewarded_player": "Vault rejects player", + "subtitles.block.water.ambient": "Water flows", + "subtitles.block.wet_sponge.dries": "Sponge dries", + "subtitles.chiseled_bookshelf.insert": "Book placed", + "subtitles.chiseled_bookshelf.insert_enchanted": "Enchanted Book placed", + "subtitles.chiseled_bookshelf.take": "Book taken", + "subtitles.chiseled_bookshelf.take_enchanted": "Enchanted Book taken", + "subtitles.enchant.thorns.hit": "Thorns prick", + "subtitles.entity.allay.ambient_with_item": "Allay seeks", + "subtitles.entity.allay.ambient_without_item": "Allay yearns", + "subtitles.entity.allay.death": "Allay dies", + "subtitles.entity.allay.hurt": "Allay hurts", + "subtitles.entity.allay.item_given": "Allay chortles", + "subtitles.entity.allay.item_taken": "Allay allays", + "subtitles.entity.allay.item_thrown": "Allay tosses", + "subtitles.entity.armadillo.ambient": "Armadillo grunts", + "subtitles.entity.armadillo.brush": "Scute is brushed off", + "subtitles.entity.armadillo.death": "Armadillo dies", + "subtitles.entity.armadillo.eat": "Armadillo eats", + "subtitles.entity.armadillo.hurt": "Armadillo hurts", + "subtitles.entity.armadillo.hurt_reduced": "Armadillo shields itself", + "subtitles.entity.armadillo.land": "Armadillo lands", + "subtitles.entity.armadillo.peek": "Armadillo peeks", + "subtitles.entity.armadillo.roll": "Armadillo rolls up", + "subtitles.entity.armadillo.scute_drop": "Armadillo sheds scute", + "subtitles.entity.armadillo.unroll_finish": "Armadillo unrolls", + "subtitles.entity.armadillo.unroll_start": "Armadillo peeks", + "subtitles.entity.armor_stand.fall": "Something fell", + "subtitles.entity.arrow.hit": "Arrow hits", + "subtitles.entity.arrow.hit_player": "Player hit", + "subtitles.entity.arrow.shoot": "Arrow fired", + "subtitles.entity.axolotl.attack": "Axolotl attacks", + "subtitles.entity.axolotl.death": "Axolotl dies", + "subtitles.entity.axolotl.hurt": "Axolotl hurts", + "subtitles.entity.axolotl.idle_air": "Axolotl chirps", + "subtitles.entity.axolotl.idle_water": "Axolotl chirps", + "subtitles.entity.axolotl.splash": "Axolotl splashes", + "subtitles.entity.axolotl.swim": "Axolotl swims", + "subtitles.entity.bat.ambient": "Bat screeches", + "subtitles.entity.bat.death": "Bat dies", + "subtitles.entity.bat.hurt": "Bat hurts", + "subtitles.entity.bat.takeoff": "Bat takes off", + "subtitles.entity.bee.ambient": "Bee buzzes", + "subtitles.entity.bee.death": "Bee dies", + "subtitles.entity.bee.hurt": "Bee hurts", + "subtitles.entity.bee.loop": "Bee buzzes", + "subtitles.entity.bee.loop_aggressive": "Bee buzzes angrily", + "subtitles.entity.bee.pollinate": "Bee buzzes happily", + "subtitles.entity.bee.sting": "Bee stings", + "subtitles.entity.blaze.ambient": "Blaze breathes", + "subtitles.entity.blaze.burn": "Blaze crackles", + "subtitles.entity.blaze.death": "Blaze dies", + "subtitles.entity.blaze.hurt": "Blaze hurts", + "subtitles.entity.blaze.shoot": "Blaze shoots", + "subtitles.entity.boat.paddle_land": "Rowing", + "subtitles.entity.boat.paddle_water": "Rowing", + "subtitles.entity.bogged.ambient": "Bogged rattles", + "subtitles.entity.bogged.death": "Bogged dies", + "subtitles.entity.bogged.hurt": "Bogged hurts", + "subtitles.entity.breeze.charge": "Breeze charges", + "subtitles.entity.breeze.death": "Breeze dies", + "subtitles.entity.breeze.deflect": "Breeze deflects", + "subtitles.entity.breeze.hurt": "Breeze hurts", + "subtitles.entity.breeze.idle_air": "Breeze flies", + "subtitles.entity.breeze.idle_ground": "Breeze whirs", + "subtitles.entity.breeze.inhale": "Breeze inhales", + "subtitles.entity.breeze.jump": "Breeze jumps", + "subtitles.entity.breeze.land": "Breeze lands", + "subtitles.entity.breeze.shoot": "Breeze shoots", + "subtitles.entity.breeze.slide": "Breeze slides", + "subtitles.entity.breeze.whirl": "Breeze whirls", + "subtitles.entity.breeze.wind_burst": "Wind Charge bursts", + "subtitles.entity.camel.ambient": "Camel grunts", + "subtitles.entity.camel.dash": "Camel yeets", + "subtitles.entity.camel.dash_ready": "Camel recovers", + "subtitles.entity.camel.death": "Camel dies", + "subtitles.entity.camel.eat": "Camel eats", + "subtitles.entity.camel.hurt": "Camel hurts", + "subtitles.entity.camel.saddle": "Saddle equips", + "subtitles.entity.camel.sit": "Camel sits down", + "subtitles.entity.camel.stand": "Camel stands up", + "subtitles.entity.camel.step": "Camel steps", + "subtitles.entity.camel.step_sand": "Camel sands", + "subtitles.entity.cat.ambient": "Cat meows", + "subtitles.entity.cat.beg_for_food": "Cat begs", + "subtitles.entity.cat.death": "Cat dies", + "subtitles.entity.cat.eat": "Cat eats", + "subtitles.entity.cat.hiss": "Cat hisses", + "subtitles.entity.cat.hurt": "Cat hurts", + "subtitles.entity.cat.purr": "Cat purrs", + "subtitles.entity.chicken.ambient": "Chicken clucks", + "subtitles.entity.chicken.death": "Chicken dies", + "subtitles.entity.chicken.egg": "Chicken plops", + "subtitles.entity.chicken.hurt": "Chicken hurts", + "subtitles.entity.cod.death": "Cod dies", + "subtitles.entity.cod.flop": "Cod flops", + "subtitles.entity.cod.hurt": "Cod hurts", + "subtitles.entity.cow.ambient": "Cow moos", + "subtitles.entity.cow.death": "Cow dies", + "subtitles.entity.cow.hurt": "Cow hurts", + "subtitles.entity.cow.milk": "Cow gets milked", + "subtitles.entity.creeper.death": "Creeper dies", + "subtitles.entity.creeper.hurt": "Creeper hurts", + "subtitles.entity.creeper.primed": "Creeper hisses", + "subtitles.entity.dolphin.ambient": "Dolphin chirps", + "subtitles.entity.dolphin.ambient_water": "Dolphin whistles", + "subtitles.entity.dolphin.attack": "Dolphin attacks", + "subtitles.entity.dolphin.death": "Dolphin dies", + "subtitles.entity.dolphin.eat": "Dolphin eats", + "subtitles.entity.dolphin.hurt": "Dolphin hurts", + "subtitles.entity.dolphin.jump": "Dolphin jumps", + "subtitles.entity.dolphin.play": "Dolphin plays", + "subtitles.entity.dolphin.splash": "Dolphin splashes", + "subtitles.entity.dolphin.swim": "Dolphin swims", + "subtitles.entity.donkey.ambient": "Donkey hee-haws", + "subtitles.entity.donkey.angry": "Donkey neighs", + "subtitles.entity.donkey.chest": "Donkey Chest equips", + "subtitles.entity.donkey.death": "Donkey dies", + "subtitles.entity.donkey.eat": "Donkey eats", + "subtitles.entity.donkey.hurt": "Donkey hurts", + "subtitles.entity.donkey.jump": "Donkey jumps", + "subtitles.entity.drowned.ambient": "Drowned gurgles", + "subtitles.entity.drowned.ambient_water": "Drowned gurgles", + "subtitles.entity.drowned.death": "Drowned dies", + "subtitles.entity.drowned.hurt": "Drowned hurts", + "subtitles.entity.drowned.shoot": "Drowned throws Trident", + "subtitles.entity.drowned.step": "Drowned steps", + "subtitles.entity.drowned.swim": "Drowned swims", + "subtitles.entity.egg.throw": "Egg flies", + "subtitles.entity.elder_guardian.ambient": "Elder Guardian moans", + "subtitles.entity.elder_guardian.ambient_land": "Elder Guardian flaps", + "subtitles.entity.elder_guardian.curse": "Elder Guardian curses", + "subtitles.entity.elder_guardian.death": "Elder Guardian dies", + "subtitles.entity.elder_guardian.flop": "Elder Guardian flops", + "subtitles.entity.elder_guardian.hurt": "Elder Guardian hurts", + "subtitles.entity.ender_dragon.ambient": "Dragon roars", + "subtitles.entity.ender_dragon.death": "Dragon dies", + "subtitles.entity.ender_dragon.flap": "Dragon flaps", + "subtitles.entity.ender_dragon.growl": "Dragon growls", + "subtitles.entity.ender_dragon.hurt": "Dragon hurts", + "subtitles.entity.ender_dragon.shoot": "Dragon shoots", + "subtitles.entity.ender_eye.death": "Eye of Ender falls", + "subtitles.entity.ender_eye.launch": "Eye of Ender shoots", + "subtitles.entity.ender_pearl.throw": "Ender Pearl flies", + "subtitles.entity.enderman.ambient": "Enderman vwoops", + "subtitles.entity.enderman.death": "Enderman dies", + "subtitles.entity.enderman.hurt": "Enderman hurts", + "subtitles.entity.enderman.scream": "Enderman screams", + "subtitles.entity.enderman.stare": "Enderman cries out", + "subtitles.entity.enderman.teleport": "Enderman teleports", + "subtitles.entity.endermite.ambient": "Endermite scuttles", + "subtitles.entity.endermite.death": "Endermite dies", + "subtitles.entity.endermite.hurt": "Endermite hurts", + "subtitles.entity.evoker_fangs.attack": "Fangs snap", + "subtitles.entity.evoker.ambient": "Evoker murmurs", + "subtitles.entity.evoker.cast_spell": "Evoker casts spell", + "subtitles.entity.evoker.celebrate": "Evoker cheers", + "subtitles.entity.evoker.death": "Evoker dies", + "subtitles.entity.evoker.hurt": "Evoker hurts", + "subtitles.entity.evoker.prepare_attack": "Evoker prepares attack", + "subtitles.entity.evoker.prepare_summon": "Evoker prepares summoning", + "subtitles.entity.evoker.prepare_wololo": "Evoker prepares charming", + "subtitles.entity.experience_orb.pickup": "Experience gained", + "subtitles.entity.firework_rocket.blast": "Firework blasts", + "subtitles.entity.firework_rocket.launch": "Firework launches", + "subtitles.entity.firework_rocket.twinkle": "Firework twinkles", + "subtitles.entity.fishing_bobber.retrieve": "Bobber retrieved", + "subtitles.entity.fishing_bobber.splash": "Fishing Bobber splashes", + "subtitles.entity.fishing_bobber.throw": "Bobber thrown", + "subtitles.entity.fox.aggro": "Fox angers", + "subtitles.entity.fox.ambient": "Fox squeaks", + "subtitles.entity.fox.bite": "Fox bites", + "subtitles.entity.fox.death": "Fox dies", + "subtitles.entity.fox.eat": "Fox eats", + "subtitles.entity.fox.hurt": "Fox hurts", + "subtitles.entity.fox.screech": "Fox screeches", + "subtitles.entity.fox.sleep": "Fox snores", + "subtitles.entity.fox.sniff": "Fox sniffs", + "subtitles.entity.fox.spit": "Fox spits", + "subtitles.entity.fox.teleport": "Fox teleports", + "subtitles.entity.frog.ambient": "Frog croaks", + "subtitles.entity.frog.death": "Frog dies", + "subtitles.entity.frog.eat": "Frog eats", + "subtitles.entity.frog.hurt": "Frog hurts", + "subtitles.entity.frog.lay_spawn": "Frog lays spawn", + "subtitles.entity.frog.long_jump": "Frog jumps", + "subtitles.entity.generic.big_fall": "Something fell", + "subtitles.entity.generic.burn": "Burning", + "subtitles.entity.generic.death": "Dying", + "subtitles.entity.generic.drink": "Sipping", + "subtitles.entity.generic.eat": "Eating", + "subtitles.entity.generic.explode": "Explosion", + "subtitles.entity.generic.extinguish_fire": "Fire extinguishes", + "subtitles.entity.generic.hurt": "Something hurts", + "subtitles.entity.generic.small_fall": "Something trips", + "subtitles.entity.generic.splash": "Splashing", + "subtitles.entity.generic.swim": "Swimming", + "subtitles.entity.generic.wind_burst": "Wind Charge bursts", + "subtitles.entity.ghast.ambient": "Ghast cries", + "subtitles.entity.ghast.death": "Ghast dies", + "subtitles.entity.ghast.hurt": "Ghast hurts", + "subtitles.entity.ghast.shoot": "Ghast shoots", + "subtitles.entity.glow_item_frame.add_item": "Glow Item Frame fills", + "subtitles.entity.glow_item_frame.break": "Glow Item Frame broken", + "subtitles.entity.glow_item_frame.place": "Glow Item Frame placed", + "subtitles.entity.glow_item_frame.remove_item": "Glow Item Frame empties", + "subtitles.entity.glow_item_frame.rotate_item": "Glow Item Frame clicks", + "subtitles.entity.glow_squid.ambient": "Glow Squid swims", + "subtitles.entity.glow_squid.death": "Glow Squid dies", + "subtitles.entity.glow_squid.hurt": "Glow Squid hurts", + "subtitles.entity.glow_squid.squirt": "Glow Squid shoots ink", + "subtitles.entity.goat.ambient": "Goat bleats", + "subtitles.entity.goat.death": "Goat dies", + "subtitles.entity.goat.eat": "Goat eats", + "subtitles.entity.goat.horn_break": "Goat Horn breaks off", + "subtitles.entity.goat.hurt": "Goat hurts", + "subtitles.entity.goat.long_jump": "Goat leaps", + "subtitles.entity.goat.milk": "Goat gets milked", + "subtitles.entity.goat.prepare_ram": "Goat stomps", + "subtitles.entity.goat.ram_impact": "Goat rams", + "subtitles.entity.goat.screaming.ambient": "Goat bellows", + "subtitles.entity.goat.step": "Goat steps", + "subtitles.entity.guardian.ambient": "Guardian moans", + "subtitles.entity.guardian.ambient_land": "Guardian flaps", + "subtitles.entity.guardian.attack": "Guardian shoots", + "subtitles.entity.guardian.death": "Guardian dies", + "subtitles.entity.guardian.flop": "Guardian flops", + "subtitles.entity.guardian.hurt": "Guardian hurts", + "subtitles.entity.hoglin.ambient": "Hoglin growls", + "subtitles.entity.hoglin.angry": "Hoglin growls angrily", + "subtitles.entity.hoglin.attack": "Hoglin attacks", + "subtitles.entity.hoglin.converted_to_zombified": "Hoglin converts to Zoglin", + "subtitles.entity.hoglin.death": "Hoglin dies", + "subtitles.entity.hoglin.hurt": "Hoglin hurts", + "subtitles.entity.hoglin.retreat": "Hoglin retreats", + "subtitles.entity.hoglin.step": "Hoglin steps", + "subtitles.entity.horse.ambient": "Horse neighs", + "subtitles.entity.horse.angry": "Horse neighs", + "subtitles.entity.horse.armor": "Horse armor equips", + "subtitles.entity.horse.breathe": "Horse breathes", + "subtitles.entity.horse.death": "Horse dies", + "subtitles.entity.horse.eat": "Horse eats", + "subtitles.entity.horse.gallop": "Horse gallops", + "subtitles.entity.horse.hurt": "Horse hurts", + "subtitles.entity.horse.jump": "Horse jumps", + "subtitles.entity.horse.saddle": "Saddle equips", + "subtitles.entity.husk.ambient": "Husk groans", + "subtitles.entity.husk.converted_to_zombie": "Husk converts to Zombie", + "subtitles.entity.husk.death": "Husk dies", + "subtitles.entity.husk.hurt": "Husk hurts", + "subtitles.entity.illusioner.ambient": "Illusioner murmurs", + "subtitles.entity.illusioner.cast_spell": "Illusioner casts spell", + "subtitles.entity.illusioner.death": "Illusioner dies", + "subtitles.entity.illusioner.hurt": "Illusioner hurts", + "subtitles.entity.illusioner.mirror_move": "Illusioner displaces", + "subtitles.entity.illusioner.prepare_blindness": "Illusioner prepares blindness", + "subtitles.entity.illusioner.prepare_mirror": "Illusioner prepares mirror image", + "subtitles.entity.iron_golem.attack": "Iron Golem attacks", + "subtitles.entity.iron_golem.damage": "Iron Golem breaks", + "subtitles.entity.iron_golem.death": "Iron Golem dies", + "subtitles.entity.iron_golem.hurt": "Iron Golem hurts", + "subtitles.entity.iron_golem.repair": "Iron Golem repaired", + "subtitles.entity.item_frame.add_item": "Item Frame fills", + "subtitles.entity.item_frame.break": "Item Frame broken", + "subtitles.entity.item_frame.place": "Item Frame placed", + "subtitles.entity.item_frame.remove_item": "Item Frame empties", + "subtitles.entity.item_frame.rotate_item": "Item Frame clicks", + "subtitles.entity.item.break": "Item breaks", + "subtitles.entity.item.pickup": "Item plops", + "subtitles.entity.leash_knot.break": "Leash Knot broken", + "subtitles.entity.leash_knot.place": "Leash Knot tied", + "subtitles.entity.lightning_bolt.impact": "Lightning strikes", + "subtitles.entity.lightning_bolt.thunder": "Thunder roars", + "subtitles.entity.llama.ambient": "Llama bleats", + "subtitles.entity.llama.angry": "Llama bleats angrily", + "subtitles.entity.llama.chest": "Llama Chest equips", + "subtitles.entity.llama.death": "Llama dies", + "subtitles.entity.llama.eat": "Llama eats", + "subtitles.entity.llama.hurt": "Llama hurts", + "subtitles.entity.llama.spit": "Llama spits", + "subtitles.entity.llama.step": "Llama steps", + "subtitles.entity.llama.swag": "Llama is decorated", + "subtitles.entity.magma_cube.death": "Magma Cube dies", + "subtitles.entity.magma_cube.hurt": "Magma Cube hurts", + "subtitles.entity.magma_cube.squish": "Magma Cube squishes", + "subtitles.entity.minecart.riding": "Minecart rolls", + "subtitles.entity.mooshroom.convert": "Mooshroom transforms", + "subtitles.entity.mooshroom.eat": "Mooshroom eats", + "subtitles.entity.mooshroom.milk": "Mooshroom gets milked", + "subtitles.entity.mooshroom.suspicious_milk": "Mooshroom gets milked suspiciously", + "subtitles.entity.mule.ambient": "Mule hee-haws", + "subtitles.entity.mule.angry": "Mule neighs", + "subtitles.entity.mule.chest": "Mule Chest equips", + "subtitles.entity.mule.death": "Mule dies", + "subtitles.entity.mule.eat": "Mule eats", + "subtitles.entity.mule.hurt": "Mule hurts", + "subtitles.entity.mule.jump": "Mule jumps", + "subtitles.entity.painting.break": "Painting broken", + "subtitles.entity.painting.place": "Painting placed", + "subtitles.entity.panda.aggressive_ambient": "Panda huffs", + "subtitles.entity.panda.ambient": "Panda pants", + "subtitles.entity.panda.bite": "Panda bites", + "subtitles.entity.panda.cant_breed": "Panda bleats", + "subtitles.entity.panda.death": "Panda dies", + "subtitles.entity.panda.eat": "Panda eats", + "subtitles.entity.panda.hurt": "Panda hurts", + "subtitles.entity.panda.pre_sneeze": "Panda's nose tickles", + "subtitles.entity.panda.sneeze": "Panda sneezes", + "subtitles.entity.panda.step": "Panda steps", + "subtitles.entity.panda.worried_ambient": "Panda whimpers", + "subtitles.entity.parrot.ambient": "Parrot talks", + "subtitles.entity.parrot.death": "Parrot dies", + "subtitles.entity.parrot.eats": "Parrot eats", + "subtitles.entity.parrot.fly": "Parrot flutters", + "subtitles.entity.parrot.hurts": "Parrot hurts", + "subtitles.entity.parrot.imitate.blaze": "Parrot breathes", + "subtitles.entity.parrot.imitate.bogged": "Parrot rattles", + "subtitles.entity.parrot.imitate.breeze": "Parrot whirs", + "subtitles.entity.parrot.imitate.creeper": "Parrot hisses", + "subtitles.entity.parrot.imitate.drowned": "Parrot gurgles", + "subtitles.entity.parrot.imitate.elder_guardian": "Parrot moans", + "subtitles.entity.parrot.imitate.ender_dragon": "Parrot roars", + "subtitles.entity.parrot.imitate.endermite": "Parrot scuttles", + "subtitles.entity.parrot.imitate.evoker": "Parrot murmurs", + "subtitles.entity.parrot.imitate.ghast": "Parrot cries", + "subtitles.entity.parrot.imitate.guardian": "Parrot moans", + "subtitles.entity.parrot.imitate.hoglin": "Parrot growls", + "subtitles.entity.parrot.imitate.husk": "Parrot groans", + "subtitles.entity.parrot.imitate.illusioner": "Parrot murmurs", + "subtitles.entity.parrot.imitate.magma_cube": "Parrot squishes", + "subtitles.entity.parrot.imitate.phantom": "Parrot screeches", + "subtitles.entity.parrot.imitate.piglin": "Parrot snorts", + "subtitles.entity.parrot.imitate.piglin_brute": "Parrot snorts", + "subtitles.entity.parrot.imitate.pillager": "Parrot murmurs", + "subtitles.entity.parrot.imitate.ravager": "Parrot grunts", + "subtitles.entity.parrot.imitate.shulker": "Parrot lurks", + "subtitles.entity.parrot.imitate.silverfish": "Parrot hisses", + "subtitles.entity.parrot.imitate.skeleton": "Parrot rattles", + "subtitles.entity.parrot.imitate.slime": "Parrot squishes", + "subtitles.entity.parrot.imitate.spider": "Parrot hisses", + "subtitles.entity.parrot.imitate.stray": "Parrot rattles", + "subtitles.entity.parrot.imitate.vex": "Parrot vexes", + "subtitles.entity.parrot.imitate.vindicator": "Parrot mutters", + "subtitles.entity.parrot.imitate.warden": "Parrot whines", + "subtitles.entity.parrot.imitate.witch": "Parrot giggles", + "subtitles.entity.parrot.imitate.wither": "Parrot angers", + "subtitles.entity.parrot.imitate.wither_skeleton": "Parrot rattles", + "subtitles.entity.parrot.imitate.zoglin": "Parrot growls", + "subtitles.entity.parrot.imitate.zombie": "Parrot groans", + "subtitles.entity.parrot.imitate.zombie_villager": "Parrot groans", + "subtitles.entity.phantom.ambient": "Phantom screeches", + "subtitles.entity.phantom.bite": "Phantom bites", + "subtitles.entity.phantom.death": "Phantom dies", + "subtitles.entity.phantom.flap": "Phantom flaps", + "subtitles.entity.phantom.hurt": "Phantom hurts", + "subtitles.entity.phantom.swoop": "Phantom swoops", + "subtitles.entity.pig.ambient": "Pig oinks", + "subtitles.entity.pig.death": "Pig dies", + "subtitles.entity.pig.hurt": "Pig hurts", + "subtitles.entity.pig.saddle": "Saddle equips", + "subtitles.entity.piglin_brute.ambient": "Piglin Brute snorts", + "subtitles.entity.piglin_brute.angry": "Piglin Brute snorts angrily", + "subtitles.entity.piglin_brute.converted_to_zombified": "Piglin Brute converts to Zombified Piglin", + "subtitles.entity.piglin_brute.death": "Piglin Brute dies", + "subtitles.entity.piglin_brute.hurt": "Piglin Brute hurts", + "subtitles.entity.piglin_brute.step": "Piglin Brute steps", + "subtitles.entity.piglin.admiring_item": "Piglin admires item", + "subtitles.entity.piglin.ambient": "Piglin snorts", + "subtitles.entity.piglin.angry": "Piglin snorts angrily", + "subtitles.entity.piglin.celebrate": "Piglin celebrates", + "subtitles.entity.piglin.converted_to_zombified": "Piglin converts to Zombified Piglin", + "subtitles.entity.piglin.death": "Piglin dies", + "subtitles.entity.piglin.hurt": "Piglin hurts", + "subtitles.entity.piglin.jealous": "Piglin snorts enviously", + "subtitles.entity.piglin.retreat": "Piglin retreats", + "subtitles.entity.piglin.step": "Piglin steps", + "subtitles.entity.pillager.ambient": "Pillager murmurs", + "subtitles.entity.pillager.celebrate": "Pillager cheers", + "subtitles.entity.pillager.death": "Pillager dies", + "subtitles.entity.pillager.hurt": "Pillager hurts", + "subtitles.entity.player.attack.crit": "Critical attack", + "subtitles.entity.player.attack.knockback": "Knockback attack", + "subtitles.entity.player.attack.strong": "Strong attack", + "subtitles.entity.player.attack.sweep": "Sweeping attack", + "subtitles.entity.player.attack.weak": "Weak attack", + "subtitles.entity.player.burp": "Burp", + "subtitles.entity.player.death": "Player dies", + "subtitles.entity.player.freeze_hurt": "Player freezes", + "subtitles.entity.player.hurt": "Player hurts", + "subtitles.entity.player.hurt_drown": "Player drowning", + "subtitles.entity.player.hurt_on_fire": "Player burns", + "subtitles.entity.player.levelup": "Player dings", + "subtitles.entity.player.teleport": "Player teleports", + "subtitles.entity.polar_bear.ambient": "Polar Bear groans", + "subtitles.entity.polar_bear.ambient_baby": "Baby Polar Bear hums", + "subtitles.entity.polar_bear.death": "Polar Bear dies", + "subtitles.entity.polar_bear.hurt": "Polar Bear hurts", + "subtitles.entity.polar_bear.warning": "Polar Bear roars", + "subtitles.entity.potion.splash": "Bottle smashes", + "subtitles.entity.potion.throw": "Bottle thrown", + "subtitles.entity.puffer_fish.blow_out": "Pufferfish deflates", + "subtitles.entity.puffer_fish.blow_up": "Pufferfish inflates", + "subtitles.entity.puffer_fish.death": "Pufferfish dies", + "subtitles.entity.puffer_fish.flop": "Pufferfish flops", + "subtitles.entity.puffer_fish.hurt": "Pufferfish hurts", + "subtitles.entity.puffer_fish.sting": "Pufferfish stings", + "subtitles.entity.rabbit.ambient": "Rabbit squeaks", + "subtitles.entity.rabbit.attack": "Rabbit attacks", + "subtitles.entity.rabbit.death": "Rabbit dies", + "subtitles.entity.rabbit.hurt": "Rabbit hurts", + "subtitles.entity.rabbit.jump": "Rabbit hops", + "subtitles.entity.ravager.ambient": "Ravager grunts", + "subtitles.entity.ravager.attack": "Ravager bites", + "subtitles.entity.ravager.celebrate": "Ravager cheers", + "subtitles.entity.ravager.death": "Ravager dies", + "subtitles.entity.ravager.hurt": "Ravager hurts", + "subtitles.entity.ravager.roar": "Ravager roars", + "subtitles.entity.ravager.step": "Ravager steps", + "subtitles.entity.ravager.stunned": "Ravager stunned", + "subtitles.entity.salmon.death": "Salmon dies", + "subtitles.entity.salmon.flop": "Salmon flops", + "subtitles.entity.salmon.hurt": "Salmon hurts", + "subtitles.entity.sheep.ambient": "Sheep baahs", + "subtitles.entity.sheep.death": "Sheep dies", + "subtitles.entity.sheep.hurt": "Sheep hurts", + "subtitles.entity.shulker_bullet.hit": "Shulker Bullet explodes", + "subtitles.entity.shulker_bullet.hurt": "Shulker Bullet breaks", + "subtitles.entity.shulker.ambient": "Shulker lurks", + "subtitles.entity.shulker.close": "Shulker closes", + "subtitles.entity.shulker.death": "Shulker dies", + "subtitles.entity.shulker.hurt": "Shulker hurts", + "subtitles.entity.shulker.open": "Shulker opens", + "subtitles.entity.shulker.shoot": "Shulker shoots", + "subtitles.entity.shulker.teleport": "Shulker teleports", + "subtitles.entity.silverfish.ambient": "Silverfish hisses", + "subtitles.entity.silverfish.death": "Silverfish dies", + "subtitles.entity.silverfish.hurt": "Silverfish hurts", + "subtitles.entity.skeleton_horse.ambient": "Skeleton Horse cries", + "subtitles.entity.skeleton_horse.death": "Skeleton Horse dies", + "subtitles.entity.skeleton_horse.hurt": "Skeleton Horse hurts", + "subtitles.entity.skeleton_horse.swim": "Skeleton Horse swims", + "subtitles.entity.skeleton.ambient": "Skeleton rattles", + "subtitles.entity.skeleton.converted_to_stray": "Skeleton converts to Stray", + "subtitles.entity.skeleton.death": "Skeleton dies", + "subtitles.entity.skeleton.hurt": "Skeleton hurts", + "subtitles.entity.skeleton.shoot": "Skeleton shoots", + "subtitles.entity.slime.attack": "Slime attacks", + "subtitles.entity.slime.death": "Slime dies", + "subtitles.entity.slime.hurt": "Slime hurts", + "subtitles.entity.slime.squish": "Slime squishes", + "subtitles.entity.sniffer.death": "Sniffer dies", + "subtitles.entity.sniffer.digging": "Sniffer digs", + "subtitles.entity.sniffer.digging_stop": "Sniffer stands up", + "subtitles.entity.sniffer.drop_seed": "Sniffer drops seed", + "subtitles.entity.sniffer.eat": "Sniffer eats", + "subtitles.entity.sniffer.egg_crack": "Sniffer Egg cracks", + "subtitles.entity.sniffer.egg_hatch": "Sniffer Egg hatches", + "subtitles.entity.sniffer.happy": "Sniffer delights", + "subtitles.entity.sniffer.hurt": "Sniffer hurts", + "subtitles.entity.sniffer.idle": "Sniffer grunts", + "subtitles.entity.sniffer.scenting": "Sniffer scents", + "subtitles.entity.sniffer.searching": "Sniffer searches", + "subtitles.entity.sniffer.sniffing": "Sniffer sniffs", + "subtitles.entity.sniffer.step": "Sniffer steps", + "subtitles.entity.snow_golem.death": "Snow Golem dies", + "subtitles.entity.snow_golem.hurt": "Snow Golem hurts", + "subtitles.entity.snowball.throw": "Snowball flies", + "subtitles.entity.spider.ambient": "Spider hisses", + "subtitles.entity.spider.death": "Spider dies", + "subtitles.entity.spider.hurt": "Spider hurts", + "subtitles.entity.squid.ambient": "Squid swims", + "subtitles.entity.squid.death": "Squid dies", + "subtitles.entity.squid.hurt": "Squid hurts", + "subtitles.entity.squid.squirt": "Squid shoots ink", + "subtitles.entity.stray.ambient": "Stray rattles", + "subtitles.entity.stray.death": "Stray dies", + "subtitles.entity.stray.hurt": "Stray hurts", + "subtitles.entity.strider.death": "Strider dies", + "subtitles.entity.strider.eat": "Strider eats", + "subtitles.entity.strider.happy": "Strider warbles", + "subtitles.entity.strider.hurt": "Strider hurts", + "subtitles.entity.strider.idle": "Strider chirps", + "subtitles.entity.strider.retreat": "Strider retreats", + "subtitles.entity.tadpole.death": "Tadpole dies", + "subtitles.entity.tadpole.flop": "Tadpole flops", + "subtitles.entity.tadpole.grow_up": "Tadpole grows up", + "subtitles.entity.tadpole.hurt": "Tadpole hurts", + "subtitles.entity.tnt.primed": "TNT fizzes", + "subtitles.entity.tropical_fish.death": "Tropical Fish dies", + "subtitles.entity.tropical_fish.flop": "Tropical Fish flops", + "subtitles.entity.tropical_fish.hurt": "Tropical Fish hurts", + "subtitles.entity.turtle.ambient_land": "Turtle chirps", + "subtitles.entity.turtle.death": "Turtle dies", + "subtitles.entity.turtle.death_baby": "Baby Turtle dies", + "subtitles.entity.turtle.egg_break": "Turtle Egg breaks", + "subtitles.entity.turtle.egg_crack": "Turtle Egg cracks", + "subtitles.entity.turtle.egg_hatch": "Turtle Egg hatches", + "subtitles.entity.turtle.hurt": "Turtle hurts", + "subtitles.entity.turtle.hurt_baby": "Baby Turtle hurts", + "subtitles.entity.turtle.lay_egg": "Turtle lays egg", + "subtitles.entity.turtle.shamble": "Turtle shambles", + "subtitles.entity.turtle.shamble_baby": "Baby Turtle shambles", + "subtitles.entity.turtle.swim": "Turtle swims", + "subtitles.entity.vex.ambient": "Vex vexes", + "subtitles.entity.vex.charge": "Vex shrieks", + "subtitles.entity.vex.death": "Vex dies", + "subtitles.entity.vex.hurt": "Vex hurts", + "subtitles.entity.villager.ambient": "Villager mumbles", + "subtitles.entity.villager.celebrate": "Villager cheers", + "subtitles.entity.villager.death": "Villager dies", + "subtitles.entity.villager.hurt": "Villager hurts", + "subtitles.entity.villager.no": "Villager disagrees", + "subtitles.entity.villager.trade": "Villager trades", + "subtitles.entity.villager.work_armorer": "Armorer works", + "subtitles.entity.villager.work_butcher": "Butcher works", + "subtitles.entity.villager.work_cartographer": "Cartographer works", + "subtitles.entity.villager.work_cleric": "Cleric works", + "subtitles.entity.villager.work_farmer": "Farmer works", + "subtitles.entity.villager.work_fisherman": "Fisherman works", + "subtitles.entity.villager.work_fletcher": "Fletcher works", + "subtitles.entity.villager.work_leatherworker": "Leatherworker works", + "subtitles.entity.villager.work_librarian": "Librarian works", + "subtitles.entity.villager.work_mason": "Mason works", + "subtitles.entity.villager.work_shepherd": "Shepherd works", + "subtitles.entity.villager.work_toolsmith": "Toolsmith works", + "subtitles.entity.villager.work_weaponsmith": "Weaponsmith works", + "subtitles.entity.villager.yes": "Villager agrees", + "subtitles.entity.vindicator.ambient": "Vindicator mutters", + "subtitles.entity.vindicator.celebrate": "Vindicator cheers", + "subtitles.entity.vindicator.death": "Vindicator dies", + "subtitles.entity.vindicator.hurt": "Vindicator hurts", + "subtitles.entity.wandering_trader.ambient": "Wandering Trader mumbles", + "subtitles.entity.wandering_trader.death": "Wandering Trader dies", + "subtitles.entity.wandering_trader.disappeared": "Wandering Trader disappears", + "subtitles.entity.wandering_trader.drink_milk": "Wandering Trader drinks milk", + "subtitles.entity.wandering_trader.drink_potion": "Wandering Trader drinks potion", + "subtitles.entity.wandering_trader.hurt": "Wandering Trader hurts", + "subtitles.entity.wandering_trader.no": "Wandering Trader disagrees", + "subtitles.entity.wandering_trader.reappeared": "Wandering Trader appears", + "subtitles.entity.wandering_trader.trade": "Wandering Trader trades", + "subtitles.entity.wandering_trader.yes": "Wandering Trader agrees", + "subtitles.entity.warden.agitated": "Warden groans angrily", + "subtitles.entity.warden.ambient": "Warden whines", + "subtitles.entity.warden.angry": "Warden rages", + "subtitles.entity.warden.attack_impact": "Warden lands hit", + "subtitles.entity.warden.death": "Warden dies", + "subtitles.entity.warden.dig": "Warden digs", + "subtitles.entity.warden.emerge": "Warden emerges", + "subtitles.entity.warden.heartbeat": "Warden's heart beats", + "subtitles.entity.warden.hurt": "Warden hurts", + "subtitles.entity.warden.listening": "Warden takes notice", + "subtitles.entity.warden.listening_angry": "Warden takes notice angrily", + "subtitles.entity.warden.nearby_close": "Warden approaches", + "subtitles.entity.warden.nearby_closer": "Warden advances", + "subtitles.entity.warden.nearby_closest": "Warden draws close", + "subtitles.entity.warden.roar": "Warden roars", + "subtitles.entity.warden.sniff": "Warden sniffs", + "subtitles.entity.warden.sonic_boom": "Warden booms", + "subtitles.entity.warden.sonic_charge": "Warden charges", + "subtitles.entity.warden.step": "Warden steps", + "subtitles.entity.warden.tendril_clicks": "Warden's tendrils click", + "subtitles.entity.wind_charge.throw": "Wind Charge flies", + "subtitles.entity.wind_charge.wind_burst": "Wind Charge bursts", + "subtitles.entity.witch.ambient": "Witch giggles", + "subtitles.entity.witch.celebrate": "Witch cheers", + "subtitles.entity.witch.death": "Witch dies", + "subtitles.entity.witch.drink": "Witch drinks", + "subtitles.entity.witch.hurt": "Witch hurts", + "subtitles.entity.witch.throw": "Witch throws", + "subtitles.entity.wither_skeleton.ambient": "Wither Skeleton rattles", + "subtitles.entity.wither_skeleton.death": "Wither Skeleton dies", + "subtitles.entity.wither_skeleton.hurt": "Wither Skeleton hurts", + "subtitles.entity.wither.ambient": "Wither angers", + "subtitles.entity.wither.death": "Wither dies", + "subtitles.entity.wither.hurt": "Wither hurts", + "subtitles.entity.wither.shoot": "Wither attacks", + "subtitles.entity.wither.spawn": "Wither released", + "subtitles.entity.wolf.ambient": "Wolf pants", + "subtitles.entity.wolf.death": "Wolf dies", + "subtitles.entity.wolf.growl": "Wolf growls", + "subtitles.entity.wolf.hurt": "Wolf hurts", + "subtitles.entity.wolf.shake": "Wolf shakes", + "subtitles.entity.zoglin.ambient": "Zoglin growls", + "subtitles.entity.zoglin.angry": "Zoglin growls angrily", + "subtitles.entity.zoglin.attack": "Zoglin attacks", + "subtitles.entity.zoglin.death": "Zoglin dies", + "subtitles.entity.zoglin.hurt": "Zoglin hurts", + "subtitles.entity.zoglin.step": "Zoglin steps", + "subtitles.entity.zombie_horse.ambient": "Zombie Horse cries", + "subtitles.entity.zombie_horse.death": "Zombie Horse dies", + "subtitles.entity.zombie_horse.hurt": "Zombie Horse hurts", + "subtitles.entity.zombie_villager.ambient": "Zombie Villager groans", + "subtitles.entity.zombie_villager.converted": "Zombie Villager vociferates", + "subtitles.entity.zombie_villager.cure": "Zombie Villager snuffles", + "subtitles.entity.zombie_villager.death": "Zombie Villager dies", + "subtitles.entity.zombie_villager.hurt": "Zombie Villager hurts", + "subtitles.entity.zombie.ambient": "Zombie groans", + "subtitles.entity.zombie.attack_wooden_door": "Door shakes", + "subtitles.entity.zombie.break_wooden_door": "Door breaks", + "subtitles.entity.zombie.converted_to_drowned": "Zombie converts to Drowned", + "subtitles.entity.zombie.death": "Zombie dies", + "subtitles.entity.zombie.destroy_egg": "Turtle Egg stomped", + "subtitles.entity.zombie.hurt": "Zombie hurts", + "subtitles.entity.zombie.infect": "Zombie infects", + "subtitles.entity.zombified_piglin.ambient": "Zombified Piglin grunts", + "subtitles.entity.zombified_piglin.angry": "Zombified Piglin grunts angrily", + "subtitles.entity.zombified_piglin.death": "Zombified Piglin dies", + "subtitles.entity.zombified_piglin.hurt": "Zombified Piglin hurts", + "subtitles.event.mob_effect.bad_omen": "Omen takes hold", + "subtitles.event.mob_effect.raid_omen": "Raid looms nearby", + "subtitles.event.mob_effect.trial_omen": "Ominous trial looms nearby", + "subtitles.event.raid.horn": "Ominous horn blares", + "subtitles.item.armor.equip": "Gear equips", + "subtitles.item.armor.equip_chain": "Chain armor jingles", + "subtitles.item.armor.equip_diamond": "Diamond armor clangs", + "subtitles.item.armor.equip_elytra": "Elytra rustle", + "subtitles.item.armor.equip_gold": "Gold armor clinks", + "subtitles.item.armor.equip_iron": "Iron armor clanks", + "subtitles.item.armor.equip_leather": "Leather armor rustles", + "subtitles.item.armor.equip_netherite": "Netherite armor clanks", + "subtitles.item.armor.equip_turtle": "Turtle Shell thunks", + "subtitles.item.armor.equip_wolf": "Wolf Armor is fastened", + "subtitles.item.armor.unequip_wolf": "Wolf Armor snips away", + "subtitles.item.axe.scrape": "Axe scrapes", + "subtitles.item.axe.strip": "Axe strips", + "subtitles.item.axe.wax_off": "Wax off", + "subtitles.item.bone_meal.use": "Bone Meal crinkles", + "subtitles.item.book.page_turn": "Page rustles", + "subtitles.item.book.put": "Book thumps", + "subtitles.item.bottle.empty": "Bottle empties", + "subtitles.item.bottle.fill": "Bottle fills", + "subtitles.item.brush.brushing.generic": "Brushing", + "subtitles.item.brush.brushing.gravel": "Brushing Gravel", + "subtitles.item.brush.brushing.gravel.complete": "Brushing Gravel completed", + "subtitles.item.brush.brushing.sand": "Brushing Sand", + "subtitles.item.brush.brushing.sand.complete": "Brushing Sand completed", + "subtitles.item.bucket.empty": "Bucket empties", + "subtitles.item.bucket.fill": "Bucket fills", + "subtitles.item.bucket.fill_axolotl": "Axolotl scooped", + "subtitles.item.bucket.fill_fish": "Fish captured", + "subtitles.item.bucket.fill_tadpole": "Tadpole captured", + "subtitles.item.bundle.drop_contents": "Bundle empties", + "subtitles.item.bundle.insert": "Item packed", + "subtitles.item.bundle.remove_one": "Item unpacked", + "subtitles.item.chorus_fruit.teleport": "Player teleports", + "subtitles.item.crop.plant": "Crop planted", + "subtitles.item.crossbow.charge": "Crossbow charges up", + "subtitles.item.crossbow.hit": "Arrow hits", + "subtitles.item.crossbow.load": "Crossbow loads", + "subtitles.item.crossbow.shoot": "Crossbow fires", + "subtitles.item.dye.use": "Dye stains", + "subtitles.item.firecharge.use": "Fireball whooshes", + "subtitles.item.flintandsteel.use": "Flint and Steel click", + "subtitles.item.glow_ink_sac.use": "Glow Ink Sac splotches", + "subtitles.item.goat_horn.play": "Goat Horn plays", + "subtitles.item.hoe.till": "Hoe tills", + "subtitles.item.honey_bottle.drink": "Gulping", + "subtitles.item.honeycomb.wax_on": "Wax on", + "subtitles.item.ink_sac.use": "Ink Sac splotches", + "subtitles.item.lodestone_compass.lock": "Lodestone Compass locks onto Lodestone", + "subtitles.item.mace.smash_air": "Mace smashes", + "subtitles.item.mace.smash_ground": "Mace smashes", + "subtitles.item.nether_wart.plant": "Crop planted", + "subtitles.item.ominous_bottle.dispose": "Bottle breaks", + "subtitles.item.shears.shear": "Shears click", + "subtitles.item.shield.block": "Shield blocks", + "subtitles.item.shovel.flatten": "Shovel flattens", + "subtitles.item.spyglass.stop_using": "Spyglass retracts", + "subtitles.item.spyglass.use": "Spyglass expands", + "subtitles.item.totem.use": "Totem activates", + "subtitles.item.trident.hit": "Trident stabs", + "subtitles.item.trident.hit_ground": "Trident vibrates", + "subtitles.item.trident.return": "Trident returns", + "subtitles.item.trident.riptide": "Trident zooms", + "subtitles.item.trident.throw": "Trident clangs", + "subtitles.item.trident.thunder": "Trident thunder cracks", + "subtitles.item.wolf_armor.break": "Wolf Armor breaks", + "subtitles.item.wolf_armor.crack": "Wolf Armor cracks", + "subtitles.item.wolf_armor.damage": "Wolf Armor takes damage", + "subtitles.item.wolf_armor.repair": "Wolf Armor is repaired", + "subtitles.particle.soul_escape": "Soul escapes", + "subtitles.ui.cartography_table.take_result": "Map drawn", + "subtitles.ui.loom.take_result": "Loom used", + "subtitles.ui.stonecutter.take_result": "Stonecutter used", + "subtitles.weather.rain": "Rain falls", + "symlink_warning.message": "Loading worlds from folders with symbolic links can be unsafe if you don't know exactly what you are doing. Please visit %s to learn more.", + "symlink_warning.message.pack": "Loading packs with symbolic links can be unsafe if you don't know exactly what you are doing. Please visit %s to learn more.", + "symlink_warning.message.world": "Loading worlds from folders with symbolic links can be unsafe if you don't know exactly what you are doing. Please visit %s to learn more.", + "symlink_warning.more_info": "More Information", + "symlink_warning.title": "World folder contains symbolic links", + "symlink_warning.title.pack": "Added pack(s) contain(s) symbolic links", + "symlink_warning.title.world": "The world folder contains symbolic links", + "team.collision.always": "Always", + "team.collision.never": "Never", + "team.collision.pushOtherTeams": "Push other teams", + "team.collision.pushOwnTeam": "Push own team", + "team.notFound": "Unknown team '%s'", + "team.visibility.always": "Always", + "team.visibility.hideForOtherTeams": "Hide for other teams", + "team.visibility.hideForOwnTeam": "Hide for own team", + "team.visibility.never": "Never", + "telemetry_info.button.give_feedback": "Give Feedback", + "telemetry_info.button.privacy_statement": "Privacy Statement", + "telemetry_info.button.show_data": "View My Data", + "telemetry_info.opt_in.description": "I consent to sending optional telemetry data", + "telemetry_info.property_title": "Included Data", + "telemetry_info.screen.description": "Collecting this data helps us improve Minecraft by guiding us in directions that are relevant to our players.\nYou can also send in additional feedback to help us keep improving Minecraft.", + "telemetry_info.screen.title": "Telemetry Data Collection", + "telemetry.event.advancement_made.description": "Understanding the context behind receiving an advancement can help us better understand and improve the progression of the game.", + "telemetry.event.advancement_made.title": "Advancement Made", + "telemetry.event.game_load_times.description": "This event can help us figure out where startup performance improvements are needed by measuring the execution times of the startup phases.", + "telemetry.event.game_load_times.title": "Game Load Times", + "telemetry.event.optional": "%s (Optional)", + "telemetry.event.optional.disabled": "%s (Optional) - Disabled", + "telemetry.event.performance_metrics.description": "Knowing the overall performance profile of Minecraft helps us tune and optimize the game for a wide range of machine specifications and operating systems. \nGame version is included to help us compare the performance profile for new versions of Minecraft.", + "telemetry.event.performance_metrics.title": "Performance Metrics", + "telemetry.event.required": "%s (Required)", + "telemetry.event.world_load_times.description": "It’s important for us to understand how long it takes to join a world, and how that changes over time. For example, when we add new features or do larger technical changes, we need to see what impact that had on load times.", + "telemetry.event.world_load_times.title": "World Load Times", + "telemetry.event.world_loaded.description": "Knowing how players play Minecraft (such as Game Mode, client or server modded, and game version) allows us to focus game updates to improve the areas that players care about most.\nThe World Loaded event is paired with the World Unloaded event to calculate how long the play session has lasted.", + "telemetry.event.world_loaded.title": "World Loaded", + "telemetry.event.world_unloaded.description": "This event is paired with the World Loaded event to calculate how long the world session has lasted.\nThe duration (in seconds and ticks) is measured when a world session has ended (quitting to title, disconnecting from a server).", + "telemetry.event.world_unloaded.title": "World Unloaded", + "telemetry.property.advancement_game_time.title": "Game Time (Ticks)", + "telemetry.property.advancement_id.title": "Advancement ID", + "telemetry.property.client_id.title": "Client ID", + "telemetry.property.client_modded.title": "Client Modded", + "telemetry.property.dedicated_memory_kb.title": "Dedicated Memory (kB)", + "telemetry.property.event_timestamp_utc.title": "Event Timestamp (UTC)", + "telemetry.property.frame_rate_samples.title": "Frame Rate Samples (FPS)", + "telemetry.property.game_mode.title": "Game Mode", + "telemetry.property.game_version.title": "Game Version", + "telemetry.property.launcher_name.title": "Launcher Name", + "telemetry.property.load_time_bootstrap_ms.title": "Bootstrap Time (Milliseconds)", + "telemetry.property.load_time_loading_overlay_ms.title": "Time in Loading Screen (Milliseconds)", + "telemetry.property.load_time_pre_window_ms.title": "Time Before Window Opens (Milliseconds)", + "telemetry.property.load_time_total_time_ms.title": "Total Load Time (Milliseconds)", + "telemetry.property.minecraft_session_id.title": "Minecraft Session ID", + "telemetry.property.new_world.title": "New World", + "telemetry.property.number_of_samples.title": "Sample Count", + "telemetry.property.operating_system.title": "Operating System", + "telemetry.property.opt_in.title": "Opt-In", + "telemetry.property.platform.title": "Platform", + "telemetry.property.realms_map_content.title": "Realms Map Content (Minigame Name)", + "telemetry.property.render_distance.title": "Render Distance", + "telemetry.property.render_time_samples.title": "Render Time Samples", + "telemetry.property.seconds_since_load.title": "Time Since Load (Seconds)", + "telemetry.property.server_modded.title": "Server Modded", + "telemetry.property.server_type.title": "Server Type", + "telemetry.property.ticks_since_load.title": "Time Since Load (Ticks)", + "telemetry.property.used_memory_samples.title": "Used Random Access Memory", + "telemetry.property.user_id.title": "User ID", + "telemetry.property.world_load_time_ms.title": "World Load Time (Milliseconds)", + "telemetry.property.world_session_id.title": "World Session ID", + "title.32bit.deprecation": "32-bit system detected: this may prevent you from playing in the future as a 64-bit system will be required!", + "title.32bit.deprecation.realms": "Minecraft will soon require a 64-bit system, which will prevent you from playing or using Realms on this device. You will need to manually cancel any Realms subscription.", + "title.32bit.deprecation.realms.check": "Do not show this screen again", + "title.32bit.deprecation.realms.header": "32-bit system detected", + "title.credits": "Copyright Mojang AB. Do not distribute!", + "title.multiplayer.disabled": "Multiplayer is disabled. Please check your Microsoft account settings.", + "title.multiplayer.disabled.banned.name": "You must change your name before you can play online", + "title.multiplayer.disabled.banned.permanent": "Your account is permanently suspended from online play", + "title.multiplayer.disabled.banned.temporary": "Your account is temporarily suspended from online play", + "title.multiplayer.lan": "Multiplayer (LAN)", + "title.multiplayer.other": "Multiplayer (3rd-party Server)", + "title.multiplayer.realms": "Multiplayer (Realms)", + "title.singleplayer": "Singleplayer", + "translation.test.args": "%s %s", + "translation.test.complex": "Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!", + "translation.test.escape": "%%s %%%s %%%%s %%%%%s", + "translation.test.invalid": "hi %", + "translation.test.invalid2": "hi % s", + "translation.test.none": "Hello, world!", + "translation.test.world": "world", + "trim_material.minecraft.amethyst": "Amethyst Material", + "trim_material.minecraft.copper": "Copper Material", + "trim_material.minecraft.diamond": "Diamond Material", + "trim_material.minecraft.emerald": "Emerald Material", + "trim_material.minecraft.gold": "Gold Material", + "trim_material.minecraft.iron": "Iron Material", + "trim_material.minecraft.lapis": "Lapis Material", + "trim_material.minecraft.netherite": "Netherite Material", + "trim_material.minecraft.quartz": "Quartz Material", + "trim_material.minecraft.redstone": "Redstone Material", + "trim_pattern.minecraft.bolt": "Bolt Armor Trim", + "trim_pattern.minecraft.coast": "Coast Armor Trim", + "trim_pattern.minecraft.dune": "Dune Armor Trim", + "trim_pattern.minecraft.eye": "Eye Armor Trim", + "trim_pattern.minecraft.flow": "Flow Armor Trim", + "trim_pattern.minecraft.host": "Host Armor Trim", + "trim_pattern.minecraft.raiser": "Raiser Armor Trim", + "trim_pattern.minecraft.rib": "Rib Armor Trim", + "trim_pattern.minecraft.sentry": "Sentry Armor Trim", + "trim_pattern.minecraft.shaper": "Shaper Armor Trim", + "trim_pattern.minecraft.silence": "Silence Armor Trim", + "trim_pattern.minecraft.snout": "Snout Armor Trim", + "trim_pattern.minecraft.spire": "Spire Armor Trim", + "trim_pattern.minecraft.tide": "Tide Armor Trim", + "trim_pattern.minecraft.vex": "Vex Armor Trim", + "trim_pattern.minecraft.ward": "Ward Armor Trim", + "trim_pattern.minecraft.wayfinder": "Wayfinder Armor Trim", + "trim_pattern.minecraft.wild": "Wild Armor Trim", + "tutorial.bundleInsert.description": "Right Click to add items", + "tutorial.bundleInsert.title": "Use a Bundle", + "tutorial.craft_planks.description": "The recipe book can help", + "tutorial.craft_planks.title": "Craft wooden planks", + "tutorial.find_tree.description": "Punch it to collect wood", + "tutorial.find_tree.title": "Find a tree", + "tutorial.look.description": "Use your mouse to turn", + "tutorial.look.title": "Look around", + "tutorial.move.description": "Jump with %s", + "tutorial.move.title": "Move with %s, %s, %s and %s", + "tutorial.open_inventory.description": "Press %s", + "tutorial.open_inventory.title": "Open your inventory", + "tutorial.punch_tree.description": "Hold down %s", + "tutorial.punch_tree.title": "Destroy the tree", + "tutorial.socialInteractions.description": "Press %s to open", + "tutorial.socialInteractions.title": "Social Interactions", + "upgrade.minecraft.netherite_upgrade": "Netherite Upgrade" +} diff --git a/assets/minecraft/models/block/acacia_button.json b/assets/minecraft/models/block/acacia_button.json new file mode 100644 index 00000000..e3ee4499 --- /dev/null +++ b/assets/minecraft/models/block/acacia_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_button_inventory.json b/assets/minecraft/models/block/acacia_button_inventory.json new file mode 100644 index 00000000..0b50c625 --- /dev/null +++ b/assets/minecraft/models/block/acacia_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_button_pressed.json b/assets/minecraft/models/block/acacia_button_pressed.json new file mode 100644 index 00000000..486e6edd --- /dev/null +++ b/assets/minecraft/models/block/acacia_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_bottom_left.json b/assets/minecraft/models/block/acacia_door_bottom_left.json new file mode 100644 index 00000000..aeab9dd0 --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_bottom_left_open.json b/assets/minecraft/models/block/acacia_door_bottom_left_open.json new file mode 100644 index 00000000..0e71dd58 --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_bottom_right.json b/assets/minecraft/models/block/acacia_door_bottom_right.json new file mode 100644 index 00000000..d4f4be3e --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_bottom_right_open.json b/assets/minecraft/models/block/acacia_door_bottom_right_open.json new file mode 100644 index 00000000..c39619d1 --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_top_left.json b/assets/minecraft/models/block/acacia_door_top_left.json new file mode 100644 index 00000000..ba9356a0 --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_top_left_open.json b/assets/minecraft/models/block/acacia_door_top_left_open.json new file mode 100644 index 00000000..a279c8a4 --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_top_right.json b/assets/minecraft/models/block/acacia_door_top_right.json new file mode 100644 index 00000000..75173926 --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_door_top_right_open.json b/assets/minecraft/models/block/acacia_door_top_right_open.json new file mode 100644 index 00000000..dc29f13a --- /dev/null +++ b/assets/minecraft/models/block/acacia_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/acacia_door_bottom", + "top": "minecraft:block/acacia_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_fence_gate.json b/assets/minecraft/models/block/acacia_fence_gate.json new file mode 100644 index 00000000..f121a183 --- /dev/null +++ b/assets/minecraft/models/block/acacia_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_fence_gate_open.json b/assets/minecraft/models/block/acacia_fence_gate_open.json new file mode 100644 index 00000000..28fe835e --- /dev/null +++ b/assets/minecraft/models/block/acacia_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_fence_gate_wall.json b/assets/minecraft/models/block/acacia_fence_gate_wall.json new file mode 100644 index 00000000..0ac31d07 --- /dev/null +++ b/assets/minecraft/models/block/acacia_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_fence_gate_wall_open.json b/assets/minecraft/models/block/acacia_fence_gate_wall_open.json new file mode 100644 index 00000000..2ea84d22 --- /dev/null +++ b/assets/minecraft/models/block/acacia_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_fence_inventory.json b/assets/minecraft/models/block/acacia_fence_inventory.json new file mode 100644 index 00000000..1300a233 --- /dev/null +++ b/assets/minecraft/models/block/acacia_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_fence_post.json b/assets/minecraft/models/block/acacia_fence_post.json new file mode 100644 index 00000000..96e4d444 --- /dev/null +++ b/assets/minecraft/models/block/acacia_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_fence_side.json b/assets/minecraft/models/block/acacia_fence_side.json new file mode 100644 index 00000000..9d7c83ea --- /dev/null +++ b/assets/minecraft/models/block/acacia_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_hanging_sign.json b/assets/minecraft/models/block/acacia_hanging_sign.json new file mode 100644 index 00000000..9d088d11 --- /dev/null +++ b/assets/minecraft/models/block/acacia_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_acacia_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_leaves.json b/assets/minecraft/models/block/acacia_leaves.json new file mode 100644 index 00000000..9d1d8e16 --- /dev/null +++ b/assets/minecraft/models/block/acacia_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/acacia_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_log.json b/assets/minecraft/models/block/acacia_log.json new file mode 100644 index 00000000..6eab23b0 --- /dev/null +++ b/assets/minecraft/models/block/acacia_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/acacia_log_top", + "side": "minecraft:block/acacia_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_log_horizontal.json b/assets/minecraft/models/block/acacia_log_horizontal.json new file mode 100644 index 00000000..c0ff6ac4 --- /dev/null +++ b/assets/minecraft/models/block/acacia_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/acacia_log_top", + "side": "minecraft:block/acacia_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_planks.json b/assets/minecraft/models/block/acacia_planks.json new file mode 100644 index 00000000..5efe51c0 --- /dev/null +++ b/assets/minecraft/models/block/acacia_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_pressure_plate.json b/assets/minecraft/models/block/acacia_pressure_plate.json new file mode 100644 index 00000000..8c40c47b --- /dev/null +++ b/assets/minecraft/models/block/acacia_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_pressure_plate_down.json b/assets/minecraft/models/block/acacia_pressure_plate_down.json new file mode 100644 index 00000000..b437bc26 --- /dev/null +++ b/assets/minecraft/models/block/acacia_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_sapling.json b/assets/minecraft/models/block/acacia_sapling.json new file mode 100644 index 00000000..ea6fd73b --- /dev/null +++ b/assets/minecraft/models/block/acacia_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/acacia_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_sign.json b/assets/minecraft/models/block/acacia_sign.json new file mode 100644 index 00000000..700d9b8a --- /dev/null +++ b/assets/minecraft/models/block/acacia_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_slab.json b/assets/minecraft/models/block/acacia_slab.json new file mode 100644 index 00000000..b8d31c82 --- /dev/null +++ b/assets/minecraft/models/block/acacia_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/acacia_planks", + "side": "minecraft:block/acacia_planks", + "top": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_slab_top.json b/assets/minecraft/models/block/acacia_slab_top.json new file mode 100644 index 00000000..a2995410 --- /dev/null +++ b/assets/minecraft/models/block/acacia_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/acacia_planks", + "side": "minecraft:block/acacia_planks", + "top": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_stairs.json b/assets/minecraft/models/block/acacia_stairs.json new file mode 100644 index 00000000..fee16e55 --- /dev/null +++ b/assets/minecraft/models/block/acacia_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/acacia_planks", + "side": "minecraft:block/acacia_planks", + "top": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_stairs_inner.json b/assets/minecraft/models/block/acacia_stairs_inner.json new file mode 100644 index 00000000..323018d5 --- /dev/null +++ b/assets/minecraft/models/block/acacia_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/acacia_planks", + "side": "minecraft:block/acacia_planks", + "top": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_stairs_outer.json b/assets/minecraft/models/block/acacia_stairs_outer.json new file mode 100644 index 00000000..a4978fbd --- /dev/null +++ b/assets/minecraft/models/block/acacia_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/acacia_planks", + "side": "minecraft:block/acacia_planks", + "top": "minecraft:block/acacia_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_trapdoor_bottom.json b/assets/minecraft/models/block/acacia_trapdoor_bottom.json new file mode 100644 index 00000000..38bd46e2 --- /dev/null +++ b/assets/minecraft/models/block/acacia_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/acacia_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_trapdoor_open.json b/assets/minecraft/models/block/acacia_trapdoor_open.json new file mode 100644 index 00000000..de4be4d5 --- /dev/null +++ b/assets/minecraft/models/block/acacia_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/acacia_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_trapdoor_top.json b/assets/minecraft/models/block/acacia_trapdoor_top.json new file mode 100644 index 00000000..4f512409 --- /dev/null +++ b/assets/minecraft/models/block/acacia_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/acacia_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/acacia_wood.json b/assets/minecraft/models/block/acacia_wood.json new file mode 100644 index 00000000..2ef9da9c --- /dev/null +++ b/assets/minecraft/models/block/acacia_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/acacia_log", + "side": "minecraft:block/acacia_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/activator_rail.json b/assets/minecraft/models/block/activator_rail.json new file mode 100644 index 00000000..fbb2f56c --- /dev/null +++ b/assets/minecraft/models/block/activator_rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_flat", + "textures": { + "rail": "minecraft:block/activator_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/activator_rail_on.json b/assets/minecraft/models/block/activator_rail_on.json new file mode 100644 index 00000000..770a3bf5 --- /dev/null +++ b/assets/minecraft/models/block/activator_rail_on.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_flat", + "textures": { + "rail": "minecraft:block/activator_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/activator_rail_on_raised_ne.json b/assets/minecraft/models/block/activator_rail_on_raised_ne.json new file mode 100644 index 00000000..9d82f7b6 --- /dev/null +++ b/assets/minecraft/models/block/activator_rail_on_raised_ne.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_ne", + "textures": { + "rail": "minecraft:block/activator_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/activator_rail_on_raised_sw.json b/assets/minecraft/models/block/activator_rail_on_raised_sw.json new file mode 100644 index 00000000..43c773a1 --- /dev/null +++ b/assets/minecraft/models/block/activator_rail_on_raised_sw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_sw", + "textures": { + "rail": "minecraft:block/activator_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/activator_rail_raised_ne.json b/assets/minecraft/models/block/activator_rail_raised_ne.json new file mode 100644 index 00000000..d953b088 --- /dev/null +++ b/assets/minecraft/models/block/activator_rail_raised_ne.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_ne", + "textures": { + "rail": "minecraft:block/activator_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/activator_rail_raised_sw.json b/assets/minecraft/models/block/activator_rail_raised_sw.json new file mode 100644 index 00000000..9b8c8587 --- /dev/null +++ b/assets/minecraft/models/block/activator_rail_raised_sw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_sw", + "textures": { + "rail": "minecraft:block/activator_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/air.json b/assets/minecraft/models/block/air.json new file mode 100644 index 00000000..2c63c085 --- /dev/null +++ b/assets/minecraft/models/block/air.json @@ -0,0 +1,2 @@ +{ +} diff --git a/assets/minecraft/models/block/allium.json b/assets/minecraft/models/block/allium.json new file mode 100644 index 00000000..3c13827c --- /dev/null +++ b/assets/minecraft/models/block/allium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/allium" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/amethyst_block.json b/assets/minecraft/models/block/amethyst_block.json new file mode 100644 index 00000000..3e0a7f7f --- /dev/null +++ b/assets/minecraft/models/block/amethyst_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/amethyst_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/amethyst_cluster.json b/assets/minecraft/models/block/amethyst_cluster.json new file mode 100644 index 00000000..6f2e0497 --- /dev/null +++ b/assets/minecraft/models/block/amethyst_cluster.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/amethyst_cluster" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/ancient_debris.json b/assets/minecraft/models/block/ancient_debris.json new file mode 100644 index 00000000..d16af45f --- /dev/null +++ b/assets/minecraft/models/block/ancient_debris.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/ancient_debris_top", + "side": "minecraft:block/ancient_debris_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite.json b/assets/minecraft/models/block/andesite.json new file mode 100644 index 00000000..3f9f0234 --- /dev/null +++ b/assets/minecraft/models/block/andesite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_slab.json b/assets/minecraft/models/block/andesite_slab.json new file mode 100644 index 00000000..07f6eade --- /dev/null +++ b/assets/minecraft/models/block/andesite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/andesite", + "side": "minecraft:block/andesite", + "top": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_slab_top.json b/assets/minecraft/models/block/andesite_slab_top.json new file mode 100644 index 00000000..705a7db4 --- /dev/null +++ b/assets/minecraft/models/block/andesite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/andesite", + "side": "minecraft:block/andesite", + "top": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_stairs.json b/assets/minecraft/models/block/andesite_stairs.json new file mode 100644 index 00000000..63a4fc95 --- /dev/null +++ b/assets/minecraft/models/block/andesite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/andesite", + "side": "minecraft:block/andesite", + "top": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_stairs_inner.json b/assets/minecraft/models/block/andesite_stairs_inner.json new file mode 100644 index 00000000..b0f469a1 --- /dev/null +++ b/assets/minecraft/models/block/andesite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/andesite", + "side": "minecraft:block/andesite", + "top": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_stairs_outer.json b/assets/minecraft/models/block/andesite_stairs_outer.json new file mode 100644 index 00000000..e823edcf --- /dev/null +++ b/assets/minecraft/models/block/andesite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/andesite", + "side": "minecraft:block/andesite", + "top": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_wall_inventory.json b/assets/minecraft/models/block/andesite_wall_inventory.json new file mode 100644 index 00000000..1c61acfd --- /dev/null +++ b/assets/minecraft/models/block/andesite_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_wall_post.json b/assets/minecraft/models/block/andesite_wall_post.json new file mode 100644 index 00000000..6c117e6f --- /dev/null +++ b/assets/minecraft/models/block/andesite_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_wall_side.json b/assets/minecraft/models/block/andesite_wall_side.json new file mode 100644 index 00000000..8dfcd81b --- /dev/null +++ b/assets/minecraft/models/block/andesite_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/andesite_wall_side_tall.json b/assets/minecraft/models/block/andesite_wall_side_tall.json new file mode 100644 index 00000000..f4075f2a --- /dev/null +++ b/assets/minecraft/models/block/andesite_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/anvil.json b/assets/minecraft/models/block/anvil.json new file mode 100644 index 00000000..dc9d2555 --- /dev/null +++ b/assets/minecraft/models/block/anvil.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_anvil", + "textures": { + "top": "minecraft:block/anvil_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/attached_melon_stem.json b/assets/minecraft/models/block/attached_melon_stem.json new file mode 100644 index 00000000..1ebaf505 --- /dev/null +++ b/assets/minecraft/models/block/attached_melon_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/stem_fruit", + "textures": { + "stem": "minecraft:block/melon_stem", + "upperstem": "minecraft:block/attached_melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/attached_pumpkin_stem.json b/assets/minecraft/models/block/attached_pumpkin_stem.json new file mode 100644 index 00000000..0a7c5692 --- /dev/null +++ b/assets/minecraft/models/block/attached_pumpkin_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/stem_fruit", + "textures": { + "stem": "minecraft:block/pumpkin_stem", + "upperstem": "minecraft:block/attached_pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/azalea.json b/assets/minecraft/models/block/azalea.json new file mode 100644 index 00000000..61f66853 --- /dev/null +++ b/assets/minecraft/models/block/azalea.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_azalea", + "textures": { + "side": "minecraft:block/azalea_side", + "top": "minecraft:block/azalea_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/azalea_leaves.json b/assets/minecraft/models/block/azalea_leaves.json new file mode 100644 index 00000000..4c6814a5 --- /dev/null +++ b/assets/minecraft/models/block/azalea_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/azalea_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/azure_bluet.json b/assets/minecraft/models/block/azure_bluet.json new file mode 100644 index 00000000..35cac69e --- /dev/null +++ b/assets/minecraft/models/block/azure_bluet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/azure_bluet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo1_age0.json b/assets/minecraft/models/block/bamboo1_age0.json new file mode 100644 index 00000000..0f5244e5 --- /dev/null +++ b/assets/minecraft/models/block/bamboo1_age0.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "down": { "uv": [ 13, 4, 15, 6 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 15, 2], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 0, 0, 2, 16 ], "texture": "#all" }, + "south": { "uv": [ 0, 0, 2, 16 ], "texture": "#all" }, + "west": { "uv": [ 0, 0, 2, 16 ], "texture": "#all" }, + "east": { "uv": [ 0, 0, 2, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo1_age1.json b/assets/minecraft/models/block/bamboo1_age1.json new file mode 100644 index 00000000..d121263f --- /dev/null +++ b/assets/minecraft/models/block/bamboo1_age1.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 6.5, 0, 6.5 ], + "to": [ 9.5, 16, 9.5 ], + "faces": { + "down": { "uv": [ 13, 4, 16, 7 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 16, 3 ], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 0, 0, 3, 16 ], "texture": "#all" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#all" }, + "west": { "uv": [ 0, 0, 3, 16 ], "texture": "#all" }, + "east": { "uv": [ 0, 0, 3, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo2_age0.json b/assets/minecraft/models/block/bamboo2_age0.json new file mode 100644 index 00000000..bc6e56c6 --- /dev/null +++ b/assets/minecraft/models/block/bamboo2_age0.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "down": { "uv": [ 13, 4, 15, 6 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 15, 2], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 3, 0, 5, 16 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 5, 16 ], "texture": "#all" }, + "west": { "uv": [ 3, 0, 5, 16 ], "texture": "#all" }, + "east": { "uv": [ 3, 0, 5, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo2_age1.json b/assets/minecraft/models/block/bamboo2_age1.json new file mode 100644 index 00000000..55b2f4d1 --- /dev/null +++ b/assets/minecraft/models/block/bamboo2_age1.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 6.5, 0, 6.5 ], + "to": [ 9.5, 16, 9.5 ], + "faces": { + "down": { "uv": [ 13, 4, 16, 7 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 16, 3 ], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 3, 0, 6, 16 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 6, 16 ], "texture": "#all" }, + "west": { "uv": [ 3, 0, 6, 16 ], "texture": "#all" }, + "east": { "uv": [ 3, 0, 6, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo3_age0.json b/assets/minecraft/models/block/bamboo3_age0.json new file mode 100644 index 00000000..d72b3e64 --- /dev/null +++ b/assets/minecraft/models/block/bamboo3_age0.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "down": { "uv": [ 13, 4, 15, 6 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 15, 2], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 6, 0, 8, 16 ], "texture": "#all" }, + "south": { "uv": [ 6, 0, 8, 16 ], "texture": "#all" }, + "west": { "uv": [ 6, 0, 8, 16 ], "texture": "#all" }, + "east": { "uv": [ 6, 0, 8, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo3_age1.json b/assets/minecraft/models/block/bamboo3_age1.json new file mode 100644 index 00000000..499cd02e --- /dev/null +++ b/assets/minecraft/models/block/bamboo3_age1.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 6.5, 0, 6.5 ], + "to": [ 9.5, 16, 9.5 ], + "faces": { + "down": { "uv": [ 13, 4, 16, 7 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 16, 3 ], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 6, 0, 9, 16 ], "texture": "#all" }, + "south": { "uv": [ 6, 0, 9, 16 ], "texture": "#all" }, + "west": { "uv": [ 6, 0, 9, 16 ], "texture": "#all" }, + "east": { "uv": [ 6, 0, 9, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo4_age0.json b/assets/minecraft/models/block/bamboo4_age0.json new file mode 100644 index 00000000..cc9c1dcc --- /dev/null +++ b/assets/minecraft/models/block/bamboo4_age0.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "down": { "uv": [ 13, 4, 15, 6 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 15, 2], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 9, 0, 11, 16 ], "texture": "#all" }, + "south": { "uv": [ 9, 0, 11, 16 ], "texture": "#all" }, + "west": { "uv": [ 9, 0, 11, 16 ], "texture": "#all" }, + "east": { "uv": [ 9, 0, 11, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo4_age1.json b/assets/minecraft/models/block/bamboo4_age1.json new file mode 100644 index 00000000..4b8b8681 --- /dev/null +++ b/assets/minecraft/models/block/bamboo4_age1.json @@ -0,0 +1,19 @@ +{ + "textures": { + "all": "block/bamboo_stalk", + "particle": "block/bamboo_stalk" + }, + "elements": [ + { "from": [ 6.5, 0, 6.5 ], + "to": [ 9.5, 16, 9.5 ], + "faces": { + "down": { "uv": [ 13, 4, 16, 7 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 13, 0, 16, 3 ], "texture": "#all", "cullface": "up" }, + "north": { "uv": [ 9, 0, 12, 16 ], "texture": "#all" }, + "south": { "uv": [ 9, 0, 12, 16 ], "texture": "#all" }, + "west": { "uv": [ 9, 0, 12, 16 ], "texture": "#all" }, + "east": { "uv": [ 9, 0, 12, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo_block.json b/assets/minecraft/models/block/bamboo_block.json new file mode 100644 index 00000000..6fa86028 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/bamboo_block_top", + "side": "minecraft:block/bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_block_x.json b/assets/minecraft/models/block/bamboo_block_x.json new file mode 100644 index 00000000..8b66c3fc --- /dev/null +++ b/assets/minecraft/models/block/bamboo_block_x.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_x", + "textures": { + "end": "minecraft:block/bamboo_block_top", + "side": "minecraft:block/bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_block_y.json b/assets/minecraft/models/block/bamboo_block_y.json new file mode 100644 index 00000000..a904e283 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_block_y.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_y", + "textures": { + "end": "minecraft:block/bamboo_block_top", + "side": "minecraft:block/bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_block_z.json b/assets/minecraft/models/block/bamboo_block_z.json new file mode 100644 index 00000000..60e8c019 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_block_z.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_z", + "textures": { + "end": "minecraft:block/bamboo_block_top", + "side": "minecraft:block/bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_button.json b/assets/minecraft/models/block/bamboo_button.json new file mode 100644 index 00000000..b63d5bd3 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_button_inventory.json b/assets/minecraft/models/block/bamboo_button_inventory.json new file mode 100644 index 00000000..ad812264 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_button_pressed.json b/assets/minecraft/models/block/bamboo_button_pressed.json new file mode 100644 index 00000000..19821402 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_bottom_left.json b/assets/minecraft/models/block/bamboo_door_bottom_left.json new file mode 100644 index 00000000..3a17d237 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_bottom_left_open.json b/assets/minecraft/models/block/bamboo_door_bottom_left_open.json new file mode 100644 index 00000000..c9107959 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_bottom_right.json b/assets/minecraft/models/block/bamboo_door_bottom_right.json new file mode 100644 index 00000000..09cd6904 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_bottom_right_open.json b/assets/minecraft/models/block/bamboo_door_bottom_right_open.json new file mode 100644 index 00000000..d869d65a --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_top_left.json b/assets/minecraft/models/block/bamboo_door_top_left.json new file mode 100644 index 00000000..0ce32f12 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_top_left_open.json b/assets/minecraft/models/block/bamboo_door_top_left_open.json new file mode 100644 index 00000000..05e969ef --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_top_right.json b/assets/minecraft/models/block/bamboo_door_top_right.json new file mode 100644 index 00000000..a6a21e9c --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_door_top_right_open.json b/assets/minecraft/models/block/bamboo_door_top_right_open.json new file mode 100644 index 00000000..782f4af6 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/bamboo_door_bottom", + "top": "minecraft:block/bamboo_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_gate.json b/assets/minecraft/models/block/bamboo_fence_gate.json new file mode 100644 index 00000000..8a5d91aa --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_gate.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_custom_fence_gate", + "textures": { + "particle": "minecraft:block/bamboo_fence_gate_particle", + "texture": "minecraft:block/bamboo_fence_gate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_gate_open.json b/assets/minecraft/models/block/bamboo_fence_gate_open.json new file mode 100644 index 00000000..046ad1ea --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_gate_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_custom_fence_gate_open", + "textures": { + "particle": "minecraft:block/bamboo_fence_gate_particle", + "texture": "minecraft:block/bamboo_fence_gate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_gate_wall.json b/assets/minecraft/models/block/bamboo_fence_gate_wall.json new file mode 100644 index 00000000..43bb833a --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_gate_wall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_custom_fence_gate_wall", + "textures": { + "particle": "minecraft:block/bamboo_fence_gate_particle", + "texture": "minecraft:block/bamboo_fence_gate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_gate_wall_open.json b/assets/minecraft/models/block/bamboo_fence_gate_wall_open.json new file mode 100644 index 00000000..ab15a510 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_gate_wall_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_custom_fence_gate_wall_open", + "textures": { + "particle": "minecraft:block/bamboo_fence_gate_particle", + "texture": "minecraft:block/bamboo_fence_gate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_inventory.json b/assets/minecraft/models/block/bamboo_fence_inventory.json new file mode 100644 index 00000000..87d9cb92 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/custom_fence_inventory", + "textures": { + "texture": "minecraft:block/bamboo_fence" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_post.json b/assets/minecraft/models/block/bamboo_fence_post.json new file mode 100644 index 00000000..66e8880f --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/custom_fence_post", + "textures": { + "particle": "minecraft:block/bamboo_fence_particle", + "texture": "minecraft:block/bamboo_fence" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_side_east.json b/assets/minecraft/models/block/bamboo_fence_side_east.json new file mode 100644 index 00000000..4d70eb37 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_side_east.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/custom_fence_side_east", + "textures": { + "texture": "minecraft:block/bamboo_fence" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_side_north.json b/assets/minecraft/models/block/bamboo_fence_side_north.json new file mode 100644 index 00000000..56d48e47 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_side_north.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/custom_fence_side_north", + "textures": { + "texture": "minecraft:block/bamboo_fence" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_side_south.json b/assets/minecraft/models/block/bamboo_fence_side_south.json new file mode 100644 index 00000000..7dbf5975 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_side_south.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/custom_fence_side_south", + "textures": { + "texture": "minecraft:block/bamboo_fence" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_fence_side_west.json b/assets/minecraft/models/block/bamboo_fence_side_west.json new file mode 100644 index 00000000..0d410658 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_fence_side_west.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/custom_fence_side_west", + "textures": { + "texture": "minecraft:block/bamboo_fence" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_hanging_sign.json b/assets/minecraft/models/block/bamboo_hanging_sign.json new file mode 100644 index 00000000..00c837bf --- /dev/null +++ b/assets/minecraft/models/block/bamboo_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_large_leaves.json b/assets/minecraft/models/block/bamboo_large_leaves.json new file mode 100644 index 00000000..3ddead94 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_large_leaves.json @@ -0,0 +1,25 @@ +{ + "ambientocclusion": false, + "textures": { + "texture": "block/bamboo_large_leaves", + "particle": "block/bamboo_large_leaves" + }, + "elements": [ + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 16, 8 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 16, 15.2 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo_mosaic.json b/assets/minecraft/models/block/bamboo_mosaic.json new file mode 100644 index 00000000..7432c989 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_mosaic.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/bamboo_mosaic" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_mosaic_slab.json b/assets/minecraft/models/block/bamboo_mosaic_slab.json new file mode 100644 index 00000000..02ceb8fa --- /dev/null +++ b/assets/minecraft/models/block/bamboo_mosaic_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/bamboo_mosaic", + "side": "minecraft:block/bamboo_mosaic", + "top": "minecraft:block/bamboo_mosaic" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_mosaic_slab_top.json b/assets/minecraft/models/block/bamboo_mosaic_slab_top.json new file mode 100644 index 00000000..7be74a48 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_mosaic_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/bamboo_mosaic", + "side": "minecraft:block/bamboo_mosaic", + "top": "minecraft:block/bamboo_mosaic" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_mosaic_stairs.json b/assets/minecraft/models/block/bamboo_mosaic_stairs.json new file mode 100644 index 00000000..6a8a99d3 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_mosaic_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/bamboo_mosaic", + "side": "minecraft:block/bamboo_mosaic", + "top": "minecraft:block/bamboo_mosaic" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_mosaic_stairs_inner.json b/assets/minecraft/models/block/bamboo_mosaic_stairs_inner.json new file mode 100644 index 00000000..02edfd75 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_mosaic_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/bamboo_mosaic", + "side": "minecraft:block/bamboo_mosaic", + "top": "minecraft:block/bamboo_mosaic" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_mosaic_stairs_outer.json b/assets/minecraft/models/block/bamboo_mosaic_stairs_outer.json new file mode 100644 index 00000000..64b61b65 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_mosaic_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/bamboo_mosaic", + "side": "minecraft:block/bamboo_mosaic", + "top": "minecraft:block/bamboo_mosaic" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_planks.json b/assets/minecraft/models/block/bamboo_planks.json new file mode 100644 index 00000000..670a66f9 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_pressure_plate.json b/assets/minecraft/models/block/bamboo_pressure_plate.json new file mode 100644 index 00000000..ea2b50d8 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_pressure_plate_down.json b/assets/minecraft/models/block/bamboo_pressure_plate_down.json new file mode 100644 index 00000000..54a33280 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_sapling.json b/assets/minecraft/models/block/bamboo_sapling.json new file mode 100644 index 00000000..f658e68e --- /dev/null +++ b/assets/minecraft/models/block/bamboo_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/bamboo_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_sign.json b/assets/minecraft/models/block/bamboo_sign.json new file mode 100644 index 00000000..00c837bf --- /dev/null +++ b/assets/minecraft/models/block/bamboo_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_slab.json b/assets/minecraft/models/block/bamboo_slab.json new file mode 100644 index 00000000..569c1847 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/bamboo_planks", + "side": "minecraft:block/bamboo_planks", + "top": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_slab_top.json b/assets/minecraft/models/block/bamboo_slab_top.json new file mode 100644 index 00000000..04e017fc --- /dev/null +++ b/assets/minecraft/models/block/bamboo_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/bamboo_planks", + "side": "minecraft:block/bamboo_planks", + "top": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_small_leaves.json b/assets/minecraft/models/block/bamboo_small_leaves.json new file mode 100644 index 00000000..c21694ea --- /dev/null +++ b/assets/minecraft/models/block/bamboo_small_leaves.json @@ -0,0 +1,25 @@ +{ + "ambientocclusion": false, + "textures": { + "texture": "block/bamboo_small_leaves", + "particle": "block/bamboo_small_leaves" + }, + "elements": [ + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 16, 8 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 16, 15.2 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/bamboo_stairs.json b/assets/minecraft/models/block/bamboo_stairs.json new file mode 100644 index 00000000..ed8578fb --- /dev/null +++ b/assets/minecraft/models/block/bamboo_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/bamboo_planks", + "side": "minecraft:block/bamboo_planks", + "top": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_stairs_inner.json b/assets/minecraft/models/block/bamboo_stairs_inner.json new file mode 100644 index 00000000..c4c2c4b4 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/bamboo_planks", + "side": "minecraft:block/bamboo_planks", + "top": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_stairs_outer.json b/assets/minecraft/models/block/bamboo_stairs_outer.json new file mode 100644 index 00000000..4cd65300 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/bamboo_planks", + "side": "minecraft:block/bamboo_planks", + "top": "minecraft:block/bamboo_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_trapdoor_bottom.json b/assets/minecraft/models/block/bamboo_trapdoor_bottom.json new file mode 100644 index 00000000..d7925a41 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/bamboo_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_trapdoor_open.json b/assets/minecraft/models/block/bamboo_trapdoor_open.json new file mode 100644 index 00000000..abbece26 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/bamboo_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bamboo_trapdoor_top.json b/assets/minecraft/models/block/bamboo_trapdoor_top.json new file mode 100644 index 00000000..778861d0 --- /dev/null +++ b/assets/minecraft/models/block/bamboo_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/bamboo_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/banner.json b/assets/minecraft/models/block/banner.json new file mode 100644 index 00000000..9406a849 --- /dev/null +++ b/assets/minecraft/models/block/banner.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/barrel.json b/assets/minecraft/models/block/barrel.json new file mode 100644 index 00000000..cff93008 --- /dev/null +++ b/assets/minecraft/models/block/barrel.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/barrel_bottom", + "side": "minecraft:block/barrel_side", + "top": "minecraft:block/barrel_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/barrel_open.json b/assets/minecraft/models/block/barrel_open.json new file mode 100644 index 00000000..c7d013e7 --- /dev/null +++ b/assets/minecraft/models/block/barrel_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/barrel_bottom", + "side": "minecraft:block/barrel_side", + "top": "minecraft:block/barrel_top_open" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/barrier.json b/assets/minecraft/models/block/barrier.json new file mode 100644 index 00000000..7d855f50 --- /dev/null +++ b/assets/minecraft/models/block/barrier.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/barrier" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/basalt.json b/assets/minecraft/models/block/basalt.json new file mode 100644 index 00000000..9a43b3d7 --- /dev/null +++ b/assets/minecraft/models/block/basalt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/basalt_top", + "side": "minecraft:block/basalt_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/beacon.json b/assets/minecraft/models/block/beacon.json new file mode 100644 index 00000000..de4bca2e --- /dev/null +++ b/assets/minecraft/models/block/beacon.json @@ -0,0 +1,46 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/glass", + "glass": "block/glass", + "obsidian": "block/obsidian", + "beacon": "block/beacon" + }, + "elements": [ + { "__comment": "Glass shell", + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#glass" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#glass" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#glass" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#glass" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#glass" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#glass" } + } + }, + { "__comment": "Obsidian base", + "from": [ 2, 0.1, 2 ], + "to": [ 14, 3, 14 ], + "faces": { + "down": { "uv": [ 2, 2, 14, 14 ], "texture": "#obsidian" }, + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#obsidian" }, + "north": { "uv": [ 2, 13, 14, 16 ], "texture": "#obsidian" }, + "south": { "uv": [ 2, 13, 14, 16 ], "texture": "#obsidian" }, + "west": { "uv": [ 2, 13, 14, 16 ], "texture": "#obsidian" }, + "east": { "uv": [ 2, 13, 14, 16 ], "texture": "#obsidian" } + } + }, + { "__comment": "Inner beacon texture", + "from": [ 3, 3, 3 ], + "to": [ 13, 14, 13 ], + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#beacon" }, + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#beacon" }, + "north": { "uv": [ 3, 2, 13, 13 ], "texture": "#beacon" }, + "south": { "uv": [ 3, 2, 13, 13 ], "texture": "#beacon" }, + "west": { "uv": [ 3, 2, 13, 13 ], "texture": "#beacon" }, + "east": { "uv": [ 3, 2, 13, 13 ], "texture": "#beacon" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bed.json b/assets/minecraft/models/block/bed.json new file mode 100644 index 00000000..9406a849 --- /dev/null +++ b/assets/minecraft/models/block/bed.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bedrock.json b/assets/minecraft/models/block/bedrock.json new file mode 100644 index 00000000..adc6359e --- /dev/null +++ b/assets/minecraft/models/block/bedrock.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/bedrock" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bedrock_mirrored.json b/assets/minecraft/models/block/bedrock_mirrored.json new file mode 100644 index 00000000..a75ef1fb --- /dev/null +++ b/assets/minecraft/models/block/bedrock_mirrored.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_mirrored_all", + "textures": { + "all": "minecraft:block/bedrock" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bee_nest.json b/assets/minecraft/models/block/bee_nest.json new file mode 100644 index 00000000..ac0aa623 --- /dev/null +++ b/assets/minecraft/models/block/bee_nest.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/orientable_with_bottom", + "textures": { + "bottom": "minecraft:block/bee_nest_bottom", + "front": "minecraft:block/bee_nest_front", + "particle": "minecraft:block/bee_nest_side", + "side": "minecraft:block/bee_nest_side", + "top": "minecraft:block/bee_nest_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bee_nest_honey.json b/assets/minecraft/models/block/bee_nest_honey.json new file mode 100644 index 00000000..25850dbf --- /dev/null +++ b/assets/minecraft/models/block/bee_nest_honey.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/orientable_with_bottom", + "textures": { + "bottom": "minecraft:block/bee_nest_bottom", + "front": "minecraft:block/bee_nest_front_honey", + "particle": "minecraft:block/bee_nest_side", + "side": "minecraft:block/bee_nest_side", + "top": "minecraft:block/bee_nest_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/beehive.json b/assets/minecraft/models/block/beehive.json new file mode 100644 index 00000000..4c875e63 --- /dev/null +++ b/assets/minecraft/models/block/beehive.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/orientable_with_bottom", + "textures": { + "bottom": "minecraft:block/beehive_end", + "front": "minecraft:block/beehive_front", + "particle": "minecraft:block/beehive_side", + "side": "minecraft:block/beehive_side", + "top": "minecraft:block/beehive_end" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/beehive_honey.json b/assets/minecraft/models/block/beehive_honey.json new file mode 100644 index 00000000..1973867c --- /dev/null +++ b/assets/minecraft/models/block/beehive_honey.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/orientable_with_bottom", + "textures": { + "bottom": "minecraft:block/beehive_end", + "front": "minecraft:block/beehive_front_honey", + "particle": "minecraft:block/beehive_side", + "side": "minecraft:block/beehive_side", + "top": "minecraft:block/beehive_end" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/beetroots_stage0.json b/assets/minecraft/models/block/beetroots_stage0.json new file mode 100644 index 00000000..47fbf6f8 --- /dev/null +++ b/assets/minecraft/models/block/beetroots_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/beetroots_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/beetroots_stage1.json b/assets/minecraft/models/block/beetroots_stage1.json new file mode 100644 index 00000000..06177c9c --- /dev/null +++ b/assets/minecraft/models/block/beetroots_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/beetroots_stage1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/beetroots_stage2.json b/assets/minecraft/models/block/beetroots_stage2.json new file mode 100644 index 00000000..d843c09d --- /dev/null +++ b/assets/minecraft/models/block/beetroots_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/beetroots_stage2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/beetroots_stage3.json b/assets/minecraft/models/block/beetroots_stage3.json new file mode 100644 index 00000000..3fa2170b --- /dev/null +++ b/assets/minecraft/models/block/beetroots_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/beetroots_stage3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bell_between_walls.json b/assets/minecraft/models/block/bell_between_walls.json new file mode 100644 index 00000000..8e7903f3 --- /dev/null +++ b/assets/minecraft/models/block/bell_between_walls.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "block/bell_bottom", + "bar": "block/dark_oak_planks" + }, + "elements": [ + { + "from": [ 0, 13, 7 ], + "to": [ 16, 15, 9 ], + "faces": { + "north": { "uv": [ 2, 2, 14, 4 ], "texture": "#bar" }, + "east": { "uv": [ 5, 4, 7, 6 ], "texture": "#bar", "cullface": "east" }, + "south": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" }, + "west": { "uv": [ 5, 4, 7, 6 ], "texture": "#bar", "cullface": "west" }, + "up": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" }, + "down": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bell_ceiling.json b/assets/minecraft/models/block/bell_ceiling.json new file mode 100644 index 00000000..a105fb98 --- /dev/null +++ b/assets/minecraft/models/block/bell_ceiling.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "block/bell_bottom", + "bar": "block/dark_oak_planks" + }, + "elements": [ + { + "from": [ 7, 13, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "north": {"uv": [ 7, 2, 9, 5 ], "texture": "#bar" }, + "east": {"uv": [ 1, 2, 3, 5 ], "texture": "#bar" }, + "south": {"uv": [ 6, 2, 8, 5 ], "texture": "#bar" }, + "west": {"uv": [ 4, 2, 6, 5 ], "texture": "#bar" }, + "up": {"uv": [ 1, 3, 3, 5 ], "texture": "#bar", "cullface": "up" } + } + } + ] +} diff --git a/assets/minecraft/models/block/bell_floor.json b/assets/minecraft/models/block/bell_floor.json new file mode 100644 index 00000000..c2abfcbd --- /dev/null +++ b/assets/minecraft/models/block/bell_floor.json @@ -0,0 +1,43 @@ +{ + "textures": { + "particle": "block/bell_bottom", + "bar": "block/dark_oak_planks", + "post": "block/stone" + }, + "elements": [ + { + "from": [ 2, 13, 7 ], + "to": [ 14, 15, 9 ], + "faces": { + "north": { "uv": [ 2, 2, 14, 4 ], "texture": "#bar" }, + "south": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" }, + "up": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" }, + "down": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" } + } + }, + { + "from": [ 14, 0, 6 ], + "to": [ 16, 16, 10 ], + "faces": { + "north": { "uv": [ 0, 1, 2, 16 ], "texture": "#post" }, + "east": { "uv": [ 0, 1, 4, 16 ], "texture": "#post" }, + "south": { "uv": [ 0, 1, 2, 16 ], "texture": "#post" }, + "west": { "uv": [ 0, 1, 4, 16 ], "texture": "#post" }, + "up": { "uv": [ 0, 0, 2, 4 ], "texture": "#post", "cullface": "up" }, + "down": { "uv": [ 0, 0, 2, 4 ], "texture": "#post", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 6 ], + "to": [ 2, 16, 10 ], + "faces": { + "north": { "uv": [ 0, 1, 2, 16 ], "texture": "#post" }, + "east": { "uv": [ 0, 1, 4, 16 ], "texture": "#post" }, + "south": { "uv": [ 0, 1, 2, 16 ], "texture": "#post" }, + "west": { "uv": [ 0, 1, 4, 16 ], "texture": "#post" }, + "up": { "uv": [ 0, 0, 2, 4 ], "texture": "#post","cullface": "up" }, + "down": { "uv": [ 0, 0, 2, 4 ], "texture": "#post", "cullface": "down" } + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bell_wall.json b/assets/minecraft/models/block/bell_wall.json new file mode 100644 index 00000000..92927bd2 --- /dev/null +++ b/assets/minecraft/models/block/bell_wall.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "block/bell_bottom", + "bar": "block/dark_oak_planks" + }, + "elements": [ + { + "from": [ 3, 13, 7 ], + "to": [ 16, 15, 9 ], + "faces": { + "north": { "uv": [ 2, 2, 14, 4 ], "texture": "#bar" }, + "east": { "uv": [ 5, 4, 7, 6 ], "texture": "#bar", "cullface": "east" }, + "south": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" }, + "west": { "uv": [ 5, 4, 7, 6 ], "texture": "#bar" }, + "up": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" }, + "down": { "uv": [ 2, 3, 14, 5 ], "texture": "#bar" } + } + } + ] +} diff --git a/assets/minecraft/models/block/big_dripleaf.json b/assets/minecraft/models/block/big_dripleaf.json new file mode 100644 index 00000000..edd3947a --- /dev/null +++ b/assets/minecraft/models/block/big_dripleaf.json @@ -0,0 +1,62 @@ +{ + "parent": "block/block", + "textures": { + "top": "minecraft:block/big_dripleaf_top", + "stem": "minecraft:block/big_dripleaf_stem", + "side": "minecraft:block/big_dripleaf_side", + "tip": "minecraft:block/big_dripleaf_tip", + "particle": "block/big_dripleaf_top" + }, + "elements": [ + { "from": [ 0, 15, 0 ], + "to": [ 16, 15, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#top" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 16, 15, 0.002 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 4 ], "texture": "#tip", "cullface": "north" }, + "south": { "uv": [ 16, 0, 0, 4 ], "texture": "#tip" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 0.002, 15, 16 ], + "shade": false, + "faces": { + "east": { "uv": [ 16, 0, 0, 4 ], "texture": "#side" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "west" } + } + }, + { "from": [ 15.998, 11, 0 ], + "to": [ 16, 15, 16 ], + "shade": false, + "faces": { + "east": { "uv": [ 16, 0, 0, 4 ], "texture": "#side", "cullface": "east" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side" } + } + }, + { "from": [ 5, 0, 12 ], + "to": [ 11, 15, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + }, + { "from": [ 5, 0, 12 ], + "to": [ 11, 15, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": -45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + } + ] +} diff --git a/assets/minecraft/models/block/big_dripleaf_full_tilt.json b/assets/minecraft/models/block/big_dripleaf_full_tilt.json new file mode 100644 index 00000000..e0ebb6d3 --- /dev/null +++ b/assets/minecraft/models/block/big_dripleaf_full_tilt.json @@ -0,0 +1,66 @@ +{ + "parent": "block/block", + "textures": { + "top": "minecraft:block/big_dripleaf_top", + "stem": "minecraft:block/big_dripleaf_stem", + "side": "minecraft:block/big_dripleaf_side", + "tip": "minecraft:block/big_dripleaf_tip", + "particle": "block/big_dripleaf_top" + }, + "elements": [ + { "from": [ 0, 15, 0 ], + "to": [ 16, 15, 16 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -45 }, + "shade": false, + "faces": { + "down": { "uv": [ 16, 16, 0, 0 ], "texture": "#top" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 16, 15, 0 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -45 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 4 ], "texture": "#tip" }, + "south": { "uv": [ 0, 0, 16, 4 ], "texture": "#tip" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 0.002, 15, 16 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -45 }, + "shade": false, + "faces": { + "east": { "uv": [ 16, 0, 0, 4 ], "texture": "#side" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "west" } + } + }, + { "from": [ 15.998, 11, 0 ], + "to": [ 16, 15, 16 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -45 }, + "shade": false, + "faces": { + "east": { "uv": [ 16, 0, 0, 4 ], "texture": "#side", "cullface": "east" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side" } + } + }, + { "from": [ 5, 0, 12 ], + "to": [ 11, 15, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + }, + { "from": [ 5, 0, 12 ], + "to": [ 11, 15, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": -45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + } + ] +} diff --git a/assets/minecraft/models/block/big_dripleaf_partial_tilt.json b/assets/minecraft/models/block/big_dripleaf_partial_tilt.json new file mode 100644 index 00000000..27950f59 --- /dev/null +++ b/assets/minecraft/models/block/big_dripleaf_partial_tilt.json @@ -0,0 +1,66 @@ +{ + "parent": "block/block", + "textures": { + "top": "minecraft:block/big_dripleaf_top", + "stem": "minecraft:block/big_dripleaf_stem", + "side": "minecraft:block/big_dripleaf_side", + "tip": "minecraft:block/big_dripleaf_tip", + "particle": "block/big_dripleaf_top" + }, + "elements": [ + { "from": [ 0, 15, 0 ], + "to": [ 16, 15, 16 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -22.5 }, + "shade": false, + "faces": { + "down": { "uv": [ 16, 16, 0, 0 ], "texture": "#top" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 16, 15, 0 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -22.5 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 4 ], "texture": "#tip" }, + "south": { "uv": [ 0, 0, 16, 4 ], "texture": "#tip" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 0.002, 15, 16 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -22.5 }, + "shade": false, + "faces": { + "east": { "uv": [ 16, 0, 0, 4 ], "texture": "#side" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "west" } + } + }, + { "from": [ 15.998, 11, 0 ], + "to": [ 16, 15, 16 ], + "rotation": { "origin": [ 8, 15, 16 ], "axis": "x", "angle": -22.5 }, + "shade": false, + "faces": { + "east": { "uv": [ 16, 0, 0, 4 ], "texture": "#side", "cullface": "east" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side" } + } + }, + { "from": [ 5, 0, 12 ], + "to": [ 11, 15, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + }, + { "from": [ 5, 0, 12 ], + "to": [ 11, 15, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": -45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + } + ] +} diff --git a/assets/minecraft/models/block/big_dripleaf_stem.json b/assets/minecraft/models/block/big_dripleaf_stem.json new file mode 100644 index 00000000..a40caefc --- /dev/null +++ b/assets/minecraft/models/block/big_dripleaf_stem.json @@ -0,0 +1,27 @@ +{ + "parent": "block/block", + "textures": { + "stem": "block/big_dripleaf_stem", + "particle": "block/big_dripleaf_stem" + }, + "elements": [ + { "from": [ 5, 0, 12 ], + "to": [ 11, 16, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + }, + { "from": [ 5, 0, 12 ], + "to": [ 11, 16, 12 ], + "rotation": { "origin": [ 8, 8, 12 ], "axis": "y", "angle": -45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + } + ] +} diff --git a/assets/minecraft/models/block/birch_button.json b/assets/minecraft/models/block/birch_button.json new file mode 100644 index 00000000..751b7e91 --- /dev/null +++ b/assets/minecraft/models/block/birch_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_button_inventory.json b/assets/minecraft/models/block/birch_button_inventory.json new file mode 100644 index 00000000..1f6420f5 --- /dev/null +++ b/assets/minecraft/models/block/birch_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_button_pressed.json b/assets/minecraft/models/block/birch_button_pressed.json new file mode 100644 index 00000000..e9438da2 --- /dev/null +++ b/assets/minecraft/models/block/birch_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_bottom_left.json b/assets/minecraft/models/block/birch_door_bottom_left.json new file mode 100644 index 00000000..3195b317 --- /dev/null +++ b/assets/minecraft/models/block/birch_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_bottom_left_open.json b/assets/minecraft/models/block/birch_door_bottom_left_open.json new file mode 100644 index 00000000..57a88074 --- /dev/null +++ b/assets/minecraft/models/block/birch_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_bottom_right.json b/assets/minecraft/models/block/birch_door_bottom_right.json new file mode 100644 index 00000000..f53cfdc4 --- /dev/null +++ b/assets/minecraft/models/block/birch_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_bottom_right_open.json b/assets/minecraft/models/block/birch_door_bottom_right_open.json new file mode 100644 index 00000000..cd3b6b1a --- /dev/null +++ b/assets/minecraft/models/block/birch_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_top_left.json b/assets/minecraft/models/block/birch_door_top_left.json new file mode 100644 index 00000000..2d337e0e --- /dev/null +++ b/assets/minecraft/models/block/birch_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_top_left_open.json b/assets/minecraft/models/block/birch_door_top_left_open.json new file mode 100644 index 00000000..82c4d8f5 --- /dev/null +++ b/assets/minecraft/models/block/birch_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_top_right.json b/assets/minecraft/models/block/birch_door_top_right.json new file mode 100644 index 00000000..953abe7f --- /dev/null +++ b/assets/minecraft/models/block/birch_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_door_top_right_open.json b/assets/minecraft/models/block/birch_door_top_right_open.json new file mode 100644 index 00000000..982e3ca4 --- /dev/null +++ b/assets/minecraft/models/block/birch_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/birch_door_bottom", + "top": "minecraft:block/birch_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_fence_gate.json b/assets/minecraft/models/block/birch_fence_gate.json new file mode 100644 index 00000000..2e0e1566 --- /dev/null +++ b/assets/minecraft/models/block/birch_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_fence_gate_open.json b/assets/minecraft/models/block/birch_fence_gate_open.json new file mode 100644 index 00000000..db6f4a89 --- /dev/null +++ b/assets/minecraft/models/block/birch_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_fence_gate_wall.json b/assets/minecraft/models/block/birch_fence_gate_wall.json new file mode 100644 index 00000000..5402b037 --- /dev/null +++ b/assets/minecraft/models/block/birch_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_fence_gate_wall_open.json b/assets/minecraft/models/block/birch_fence_gate_wall_open.json new file mode 100644 index 00000000..442138c0 --- /dev/null +++ b/assets/minecraft/models/block/birch_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_fence_inventory.json b/assets/minecraft/models/block/birch_fence_inventory.json new file mode 100644 index 00000000..4ef0bc09 --- /dev/null +++ b/assets/minecraft/models/block/birch_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_fence_post.json b/assets/minecraft/models/block/birch_fence_post.json new file mode 100644 index 00000000..83661438 --- /dev/null +++ b/assets/minecraft/models/block/birch_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_fence_side.json b/assets/minecraft/models/block/birch_fence_side.json new file mode 100644 index 00000000..f5a12c9f --- /dev/null +++ b/assets/minecraft/models/block/birch_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_hanging_sign.json b/assets/minecraft/models/block/birch_hanging_sign.json new file mode 100644 index 00000000..53f27ad5 --- /dev/null +++ b/assets/minecraft/models/block/birch_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_birch_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_leaves.json b/assets/minecraft/models/block/birch_leaves.json new file mode 100644 index 00000000..6f7f331c --- /dev/null +++ b/assets/minecraft/models/block/birch_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/birch_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_log.json b/assets/minecraft/models/block/birch_log.json new file mode 100644 index 00000000..5d43e85c --- /dev/null +++ b/assets/minecraft/models/block/birch_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/birch_log_top", + "side": "minecraft:block/birch_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_log_horizontal.json b/assets/minecraft/models/block/birch_log_horizontal.json new file mode 100644 index 00000000..ce988a8e --- /dev/null +++ b/assets/minecraft/models/block/birch_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/birch_log_top", + "side": "minecraft:block/birch_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_planks.json b/assets/minecraft/models/block/birch_planks.json new file mode 100644 index 00000000..de6d1757 --- /dev/null +++ b/assets/minecraft/models/block/birch_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_pressure_plate.json b/assets/minecraft/models/block/birch_pressure_plate.json new file mode 100644 index 00000000..8df007e9 --- /dev/null +++ b/assets/minecraft/models/block/birch_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_pressure_plate_down.json b/assets/minecraft/models/block/birch_pressure_plate_down.json new file mode 100644 index 00000000..4b36009e --- /dev/null +++ b/assets/minecraft/models/block/birch_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_sapling.json b/assets/minecraft/models/block/birch_sapling.json new file mode 100644 index 00000000..274a3afa --- /dev/null +++ b/assets/minecraft/models/block/birch_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/birch_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_sign.json b/assets/minecraft/models/block/birch_sign.json new file mode 100644 index 00000000..2bfa5bcf --- /dev/null +++ b/assets/minecraft/models/block/birch_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_slab.json b/assets/minecraft/models/block/birch_slab.json new file mode 100644 index 00000000..c7fd05bc --- /dev/null +++ b/assets/minecraft/models/block/birch_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/birch_planks", + "side": "minecraft:block/birch_planks", + "top": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_slab_top.json b/assets/minecraft/models/block/birch_slab_top.json new file mode 100644 index 00000000..dbde21ef --- /dev/null +++ b/assets/minecraft/models/block/birch_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/birch_planks", + "side": "minecraft:block/birch_planks", + "top": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_stairs.json b/assets/minecraft/models/block/birch_stairs.json new file mode 100644 index 00000000..e7d798fc --- /dev/null +++ b/assets/minecraft/models/block/birch_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/birch_planks", + "side": "minecraft:block/birch_planks", + "top": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_stairs_inner.json b/assets/minecraft/models/block/birch_stairs_inner.json new file mode 100644 index 00000000..347cdb1e --- /dev/null +++ b/assets/minecraft/models/block/birch_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/birch_planks", + "side": "minecraft:block/birch_planks", + "top": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_stairs_outer.json b/assets/minecraft/models/block/birch_stairs_outer.json new file mode 100644 index 00000000..2c1faa60 --- /dev/null +++ b/assets/minecraft/models/block/birch_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/birch_planks", + "side": "minecraft:block/birch_planks", + "top": "minecraft:block/birch_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_trapdoor_bottom.json b/assets/minecraft/models/block/birch_trapdoor_bottom.json new file mode 100644 index 00000000..0aa6e6ab --- /dev/null +++ b/assets/minecraft/models/block/birch_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/birch_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_trapdoor_open.json b/assets/minecraft/models/block/birch_trapdoor_open.json new file mode 100644 index 00000000..041ad178 --- /dev/null +++ b/assets/minecraft/models/block/birch_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/birch_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_trapdoor_top.json b/assets/minecraft/models/block/birch_trapdoor_top.json new file mode 100644 index 00000000..838e5cff --- /dev/null +++ b/assets/minecraft/models/block/birch_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/birch_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/birch_wood.json b/assets/minecraft/models/block/birch_wood.json new file mode 100644 index 00000000..ab78963a --- /dev/null +++ b/assets/minecraft/models/block/birch_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/birch_log", + "side": "minecraft:block/birch_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_cake.json b/assets/minecraft/models/block/black_candle_cake.json new file mode 100644 index 00000000..84aa73b9 --- /dev/null +++ b/assets/minecraft/models/block/black_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/black_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_cake_lit.json b/assets/minecraft/models/block/black_candle_cake_lit.json new file mode 100644 index 00000000..8b688c4e --- /dev/null +++ b/assets/minecraft/models/block/black_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/black_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_four_candles.json b/assets/minecraft/models/block/black_candle_four_candles.json new file mode 100644 index 00000000..e9f31ad5 --- /dev/null +++ b/assets/minecraft/models/block/black_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/black_candle", + "particle": "minecraft:block/black_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_four_candles_lit.json b/assets/minecraft/models/block/black_candle_four_candles_lit.json new file mode 100644 index 00000000..6c3d2742 --- /dev/null +++ b/assets/minecraft/models/block/black_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/black_candle_lit", + "particle": "minecraft:block/black_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_one_candle.json b/assets/minecraft/models/block/black_candle_one_candle.json new file mode 100644 index 00000000..9bcb8eed --- /dev/null +++ b/assets/minecraft/models/block/black_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/black_candle", + "particle": "minecraft:block/black_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_one_candle_lit.json b/assets/minecraft/models/block/black_candle_one_candle_lit.json new file mode 100644 index 00000000..e04d7b15 --- /dev/null +++ b/assets/minecraft/models/block/black_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/black_candle_lit", + "particle": "minecraft:block/black_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_three_candles.json b/assets/minecraft/models/block/black_candle_three_candles.json new file mode 100644 index 00000000..31b82cee --- /dev/null +++ b/assets/minecraft/models/block/black_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/black_candle", + "particle": "minecraft:block/black_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_three_candles_lit.json b/assets/minecraft/models/block/black_candle_three_candles_lit.json new file mode 100644 index 00000000..31693bb4 --- /dev/null +++ b/assets/minecraft/models/block/black_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/black_candle_lit", + "particle": "minecraft:block/black_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_two_candles.json b/assets/minecraft/models/block/black_candle_two_candles.json new file mode 100644 index 00000000..298bd70a --- /dev/null +++ b/assets/minecraft/models/block/black_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/black_candle", + "particle": "minecraft:block/black_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_candle_two_candles_lit.json b/assets/minecraft/models/block/black_candle_two_candles_lit.json new file mode 100644 index 00000000..5ad49a08 --- /dev/null +++ b/assets/minecraft/models/block/black_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/black_candle_lit", + "particle": "minecraft:block/black_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_carpet.json b/assets/minecraft/models/block/black_carpet.json new file mode 100644 index 00000000..a89fa481 --- /dev/null +++ b/assets/minecraft/models/block/black_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/black_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_concrete.json b/assets/minecraft/models/block/black_concrete.json new file mode 100644 index 00000000..a2748b55 --- /dev/null +++ b/assets/minecraft/models/block/black_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/black_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_concrete_powder.json b/assets/minecraft/models/block/black_concrete_powder.json new file mode 100644 index 00000000..63374351 --- /dev/null +++ b/assets/minecraft/models/block/black_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/black_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_glazed_terracotta.json b/assets/minecraft/models/block/black_glazed_terracotta.json new file mode 100644 index 00000000..f973bbba --- /dev/null +++ b/assets/minecraft/models/block/black_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/black_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_shulker_box.json b/assets/minecraft/models/block/black_shulker_box.json new file mode 100644 index 00000000..0e74df95 --- /dev/null +++ b/assets/minecraft/models/block/black_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/black_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_stained_glass.json b/assets/minecraft/models/block/black_stained_glass.json new file mode 100644 index 00000000..5d66a695 --- /dev/null +++ b/assets/minecraft/models/block/black_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_stained_glass_pane_noside.json b/assets/minecraft/models/block/black_stained_glass_pane_noside.json new file mode 100644 index 00000000..bc943b0a --- /dev/null +++ b/assets/minecraft/models/block/black_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/black_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..3d66b75f --- /dev/null +++ b/assets/minecraft/models/block/black_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_stained_glass_pane_post.json b/assets/minecraft/models/block/black_stained_glass_pane_post.json new file mode 100644 index 00000000..62986045 --- /dev/null +++ b/assets/minecraft/models/block/black_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/black_stained_glass_pane_top", + "pane": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_stained_glass_pane_side.json b/assets/minecraft/models/block/black_stained_glass_pane_side.json new file mode 100644 index 00000000..d0d90d10 --- /dev/null +++ b/assets/minecraft/models/block/black_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/black_stained_glass_pane_top", + "pane": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/black_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..7c4e7c97 --- /dev/null +++ b/assets/minecraft/models/block/black_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/black_stained_glass_pane_top", + "pane": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_terracotta.json b/assets/minecraft/models/block/black_terracotta.json new file mode 100644 index 00000000..a8ff478c --- /dev/null +++ b/assets/minecraft/models/block/black_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/black_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/black_wool.json b/assets/minecraft/models/block/black_wool.json new file mode 100644 index 00000000..7fea63ff --- /dev/null +++ b/assets/minecraft/models/block/black_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/black_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone.json b/assets/minecraft/models/block/blackstone.json new file mode 100644 index 00000000..d6e7b585 --- /dev/null +++ b/assets/minecraft/models/block/blackstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/blackstone_top", + "side": "minecraft:block/blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_slab.json b/assets/minecraft/models/block/blackstone_slab.json new file mode 100644 index 00000000..f4f7fe88 --- /dev/null +++ b/assets/minecraft/models/block/blackstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/blackstone_top", + "side": "minecraft:block/blackstone", + "top": "minecraft:block/blackstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_slab_top.json b/assets/minecraft/models/block/blackstone_slab_top.json new file mode 100644 index 00000000..7ffe490e --- /dev/null +++ b/assets/minecraft/models/block/blackstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/blackstone_top", + "side": "minecraft:block/blackstone", + "top": "minecraft:block/blackstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_stairs.json b/assets/minecraft/models/block/blackstone_stairs.json new file mode 100644 index 00000000..15a8eefd --- /dev/null +++ b/assets/minecraft/models/block/blackstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/blackstone_top", + "side": "minecraft:block/blackstone", + "top": "minecraft:block/blackstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_stairs_inner.json b/assets/minecraft/models/block/blackstone_stairs_inner.json new file mode 100644 index 00000000..ff1597db --- /dev/null +++ b/assets/minecraft/models/block/blackstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/blackstone_top", + "side": "minecraft:block/blackstone", + "top": "minecraft:block/blackstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_stairs_outer.json b/assets/minecraft/models/block/blackstone_stairs_outer.json new file mode 100644 index 00000000..130777e4 --- /dev/null +++ b/assets/minecraft/models/block/blackstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/blackstone_top", + "side": "minecraft:block/blackstone", + "top": "minecraft:block/blackstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_wall_inventory.json b/assets/minecraft/models/block/blackstone_wall_inventory.json new file mode 100644 index 00000000..6e8029ce --- /dev/null +++ b/assets/minecraft/models/block/blackstone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_wall_post.json b/assets/minecraft/models/block/blackstone_wall_post.json new file mode 100644 index 00000000..a2b66ca3 --- /dev/null +++ b/assets/minecraft/models/block/blackstone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_wall_side.json b/assets/minecraft/models/block/blackstone_wall_side.json new file mode 100644 index 00000000..152d2fe4 --- /dev/null +++ b/assets/minecraft/models/block/blackstone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blackstone_wall_side_tall.json b/assets/minecraft/models/block/blackstone_wall_side_tall.json new file mode 100644 index 00000000..3a662254 --- /dev/null +++ b/assets/minecraft/models/block/blackstone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blast_furnace.json b/assets/minecraft/models/block/blast_furnace.json new file mode 100644 index 00000000..8c8aa450 --- /dev/null +++ b/assets/minecraft/models/block/blast_furnace.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/blast_furnace_front", + "side": "minecraft:block/blast_furnace_side", + "top": "minecraft:block/blast_furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blast_furnace_on.json b/assets/minecraft/models/block/blast_furnace_on.json new file mode 100644 index 00000000..4d14c0be --- /dev/null +++ b/assets/minecraft/models/block/blast_furnace_on.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/blast_furnace_front_on", + "side": "minecraft:block/blast_furnace_side", + "top": "minecraft:block/blast_furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/block.json b/assets/minecraft/models/block/block.json new file mode 100644 index 00000000..aefa892b --- /dev/null +++ b/assets/minecraft/models/block/block.json @@ -0,0 +1,35 @@ +{ + "gui_light": "side", + "display": { + "gui": { + "rotation": [ 30, 225, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "fixed": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 225, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} diff --git a/assets/minecraft/models/block/blue_candle_cake.json b/assets/minecraft/models/block/blue_candle_cake.json new file mode 100644 index 00000000..c6ffe720 --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/blue_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_cake_lit.json b/assets/minecraft/models/block/blue_candle_cake_lit.json new file mode 100644 index 00000000..515e258d --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/blue_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_four_candles.json b/assets/minecraft/models/block/blue_candle_four_candles.json new file mode 100644 index 00000000..31d0de83 --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/blue_candle", + "particle": "minecraft:block/blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_four_candles_lit.json b/assets/minecraft/models/block/blue_candle_four_candles_lit.json new file mode 100644 index 00000000..b71df39e --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/blue_candle_lit", + "particle": "minecraft:block/blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_one_candle.json b/assets/minecraft/models/block/blue_candle_one_candle.json new file mode 100644 index 00000000..dc89790e --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/blue_candle", + "particle": "minecraft:block/blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_one_candle_lit.json b/assets/minecraft/models/block/blue_candle_one_candle_lit.json new file mode 100644 index 00000000..b3410f67 --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/blue_candle_lit", + "particle": "minecraft:block/blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_three_candles.json b/assets/minecraft/models/block/blue_candle_three_candles.json new file mode 100644 index 00000000..e9527b98 --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/blue_candle", + "particle": "minecraft:block/blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_three_candles_lit.json b/assets/minecraft/models/block/blue_candle_three_candles_lit.json new file mode 100644 index 00000000..992be450 --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/blue_candle_lit", + "particle": "minecraft:block/blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_two_candles.json b/assets/minecraft/models/block/blue_candle_two_candles.json new file mode 100644 index 00000000..efc0f7a2 --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/blue_candle", + "particle": "minecraft:block/blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_candle_two_candles_lit.json b/assets/minecraft/models/block/blue_candle_two_candles_lit.json new file mode 100644 index 00000000..22ab088f --- /dev/null +++ b/assets/minecraft/models/block/blue_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/blue_candle_lit", + "particle": "minecraft:block/blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_carpet.json b/assets/minecraft/models/block/blue_carpet.json new file mode 100644 index 00000000..be41fd87 --- /dev/null +++ b/assets/minecraft/models/block/blue_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/blue_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_concrete.json b/assets/minecraft/models/block/blue_concrete.json new file mode 100644 index 00000000..b2423fb6 --- /dev/null +++ b/assets/minecraft/models/block/blue_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/blue_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_concrete_powder.json b/assets/minecraft/models/block/blue_concrete_powder.json new file mode 100644 index 00000000..7ceaeb51 --- /dev/null +++ b/assets/minecraft/models/block/blue_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/blue_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_glazed_terracotta.json b/assets/minecraft/models/block/blue_glazed_terracotta.json new file mode 100644 index 00000000..ecb17356 --- /dev/null +++ b/assets/minecraft/models/block/blue_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/blue_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_ice.json b/assets/minecraft/models/block/blue_ice.json new file mode 100644 index 00000000..9164aee5 --- /dev/null +++ b/assets/minecraft/models/block/blue_ice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/blue_ice" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_orchid.json b/assets/minecraft/models/block/blue_orchid.json new file mode 100644 index 00000000..a7f9b4b2 --- /dev/null +++ b/assets/minecraft/models/block/blue_orchid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/blue_orchid" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_shulker_box.json b/assets/minecraft/models/block/blue_shulker_box.json new file mode 100644 index 00000000..29b739d8 --- /dev/null +++ b/assets/minecraft/models/block/blue_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/blue_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_stained_glass.json b/assets/minecraft/models/block/blue_stained_glass.json new file mode 100644 index 00000000..e372ce34 --- /dev/null +++ b/assets/minecraft/models/block/blue_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_stained_glass_pane_noside.json b/assets/minecraft/models/block/blue_stained_glass_pane_noside.json new file mode 100644 index 00000000..fa1dd06d --- /dev/null +++ b/assets/minecraft/models/block/blue_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/blue_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..70faad04 --- /dev/null +++ b/assets/minecraft/models/block/blue_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_stained_glass_pane_post.json b/assets/minecraft/models/block/blue_stained_glass_pane_post.json new file mode 100644 index 00000000..6c778945 --- /dev/null +++ b/assets/minecraft/models/block/blue_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/blue_stained_glass_pane_top", + "pane": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_stained_glass_pane_side.json b/assets/minecraft/models/block/blue_stained_glass_pane_side.json new file mode 100644 index 00000000..e88321ef --- /dev/null +++ b/assets/minecraft/models/block/blue_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/blue_stained_glass_pane_top", + "pane": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/blue_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..b891c717 --- /dev/null +++ b/assets/minecraft/models/block/blue_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/blue_stained_glass_pane_top", + "pane": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_terracotta.json b/assets/minecraft/models/block/blue_terracotta.json new file mode 100644 index 00000000..ead56974 --- /dev/null +++ b/assets/minecraft/models/block/blue_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/blue_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/blue_wool.json b/assets/minecraft/models/block/blue_wool.json new file mode 100644 index 00000000..4fb7fa5b --- /dev/null +++ b/assets/minecraft/models/block/blue_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/blue_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bone_block.json b/assets/minecraft/models/block/bone_block.json new file mode 100644 index 00000000..f6594f0d --- /dev/null +++ b/assets/minecraft/models/block/bone_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/bone_block_top", + "side": "minecraft:block/bone_block_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bookshelf.json b/assets/minecraft/models/block/bookshelf.json new file mode 100644 index 00000000..c095a7d7 --- /dev/null +++ b/assets/minecraft/models/block/bookshelf.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/oak_planks", + "side": "minecraft:block/bookshelf" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brain_coral.json b/assets/minecraft/models/block/brain_coral.json new file mode 100644 index 00000000..308083fc --- /dev/null +++ b/assets/minecraft/models/block/brain_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/brain_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brain_coral_block.json b/assets/minecraft/models/block/brain_coral_block.json new file mode 100644 index 00000000..6e7ddb61 --- /dev/null +++ b/assets/minecraft/models/block/brain_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/brain_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brain_coral_fan.json b/assets/minecraft/models/block/brain_coral_fan.json new file mode 100644 index 00000000..a2128699 --- /dev/null +++ b/assets/minecraft/models/block/brain_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/brain_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brain_coral_wall_fan.json b/assets/minecraft/models/block/brain_coral_wall_fan.json new file mode 100644 index 00000000..20b56103 --- /dev/null +++ b/assets/minecraft/models/block/brain_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/brain_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brewing_stand.json b/assets/minecraft/models/block/brewing_stand.json new file mode 100644 index 00000000..809d3d88 --- /dev/null +++ b/assets/minecraft/models/block/brewing_stand.json @@ -0,0 +1,53 @@ +{ + "textures": { + "particle": "block/brewing_stand", + "base": "block/brewing_stand_base", + "stand": "block/brewing_stand" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 14, 9 ], + "faces": { + "down": { "uv": [ 7, 7, 9, 9 ], "texture": "#stand" }, + "up": { "uv": [ 7, 7, 9, 9 ], "texture": "#stand" }, + "north": { "uv": [ 7, 2, 9, 16 ], "texture": "#stand" }, + "south": { "uv": [ 7, 2, 9, 16 ], "texture": "#stand" }, + "west": { "uv": [ 7, 2, 9, 16 ], "texture": "#stand" }, + "east": { "uv": [ 7, 2, 9, 16 ], "texture": "#stand" } + } + }, + { "from": [ 9, 0, 5 ], + "to": [ 15, 2, 11 ], + "faces": { + "down": { "uv": [ 9, 5, 15, 11 ], "texture": "#base", "cullface": "down" }, + "up": { "uv": [ 9, 5, 15, 11 ], "texture": "#base" }, + "north": { "uv": [ 9, 14, 15, 16 ], "texture": "#base" }, + "south": { "uv": [ 9, 14, 15, 16 ], "texture": "#base" }, + "west": { "uv": [ 5, 14, 11, 16 ], "texture": "#base" }, + "east": { "uv": [ 5, 14, 11, 16 ], "texture": "#base" } + } + }, + { "from": [ 1, 0, 1 ], + "to": [ 7, 2, 7 ], + "faces": { + "down": { "uv": [ 1, 1, 7, 7 ], "texture": "#base", "cullface": "down" }, + "up": { "uv": [ 1, 1, 7, 7 ], "texture": "#base" }, + "north": { "uv": [ 1, 14, 7, 16 ], "texture": "#base" }, + "south": { "uv": [ 1, 14, 7, 16 ], "texture": "#base" }, + "west": { "uv": [ 1, 14, 7, 16 ], "texture": "#base" }, + "east": { "uv": [ 1, 14, 7, 16 ], "texture": "#base" } + } + }, + { "from": [ 1, 0, 9 ], + "to": [ 7, 2, 15 ], + "faces": { + "down": { "uv": [ 1, 9, 7, 15 ], "texture": "#base", "cullface": "down" }, + "up": { "uv": [ 1, 9, 7, 15 ], "texture": "#base" }, + "north": { "uv": [ 1, 14, 7, 16 ], "texture": "#base" }, + "south": { "uv": [ 1, 14, 7, 16 ], "texture": "#base" }, + "west": { "uv": [ 9, 14, 15, 16 ], "texture": "#base" }, + "east": { "uv": [ 9, 14, 15, 16 ], "texture": "#base" } + } + } + ] +} diff --git a/assets/minecraft/models/block/brewing_stand_bottle0.json b/assets/minecraft/models/block/brewing_stand_bottle0.json new file mode 100644 index 00000000..012ffa85 --- /dev/null +++ b/assets/minecraft/models/block/brewing_stand_bottle0.json @@ -0,0 +1,15 @@ +{ + "textures": { + "particle": "block/brewing_stand", + "stand": "block/brewing_stand" + }, + "elements": [ + { "from": [ 8, 0, 8 ], + "to": [ 16, 16, 8 ], + "faces": { + "north": { "uv": [ 0, 0, 8, 16 ], "texture": "#stand" }, + "south": { "uv": [ 8, 0, 0, 16 ], "texture": "#stand" } + } + } + ] +} diff --git a/assets/minecraft/models/block/brewing_stand_bottle1.json b/assets/minecraft/models/block/brewing_stand_bottle1.json new file mode 100644 index 00000000..9e989cde --- /dev/null +++ b/assets/minecraft/models/block/brewing_stand_bottle1.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "block/brewing_stand", + "stand": "block/brewing_stand" + }, + "elements": [ + { "from": [ -0.41, 0, 8 ], + "to": [ 7.59, 16, 8 ], + "rotation": { + "origin": [ 8, 8, 8 ], + "axis": "y", + "angle": -45 + }, + "faces": { + "north": { "uv": [ 8, 0, 0, 16 ], "texture": "#stand" }, + "south": { "uv": [ 0, 0, 8, 16 ], "texture": "#stand" } + } + } + ] +} diff --git a/assets/minecraft/models/block/brewing_stand_bottle2.json b/assets/minecraft/models/block/brewing_stand_bottle2.json new file mode 100644 index 00000000..4796f71f --- /dev/null +++ b/assets/minecraft/models/block/brewing_stand_bottle2.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "block/brewing_stand", + "stand": "block/brewing_stand" + }, + "elements": [ + { "from": [ -0.41, 0, 8 ], + "to": [ 7.59, 16, 8 ], + "rotation": { + "origin": [ 8, 8, 8 ], + "axis": "y", + "angle": 45 + }, + "faces": { + "north": { "uv": [ 8, 0, 0, 16 ], "texture": "#stand" }, + "south": { "uv": [ 0, 0, 8, 16 ], "texture": "#stand" } + } + } + ] +} diff --git a/assets/minecraft/models/block/brewing_stand_empty0.json b/assets/minecraft/models/block/brewing_stand_empty0.json new file mode 100644 index 00000000..a99c90cc --- /dev/null +++ b/assets/minecraft/models/block/brewing_stand_empty0.json @@ -0,0 +1,15 @@ +{ + "textures": { + "particle": "block/brewing_stand", + "stand": "block/brewing_stand" + }, + "elements": [ + { "from": [ 8, 0, 8 ], + "to": [ 16, 16, 8 ], + "faces": { + "north": { "uv": [ 16, 0, 8, 16 ], "texture": "#stand" }, + "south": { "uv": [ 8, 0, 16, 16 ], "texture": "#stand" } + } + } + ] +} diff --git a/assets/minecraft/models/block/brewing_stand_empty1.json b/assets/minecraft/models/block/brewing_stand_empty1.json new file mode 100644 index 00000000..0936497a --- /dev/null +++ b/assets/minecraft/models/block/brewing_stand_empty1.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "block/brewing_stand", + "stand": "block/brewing_stand" + }, + "elements": [ + { "from": [ -0.41, 0, 8 ], + "to": [ 7.59, 16, 8 ], + "rotation": { + "origin": [ 8, 8, 8 ], + "axis": "y", + "angle": -45 + }, + "faces": { + "north": { "uv": [ 8, 0, 16, 16 ], "texture": "#stand" }, + "south": { "uv": [ 16, 0, 8, 16 ], "texture": "#stand" } + } + } + ] +} diff --git a/assets/minecraft/models/block/brewing_stand_empty2.json b/assets/minecraft/models/block/brewing_stand_empty2.json new file mode 100644 index 00000000..50b948d0 --- /dev/null +++ b/assets/minecraft/models/block/brewing_stand_empty2.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "block/brewing_stand", + "stand": "block/brewing_stand" + }, + "elements": [ + { "from": [ -0.41, 0, 8 ], + "to": [ 7.59, 16, 8 ], + "rotation": { + "origin": [ 8, 8, 8 ], + "axis": "y", + "angle": 45 + }, + "faces": { + "north": { "uv": [ 8, 0, 16, 16 ], "texture": "#stand" }, + "south": { "uv": [ 16, 0, 8, 16 ], "texture": "#stand" } + } + } + ] +} diff --git a/assets/minecraft/models/block/brick_slab.json b/assets/minecraft/models/block/brick_slab.json new file mode 100644 index 00000000..d068166a --- /dev/null +++ b/assets/minecraft/models/block/brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/bricks", + "side": "minecraft:block/bricks", + "top": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_slab_top.json b/assets/minecraft/models/block/brick_slab_top.json new file mode 100644 index 00000000..1e68c3b7 --- /dev/null +++ b/assets/minecraft/models/block/brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/bricks", + "side": "minecraft:block/bricks", + "top": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_stairs.json b/assets/minecraft/models/block/brick_stairs.json new file mode 100644 index 00000000..675b0775 --- /dev/null +++ b/assets/minecraft/models/block/brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/bricks", + "side": "minecraft:block/bricks", + "top": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_stairs_inner.json b/assets/minecraft/models/block/brick_stairs_inner.json new file mode 100644 index 00000000..737219ad --- /dev/null +++ b/assets/minecraft/models/block/brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/bricks", + "side": "minecraft:block/bricks", + "top": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_stairs_outer.json b/assets/minecraft/models/block/brick_stairs_outer.json new file mode 100644 index 00000000..977459dd --- /dev/null +++ b/assets/minecraft/models/block/brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/bricks", + "side": "minecraft:block/bricks", + "top": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_wall_inventory.json b/assets/minecraft/models/block/brick_wall_inventory.json new file mode 100644 index 00000000..5d6f8a8f --- /dev/null +++ b/assets/minecraft/models/block/brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_wall_post.json b/assets/minecraft/models/block/brick_wall_post.json new file mode 100644 index 00000000..5d343dfe --- /dev/null +++ b/assets/minecraft/models/block/brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_wall_side.json b/assets/minecraft/models/block/brick_wall_side.json new file mode 100644 index 00000000..94872eff --- /dev/null +++ b/assets/minecraft/models/block/brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brick_wall_side_tall.json b/assets/minecraft/models/block/brick_wall_side_tall.json new file mode 100644 index 00000000..79839982 --- /dev/null +++ b/assets/minecraft/models/block/brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bricks.json b/assets/minecraft/models/block/bricks.json new file mode 100644 index 00000000..b3d7b55b --- /dev/null +++ b/assets/minecraft/models/block/bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_cake.json b/assets/minecraft/models/block/brown_candle_cake.json new file mode 100644 index 00000000..baf53ddd --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/brown_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_cake_lit.json b/assets/minecraft/models/block/brown_candle_cake_lit.json new file mode 100644 index 00000000..cdb2b491 --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/brown_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_four_candles.json b/assets/minecraft/models/block/brown_candle_four_candles.json new file mode 100644 index 00000000..a203e8f7 --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/brown_candle", + "particle": "minecraft:block/brown_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_four_candles_lit.json b/assets/minecraft/models/block/brown_candle_four_candles_lit.json new file mode 100644 index 00000000..3fb0766d --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/brown_candle_lit", + "particle": "minecraft:block/brown_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_one_candle.json b/assets/minecraft/models/block/brown_candle_one_candle.json new file mode 100644 index 00000000..24d97d5a --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/brown_candle", + "particle": "minecraft:block/brown_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_one_candle_lit.json b/assets/minecraft/models/block/brown_candle_one_candle_lit.json new file mode 100644 index 00000000..571ef6e3 --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/brown_candle_lit", + "particle": "minecraft:block/brown_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_three_candles.json b/assets/minecraft/models/block/brown_candle_three_candles.json new file mode 100644 index 00000000..a0ff176a --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/brown_candle", + "particle": "minecraft:block/brown_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_three_candles_lit.json b/assets/minecraft/models/block/brown_candle_three_candles_lit.json new file mode 100644 index 00000000..5a51f463 --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/brown_candle_lit", + "particle": "minecraft:block/brown_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_two_candles.json b/assets/minecraft/models/block/brown_candle_two_candles.json new file mode 100644 index 00000000..aaa9dca0 --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/brown_candle", + "particle": "minecraft:block/brown_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_candle_two_candles_lit.json b/assets/minecraft/models/block/brown_candle_two_candles_lit.json new file mode 100644 index 00000000..6cae28b4 --- /dev/null +++ b/assets/minecraft/models/block/brown_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/brown_candle_lit", + "particle": "minecraft:block/brown_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_carpet.json b/assets/minecraft/models/block/brown_carpet.json new file mode 100644 index 00000000..1befa625 --- /dev/null +++ b/assets/minecraft/models/block/brown_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/brown_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_concrete.json b/assets/minecraft/models/block/brown_concrete.json new file mode 100644 index 00000000..217098d9 --- /dev/null +++ b/assets/minecraft/models/block/brown_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/brown_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_concrete_powder.json b/assets/minecraft/models/block/brown_concrete_powder.json new file mode 100644 index 00000000..d095ddf0 --- /dev/null +++ b/assets/minecraft/models/block/brown_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/brown_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_glazed_terracotta.json b/assets/minecraft/models/block/brown_glazed_terracotta.json new file mode 100644 index 00000000..4d70d0ad --- /dev/null +++ b/assets/minecraft/models/block/brown_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/brown_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_mushroom.json b/assets/minecraft/models/block/brown_mushroom.json new file mode 100644 index 00000000..48813930 --- /dev/null +++ b/assets/minecraft/models/block/brown_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/brown_mushroom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_mushroom_block.json b/assets/minecraft/models/block/brown_mushroom_block.json new file mode 100644 index 00000000..5ce72be6 --- /dev/null +++ b/assets/minecraft/models/block/brown_mushroom_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_single_face", + "textures": { + "texture": "minecraft:block/brown_mushroom_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_mushroom_block_inventory.json b/assets/minecraft/models/block/brown_mushroom_block_inventory.json new file mode 100644 index 00000000..8062fcee --- /dev/null +++ b/assets/minecraft/models/block/brown_mushroom_block_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/brown_mushroom_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_shulker_box.json b/assets/minecraft/models/block/brown_shulker_box.json new file mode 100644 index 00000000..b7118090 --- /dev/null +++ b/assets/minecraft/models/block/brown_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/brown_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_stained_glass.json b/assets/minecraft/models/block/brown_stained_glass.json new file mode 100644 index 00000000..cb8975b2 --- /dev/null +++ b/assets/minecraft/models/block/brown_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_stained_glass_pane_noside.json b/assets/minecraft/models/block/brown_stained_glass_pane_noside.json new file mode 100644 index 00000000..3b43194e --- /dev/null +++ b/assets/minecraft/models/block/brown_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/brown_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..594f3059 --- /dev/null +++ b/assets/minecraft/models/block/brown_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_stained_glass_pane_post.json b/assets/minecraft/models/block/brown_stained_glass_pane_post.json new file mode 100644 index 00000000..0299f436 --- /dev/null +++ b/assets/minecraft/models/block/brown_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/brown_stained_glass_pane_top", + "pane": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_stained_glass_pane_side.json b/assets/minecraft/models/block/brown_stained_glass_pane_side.json new file mode 100644 index 00000000..5e06559f --- /dev/null +++ b/assets/minecraft/models/block/brown_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/brown_stained_glass_pane_top", + "pane": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/brown_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..c5cc30eb --- /dev/null +++ b/assets/minecraft/models/block/brown_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/brown_stained_glass_pane_top", + "pane": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_terracotta.json b/assets/minecraft/models/block/brown_terracotta.json new file mode 100644 index 00000000..4bbb7fe7 --- /dev/null +++ b/assets/minecraft/models/block/brown_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/brown_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/brown_wool.json b/assets/minecraft/models/block/brown_wool.json new file mode 100644 index 00000000..25c88429 --- /dev/null +++ b/assets/minecraft/models/block/brown_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/brown_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bubble_coral.json b/assets/minecraft/models/block/bubble_coral.json new file mode 100644 index 00000000..b0f75a33 --- /dev/null +++ b/assets/minecraft/models/block/bubble_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/bubble_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bubble_coral_block.json b/assets/minecraft/models/block/bubble_coral_block.json new file mode 100644 index 00000000..fc5708cd --- /dev/null +++ b/assets/minecraft/models/block/bubble_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/bubble_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bubble_coral_fan.json b/assets/minecraft/models/block/bubble_coral_fan.json new file mode 100644 index 00000000..5f6d2d2b --- /dev/null +++ b/assets/minecraft/models/block/bubble_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/bubble_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/bubble_coral_wall_fan.json b/assets/minecraft/models/block/bubble_coral_wall_fan.json new file mode 100644 index 00000000..b13aa967 --- /dev/null +++ b/assets/minecraft/models/block/bubble_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/bubble_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/budding_amethyst.json b/assets/minecraft/models/block/budding_amethyst.json new file mode 100644 index 00000000..48efc25a --- /dev/null +++ b/assets/minecraft/models/block/budding_amethyst.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/budding_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/button.json b/assets/minecraft/models/block/button.json new file mode 100644 index 00000000..b3dc8a56 --- /dev/null +++ b/assets/minecraft/models/block/button.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 5, 0, 6 ], + "to": [ 11, 2, 10 ], + "faces": { + "down": { "uv": [ 5, 6, 11, 10 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 5, 6, 11, 10 ], "texture": "#texture" }, + "north": { "uv": [ 5, 14, 11, 16 ], "texture": "#texture" }, + "south": { "uv": [ 5, 14, 11, 16 ], "texture": "#texture" }, + "west": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 14, 10, 16 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/button_inventory.json b/assets/minecraft/models/block/button_inventory.json new file mode 100644 index 00000000..7a13742d --- /dev/null +++ b/assets/minecraft/models/block/button_inventory.json @@ -0,0 +1,18 @@ +{ "parent": "block/block", + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 5, 6, 6 ], + "to": [ 11, 10, 10 ], + "faces": { + "down": { "uv": [ 5, 6, 11, 10 ], "texture": "#texture" }, + "up": { "uv": [ 5, 10, 11, 6 ], "texture": "#texture" }, + "north": { "uv": [ 5, 12, 11, 16 ], "texture": "#texture" }, + "south": { "uv": [ 5, 12, 11, 16 ], "texture": "#texture" }, + "west": { "uv": [ 6, 12, 10, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 12, 10, 16 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/button_pressed.json b/assets/minecraft/models/block/button_pressed.json new file mode 100644 index 00000000..a4da58f6 --- /dev/null +++ b/assets/minecraft/models/block/button_pressed.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 5, 0, 6 ], + "to": [ 11, 1.02, 10 ], + "faces": { + "down": { "uv": [ 5, 6, 11, 10 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 5, 6, 11, 10 ], "texture": "#texture" }, + "north": { "uv": [ 5, 14, 11, 15 ], "texture": "#texture" }, + "south": { "uv": [ 5, 14, 11, 15 ], "texture": "#texture" }, + "west": { "uv": [ 6, 14, 10, 15 ], "texture": "#texture" }, + "east": { "uv": [ 6, 14, 10, 15 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cactus.json b/assets/minecraft/models/block/cactus.json new file mode 100644 index 00000000..d8e20547 --- /dev/null +++ b/assets/minecraft/models/block/cactus.json @@ -0,0 +1,31 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/cactus_side", + "bottom": "block/cactus_bottom", + "top": "block/cactus_top", + "side": "block/cactus_side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "up" } + } + }, + { "from": [ 0, 0, 1 ], + "to": [ 16, 16, 15 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + }, + { "from": [ 1, 0, 0 ], + "to": [ 15, 16, 16 ], + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cake.json b/assets/minecraft/models/block/cake.json new file mode 100644 index 00000000..1bc93473 --- /dev/null +++ b/assets/minecraft/models/block/cake.json @@ -0,0 +1,21 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side" + }, + "elements": [ + { "from": [ 1, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cake_slice1.json b/assets/minecraft/models/block/cake_slice1.json new file mode 100644 index 00000000..ca6d8d85 --- /dev/null +++ b/assets/minecraft/models/block/cake_slice1.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side", + "inside": "block/cake_inner" + }, + "elements": [ + { "from": [ 3, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cake_slice2.json b/assets/minecraft/models/block/cake_slice2.json new file mode 100644 index 00000000..7714c0d0 --- /dev/null +++ b/assets/minecraft/models/block/cake_slice2.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side", + "inside": "block/cake_inner" + }, + "elements": [ + { "from": [ 5, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cake_slice3.json b/assets/minecraft/models/block/cake_slice3.json new file mode 100644 index 00000000..8d45a88a --- /dev/null +++ b/assets/minecraft/models/block/cake_slice3.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side", + "inside": "block/cake_inner" + }, + "elements": [ + { "from": [ 7, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cake_slice4.json b/assets/minecraft/models/block/cake_slice4.json new file mode 100644 index 00000000..00bab48e --- /dev/null +++ b/assets/minecraft/models/block/cake_slice4.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side", + "inside": "block/cake_inner" + }, + "elements": [ + { "from": [ 9, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cake_slice5.json b/assets/minecraft/models/block/cake_slice5.json new file mode 100644 index 00000000..518af838 --- /dev/null +++ b/assets/minecraft/models/block/cake_slice5.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side", + "inside": "block/cake_inner" + }, + "elements": [ + { "from": [ 11, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cake_slice6.json b/assets/minecraft/models/block/cake_slice6.json new file mode 100644 index 00000000..97151ba5 --- /dev/null +++ b/assets/minecraft/models/block/cake_slice6.json @@ -0,0 +1,22 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side", + "inside": "block/cake_inner" + }, + "elements": [ + { "from": [ 13, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#inside" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/calcite.json b/assets/minecraft/models/block/calcite.json new file mode 100644 index 00000000..1bb92ad4 --- /dev/null +++ b/assets/minecraft/models/block/calcite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/calcite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/calibrated_sculk_sensor.json b/assets/minecraft/models/block/calibrated_sculk_sensor.json new file mode 100644 index 00000000..97b007ac --- /dev/null +++ b/assets/minecraft/models/block/calibrated_sculk_sensor.json @@ -0,0 +1,100 @@ +{ + "parent": "block/block", + "gui_light": "front", + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "head": { + "rotation": [ 0, -180, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 1, 1, 1 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, -45, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + } + }, + "textures": { + "amethyst": "block/calibrated_sculk_sensor_amethyst", + "bottom": "block/sculk_sensor_bottom", + "side": "block/sculk_sensor_side", + "calibrated_side": "block/calibrated_sculk_sensor_input_side", + "tendrils": "block/sculk_sensor_tendril_inactive", + "top": "block/calibrated_sculk_sensor_top", + "particle": "block/sculk_sensor_bottom" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 8, 16], + "faces": { + "north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 8, 16, 16], "texture": "#calibrated_side", "cullface": "south"}, + "west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + }, + { + "from": [-1, 8, 3], + "to": [7, 16, 3], + "rotation": {"angle": 45, "axis": "y", "origin": [3, 12, 3]}, + "faces": { + "north": {"uv": [4, 8, 12, 16], "texture": "#tendrils" }, + "south": {"uv": [12, 8, 4, 16], "texture": "#tendrils" } + } + }, + { + "from": [9, 8, 3], + "to": [17, 16, 3], + "rotation": {"angle": -45, "axis": "y", "origin": [13, 12, 3]}, + "faces": { + "north": {"uv": [12, 8, 4, 16], "texture": "#tendrils" }, + "south": {"uv": [4, 8, 12, 16], "texture": "#tendrils" } + } + }, + { + "from": [9, 8, 13], + "to": [17, 16, 13], + "rotation": {"angle": 45, "axis": "y", "origin": [13, 12, 13]}, + "faces": { + "north": {"uv": [12, 8, 4, 16], "texture": "#tendrils" }, + "south": {"uv": [4, 8, 12, 16], "texture": "#tendrils" } + } + }, + { + "from": [-1, 8, 13], + "to": [7, 16, 13], + "rotation": {"angle": -45, "axis": "y", "origin": [3, 12, 13]}, + "faces": { + "north": {"uv": [4, 8, 12, 16], "texture": "#tendrils" }, + "south": {"uv": [12, 8, 4, 16], "texture": "#tendrils" } + } + }, + { + "from": [8, 8, 0], + "to": [8, 20, 16], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 9, 8], "rescale": true}, + "shade": false, + "faces": { + "east": {"uv": [0, 4, 16, 16], "texture": "#amethyst"}, + "west": {"uv": [0, 4, 16, 16], "texture": "#amethyst"} + } + }, + { + "from": [0, 8, 8], + "to": [16, 20, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 9, 8], "rescale": true}, + "shade": false, + "faces": { + "north": {"uv": [0, 4, 16, 16], "texture": "#amethyst"}, + "south": {"uv": [0, 4, 16, 16], "texture": "#amethyst"} + } + } + ] +} diff --git a/assets/minecraft/models/block/calibrated_sculk_sensor_active.json b/assets/minecraft/models/block/calibrated_sculk_sensor_active.json new file mode 100644 index 00000000..e43241c5 --- /dev/null +++ b/assets/minecraft/models/block/calibrated_sculk_sensor_active.json @@ -0,0 +1,6 @@ +{ + "parent": "block/calibrated_sculk_sensor", + "textures": { + "tendrils": "block/sculk_sensor_tendril_active" + } +} diff --git a/assets/minecraft/models/block/calibrated_sculk_sensor_inactive.json b/assets/minecraft/models/block/calibrated_sculk_sensor_inactive.json new file mode 100644 index 00000000..4976cf8b --- /dev/null +++ b/assets/minecraft/models/block/calibrated_sculk_sensor_inactive.json @@ -0,0 +1,6 @@ +{ + "parent": "block/calibrated_sculk_sensor", + "textures": { + "tendrils": "block/sculk_sensor_tendril_inactive" + } +} diff --git a/assets/minecraft/models/block/campfire.json b/assets/minecraft/models/block/campfire.json new file mode 100644 index 00000000..ff5db784 --- /dev/null +++ b/assets/minecraft/models/block/campfire.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_campfire", + "textures": { + "fire": "minecraft:block/campfire_fire", + "lit_log": "minecraft:block/campfire_log_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/campfire_off.json b/assets/minecraft/models/block/campfire_off.json new file mode 100644 index 00000000..9dc54761 --- /dev/null +++ b/assets/minecraft/models/block/campfire_off.json @@ -0,0 +1,74 @@ +{ + "parent": "block/block", + "display": { + "head": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 10.5, 0 ], + "scale":[ 1, 1, 1 ] + } + }, + "textures": { + "particle": "block/campfire_log", + "log": "block/campfire_log" + }, + "elements": [ + { + "from": [ 1, 0, 0 ], + "to": [ 5, 4, 16 ], + "faces": { + "north": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "north" }, + "east": { "uv": [ 0, 1, 16, 5 ], "texture": "#log" }, + "south": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "south" }, + "west": { "uv": [ 16, 0, 0, 4 ], "texture": "#log" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log" }, + "down": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log", "cullface": "down" } + } + }, + { + "from": [ 0, 3, 11 ], + "to": [ 16, 7, 15 ], + "faces": { + "north": { "uv": [ 16, 0, 0, 4 ], "texture": "#log" }, + "east": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "east" }, + "south": { "uv": [ 0, 0, 16, 4 ], "texture": "#log" }, + "west": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "west" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 180, "texture": "#log" }, + "down": { "uv": [ 0, 0, 16, 4 ], "texture": "#log" } + } + }, + { + "from": [ 11, 0, 0 ], + "to": [ 15, 4, 16 ], + "faces": { + "north": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "north" }, + "east": { "uv": [ 0, 0, 16, 4 ], "texture": "#log" }, + "south": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "south" }, + "west": { "uv": [ 16, 1, 0, 5 ], "texture": "#log" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log" }, + "down": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log", "cullface": "down" } + } + }, + { + "from": [ 0, 3, 1 ], + "to": [ 16, 7, 5 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 4 ], "texture": "#log" }, + "east": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "east" }, + "south": { "uv": [ 16, 0, 0, 4 ], "texture": "#log" }, + "west": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "west" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 180, "texture": "#log" }, + "down": { "uv": [ 0, 0, 16, 4 ], "texture": "#log" } + } + }, + { + "from": [ 5, 0, 0 ], + "to": [ 11, 1, 16 ], + "faces": { + "north": {"uv": [ 0, 15, 6, 16 ], "texture": "#log", "cullface": "north" }, + "south": {"uv": [ 10, 15, 16, 16 ], "texture": "#log", "cullface": "south" }, + "up": {"uv": [ 0, 8, 16, 14 ], "rotation": 90, "texture": "#log" }, + "down": {"uv": [ 0, 8, 16, 14 ], "rotation": 90, "texture": "#log", "cullface": "down" } + } + } + ] +} diff --git a/assets/minecraft/models/block/candle_cake.json b/assets/minecraft/models/block/candle_cake.json new file mode 100644 index 00000000..56b23bf1 --- /dev/null +++ b/assets/minecraft/models/block/candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_cake_lit.json b/assets/minecraft/models/block/candle_cake_lit.json new file mode 100644 index 00000000..a0c98008 --- /dev/null +++ b/assets/minecraft/models/block/candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_four_candles.json b/assets/minecraft/models/block/candle_four_candles.json new file mode 100644 index 00000000..90eb7a43 --- /dev/null +++ b/assets/minecraft/models/block/candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/candle", + "particle": "minecraft:block/candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_four_candles_lit.json b/assets/minecraft/models/block/candle_four_candles_lit.json new file mode 100644 index 00000000..00070da2 --- /dev/null +++ b/assets/minecraft/models/block/candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/candle_lit", + "particle": "minecraft:block/candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_one_candle.json b/assets/minecraft/models/block/candle_one_candle.json new file mode 100644 index 00000000..36c9b767 --- /dev/null +++ b/assets/minecraft/models/block/candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/candle", + "particle": "minecraft:block/candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_one_candle_lit.json b/assets/minecraft/models/block/candle_one_candle_lit.json new file mode 100644 index 00000000..c66fbdad --- /dev/null +++ b/assets/minecraft/models/block/candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/candle_lit", + "particle": "minecraft:block/candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_three_candles.json b/assets/minecraft/models/block/candle_three_candles.json new file mode 100644 index 00000000..b4056916 --- /dev/null +++ b/assets/minecraft/models/block/candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/candle", + "particle": "minecraft:block/candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_three_candles_lit.json b/assets/minecraft/models/block/candle_three_candles_lit.json new file mode 100644 index 00000000..e706c7bd --- /dev/null +++ b/assets/minecraft/models/block/candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/candle_lit", + "particle": "minecraft:block/candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_two_candles.json b/assets/minecraft/models/block/candle_two_candles.json new file mode 100644 index 00000000..cda5223f --- /dev/null +++ b/assets/minecraft/models/block/candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/candle", + "particle": "minecraft:block/candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/candle_two_candles_lit.json b/assets/minecraft/models/block/candle_two_candles_lit.json new file mode 100644 index 00000000..5c3618b1 --- /dev/null +++ b/assets/minecraft/models/block/candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/candle_lit", + "particle": "minecraft:block/candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/carpet.json b/assets/minecraft/models/block/carpet.json new file mode 100644 index 00000000..b52a1105 --- /dev/null +++ b/assets/minecraft/models/block/carpet.json @@ -0,0 +1,19 @@ +{ + "parent": "block/thin_block", + "textures": { + "particle": "#wool" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 1, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#wool", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#wool" }, + "north": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "north" }, + "south": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "south" }, + "west": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "west" }, + "east": { "uv": [ 0, 15, 16, 16 ], "texture": "#wool", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/carrots_stage0.json b/assets/minecraft/models/block/carrots_stage0.json new file mode 100644 index 00000000..f1dcc6e6 --- /dev/null +++ b/assets/minecraft/models/block/carrots_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/carrots_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/carrots_stage1.json b/assets/minecraft/models/block/carrots_stage1.json new file mode 100644 index 00000000..dda9356e --- /dev/null +++ b/assets/minecraft/models/block/carrots_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/carrots_stage1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/carrots_stage2.json b/assets/minecraft/models/block/carrots_stage2.json new file mode 100644 index 00000000..ffc0a559 --- /dev/null +++ b/assets/minecraft/models/block/carrots_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/carrots_stage2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/carrots_stage3.json b/assets/minecraft/models/block/carrots_stage3.json new file mode 100644 index 00000000..aeb7406a --- /dev/null +++ b/assets/minecraft/models/block/carrots_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/carrots_stage3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cartography_table.json b/assets/minecraft/models/block/cartography_table.json new file mode 100644 index 00000000..770c1061 --- /dev/null +++ b/assets/minecraft/models/block/cartography_table.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "minecraft:block/dark_oak_planks", + "east": "minecraft:block/cartography_table_side3", + "north": "minecraft:block/cartography_table_side3", + "particle": "minecraft:block/cartography_table_side3", + "south": "minecraft:block/cartography_table_side1", + "up": "minecraft:block/cartography_table_top", + "west": "minecraft:block/cartography_table_side2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/carved_pumpkin.json b/assets/minecraft/models/block/carved_pumpkin.json new file mode 100644 index 00000000..69975ace --- /dev/null +++ b/assets/minecraft/models/block/carved_pumpkin.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/carved_pumpkin", + "side": "minecraft:block/pumpkin_side", + "top": "minecraft:block/pumpkin_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cauldron.json b/assets/minecraft/models/block/cauldron.json new file mode 100644 index 00000000..788da3e1 --- /dev/null +++ b/assets/minecraft/models/block/cauldron.json @@ -0,0 +1,148 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cauldron_side", + "top": "block/cauldron_top", + "bottom": "block/cauldron_bottom", + "side": "block/cauldron_side", + "inside": "block/cauldron_inner" + }, + "elements": [ + { + "from": [ 0, 3, 0 ], + "to": [ 2, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 2 ], + "to": [ 14, 4, 14 ], + "faces": { + "up": { "texture": "#inside" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 14, 3, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 0 ], + "to": [ 14, 16, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 14 ], + "to": [ 14, 16, 16 ], + "faces": { + "north": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 4, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 2 ], + "to": [ 2, 3, 4 ], + "faces": { + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 0 ], + "to": [ 16, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 2 ], + "to": [ 16, 3, 4 ], + "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 14 ], + "to": [ 4, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 12 ], + "to": [ 2, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 14 ], + "to": [ 16, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 12 ], + "to": [ 16, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cave_vines.json b/assets/minecraft/models/block/cave_vines.json new file mode 100644 index 00000000..96aafbf7 --- /dev/null +++ b/assets/minecraft/models/block/cave_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/cave_vines" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cave_vines_lit.json b/assets/minecraft/models/block/cave_vines_lit.json new file mode 100644 index 00000000..55dd17a5 --- /dev/null +++ b/assets/minecraft/models/block/cave_vines_lit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/cave_vines_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cave_vines_plant.json b/assets/minecraft/models/block/cave_vines_plant.json new file mode 100644 index 00000000..c0eb5e11 --- /dev/null +++ b/assets/minecraft/models/block/cave_vines_plant.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/cave_vines_plant" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cave_vines_plant_lit.json b/assets/minecraft/models/block/cave_vines_plant_lit.json new file mode 100644 index 00000000..e6d54de0 --- /dev/null +++ b/assets/minecraft/models/block/cave_vines_plant_lit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/cave_vines_plant_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chain.json b/assets/minecraft/models/block/chain.json new file mode 100644 index 00000000..56d42c1e --- /dev/null +++ b/assets/minecraft/models/block/chain.json @@ -0,0 +1,29 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/chain", + "all": "block/chain" + }, + "elements": [ + { + "from": [ 6.5, 0, 8 ], + "to": [ 9.5, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45}, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#all" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#all" } + } + }, + { + "from": [ 8, 0, 6.5 ], + "to": [ 8, 16, 9.5 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45}, + "shade": false, + "faces": { + "west": { "uv": [ 6, 0, 3, 16 ], "texture": "#all" }, + "east": { "uv": [ 3, 0, 6, 16 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/chain_command_block.json b/assets/minecraft/models/block/chain_command_block.json new file mode 100644 index 00000000..bdb3d96e --- /dev/null +++ b/assets/minecraft/models/block/chain_command_block.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_command_block", + "textures": { + "back": "minecraft:block/chain_command_block_back", + "front": "minecraft:block/chain_command_block_front", + "side": "minecraft:block/chain_command_block_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chain_command_block_conditional.json b/assets/minecraft/models/block/chain_command_block_conditional.json new file mode 100644 index 00000000..ebde0eea --- /dev/null +++ b/assets/minecraft/models/block/chain_command_block_conditional.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_command_block", + "textures": { + "back": "minecraft:block/chain_command_block_back", + "front": "minecraft:block/chain_command_block_front", + "side": "minecraft:block/chain_command_block_conditional" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_button.json b/assets/minecraft/models/block/cherry_button.json new file mode 100644 index 00000000..4c064ed8 --- /dev/null +++ b/assets/minecraft/models/block/cherry_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_button_inventory.json b/assets/minecraft/models/block/cherry_button_inventory.json new file mode 100644 index 00000000..01ff173a --- /dev/null +++ b/assets/minecraft/models/block/cherry_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_button_pressed.json b/assets/minecraft/models/block/cherry_button_pressed.json new file mode 100644 index 00000000..a2f61179 --- /dev/null +++ b/assets/minecraft/models/block/cherry_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_bottom_left.json b/assets/minecraft/models/block/cherry_door_bottom_left.json new file mode 100644 index 00000000..e0222a5d --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_bottom_left_open.json b/assets/minecraft/models/block/cherry_door_bottom_left_open.json new file mode 100644 index 00000000..b89b5f1d --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_bottom_right.json b/assets/minecraft/models/block/cherry_door_bottom_right.json new file mode 100644 index 00000000..81de9910 --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_bottom_right_open.json b/assets/minecraft/models/block/cherry_door_bottom_right_open.json new file mode 100644 index 00000000..8418377b --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_top_left.json b/assets/minecraft/models/block/cherry_door_top_left.json new file mode 100644 index 00000000..c2e28c4e --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_top_left_open.json b/assets/minecraft/models/block/cherry_door_top_left_open.json new file mode 100644 index 00000000..bedf29f5 --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_top_right.json b/assets/minecraft/models/block/cherry_door_top_right.json new file mode 100644 index 00000000..c5daf1b1 --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_door_top_right_open.json b/assets/minecraft/models/block/cherry_door_top_right_open.json new file mode 100644 index 00000000..9b83a413 --- /dev/null +++ b/assets/minecraft/models/block/cherry_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/cherry_door_bottom", + "top": "minecraft:block/cherry_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_fence_gate.json b/assets/minecraft/models/block/cherry_fence_gate.json new file mode 100644 index 00000000..677178b4 --- /dev/null +++ b/assets/minecraft/models/block/cherry_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_fence_gate_open.json b/assets/minecraft/models/block/cherry_fence_gate_open.json new file mode 100644 index 00000000..36fbcb38 --- /dev/null +++ b/assets/minecraft/models/block/cherry_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_fence_gate_wall.json b/assets/minecraft/models/block/cherry_fence_gate_wall.json new file mode 100644 index 00000000..7e1af440 --- /dev/null +++ b/assets/minecraft/models/block/cherry_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_fence_gate_wall_open.json b/assets/minecraft/models/block/cherry_fence_gate_wall_open.json new file mode 100644 index 00000000..537d8dec --- /dev/null +++ b/assets/minecraft/models/block/cherry_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_fence_inventory.json b/assets/minecraft/models/block/cherry_fence_inventory.json new file mode 100644 index 00000000..a4a3b42d --- /dev/null +++ b/assets/minecraft/models/block/cherry_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_fence_post.json b/assets/minecraft/models/block/cherry_fence_post.json new file mode 100644 index 00000000..ef669564 --- /dev/null +++ b/assets/minecraft/models/block/cherry_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_fence_side.json b/assets/minecraft/models/block/cherry_fence_side.json new file mode 100644 index 00000000..63a0c064 --- /dev/null +++ b/assets/minecraft/models/block/cherry_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_hanging_sign.json b/assets/minecraft/models/block/cherry_hanging_sign.json new file mode 100644 index 00000000..fd3dc826 --- /dev/null +++ b/assets/minecraft/models/block/cherry_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_leaves.json b/assets/minecraft/models/block/cherry_leaves.json new file mode 100644 index 00000000..1a87b03e --- /dev/null +++ b/assets/minecraft/models/block/cherry_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/cherry_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_log.json b/assets/minecraft/models/block/cherry_log.json new file mode 100644 index 00000000..d63b1d09 --- /dev/null +++ b/assets/minecraft/models/block/cherry_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/cherry_log_top", + "side": "minecraft:block/cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_log_x.json b/assets/minecraft/models/block/cherry_log_x.json new file mode 100644 index 00000000..168310ec --- /dev/null +++ b/assets/minecraft/models/block/cherry_log_x.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_x", + "textures": { + "end": "minecraft:block/cherry_log_top", + "side": "minecraft:block/cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_log_y.json b/assets/minecraft/models/block/cherry_log_y.json new file mode 100644 index 00000000..9d83df74 --- /dev/null +++ b/assets/minecraft/models/block/cherry_log_y.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_y", + "textures": { + "end": "minecraft:block/cherry_log_top", + "side": "minecraft:block/cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_log_z.json b/assets/minecraft/models/block/cherry_log_z.json new file mode 100644 index 00000000..15a529b3 --- /dev/null +++ b/assets/minecraft/models/block/cherry_log_z.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_z", + "textures": { + "end": "minecraft:block/cherry_log_top", + "side": "minecraft:block/cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_planks.json b/assets/minecraft/models/block/cherry_planks.json new file mode 100644 index 00000000..dd0b3590 --- /dev/null +++ b/assets/minecraft/models/block/cherry_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_pressure_plate.json b/assets/minecraft/models/block/cherry_pressure_plate.json new file mode 100644 index 00000000..d25b89df --- /dev/null +++ b/assets/minecraft/models/block/cherry_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_pressure_plate_down.json b/assets/minecraft/models/block/cherry_pressure_plate_down.json new file mode 100644 index 00000000..0e9c0625 --- /dev/null +++ b/assets/minecraft/models/block/cherry_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_sapling.json b/assets/minecraft/models/block/cherry_sapling.json new file mode 100644 index 00000000..a566dacd --- /dev/null +++ b/assets/minecraft/models/block/cherry_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/cherry_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_sign.json b/assets/minecraft/models/block/cherry_sign.json new file mode 100644 index 00000000..3165e089 --- /dev/null +++ b/assets/minecraft/models/block/cherry_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_slab.json b/assets/minecraft/models/block/cherry_slab.json new file mode 100644 index 00000000..a4774884 --- /dev/null +++ b/assets/minecraft/models/block/cherry_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/cherry_planks", + "side": "minecraft:block/cherry_planks", + "top": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_slab_top.json b/assets/minecraft/models/block/cherry_slab_top.json new file mode 100644 index 00000000..4c8f8a22 --- /dev/null +++ b/assets/minecraft/models/block/cherry_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/cherry_planks", + "side": "minecraft:block/cherry_planks", + "top": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_stairs.json b/assets/minecraft/models/block/cherry_stairs.json new file mode 100644 index 00000000..1e0a17a9 --- /dev/null +++ b/assets/minecraft/models/block/cherry_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/cherry_planks", + "side": "minecraft:block/cherry_planks", + "top": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_stairs_inner.json b/assets/minecraft/models/block/cherry_stairs_inner.json new file mode 100644 index 00000000..0c4f7a42 --- /dev/null +++ b/assets/minecraft/models/block/cherry_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/cherry_planks", + "side": "minecraft:block/cherry_planks", + "top": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_stairs_outer.json b/assets/minecraft/models/block/cherry_stairs_outer.json new file mode 100644 index 00000000..ce1dce98 --- /dev/null +++ b/assets/minecraft/models/block/cherry_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/cherry_planks", + "side": "minecraft:block/cherry_planks", + "top": "minecraft:block/cherry_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_trapdoor_bottom.json b/assets/minecraft/models/block/cherry_trapdoor_bottom.json new file mode 100644 index 00000000..3efdd184 --- /dev/null +++ b/assets/minecraft/models/block/cherry_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/cherry_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_trapdoor_open.json b/assets/minecraft/models/block/cherry_trapdoor_open.json new file mode 100644 index 00000000..6a5dc869 --- /dev/null +++ b/assets/minecraft/models/block/cherry_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/cherry_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_trapdoor_top.json b/assets/minecraft/models/block/cherry_trapdoor_top.json new file mode 100644 index 00000000..c74af628 --- /dev/null +++ b/assets/minecraft/models/block/cherry_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/cherry_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cherry_wood.json b/assets/minecraft/models/block/cherry_wood.json new file mode 100644 index 00000000..dbe5274e --- /dev/null +++ b/assets/minecraft/models/block/cherry_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/cherry_log", + "side": "minecraft:block/cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chest.json b/assets/minecraft/models/block/chest.json new file mode 100644 index 00000000..9406a849 --- /dev/null +++ b/assets/minecraft/models/block/chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chipped_anvil.json b/assets/minecraft/models/block/chipped_anvil.json new file mode 100644 index 00000000..57719879 --- /dev/null +++ b/assets/minecraft/models/block/chipped_anvil.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_anvil", + "textures": { + "top": "minecraft:block/chipped_anvil_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf.json b/assets/minecraft/models/block/chiseled_bookshelf.json new file mode 100644 index 00000000..a9bda72e --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf.json @@ -0,0 +1,22 @@ +{ + "parent": "block/block", + "textures": { + "top": "block/chiseled_bookshelf_top", + "side": "block/chiseled_bookshelf_side", + "particle": "#top" + }, + "elements": [ + { + "name": "chiseled_bookshelf_body", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "down"} + } + } + ] +} diff --git a/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_left.json b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_left.json new file mode 100644 index 00000000..1d68ce3b --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_left.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_bottom_left", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_empty" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_mid.json b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_mid.json new file mode 100644 index 00000000..b3a2dc57 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_mid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_bottom_mid", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_empty" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_right.json b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_right.json new file mode 100644 index 00000000..8fb59f5e --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_bottom_right.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_bottom_right", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_empty" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_left.json b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_left.json new file mode 100644 index 00000000..2b981706 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_left.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_top_left", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_empty" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_mid.json b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_mid.json new file mode 100644 index 00000000..19f44bc1 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_mid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_top_mid", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_empty" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_right.json b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_right.json new file mode 100644 index 00000000..778d8873 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_empty_slot_top_right.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_top_right", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_empty" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_inventory.json b/assets/minecraft/models/block/chiseled_bookshelf_inventory.json new file mode 100644 index 00000000..81cf4e91 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_inventory.json @@ -0,0 +1,24 @@ +{ + "parent": "block/block", + "textures": { + "top": "block/chiseled_bookshelf_top", + "side": "block/chiseled_bookshelf_side", + "front": "block/chiseled_bookshelf_empty", + "particle": "#top" + }, + "elements": [ + { + "name": "chiseled_bookshelf_body", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#front"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#side"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#top"} + } + } + ] +} diff --git a/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_left.json b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_left.json new file mode 100644 index 00000000..69046e17 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_left.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_bottom_left", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_occupied" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_mid.json b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_mid.json new file mode 100644 index 00000000..f7b23147 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_mid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_bottom_mid", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_occupied" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_right.json b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_right.json new file mode 100644 index 00000000..4d7ce5bc --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_bottom_right.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_bottom_right", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_occupied" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_left.json b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_left.json new file mode 100644 index 00000000..85331c01 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_left.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_top_left", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_occupied" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_mid.json b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_mid.json new file mode 100644 index 00000000..058eefc5 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_mid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_top_mid", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_occupied" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_right.json b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_right.json new file mode 100644 index 00000000..d71c97ce --- /dev/null +++ b/assets/minecraft/models/block/chiseled_bookshelf_occupied_slot_top_right.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chiseled_bookshelf_slot_top_right", + "textures": { + "texture": "minecraft:block/chiseled_bookshelf_occupied" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_copper.json b/assets/minecraft/models/block/chiseled_copper.json new file mode 100644 index 00000000..5baeb440 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/chiseled_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_deepslate.json b/assets/minecraft/models/block/chiseled_deepslate.json new file mode 100644 index 00000000..727cdc98 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_deepslate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/chiseled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_nether_bricks.json b/assets/minecraft/models/block/chiseled_nether_bricks.json new file mode 100644 index 00000000..c66e73c6 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_nether_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/chiseled_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_polished_blackstone.json b/assets/minecraft/models/block/chiseled_polished_blackstone.json new file mode 100644 index 00000000..4b0db517 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_polished_blackstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/chiseled_polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_quartz_block.json b/assets/minecraft/models/block/chiseled_quartz_block.json new file mode 100644 index 00000000..562af81e --- /dev/null +++ b/assets/minecraft/models/block/chiseled_quartz_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/chiseled_quartz_block_top", + "side": "minecraft:block/chiseled_quartz_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_red_sandstone.json b/assets/minecraft/models/block/chiseled_red_sandstone.json new file mode 100644 index 00000000..d33075b1 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_red_sandstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/chiseled_red_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_sandstone.json b/assets/minecraft/models/block/chiseled_sandstone.json new file mode 100644 index 00000000..3ce22859 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_sandstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/sandstone_top", + "side": "minecraft:block/chiseled_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_stone_bricks.json b/assets/minecraft/models/block/chiseled_stone_bricks.json new file mode 100644 index 00000000..6bbb7c88 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_stone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/chiseled_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_tuff.json b/assets/minecraft/models/block/chiseled_tuff.json new file mode 100644 index 00000000..0ff4bbdc --- /dev/null +++ b/assets/minecraft/models/block/chiseled_tuff.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/chiseled_tuff_top", + "side": "minecraft:block/chiseled_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chiseled_tuff_bricks.json b/assets/minecraft/models/block/chiseled_tuff_bricks.json new file mode 100644 index 00000000..94accd40 --- /dev/null +++ b/assets/minecraft/models/block/chiseled_tuff_bricks.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/chiseled_tuff_bricks_top", + "side": "minecraft:block/chiseled_tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chorus_flower.json b/assets/minecraft/models/block/chorus_flower.json new file mode 100644 index 00000000..bec10d07 --- /dev/null +++ b/assets/minecraft/models/block/chorus_flower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chorus_flower", + "textures": { + "texture": "minecraft:block/chorus_flower" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chorus_flower_dead.json b/assets/minecraft/models/block/chorus_flower_dead.json new file mode 100644 index 00000000..10519e8a --- /dev/null +++ b/assets/minecraft/models/block/chorus_flower_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_chorus_flower", + "textures": { + "texture": "minecraft:block/chorus_flower_dead" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/chorus_plant.json b/assets/minecraft/models/block/chorus_plant.json new file mode 100644 index 00000000..a6949670 --- /dev/null +++ b/assets/minecraft/models/block/chorus_plant.json @@ -0,0 +1,80 @@ +{ "parent": "block/block", + "textures": { + "texture": "block/chorus_plant", + "inside": "block/chorus_plant", + "particle": "block/chorus_plant" + }, + "elements": [ + { "from": [ 2, 14, 2 ], + "to": [ 14, 16, 14 ], + "faces": { + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture", "cullface":"up" }, + "north": { "uv": [ 2, 0, 14, 2 ], "texture": "#texture", "cullface":"up" }, + "south": { "uv": [ 2, 0, 14, 2 ], "texture": "#texture", "cullface":"up" }, + "west": { "uv": [ 2, 0, 14, 2 ], "texture": "#texture", "cullface":"up" }, + "east": { "uv": [ 2, 0, 14, 2 ], "texture": "#texture", "cullface":"up" } + } + }, + { "from": [ 0, 2, 2 ], + "to": [ 2, 14, 14 ], + "faces": { + "down": { "uv": [ 16, 14, 14, 2 ], "texture": "#texture", "cullface":"west" }, + "up": { "uv": [ 0, 2, 2, 14 ], "texture": "#texture", "cullface":"west" }, + "north": { "uv": [ 14, 2, 16, 14 ], "texture": "#texture", "cullface":"west" }, + "south": { "uv": [ 0, 2, 2, 14 ], "texture": "#texture", "cullface":"west" }, + "west": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture", "cullface":"west" } + } + }, + { "from": [ 2, 2, 0 ], + "to": [ 14, 14, 2 ], + "faces": { + "down": { "uv": [ 14, 2, 2, 0 ], "texture": "#texture", "cullface":"north" }, + "up": { "uv": [ 2, 0, 14, 2 ], "texture": "#texture", "cullface":"north" }, + "north": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture", "cullface":"north" }, + "west": { "uv": [ 0, 2, 2, 14 ], "texture": "#texture", "cullface":"north" }, + "east": { "uv": [ 14, 2, 16, 14 ], "texture": "#texture", "cullface":"north" } + } + }, + { "from": [ 2, 2, 14 ], + "to": [ 14, 14, 16 ], + "faces": { + "down": { "uv": [ 14, 16, 2, 14 ], "texture": "#texture", "cullface":"south" }, + "up": { "uv": [ 2, 14, 14, 16 ], "texture": "#texture", "cullface":"south" }, + "south": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture", "cullface":"south" }, + "west": { "uv": [ 14, 2, 16, 14 ], "texture": "#texture", "cullface":"south" }, + "east": { "uv": [ 0, 2, 2, 14 ], "texture": "#texture", "cullface":"south" } + } + }, + { "from": [ 14, 2, 2 ], + "to": [ 16, 14, 14 ], + "faces": { + "down": { "uv": [ 2, 14, 0, 2 ], "texture": "#texture", "cullface":"east" }, + "up": { "uv": [ 14, 2, 16, 14 ], "texture": "#texture", "cullface":"east" }, + "north": { "uv": [ 0, 2, 2, 14 ], "texture": "#texture", "cullface":"east" }, + "south": { "uv": [ 14, 2, 16, 14 ], "texture": "#texture", "cullface":"east" }, + "east": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture", "cullface":"east" } + } + }, + { "from": [ 2, 0, 2 ], + "to": [ 14, 2, 14 ], + "faces": { + "down": { "uv": [ 14, 14, 2, 2 ], "texture": "#texture", "cullface":"down" }, + "north": { "uv": [ 2, 14, 14, 16 ], "texture": "#texture", "cullface":"down" }, + "south": { "uv": [ 2, 14, 14, 16 ], "texture": "#texture", "cullface":"down" }, + "west": { "uv": [ 2, 14, 14, 16 ], "texture": "#texture", "cullface":"down" }, + "east": { "uv": [ 2, 14, 14, 16 ], "texture": "#texture", "cullface":"down" } + } + }, + { "from": [ 2, 2, 2 ], + "to": [ 14, 14, 14 ], + "faces": { + "down": { "uv": [ 14, 14, 2, 2 ], "texture": "#inside" }, + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#inside" }, + "north": { "uv": [ 2, 2, 14, 14 ], "texture": "#inside" }, + "south": { "uv": [ 2, 2, 14, 14 ], "texture": "#inside" }, + "west": { "uv": [ 2, 2, 14, 14 ], "texture": "#inside" }, + "east": { "uv": [ 2, 2, 14, 14 ], "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/chorus_plant_noside.json b/assets/minecraft/models/block/chorus_plant_noside.json new file mode 100644 index 00000000..e7e60ce6 --- /dev/null +++ b/assets/minecraft/models/block/chorus_plant_noside.json @@ -0,0 +1,16 @@ +{ + "ambientocclusion": false, + "textures": { + "texture": "block/chorus_plant", + "inside": "block/chorus_plant", + "particle": "block/chorus_plant" + }, + "elements": [ + { "from": [ 4, 4, 4 ], + "to": [ 12, 12, 12 ], + "faces": { + "north": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/chorus_plant_noside1.json b/assets/minecraft/models/block/chorus_plant_noside1.json new file mode 100644 index 00000000..f3fed503 --- /dev/null +++ b/assets/minecraft/models/block/chorus_plant_noside1.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "texture": "block/chorus_plant", + "inside": "block/chorus_plant", + "particle": "block/chorus_plant" + }, + "elements": [ + { "from": [ 4, 4, 4 ], + "to": [ 12, 12, 12 ], + "faces": { + "north": { "texture": "#inside" } + } + }, + { "from": [ 4, 4, 3 ], + "to": [ 12, 12, 4 ], + "faces": { + "down": { "texture": "#texture" }, + "up": { "texture": "#texture" }, + "north": { "texture": "#texture" }, + "west": { "texture": "#texture" }, + "east": { "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/chorus_plant_noside2.json b/assets/minecraft/models/block/chorus_plant_noside2.json new file mode 100644 index 00000000..e2627b9a --- /dev/null +++ b/assets/minecraft/models/block/chorus_plant_noside2.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "texture": "block/chorus_plant", + "inside": "block/chorus_plant", + "particle": "block/chorus_plant" + }, + "elements": [ + { "from": [ 4, 4, 4 ], + "to": [ 12, 12, 12 ], + "faces": { + "north": { "texture": "#inside" } + } + }, + { "from": [ 5, 5, 2 ], + "to": [ 11, 11, 4 ], + "faces": { + "down": { "texture": "#texture" }, + "up": { "texture": "#texture" }, + "north": { "texture": "#texture" }, + "west": { "texture": "#texture" }, + "east": { "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/chorus_plant_noside3.json b/assets/minecraft/models/block/chorus_plant_noside3.json new file mode 100644 index 00000000..f3fed503 --- /dev/null +++ b/assets/minecraft/models/block/chorus_plant_noside3.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "texture": "block/chorus_plant", + "inside": "block/chorus_plant", + "particle": "block/chorus_plant" + }, + "elements": [ + { "from": [ 4, 4, 4 ], + "to": [ 12, 12, 12 ], + "faces": { + "north": { "texture": "#inside" } + } + }, + { "from": [ 4, 4, 3 ], + "to": [ 12, 12, 4 ], + "faces": { + "down": { "texture": "#texture" }, + "up": { "texture": "#texture" }, + "north": { "texture": "#texture" }, + "west": { "texture": "#texture" }, + "east": { "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/chorus_plant_side.json b/assets/minecraft/models/block/chorus_plant_side.json new file mode 100644 index 00000000..e8117d24 --- /dev/null +++ b/assets/minecraft/models/block/chorus_plant_side.json @@ -0,0 +1,20 @@ +{ + "ambientocclusion": false, + "textures": { + "texture": "block/chorus_plant", + "inside": "block/chorus_plant", + "particle": "block/chorus_plant" + }, + "elements": [ + { "from": [ 4, 4, 0 ], + "to": [ 12, 12, 4 ], + "faces": { + "down": { "texture": "#texture" }, + "up": { "texture": "#texture" }, + "north": { "texture": "#texture", "cullface":"north" }, + "west": { "texture": "#texture" }, + "east": { "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/clay.json b/assets/minecraft/models/block/clay.json new file mode 100644 index 00000000..3e478cd7 --- /dev/null +++ b/assets/minecraft/models/block/clay.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/clay" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/coal_block.json b/assets/minecraft/models/block/coal_block.json new file mode 100644 index 00000000..9b1077f1 --- /dev/null +++ b/assets/minecraft/models/block/coal_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/coal_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/coal_ore.json b/assets/minecraft/models/block/coal_ore.json new file mode 100644 index 00000000..ef7b1541 --- /dev/null +++ b/assets/minecraft/models/block/coal_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/coal_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/coarse_dirt.json b/assets/minecraft/models/block/coarse_dirt.json new file mode 100644 index 00000000..2ecdb0d0 --- /dev/null +++ b/assets/minecraft/models/block/coarse_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/coarse_dirt" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate.json b/assets/minecraft/models/block/cobbled_deepslate.json new file mode 100644 index 00000000..bd99551d --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_slab.json b/assets/minecraft/models/block/cobbled_deepslate_slab.json new file mode 100644 index 00000000..92d33595 --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/cobbled_deepslate", + "side": "minecraft:block/cobbled_deepslate", + "top": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_slab_top.json b/assets/minecraft/models/block/cobbled_deepslate_slab_top.json new file mode 100644 index 00000000..34da6b49 --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/cobbled_deepslate", + "side": "minecraft:block/cobbled_deepslate", + "top": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_stairs.json b/assets/minecraft/models/block/cobbled_deepslate_stairs.json new file mode 100644 index 00000000..1ee79114 --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/cobbled_deepslate", + "side": "minecraft:block/cobbled_deepslate", + "top": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_stairs_inner.json b/assets/minecraft/models/block/cobbled_deepslate_stairs_inner.json new file mode 100644 index 00000000..17ea7611 --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/cobbled_deepslate", + "side": "minecraft:block/cobbled_deepslate", + "top": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_stairs_outer.json b/assets/minecraft/models/block/cobbled_deepslate_stairs_outer.json new file mode 100644 index 00000000..966d357d --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/cobbled_deepslate", + "side": "minecraft:block/cobbled_deepslate", + "top": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_wall_inventory.json b/assets/minecraft/models/block/cobbled_deepslate_wall_inventory.json new file mode 100644 index 00000000..e7e2c31a --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_wall_post.json b/assets/minecraft/models/block/cobbled_deepslate_wall_post.json new file mode 100644 index 00000000..6a6f6480 --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_wall_side.json b/assets/minecraft/models/block/cobbled_deepslate_wall_side.json new file mode 100644 index 00000000..082cacc3 --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobbled_deepslate_wall_side_tall.json b/assets/minecraft/models/block/cobbled_deepslate_wall_side_tall.json new file mode 100644 index 00000000..7e841daf --- /dev/null +++ b/assets/minecraft/models/block/cobbled_deepslate_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/cobbled_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone.json b/assets/minecraft/models/block/cobblestone.json new file mode 100644 index 00000000..ab65fe90 --- /dev/null +++ b/assets/minecraft/models/block/cobblestone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_slab.json b/assets/minecraft/models/block/cobblestone_slab.json new file mode 100644 index 00000000..8d65dd37 --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/cobblestone", + "side": "minecraft:block/cobblestone", + "top": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_slab_top.json b/assets/minecraft/models/block/cobblestone_slab_top.json new file mode 100644 index 00000000..4caccc35 --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/cobblestone", + "side": "minecraft:block/cobblestone", + "top": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_stairs.json b/assets/minecraft/models/block/cobblestone_stairs.json new file mode 100644 index 00000000..feae9865 --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/cobblestone", + "side": "minecraft:block/cobblestone", + "top": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_stairs_inner.json b/assets/minecraft/models/block/cobblestone_stairs_inner.json new file mode 100644 index 00000000..36f2f799 --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/cobblestone", + "side": "minecraft:block/cobblestone", + "top": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_stairs_outer.json b/assets/minecraft/models/block/cobblestone_stairs_outer.json new file mode 100644 index 00000000..77c9fa47 --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/cobblestone", + "side": "minecraft:block/cobblestone", + "top": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_wall_inventory.json b/assets/minecraft/models/block/cobblestone_wall_inventory.json new file mode 100644 index 00000000..3145d2de --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_wall_post.json b/assets/minecraft/models/block/cobblestone_wall_post.json new file mode 100644 index 00000000..7f47c03f --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_wall_side.json b/assets/minecraft/models/block/cobblestone_wall_side.json new file mode 100644 index 00000000..f0eabd2b --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobblestone_wall_side_tall.json b/assets/minecraft/models/block/cobblestone_wall_side_tall.json new file mode 100644 index 00000000..d6f66256 --- /dev/null +++ b/assets/minecraft/models/block/cobblestone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cobweb.json b/assets/minecraft/models/block/cobweb.json new file mode 100644 index 00000000..0520c950 --- /dev/null +++ b/assets/minecraft/models/block/cobweb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/cobweb" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cocoa_stage0.json b/assets/minecraft/models/block/cocoa_stage0.json new file mode 100644 index 00000000..9870dd80 --- /dev/null +++ b/assets/minecraft/models/block/cocoa_stage0.json @@ -0,0 +1,27 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cocoa_stage0", + "cocoa": "block/cocoa_stage0" + }, + "elements": [ + { "from": [ 6, 7, 11 ], + "to": [ 10, 12, 15 ], + "faces": { + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#cocoa" }, + "up": { "uv": [ 0, 0, 4, 4 ], "texture": "#cocoa" }, + "north": { "uv": [ 11, 4, 15, 9 ], "texture": "#cocoa" }, + "south": { "uv": [ 11, 4, 15, 9 ], "texture": "#cocoa" }, + "west": { "uv": [ 11, 4, 15, 9 ], "texture": "#cocoa" }, + "east": { "uv": [ 11, 4, 15, 9 ], "texture": "#cocoa" } + } + }, + { "from": [ 8, 12, 12 ], + "to": [ 8, 16, 16 ], + "faces": { + "west": { "uv": [ 12, 0, 16, 4 ], "texture": "#cocoa" }, + "east": { "uv": [ 16, 0, 12, 4 ], "texture": "#cocoa" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cocoa_stage1.json b/assets/minecraft/models/block/cocoa_stage1.json new file mode 100644 index 00000000..22d12d8d --- /dev/null +++ b/assets/minecraft/models/block/cocoa_stage1.json @@ -0,0 +1,27 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cocoa_stage1", + "cocoa": "block/cocoa_stage1" + }, + "elements": [ + { "from": [ 5, 5, 9 ], + "to": [ 11, 12, 15 ], + "faces": { + "down": { "uv": [ 0, 0, 6, 6 ], "texture": "#cocoa" }, + "up": { "uv": [ 0, 0, 6, 6 ], "texture": "#cocoa" }, + "north": { "uv": [ 9, 4, 15, 11 ], "texture": "#cocoa" }, + "south": { "uv": [ 9, 4, 15, 11 ], "texture": "#cocoa" }, + "west": { "uv": [ 9, 4, 15, 11 ], "texture": "#cocoa" }, + "east": { "uv": [ 9, 4, 15, 11 ], "texture": "#cocoa" } + } + }, + { "from": [ 8, 12, 12 ], + "to": [ 8, 16, 16 ], + "faces": { + "west": { "uv": [ 12, 0, 16, 4 ], "texture": "#cocoa" }, + "east": { "uv": [ 16, 0, 12, 4 ], "texture": "#cocoa" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cocoa_stage2.json b/assets/minecraft/models/block/cocoa_stage2.json new file mode 100644 index 00000000..ad93432a --- /dev/null +++ b/assets/minecraft/models/block/cocoa_stage2.json @@ -0,0 +1,29 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cocoa_stage2", + "cocoa": "block/cocoa_stage2" + }, + "elements": [ + { + "from": [ 4, 3, 7 ], + "to": [ 12, 12, 15 ], + "faces": { + "up": { "uv": [ 0, 0, 8, 8 ], "texture": "#cocoa" }, + "down": { "uv": [ 0, 0, 8, 8 ], "texture": "#cocoa" }, + "north": { "uv": [ 8, 4, 16, 13 ], "texture": "#cocoa" }, + "south": { "uv": [ 8, 4, 16, 13 ], "texture": "#cocoa" }, + "west": { "uv": [ 8, 4, 16, 13 ], "texture": "#cocoa" }, + "east": { "uv": [ 8, 4, 16, 13 ], "texture": "#cocoa" } + } + }, + { + "from": [ 8, 12, 12 ], + "to": [ 8, 16, 16 ], + "faces": { + "east": { "uv": [ 16, 0, 12, 4 ], "texture": "#cocoa" }, + "west": { "uv": [ 12, 0, 16, 4 ], "texture": "#cocoa" } + } + } + ] +} diff --git a/assets/minecraft/models/block/command_block.json b/assets/minecraft/models/block/command_block.json new file mode 100644 index 00000000..598a427c --- /dev/null +++ b/assets/minecraft/models/block/command_block.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_command_block", + "textures": { + "back": "minecraft:block/command_block_back", + "front": "minecraft:block/command_block_front", + "side": "minecraft:block/command_block_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/command_block_conditional.json b/assets/minecraft/models/block/command_block_conditional.json new file mode 100644 index 00000000..f489842d --- /dev/null +++ b/assets/minecraft/models/block/command_block_conditional.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_command_block", + "textures": { + "back": "minecraft:block/command_block_back", + "front": "minecraft:block/command_block_front", + "side": "minecraft:block/command_block_conditional" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/comparator.json b/assets/minecraft/models/block/comparator.json new file mode 100644 index 00000000..f0203eae --- /dev/null +++ b/assets/minecraft/models/block/comparator.json @@ -0,0 +1,56 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/comparator", + "slab": "block/smooth_stone", + "top": "block/comparator", + "unlit": "block/redstone_torch_off", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 4, 2, 11 ], + "to": [ 6, 7, 13 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 10, 2, 11 ], + "to": [ 12, 7, 13 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 4, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/comparator_on.json b/assets/minecraft/models/block/comparator_on.json new file mode 100644 index 00000000..caa96734 --- /dev/null +++ b/assets/minecraft/models/block/comparator_on.json @@ -0,0 +1,74 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/comparator_on", + "slab": "block/smooth_stone", + "top": "block/comparator_on", + "unlit": "block/redstone_torch_off", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 4, 7, 11 ], + "to": [ 6, 7, 13 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 4, 2, 10 ], + "to": [ 6, 8, 14 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 3, 2, 11 ], + "to": [ 7, 8, 13 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 10, 7, 11 ], + "to": [ 12, 7, 13 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 10, 2, 10 ], + "to": [ 12, 8, 14 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 9, 2, 11 ], + "to": [ 13, 8, 13 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 4, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/comparator_on_subtract.json b/assets/minecraft/models/block/comparator_on_subtract.json new file mode 100644 index 00000000..061cc0be --- /dev/null +++ b/assets/minecraft/models/block/comparator_on_subtract.json @@ -0,0 +1,83 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/comparator_on", + "slab": "block/smooth_stone", + "top": "block/comparator_on", + "unlit": "block/redstone_torch_off", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 4, 7, 11 ], + "to": [ 6, 7, 13 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 4, 2, 10 ], + "to": [ 6, 8, 14 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 3, 2, 11 ], + "to": [ 7, 8, 13 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 10, 7, 11 ], + "to": [ 12, 7, 13 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 10, 2, 10 ], + "to": [ 12, 8, 14 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 9, 2, 11 ], + "to": [ 13, 8, 13 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 7, 5, 2 ], + "to": [ 9, 5, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 6, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 6, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/comparator_subtract.json b/assets/minecraft/models/block/comparator_subtract.json new file mode 100644 index 00000000..e2ce2031 --- /dev/null +++ b/assets/minecraft/models/block/comparator_subtract.json @@ -0,0 +1,65 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/comparator", + "slab": "block/smooth_stone", + "top": "block/comparator", + "unlit": "block/redstone_torch_off", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 4, 2, 11 ], + "to": [ 6, 7, 13 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 10, 2, 11 ], + "to": [ 12, 7, 13 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 7, 5, 2 ], + "to": [ 9, 5, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 6, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 6, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 9 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter.json b/assets/minecraft/models/block/composter.json new file mode 100644 index 00000000..9650f777 --- /dev/null +++ b/assets/minecraft/models/block/composter.json @@ -0,0 +1,55 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/composter_side", + "top": "block/composter_top", + "bottom": "block/composter_bottom", + "side": "block/composter_side", + "inside": "block/composter_bottom" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "up": { "texture": "#inside" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { "from": [ 0, 0, 0 ], + "to": [ 2, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "east": { "texture": "#side" } + } + }, + { "from": [ 14, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 2, 0, 0 ], + "to": [ 14, 16, 2 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side" } + } + }, + { "from": [ 2, 0, 14 ], + "to": [ 14, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents1.json b/assets/minecraft/models/block/composter_contents1.json new file mode 100644 index 00000000..fe6c8504 --- /dev/null +++ b/assets/minecraft/models/block/composter_contents1.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_compost" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 3, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents2.json b/assets/minecraft/models/block/composter_contents2.json new file mode 100644 index 00000000..b5cc54c4 --- /dev/null +++ b/assets/minecraft/models/block/composter_contents2.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_compost" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 5, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents3.json b/assets/minecraft/models/block/composter_contents3.json new file mode 100644 index 00000000..4c3cdc10 --- /dev/null +++ b/assets/minecraft/models/block/composter_contents3.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_compost" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 7, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents4.json b/assets/minecraft/models/block/composter_contents4.json new file mode 100644 index 00000000..48e0456f --- /dev/null +++ b/assets/minecraft/models/block/composter_contents4.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_compost" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 9, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents5.json b/assets/minecraft/models/block/composter_contents5.json new file mode 100644 index 00000000..21e4b303 --- /dev/null +++ b/assets/minecraft/models/block/composter_contents5.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_compost" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 11, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents6.json b/assets/minecraft/models/block/composter_contents6.json new file mode 100644 index 00000000..12b65516 --- /dev/null +++ b/assets/minecraft/models/block/composter_contents6.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_compost" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 13, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents7.json b/assets/minecraft/models/block/composter_contents7.json new file mode 100644 index 00000000..b135ad12 --- /dev/null +++ b/assets/minecraft/models/block/composter_contents7.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_compost" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 15, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/composter_contents_ready.json b/assets/minecraft/models/block/composter_contents_ready.json new file mode 100644 index 00000000..63744cca --- /dev/null +++ b/assets/minecraft/models/block/composter_contents_ready.json @@ -0,0 +1,14 @@ +{ + "textures": { + "particle": "block/composter_compost", + "inside": "block/composter_ready" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 14, 15, 14 ], + "faces": { + "up": { "texture": "#inside" } + } + } + ] +} diff --git a/assets/minecraft/models/block/conduit.json b/assets/minecraft/models/block/conduit.json new file mode 100644 index 00000000..5abfb3b6 --- /dev/null +++ b/assets/minecraft/models/block/conduit.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/conduit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_block.json b/assets/minecraft/models/block/copper_block.json new file mode 100644 index 00000000..aae71599 --- /dev/null +++ b/assets/minecraft/models/block/copper_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/copper_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_bulb.json b/assets/minecraft/models/block/copper_bulb.json new file mode 100644 index 00000000..187e3d10 --- /dev/null +++ b/assets/minecraft/models/block/copper_bulb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/copper_bulb" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_bulb_lit.json b/assets/minecraft/models/block/copper_bulb_lit.json new file mode 100644 index 00000000..6921fec7 --- /dev/null +++ b/assets/minecraft/models/block/copper_bulb_lit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/copper_bulb_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_bulb_lit_powered.json b/assets/minecraft/models/block/copper_bulb_lit_powered.json new file mode 100644 index 00000000..1edad414 --- /dev/null +++ b/assets/minecraft/models/block/copper_bulb_lit_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/copper_bulb_lit_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_bulb_powered.json b/assets/minecraft/models/block/copper_bulb_powered.json new file mode 100644 index 00000000..4fb2ec8f --- /dev/null +++ b/assets/minecraft/models/block/copper_bulb_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/copper_bulb_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_bottom_left.json b/assets/minecraft/models/block/copper_door_bottom_left.json new file mode 100644 index 00000000..c3bba785 --- /dev/null +++ b/assets/minecraft/models/block/copper_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_bottom_left_open.json b/assets/minecraft/models/block/copper_door_bottom_left_open.json new file mode 100644 index 00000000..6fc74890 --- /dev/null +++ b/assets/minecraft/models/block/copper_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_bottom_right.json b/assets/minecraft/models/block/copper_door_bottom_right.json new file mode 100644 index 00000000..dfdbe713 --- /dev/null +++ b/assets/minecraft/models/block/copper_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_bottom_right_open.json b/assets/minecraft/models/block/copper_door_bottom_right_open.json new file mode 100644 index 00000000..7494e6ff --- /dev/null +++ b/assets/minecraft/models/block/copper_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_top_left.json b/assets/minecraft/models/block/copper_door_top_left.json new file mode 100644 index 00000000..d76e7b1c --- /dev/null +++ b/assets/minecraft/models/block/copper_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_top_left_open.json b/assets/minecraft/models/block/copper_door_top_left_open.json new file mode 100644 index 00000000..c198f40a --- /dev/null +++ b/assets/minecraft/models/block/copper_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_top_right.json b/assets/minecraft/models/block/copper_door_top_right.json new file mode 100644 index 00000000..519aa170 --- /dev/null +++ b/assets/minecraft/models/block/copper_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_door_top_right_open.json b/assets/minecraft/models/block/copper_door_top_right_open.json new file mode 100644 index 00000000..2850bad0 --- /dev/null +++ b/assets/minecraft/models/block/copper_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/copper_door_bottom", + "top": "minecraft:block/copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_grate.json b/assets/minecraft/models/block/copper_grate.json new file mode 100644 index 00000000..c2a308b1 --- /dev/null +++ b/assets/minecraft/models/block/copper_grate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/copper_grate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_ore.json b/assets/minecraft/models/block/copper_ore.json new file mode 100644 index 00000000..193dd969 --- /dev/null +++ b/assets/minecraft/models/block/copper_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/copper_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_trapdoor_bottom.json b/assets/minecraft/models/block/copper_trapdoor_bottom.json new file mode 100644 index 00000000..2816eca7 --- /dev/null +++ b/assets/minecraft/models/block/copper_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_trapdoor_open.json b/assets/minecraft/models/block/copper_trapdoor_open.json new file mode 100644 index 00000000..f4d3a9dc --- /dev/null +++ b/assets/minecraft/models/block/copper_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_open", + "textures": { + "texture": "minecraft:block/copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/copper_trapdoor_top.json b/assets/minecraft/models/block/copper_trapdoor_top.json new file mode 100644 index 00000000..b673c9e7 --- /dev/null +++ b/assets/minecraft/models/block/copper_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_top", + "textures": { + "texture": "minecraft:block/copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/coral_fan.json b/assets/minecraft/models/block/coral_fan.json new file mode 100644 index 00000000..e28dd67b --- /dev/null +++ b/assets/minecraft/models/block/coral_fan.json @@ -0,0 +1,44 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#fan" + }, + "elements": [ + { "from": [ 8, 0, 0 ], + "to": [ 24, 0, 16 ], + "rotation": { "origin": [ 8, 0, 0 ], "axis": "z", "angle": 22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#fan", "rotation": 90 }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#fan", "rotation": 270 } + } + }, + { "from": [ -8, 0, 0 ], + "to": [ 8, 0, 16 ], + "rotation": { "origin": [ 8, 0, 0 ], "axis": "z", "angle": -22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#fan", "rotation": 270 }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#fan", "rotation": 90 } + } + }, + { "from": [ 0, 0, 8 ], + "to": [ 16, 0, 24 ], + "rotation": { "origin": [ 0, 0, 8 ], "axis": "x", "angle": -22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 16, 16, 0, 0 ], "texture": "#fan" }, + "down": { "uv": [ 16, 0, 0, 16 ], "texture": "#fan" } + } + }, + { "from": [ 0, 0, -8 ], + "to": [ 16, 0, 8 ], + "rotation": { "origin": [ 0, 0, 8 ], "axis": "x", "angle": 22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#fan" }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#fan" } + } + } + ] +} diff --git a/assets/minecraft/models/block/coral_wall_fan.json b/assets/minecraft/models/block/coral_wall_fan.json new file mode 100644 index 00000000..eafe1f8f --- /dev/null +++ b/assets/minecraft/models/block/coral_wall_fan.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#fan" + }, + "elements": [ + { "from": [ 0, 8, 0 ], + "to": [ 16, 8, 16 ], + "rotation": { "origin": [ 8, 8, 14 ], "axis": "x", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#fan" }, + "down": { "uv": [ 16, 16, 0, 0 ], "texture": "#fan" } + } + }, + { "from": [ 0, 8, 0 ], + "to": [ 16, 8, 16 ], + "rotation": { "origin": [ 8, 8, 14 ], "axis": "x", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#fan" }, + "down": { "uv": [ 16, 16, 0, 0 ], "texture": "#fan" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cornflower.json b/assets/minecraft/models/block/cornflower.json new file mode 100644 index 00000000..01ec1857 --- /dev/null +++ b/assets/minecraft/models/block/cornflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/cornflower" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cracked_deepslate_bricks.json b/assets/minecraft/models/block/cracked_deepslate_bricks.json new file mode 100644 index 00000000..25527867 --- /dev/null +++ b/assets/minecraft/models/block/cracked_deepslate_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cracked_deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cracked_deepslate_tiles.json b/assets/minecraft/models/block/cracked_deepslate_tiles.json new file mode 100644 index 00000000..264f8094 --- /dev/null +++ b/assets/minecraft/models/block/cracked_deepslate_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cracked_deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cracked_nether_bricks.json b/assets/minecraft/models/block/cracked_nether_bricks.json new file mode 100644 index 00000000..403c18f0 --- /dev/null +++ b/assets/minecraft/models/block/cracked_nether_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cracked_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cracked_polished_blackstone_bricks.json b/assets/minecraft/models/block/cracked_polished_blackstone_bricks.json new file mode 100644 index 00000000..e36eda13 --- /dev/null +++ b/assets/minecraft/models/block/cracked_polished_blackstone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cracked_polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cracked_stone_bricks.json b/assets/minecraft/models/block/cracked_stone_bricks.json new file mode 100644 index 00000000..8628046d --- /dev/null +++ b/assets/minecraft/models/block/cracked_stone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cracked_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crafter.json b/assets/minecraft/models/block/crafter.json new file mode 100644 index 00000000..71e56849 --- /dev/null +++ b/assets/minecraft/models/block/crafter.json @@ -0,0 +1,26 @@ +{ + "parent": "block/block", + "textures": { + "bottom": "block/crafter_bottom", + "top": "block/crafter_top", + "north": "block/crafter_north", + "south": "block/crafter_south", + "west": "block/crafter_west", + "east": "block/crafter_east", + "particle": "#north" + }, + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "rotation": 180, "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#north", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#south", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#west", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#east", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/crafter_crafting.json b/assets/minecraft/models/block/crafter_crafting.json new file mode 100644 index 00000000..134a00dc --- /dev/null +++ b/assets/minecraft/models/block/crafter_crafting.json @@ -0,0 +1,9 @@ +{ + "parent": "block/crafter_triggered", + "textures": { + "top": "block/crafter_top_crafting", + "north": "block/crafter_north_crafting", + "east": "block/crafter_east_crafting", + "west": "block/crafter_west_crafting" + } +} diff --git a/assets/minecraft/models/block/crafter_crafting_triggered.json b/assets/minecraft/models/block/crafter_crafting_triggered.json new file mode 100644 index 00000000..86e293ab --- /dev/null +++ b/assets/minecraft/models/block/crafter_crafting_triggered.json @@ -0,0 +1,3 @@ +{ + "parent": "block/crafter_crafting" +} diff --git a/assets/minecraft/models/block/crafter_triggered.json b/assets/minecraft/models/block/crafter_triggered.json new file mode 100644 index 00000000..3a66caf4 --- /dev/null +++ b/assets/minecraft/models/block/crafter_triggered.json @@ -0,0 +1,9 @@ +{ + "parent": "block/crafter", + "textures": { + "top": "block/crafter_top_triggered", + "south": "block/crafter_south_triggered", + "west": "block/crafter_west_triggered", + "east": "block/crafter_east_triggered" + } +} diff --git a/assets/minecraft/models/block/crafting_table.json b/assets/minecraft/models/block/crafting_table.json new file mode 100644 index 00000000..aa056b15 --- /dev/null +++ b/assets/minecraft/models/block/crafting_table.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "minecraft:block/oak_planks", + "east": "minecraft:block/crafting_table_side", + "north": "minecraft:block/crafting_table_front", + "particle": "minecraft:block/crafting_table_front", + "south": "minecraft:block/crafting_table_side", + "up": "minecraft:block/crafting_table_top", + "west": "minecraft:block/crafting_table_front" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_button.json b/assets/minecraft/models/block/crimson_button.json new file mode 100644 index 00000000..c57c4255 --- /dev/null +++ b/assets/minecraft/models/block/crimson_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_button_inventory.json b/assets/minecraft/models/block/crimson_button_inventory.json new file mode 100644 index 00000000..06d1baa2 --- /dev/null +++ b/assets/minecraft/models/block/crimson_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_button_pressed.json b/assets/minecraft/models/block/crimson_button_pressed.json new file mode 100644 index 00000000..2ba39bd9 --- /dev/null +++ b/assets/minecraft/models/block/crimson_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_bottom_left.json b/assets/minecraft/models/block/crimson_door_bottom_left.json new file mode 100644 index 00000000..34db06cb --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_bottom_left_open.json b/assets/minecraft/models/block/crimson_door_bottom_left_open.json new file mode 100644 index 00000000..a241d7e4 --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_bottom_right.json b/assets/minecraft/models/block/crimson_door_bottom_right.json new file mode 100644 index 00000000..5bcd78db --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_bottom_right_open.json b/assets/minecraft/models/block/crimson_door_bottom_right_open.json new file mode 100644 index 00000000..9f24750f --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_top_left.json b/assets/minecraft/models/block/crimson_door_top_left.json new file mode 100644 index 00000000..597111a8 --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_top_left_open.json b/assets/minecraft/models/block/crimson_door_top_left_open.json new file mode 100644 index 00000000..ed888579 --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_top_right.json b/assets/minecraft/models/block/crimson_door_top_right.json new file mode 100644 index 00000000..c033de2f --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_door_top_right_open.json b/assets/minecraft/models/block/crimson_door_top_right_open.json new file mode 100644 index 00000000..c9d96fd9 --- /dev/null +++ b/assets/minecraft/models/block/crimson_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/crimson_door_bottom", + "top": "minecraft:block/crimson_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fence_gate.json b/assets/minecraft/models/block/crimson_fence_gate.json new file mode 100644 index 00000000..6599c50b --- /dev/null +++ b/assets/minecraft/models/block/crimson_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fence_gate_open.json b/assets/minecraft/models/block/crimson_fence_gate_open.json new file mode 100644 index 00000000..9777833a --- /dev/null +++ b/assets/minecraft/models/block/crimson_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fence_gate_wall.json b/assets/minecraft/models/block/crimson_fence_gate_wall.json new file mode 100644 index 00000000..b3704b27 --- /dev/null +++ b/assets/minecraft/models/block/crimson_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fence_gate_wall_open.json b/assets/minecraft/models/block/crimson_fence_gate_wall_open.json new file mode 100644 index 00000000..5ba60043 --- /dev/null +++ b/assets/minecraft/models/block/crimson_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fence_inventory.json b/assets/minecraft/models/block/crimson_fence_inventory.json new file mode 100644 index 00000000..16f625d5 --- /dev/null +++ b/assets/minecraft/models/block/crimson_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fence_post.json b/assets/minecraft/models/block/crimson_fence_post.json new file mode 100644 index 00000000..f5f14658 --- /dev/null +++ b/assets/minecraft/models/block/crimson_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fence_side.json b/assets/minecraft/models/block/crimson_fence_side.json new file mode 100644 index 00000000..62765764 --- /dev/null +++ b/assets/minecraft/models/block/crimson_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_fungus.json b/assets/minecraft/models/block/crimson_fungus.json new file mode 100644 index 00000000..351e2bce --- /dev/null +++ b/assets/minecraft/models/block/crimson_fungus.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/crimson_fungus" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_hanging_sign.json b/assets/minecraft/models/block/crimson_hanging_sign.json new file mode 100644 index 00000000..5eeafe7d --- /dev/null +++ b/assets/minecraft/models/block/crimson_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_crimson_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_hyphae.json b/assets/minecraft/models/block/crimson_hyphae.json new file mode 100644 index 00000000..43c990a5 --- /dev/null +++ b/assets/minecraft/models/block/crimson_hyphae.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/crimson_stem", + "side": "minecraft:block/crimson_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_nylium.json b/assets/minecraft/models/block/crimson_nylium.json new file mode 100644 index 00000000..00ac27b1 --- /dev/null +++ b/assets/minecraft/models/block/crimson_nylium.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/netherrack", + "side": "minecraft:block/crimson_nylium_side", + "top": "minecraft:block/crimson_nylium" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_planks.json b/assets/minecraft/models/block/crimson_planks.json new file mode 100644 index 00000000..9bf1ea13 --- /dev/null +++ b/assets/minecraft/models/block/crimson_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_pressure_plate.json b/assets/minecraft/models/block/crimson_pressure_plate.json new file mode 100644 index 00000000..6d6a2265 --- /dev/null +++ b/assets/minecraft/models/block/crimson_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_pressure_plate_down.json b/assets/minecraft/models/block/crimson_pressure_plate_down.json new file mode 100644 index 00000000..df5febdd --- /dev/null +++ b/assets/minecraft/models/block/crimson_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_roots.json b/assets/minecraft/models/block/crimson_roots.json new file mode 100644 index 00000000..5bf542bc --- /dev/null +++ b/assets/minecraft/models/block/crimson_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/crimson_roots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_sign.json b/assets/minecraft/models/block/crimson_sign.json new file mode 100644 index 00000000..1b9953d8 --- /dev/null +++ b/assets/minecraft/models/block/crimson_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_slab.json b/assets/minecraft/models/block/crimson_slab.json new file mode 100644 index 00000000..42f7e088 --- /dev/null +++ b/assets/minecraft/models/block/crimson_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/crimson_planks", + "side": "minecraft:block/crimson_planks", + "top": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_slab_top.json b/assets/minecraft/models/block/crimson_slab_top.json new file mode 100644 index 00000000..ce034232 --- /dev/null +++ b/assets/minecraft/models/block/crimson_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/crimson_planks", + "side": "minecraft:block/crimson_planks", + "top": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_stairs.json b/assets/minecraft/models/block/crimson_stairs.json new file mode 100644 index 00000000..d12e043b --- /dev/null +++ b/assets/minecraft/models/block/crimson_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/crimson_planks", + "side": "minecraft:block/crimson_planks", + "top": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_stairs_inner.json b/assets/minecraft/models/block/crimson_stairs_inner.json new file mode 100644 index 00000000..9eb4b276 --- /dev/null +++ b/assets/minecraft/models/block/crimson_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/crimson_planks", + "side": "minecraft:block/crimson_planks", + "top": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_stairs_outer.json b/assets/minecraft/models/block/crimson_stairs_outer.json new file mode 100644 index 00000000..ab3b02fb --- /dev/null +++ b/assets/minecraft/models/block/crimson_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/crimson_planks", + "side": "minecraft:block/crimson_planks", + "top": "minecraft:block/crimson_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_stem.json b/assets/minecraft/models/block/crimson_stem.json new file mode 100644 index 00000000..c8f5c784 --- /dev/null +++ b/assets/minecraft/models/block/crimson_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/crimson_stem_top", + "side": "minecraft:block/crimson_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_trapdoor_bottom.json b/assets/minecraft/models/block/crimson_trapdoor_bottom.json new file mode 100644 index 00000000..b83e4bbc --- /dev/null +++ b/assets/minecraft/models/block/crimson_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/crimson_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_trapdoor_open.json b/assets/minecraft/models/block/crimson_trapdoor_open.json new file mode 100644 index 00000000..ad3d11e0 --- /dev/null +++ b/assets/minecraft/models/block/crimson_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/crimson_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crimson_trapdoor_top.json b/assets/minecraft/models/block/crimson_trapdoor_top.json new file mode 100644 index 00000000..2b8e4d9f --- /dev/null +++ b/assets/minecraft/models/block/crimson_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/crimson_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/crop.json b/assets/minecraft/models/block/crop.json new file mode 100644 index 00000000..1afe355c --- /dev/null +++ b/assets/minecraft/models/block/crop.json @@ -0,0 +1,40 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#crop" + }, + "elements": [ + { "from": [ 4, -1, 0 ], + "to": [ 4, 15, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#crop" } + } + }, + { "from": [ 12, -1, 0 ], + "to": [ 12, 15, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#crop" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" } + } + }, + { "from": [ 0, -1, 4 ], + "to": [ 16, 15, 4 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" }, + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#crop" } + } + }, + { "from": [ 0, -1, 12 ], + "to": [ 16, 15, 12 ], + "shade": false, + "faces": { + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#crop" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cross.json b/assets/minecraft/models/block/cross.json new file mode 100644 index 00000000..37c8b09f --- /dev/null +++ b/assets/minecraft/models/block/cross.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#cross" + }, + "elements": [ + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 16, 15.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + } + } + ] +} diff --git a/assets/minecraft/models/block/crying_obsidian.json b/assets/minecraft/models/block/crying_obsidian.json new file mode 100644 index 00000000..95991746 --- /dev/null +++ b/assets/minecraft/models/block/crying_obsidian.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/crying_obsidian" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cube.json b/assets/minecraft/models/block/cube.json new file mode 100644 index 00000000..1b9780b4 --- /dev/null +++ b/assets/minecraft/models/block/cube.json @@ -0,0 +1,16 @@ +{ + "parent": "block/block", + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west" }, + "east": { "texture": "#east", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cube_all.json b/assets/minecraft/models/block/cube_all.json new file mode 100644 index 00000000..fa2f9e77 --- /dev/null +++ b/assets/minecraft/models/block/cube_all.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "#all", + "down": "#all", + "up": "#all", + "north": "#all", + "east": "#all", + "south": "#all", + "west": "#all" + } +} diff --git a/assets/minecraft/models/block/cube_all_inner_faces.json b/assets/minecraft/models/block/cube_all_inner_faces.json new file mode 100644 index 00000000..e119a568 --- /dev/null +++ b/assets/minecraft/models/block/cube_all_inner_faces.json @@ -0,0 +1,29 @@ +{ + "parent": "block/cube_all", + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [15.998, 0.002, 0.002], + "to": [0.002, 15.998, 15.998], + "faces": { + "north": {"uv": [16, 0, 0, 16], "texture": "#all", "cullface": "south"}, + "east": {"uv": [16, 0, 0, 16], "texture": "#all", "cullface": "west"}, + "south": {"uv": [16, 0, 0, 16], "texture": "#all", "cullface": "north"}, + "west": {"uv": [16, 0, 0, 16], "texture": "#all", "cullface": "east"}, + "up": {"uv": [16, 0, 0, 16], "texture": "#all", "cullface": "up"}, + "down": {"uv": [16, 0, 0, 16], "texture": "#all", "cullface": "down"} + } + } + ] +} diff --git a/assets/minecraft/models/block/cube_bottom_top.json b/assets/minecraft/models/block/cube_bottom_top.json new file mode 100644 index 00000000..4c610597 --- /dev/null +++ b/assets/minecraft/models/block/cube_bottom_top.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "#side", + "down": "#bottom", + "up": "#top", + "north": "#side", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/cube_bottom_top_inner_faces.json b/assets/minecraft/models/block/cube_bottom_top_inner_faces.json new file mode 100644 index 00000000..cf842fef --- /dev/null +++ b/assets/minecraft/models/block/cube_bottom_top_inner_faces.json @@ -0,0 +1,29 @@ +{ + "parent": "block/cube_bottom_top", + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + }, + { + "from": [15.998, 0.002, 0.002], + "to": [0.002, 15.998, 15.998], + "faces": { + "north": {"uv": [16, 0, 0, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [16, 0, 0, 16], "texture": "#side", "cullface": "west"}, + "south": {"uv": [16, 0, 0, 16], "texture": "#side", "cullface": "north"}, + "west": {"uv": [16, 0, 0, 16], "texture": "#side", "cullface": "east"}, + "up": {"uv": [16, 0, 0, 16], "texture": "#top", "cullface": "up"}, + "down": {"uv": [16, 0, 0, 16], "texture": "#bottom", "cullface": "down"} + } + } + ] +} diff --git a/assets/minecraft/models/block/cube_column.json b/assets/minecraft/models/block/cube_column.json new file mode 100644 index 00000000..358b9847 --- /dev/null +++ b/assets/minecraft/models/block/cube_column.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "#side", + "down": "#end", + "up": "#end", + "north": "#side", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/cube_column_horizontal.json b/assets/minecraft/models/block/cube_column_horizontal.json new file mode 100644 index 00000000..713dd819 --- /dev/null +++ b/assets/minecraft/models/block/cube_column_horizontal.json @@ -0,0 +1,25 @@ +{ + "parent": "block/block", + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "rotation": 180, "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west" }, + "east": { "texture": "#east", "cullface": "east" } + } + } + ], + "textures": { + "particle": "#side", + "down": "#end", + "up": "#end", + "north": "#side", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/cube_column_mirrored.json b/assets/minecraft/models/block/cube_column_mirrored.json new file mode 100644 index 00000000..610cbd9b --- /dev/null +++ b/assets/minecraft/models/block/cube_column_mirrored.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube_mirrored", + "textures": { + "particle": "#side", + "down": "#end", + "up": "#end", + "north": "#side", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/cube_column_uv_locked_x.json b/assets/minecraft/models/block/cube_column_uv_locked_x.json new file mode 100644 index 00000000..1c367156 --- /dev/null +++ b/assets/minecraft/models/block/cube_column_uv_locked_x.json @@ -0,0 +1,26 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "rotation": 90, "cullface": "down" }, + "up": { "texture": "#up", "rotation": 90, "cullface": "up" }, + "north": { "texture": "#north", "rotation": 90, "cullface": "north" }, + "south": { "texture": "#south", "rotation": 90, "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west" }, + "east": { "texture": "#east", "cullface": "east" } + } + } + ], + "textures": { + "particle": "#side", + "down": "#side", + "up": "#side", + "north": "#side", + "east": "#end", + "south": "#side", + "west": "#end" + } +} diff --git a/assets/minecraft/models/block/cube_column_uv_locked_y.json b/assets/minecraft/models/block/cube_column_uv_locked_y.json new file mode 100644 index 00000000..8fc6e9dd --- /dev/null +++ b/assets/minecraft/models/block/cube_column_uv_locked_y.json @@ -0,0 +1,26 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west" }, + "east": { "texture": "#east", "cullface": "east" } + } + } + ], + "textures": { + "particle": "#side", + "down": "#end", + "up": "#end", + "north": "#side", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/cube_column_uv_locked_z.json b/assets/minecraft/models/block/cube_column_uv_locked_z.json new file mode 100644 index 00000000..b227129f --- /dev/null +++ b/assets/minecraft/models/block/cube_column_uv_locked_z.json @@ -0,0 +1,26 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "rotation": 90, "cullface": "west" }, + "east": { "texture": "#east", "rotation": 90, "cullface": "east" } + } + } + ], + "textures": { + "particle": "#side", + "down": "#side", + "up": "#side", + "north": "#end", + "east": "#side", + "south": "#end", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/cube_directional.json b/assets/minecraft/models/block/cube_directional.json new file mode 100644 index 00000000..09fadd01 --- /dev/null +++ b/assets/minecraft/models/block/cube_directional.json @@ -0,0 +1,16 @@ +{ + "parent": "block/block", + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down", "rotation": 180 }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west", "rotation": 270 }, + "east": { "texture": "#east", "cullface": "east", "rotation": 90 } + } + } + ] +} diff --git a/assets/minecraft/models/block/cube_mirrored.json b/assets/minecraft/models/block/cube_mirrored.json new file mode 100644 index 00000000..38f44bda --- /dev/null +++ b/assets/minecraft/models/block/cube_mirrored.json @@ -0,0 +1,15 @@ +{ + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [16, 0, 0, 16], "texture": "#down", "cullface": "down" }, + "up": { "uv": [16, 0, 0, 16], "texture": "#up", "cullface": "up" }, + "north": { "uv": [16, 0, 0, 16], "texture": "#north", "cullface": "north" }, + "south": { "uv": [16, 0, 0, 16], "texture": "#south", "cullface": "south" }, + "west": { "uv": [16, 0, 0, 16], "texture": "#west", "cullface": "west" }, + "east": { "uv": [16, 0, 0, 16], "texture": "#east", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cube_mirrored_all.json b/assets/minecraft/models/block/cube_mirrored_all.json new file mode 100644 index 00000000..75743f20 --- /dev/null +++ b/assets/minecraft/models/block/cube_mirrored_all.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube_mirrored", + "textures": { + "particle": "#all", + "down": "#all", + "up": "#all", + "north": "#all", + "east": "#all", + "south": "#all", + "west": "#all" + } +} diff --git a/assets/minecraft/models/block/cube_north_west_mirrored.json b/assets/minecraft/models/block/cube_north_west_mirrored.json new file mode 100644 index 00000000..de5abeac --- /dev/null +++ b/assets/minecraft/models/block/cube_north_west_mirrored.json @@ -0,0 +1,15 @@ +{ + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "uv": [16, 0, 0, 16], "texture": "#north", "cullface": "north" }, + "south": { "texture": "#south", "cullface": "south" }, + "west": { "uv": [16, 0, 0, 16], "texture": "#west", "cullface": "west" }, + "east": { "texture": "#east", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/cube_north_west_mirrored_all.json b/assets/minecraft/models/block/cube_north_west_mirrored_all.json new file mode 100644 index 00000000..74034ca5 --- /dev/null +++ b/assets/minecraft/models/block/cube_north_west_mirrored_all.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube_north_west_mirrored", + "textures": { + "particle": "#all", + "down": "#all", + "up": "#all", + "north": "#all", + "east": "#all", + "south": "#all", + "west": "#all" + } +} diff --git a/assets/minecraft/models/block/cube_top.json b/assets/minecraft/models/block/cube_top.json new file mode 100644 index 00000000..a0c1d569 --- /dev/null +++ b/assets/minecraft/models/block/cube_top.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "#side", + "down": "#side", + "up": "#top", + "north": "#side", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/custom_fence_inventory.json b/assets/minecraft/models/block/custom_fence_inventory.json new file mode 100644 index 00000000..7baa4a1e --- /dev/null +++ b/assets/minecraft/models/block/custom_fence_inventory.json @@ -0,0 +1,105 @@ +{ + "parent": "block/block", + "display": { + "gui": { + "rotation": [ 30, 135, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "fixed": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + } + }, + "elements": [ + { "from": [ 6, 0, 0 ], + "to": [ 10, 16, 4 ], + "faces": { + "north": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "east": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "south": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "west": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "up": {"uv": [4, 0, 8, 4], "texture": "#texture"}, + "down": {"uv": [4, 0, 8, 4], "texture": "#texture", "cullface": "down"} + }, + "__comment": "Left post" + }, + { "from": [ 6, 0, 12 ], + "to": [ 10, 16, 16 ], + "faces": { + "north": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "east": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "south": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "west": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "up": {"uv": [4, 0, 8, 4], "texture": "#texture"}, + "down": {"uv": [4, 0, 8, 4], "texture": "#texture", "cullface": "down"} + }, + "__comment": "Right post" + }, + { "from": [ 7, 12, 4 ], + "to": [ 9, 15, 12 ], + "faces": { + "east": {"uv": [8, 0, 16, 3], "texture": "#texture"}, + "west": {"uv": [8, 0, 16, 3], "texture": "#texture"}, + "up": {"uv": [11, 7, 13, 15], "texture": "#texture"}, + "down": {"uv": [11, 15, 13, 7], "texture": "#texture"} + }, + "__comment": "Top bar" + }, + { "from": [ 7, 12, -2 ], + "to": [ 9, 15, 0 ], + "faces": { + "north": {"uv": [13, 4, 15, 7], "texture": "#texture"}, + "east": {"uv": [8, 0, 10, 3], "texture": "#texture"}, + "west": {"uv": [8, 0, 10, 3], "texture": "#texture"}, + "up": {"uv": [11, 7, 13, 9], "texture": "#texture"}, + "down": {"uv": [11, 7, 13, 9], "texture": "#texture"} + }, + "__comment": "Top bar left" + }, + { "from": [ 7, 12, 16 ], + "to": [ 9, 15, 18 ], + "faces": { + "east": {"uv": [14, 0, 16, 3], "texture": "#texture"}, + "south": {"uv": [13, 4, 15, 7], "texture": "#texture"}, + "west": {"uv": [14, 0, 16, 3], "texture": "#texture"}, + "up": {"uv": [11, 13, 13, 15], "texture": "#texture"}, + "down": {"uv": [11, 13, 13, 15], "texture": "#texture"} + }, + "__comment": "Top bar right" + }, + { "from": [ 7, 6, 4 ], + "to": [ 9, 9, 12 ], + "faces": { + "east": {"uv": [8, 0, 16, 3], "texture": "#texture"}, + "west": {"uv": [8, 0, 16, 3], "texture": "#texture"}, + "up": {"uv": [11, 7, 13, 15], "texture": "#texture"}, + "down": {"uv": [11, 15, 13, 7], "texture": "#texture"} + }, + "__comment": "Lower bar" + }, + { "from": [ 7, 6, -2 ], + "to": [ 9, 9, 0 ], + "faces": { + "north": {"uv": [13, 4, 15, 7], "texture": "#texture"}, + "east": {"uv": [8, 0, 10, 3], "texture": "#texture"}, + "west": {"uv": [8, 0, 10, 3], "texture": "#texture"}, + "up": {"uv": [11, 13, 13, 15], "texture": "#texture"}, + "down": {"uv": [11, 13, 13, 15], "texture": "#texture"} + }, + "__comment": "Lower bar left" + }, + { "from": [ 7, 6, 16 ], + "to": [ 9, 9, 18 ], + "faces": { + "east": {"uv": [14, 0, 16, 3], "texture": "#texture"}, + "south": {"uv": [13, 4, 15, 7], "texture": "#texture"}, + "west": {"uv": [14, 0, 16, 3], "texture": "#texture"}, + "up": {"uv": [11, 13, 13, 15], "texture": "#texture"}, + "down": {"uv": [11, 13, 13, 15], "texture": "#texture"} + }, + "__comment": "Lower bar right" + } + ] +} diff --git a/assets/minecraft/models/block/custom_fence_post.json b/assets/minecraft/models/block/custom_fence_post.json new file mode 100644 index 00000000..1ba56583 --- /dev/null +++ b/assets/minecraft/models/block/custom_fence_post.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "#particle" + }, + "elements": [ + { "from": [ 6, 0, 6 ], + "to": [ 10, 16, 10 ], + "faces": { + "up": {"uv": [4, 0, 8, 4], "texture": "#texture", "cullface": "up"}, + "down": {"uv": [4, 0, 8, 4], "texture": "#texture", "cullface": "down"}, + "north": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "east": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "south": {"uv": [0, 0, 4, 16], "texture": "#texture"}, + "west": {"uv": [0, 0, 4, 16], "texture": "#texture"} + }, + "__comment": "Center post special" + } + ] +} diff --git a/assets/minecraft/models/block/custom_fence_side_east.json b/assets/minecraft/models/block/custom_fence_side_east.json new file mode 100644 index 00000000..1177bf20 --- /dev/null +++ b/assets/minecraft/models/block/custom_fence_side_east.json @@ -0,0 +1,36 @@ +{ + "elements": [ + { + "name": "top bar", + "from": [7, 12, 7], + "to": [16, 15, 9], + "faces": { + "north": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "east": {"uv": [13, 4, 15, 7], "texture": "#texture", "cullface": "east"}, + "south": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "up": {"uv": [13, 7, 15, 16], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "rotation": 90, "texture": "#texture"} + } + }, + { + "name": "lower bar", + "from": [7, 6, 7], + "to": [16, 9, 9], + "faces": { + "north": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "east": {"uv": [13, 4, 15, 7], "texture": "#texture", "cullface": "east"}, + "south": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "up": {"uv": [13, 7, 15, 16], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "rotation": 90, "texture": "#texture"} + } + } + ], + "groups": [ + { + "name": "east", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1] + } + ] +} diff --git a/assets/minecraft/models/block/custom_fence_side_north.json b/assets/minecraft/models/block/custom_fence_side_north.json new file mode 100644 index 00000000..d96583ef --- /dev/null +++ b/assets/minecraft/models/block/custom_fence_side_north.json @@ -0,0 +1,36 @@ +{ + "elements": [ + { + "name": "top bar", + "from": [7, 12, 0], + "to": [9, 15, 9], + "faces": { + "north": {"uv": [13, 4, 15, 7], "rotation": 180, "texture": "#texture", "cullface": "north"}, + "east": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "west": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "up": {"uv": [13, 7, 15, 16], "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "texture": "#texture"} + } + }, + { + "name": "lower bar", + "from": [7, 6, 0], + "to": [9, 9, 9], + "faces": { + "north": {"uv": [13, 4, 15, 7], "rotation": 180, "texture": "#texture", "cullface": "north"}, + "east": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "west": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "up": {"uv": [13, 7, 15, 16], "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "texture": "#texture"} + } + } + ], + "groups": [ + { + "name": "north", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1] + } + ] +} diff --git a/assets/minecraft/models/block/custom_fence_side_south.json b/assets/minecraft/models/block/custom_fence_side_south.json new file mode 100644 index 00000000..9186ac0a --- /dev/null +++ b/assets/minecraft/models/block/custom_fence_side_south.json @@ -0,0 +1,36 @@ +{ + "elements": [ + { + "name": "top bar", + "from": [7, 12, 7], + "to": [9, 15, 16], + "faces": { + "east": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "south": {"uv": [13, 4, 15, 7], "texture": "#texture", "cullface": "south"}, + "west": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "up": {"uv": [13, 7, 15, 16], "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "texture": "#texture"} + } + }, + { + "name": "lower bar", + "from": [7, 6, 7], + "to": [9, 9, 16], + "faces": { + "east": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "south": {"uv": [13, 4, 15, 7], "texture": "#texture", "cullface": "south"}, + "west": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "up": {"uv": [13, 7, 15, 16], "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "texture": "#texture"} + } + } + ], + "groups": [ + { + "name": "south", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1] + } + ] +} diff --git a/assets/minecraft/models/block/custom_fence_side_west.json b/assets/minecraft/models/block/custom_fence_side_west.json new file mode 100644 index 00000000..9c33406c --- /dev/null +++ b/assets/minecraft/models/block/custom_fence_side_west.json @@ -0,0 +1,36 @@ +{ + "elements": [ + { + "name": "top bar", + "from": [0, 12, 7], + "to": [9, 15, 9], + "faces": { + "north": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "south": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "west": {"uv": [15, 4, 13, 7], "texture": "#texture", "cullface": "west"}, + "up": {"uv": [13, 7, 15, 16], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "rotation": 90, "texture": "#texture"} + } + }, + { + "name": "lower bar", + "from": [0, 6, 7], + "to": [9, 9, 9], + "faces": { + "north": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "south": {"uv": [4, 4, 13, 7], "texture": "#texture"}, + "west": {"uv": [15, 4, 13, 7], "texture": "#texture", "cullface": "west"}, + "up": {"uv": [13, 7, 15, 16], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [13, 7, 15, 16], "rotation": 90, "texture": "#texture"} + } + } + ], + "groups": [ + { + "name": "west", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1] + } + ] +} diff --git a/assets/minecraft/models/block/cut_copper.json b/assets/minecraft/models/block/cut_copper.json new file mode 100644 index 00000000..46385a55 --- /dev/null +++ b/assets/minecraft/models/block/cut_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_copper_slab.json b/assets/minecraft/models/block/cut_copper_slab.json new file mode 100644 index 00000000..45106b89 --- /dev/null +++ b/assets/minecraft/models/block/cut_copper_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/cut_copper", + "side": "minecraft:block/cut_copper", + "top": "minecraft:block/cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_copper_slab_top.json b/assets/minecraft/models/block/cut_copper_slab_top.json new file mode 100644 index 00000000..23e57a77 --- /dev/null +++ b/assets/minecraft/models/block/cut_copper_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/cut_copper", + "side": "minecraft:block/cut_copper", + "top": "minecraft:block/cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_copper_stairs.json b/assets/minecraft/models/block/cut_copper_stairs.json new file mode 100644 index 00000000..4365a0a7 --- /dev/null +++ b/assets/minecraft/models/block/cut_copper_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/cut_copper", + "side": "minecraft:block/cut_copper", + "top": "minecraft:block/cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_copper_stairs_inner.json b/assets/minecraft/models/block/cut_copper_stairs_inner.json new file mode 100644 index 00000000..922bb2c1 --- /dev/null +++ b/assets/minecraft/models/block/cut_copper_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/cut_copper", + "side": "minecraft:block/cut_copper", + "top": "minecraft:block/cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_copper_stairs_outer.json b/assets/minecraft/models/block/cut_copper_stairs_outer.json new file mode 100644 index 00000000..3f2f77a3 --- /dev/null +++ b/assets/minecraft/models/block/cut_copper_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/cut_copper", + "side": "minecraft:block/cut_copper", + "top": "minecraft:block/cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_red_sandstone.json b/assets/minecraft/models/block/cut_red_sandstone.json new file mode 100644 index 00000000..120aff8f --- /dev/null +++ b/assets/minecraft/models/block/cut_red_sandstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_red_sandstone_slab.json b/assets/minecraft/models/block/cut_red_sandstone_slab.json new file mode 100644 index 00000000..dae7dcdd --- /dev/null +++ b/assets/minecraft/models/block/cut_red_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_red_sandstone_slab_top.json b/assets/minecraft/models/block/cut_red_sandstone_slab_top.json new file mode 100644 index 00000000..808ca309 --- /dev/null +++ b/assets/minecraft/models/block/cut_red_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/cut_red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_sandstone.json b/assets/minecraft/models/block/cut_sandstone.json new file mode 100644 index 00000000..00a391fc --- /dev/null +++ b/assets/minecraft/models/block/cut_sandstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_sandstone_slab.json b/assets/minecraft/models/block/cut_sandstone_slab.json new file mode 100644 index 00000000..ff33c6d7 --- /dev/null +++ b/assets/minecraft/models/block/cut_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cut_sandstone_slab_top.json b/assets/minecraft/models/block/cut_sandstone_slab_top.json new file mode 100644 index 00000000..3a008814 --- /dev/null +++ b/assets/minecraft/models/block/cut_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/cut_sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_cake.json b/assets/minecraft/models/block/cyan_candle_cake.json new file mode 100644 index 00000000..81f1a771 --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/cyan_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_cake_lit.json b/assets/minecraft/models/block/cyan_candle_cake_lit.json new file mode 100644 index 00000000..26a30775 --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/cyan_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_four_candles.json b/assets/minecraft/models/block/cyan_candle_four_candles.json new file mode 100644 index 00000000..aba78b65 --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/cyan_candle", + "particle": "minecraft:block/cyan_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_four_candles_lit.json b/assets/minecraft/models/block/cyan_candle_four_candles_lit.json new file mode 100644 index 00000000..94c037b5 --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/cyan_candle_lit", + "particle": "minecraft:block/cyan_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_one_candle.json b/assets/minecraft/models/block/cyan_candle_one_candle.json new file mode 100644 index 00000000..3f4cd5dd --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/cyan_candle", + "particle": "minecraft:block/cyan_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_one_candle_lit.json b/assets/minecraft/models/block/cyan_candle_one_candle_lit.json new file mode 100644 index 00000000..26f7b1fc --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/cyan_candle_lit", + "particle": "minecraft:block/cyan_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_three_candles.json b/assets/minecraft/models/block/cyan_candle_three_candles.json new file mode 100644 index 00000000..46e57b1a --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/cyan_candle", + "particle": "minecraft:block/cyan_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_three_candles_lit.json b/assets/minecraft/models/block/cyan_candle_three_candles_lit.json new file mode 100644 index 00000000..8547cf3f --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/cyan_candle_lit", + "particle": "minecraft:block/cyan_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_two_candles.json b/assets/minecraft/models/block/cyan_candle_two_candles.json new file mode 100644 index 00000000..420a7e65 --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/cyan_candle", + "particle": "minecraft:block/cyan_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_candle_two_candles_lit.json b/assets/minecraft/models/block/cyan_candle_two_candles_lit.json new file mode 100644 index 00000000..26e076f1 --- /dev/null +++ b/assets/minecraft/models/block/cyan_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/cyan_candle_lit", + "particle": "minecraft:block/cyan_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_carpet.json b/assets/minecraft/models/block/cyan_carpet.json new file mode 100644 index 00000000..65c4e330 --- /dev/null +++ b/assets/minecraft/models/block/cyan_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/cyan_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_concrete.json b/assets/minecraft/models/block/cyan_concrete.json new file mode 100644 index 00000000..4972d16f --- /dev/null +++ b/assets/minecraft/models/block/cyan_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cyan_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_concrete_powder.json b/assets/minecraft/models/block/cyan_concrete_powder.json new file mode 100644 index 00000000..0043a499 --- /dev/null +++ b/assets/minecraft/models/block/cyan_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cyan_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_glazed_terracotta.json b/assets/minecraft/models/block/cyan_glazed_terracotta.json new file mode 100644 index 00000000..19e3f705 --- /dev/null +++ b/assets/minecraft/models/block/cyan_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/cyan_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_shulker_box.json b/assets/minecraft/models/block/cyan_shulker_box.json new file mode 100644 index 00000000..748f7d9f --- /dev/null +++ b/assets/minecraft/models/block/cyan_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/cyan_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_stained_glass.json b/assets/minecraft/models/block/cyan_stained_glass.json new file mode 100644 index 00000000..7966749e --- /dev/null +++ b/assets/minecraft/models/block/cyan_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_stained_glass_pane_noside.json b/assets/minecraft/models/block/cyan_stained_glass_pane_noside.json new file mode 100644 index 00000000..c3caf2ef --- /dev/null +++ b/assets/minecraft/models/block/cyan_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/cyan_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..596a41aa --- /dev/null +++ b/assets/minecraft/models/block/cyan_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_stained_glass_pane_post.json b/assets/minecraft/models/block/cyan_stained_glass_pane_post.json new file mode 100644 index 00000000..bc0b9cd3 --- /dev/null +++ b/assets/minecraft/models/block/cyan_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/cyan_stained_glass_pane_top", + "pane": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_stained_glass_pane_side.json b/assets/minecraft/models/block/cyan_stained_glass_pane_side.json new file mode 100644 index 00000000..c407e0f0 --- /dev/null +++ b/assets/minecraft/models/block/cyan_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/cyan_stained_glass_pane_top", + "pane": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/cyan_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..81ebdce7 --- /dev/null +++ b/assets/minecraft/models/block/cyan_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/cyan_stained_glass_pane_top", + "pane": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_terracotta.json b/assets/minecraft/models/block/cyan_terracotta.json new file mode 100644 index 00000000..bbf073e1 --- /dev/null +++ b/assets/minecraft/models/block/cyan_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cyan_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/cyan_wool.json b/assets/minecraft/models/block/cyan_wool.json new file mode 100644 index 00000000..d686a240 --- /dev/null +++ b/assets/minecraft/models/block/cyan_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/cyan_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/damaged_anvil.json b/assets/minecraft/models/block/damaged_anvil.json new file mode 100644 index 00000000..33ea477b --- /dev/null +++ b/assets/minecraft/models/block/damaged_anvil.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_anvil", + "textures": { + "top": "minecraft:block/damaged_anvil_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dandelion.json b/assets/minecraft/models/block/dandelion.json new file mode 100644 index 00000000..1b23461e --- /dev/null +++ b/assets/minecraft/models/block/dandelion.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dandelion" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_button.json b/assets/minecraft/models/block/dark_oak_button.json new file mode 100644 index 00000000..9a8ceb0e --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_button_inventory.json b/assets/minecraft/models/block/dark_oak_button_inventory.json new file mode 100644 index 00000000..682f7e70 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_button_pressed.json b/assets/minecraft/models/block/dark_oak_button_pressed.json new file mode 100644 index 00000000..9212bf49 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_bottom_left.json b/assets/minecraft/models/block/dark_oak_door_bottom_left.json new file mode 100644 index 00000000..cfce70fe --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_bottom_left_open.json b/assets/minecraft/models/block/dark_oak_door_bottom_left_open.json new file mode 100644 index 00000000..8becfb43 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_bottom_right.json b/assets/minecraft/models/block/dark_oak_door_bottom_right.json new file mode 100644 index 00000000..8b1767ef --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_bottom_right_open.json b/assets/minecraft/models/block/dark_oak_door_bottom_right_open.json new file mode 100644 index 00000000..6073ce09 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_top_left.json b/assets/minecraft/models/block/dark_oak_door_top_left.json new file mode 100644 index 00000000..d9ef9961 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_top_left_open.json b/assets/minecraft/models/block/dark_oak_door_top_left_open.json new file mode 100644 index 00000000..d74cf921 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_top_right.json b/assets/minecraft/models/block/dark_oak_door_top_right.json new file mode 100644 index 00000000..bb9eb3bc --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_door_top_right_open.json b/assets/minecraft/models/block/dark_oak_door_top_right_open.json new file mode 100644 index 00000000..0dfa837f --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/dark_oak_door_bottom", + "top": "minecraft:block/dark_oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_fence_gate.json b/assets/minecraft/models/block/dark_oak_fence_gate.json new file mode 100644 index 00000000..d6cd9106 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_fence_gate_open.json b/assets/minecraft/models/block/dark_oak_fence_gate_open.json new file mode 100644 index 00000000..5ab6d1bc --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_fence_gate_wall.json b/assets/minecraft/models/block/dark_oak_fence_gate_wall.json new file mode 100644 index 00000000..5e372cce --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_fence_gate_wall_open.json b/assets/minecraft/models/block/dark_oak_fence_gate_wall_open.json new file mode 100644 index 00000000..81181a3e --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_fence_inventory.json b/assets/minecraft/models/block/dark_oak_fence_inventory.json new file mode 100644 index 00000000..34976cb6 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_fence_post.json b/assets/minecraft/models/block/dark_oak_fence_post.json new file mode 100644 index 00000000..7ddb63e0 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_fence_side.json b/assets/minecraft/models/block/dark_oak_fence_side.json new file mode 100644 index 00000000..6db6293c --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_hanging_sign.json b/assets/minecraft/models/block/dark_oak_hanging_sign.json new file mode 100644 index 00000000..a5e7ec1c --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_dark_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_leaves.json b/assets/minecraft/models/block/dark_oak_leaves.json new file mode 100644 index 00000000..c5a0ee7c --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/dark_oak_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_log.json b/assets/minecraft/models/block/dark_oak_log.json new file mode 100644 index 00000000..0a875950 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/dark_oak_log_top", + "side": "minecraft:block/dark_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_log_horizontal.json b/assets/minecraft/models/block/dark_oak_log_horizontal.json new file mode 100644 index 00000000..044f4d5a --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/dark_oak_log_top", + "side": "minecraft:block/dark_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_planks.json b/assets/minecraft/models/block/dark_oak_planks.json new file mode 100644 index 00000000..443669e9 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_pressure_plate.json b/assets/minecraft/models/block/dark_oak_pressure_plate.json new file mode 100644 index 00000000..cae875a7 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_pressure_plate_down.json b/assets/minecraft/models/block/dark_oak_pressure_plate_down.json new file mode 100644 index 00000000..8effed63 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_sapling.json b/assets/minecraft/models/block/dark_oak_sapling.json new file mode 100644 index 00000000..bc9e9532 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dark_oak_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_sign.json b/assets/minecraft/models/block/dark_oak_sign.json new file mode 100644 index 00000000..52cfc99c --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_slab.json b/assets/minecraft/models/block/dark_oak_slab.json new file mode 100644 index 00000000..ac879079 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/dark_oak_planks", + "side": "minecraft:block/dark_oak_planks", + "top": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_slab_top.json b/assets/minecraft/models/block/dark_oak_slab_top.json new file mode 100644 index 00000000..de4e78be --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/dark_oak_planks", + "side": "minecraft:block/dark_oak_planks", + "top": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_stairs.json b/assets/minecraft/models/block/dark_oak_stairs.json new file mode 100644 index 00000000..4c73a828 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/dark_oak_planks", + "side": "minecraft:block/dark_oak_planks", + "top": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_stairs_inner.json b/assets/minecraft/models/block/dark_oak_stairs_inner.json new file mode 100644 index 00000000..b7472cbf --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/dark_oak_planks", + "side": "minecraft:block/dark_oak_planks", + "top": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_stairs_outer.json b/assets/minecraft/models/block/dark_oak_stairs_outer.json new file mode 100644 index 00000000..edf1bd2c --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/dark_oak_planks", + "side": "minecraft:block/dark_oak_planks", + "top": "minecraft:block/dark_oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_trapdoor_bottom.json b/assets/minecraft/models/block/dark_oak_trapdoor_bottom.json new file mode 100644 index 00000000..332c78b6 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/dark_oak_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_trapdoor_open.json b/assets/minecraft/models/block/dark_oak_trapdoor_open.json new file mode 100644 index 00000000..911cfb10 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_open", + "textures": { + "texture": "minecraft:block/dark_oak_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_trapdoor_top.json b/assets/minecraft/models/block/dark_oak_trapdoor_top.json new file mode 100644 index 00000000..44233202 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_top", + "textures": { + "texture": "minecraft:block/dark_oak_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_oak_wood.json b/assets/minecraft/models/block/dark_oak_wood.json new file mode 100644 index 00000000..ac9cad05 --- /dev/null +++ b/assets/minecraft/models/block/dark_oak_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/dark_oak_log", + "side": "minecraft:block/dark_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_prismarine.json b/assets/minecraft/models/block/dark_prismarine.json new file mode 100644 index 00000000..545193a6 --- /dev/null +++ b/assets/minecraft/models/block/dark_prismarine.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dark_prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_prismarine_slab.json b/assets/minecraft/models/block/dark_prismarine_slab.json new file mode 100644 index 00000000..85065092 --- /dev/null +++ b/assets/minecraft/models/block/dark_prismarine_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/dark_prismarine", + "side": "minecraft:block/dark_prismarine", + "top": "minecraft:block/dark_prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_prismarine_slab_top.json b/assets/minecraft/models/block/dark_prismarine_slab_top.json new file mode 100644 index 00000000..52491c02 --- /dev/null +++ b/assets/minecraft/models/block/dark_prismarine_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/dark_prismarine", + "side": "minecraft:block/dark_prismarine", + "top": "minecraft:block/dark_prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_prismarine_stairs.json b/assets/minecraft/models/block/dark_prismarine_stairs.json new file mode 100644 index 00000000..745331ec --- /dev/null +++ b/assets/minecraft/models/block/dark_prismarine_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/dark_prismarine", + "side": "minecraft:block/dark_prismarine", + "top": "minecraft:block/dark_prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_prismarine_stairs_inner.json b/assets/minecraft/models/block/dark_prismarine_stairs_inner.json new file mode 100644 index 00000000..16fa4561 --- /dev/null +++ b/assets/minecraft/models/block/dark_prismarine_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/dark_prismarine", + "side": "minecraft:block/dark_prismarine", + "top": "minecraft:block/dark_prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dark_prismarine_stairs_outer.json b/assets/minecraft/models/block/dark_prismarine_stairs_outer.json new file mode 100644 index 00000000..16f91d74 --- /dev/null +++ b/assets/minecraft/models/block/dark_prismarine_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/dark_prismarine", + "side": "minecraft:block/dark_prismarine", + "top": "minecraft:block/dark_prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/daylight_detector.json b/assets/minecraft/models/block/daylight_detector.json new file mode 100644 index 00000000..51e46c1a --- /dev/null +++ b/assets/minecraft/models/block/daylight_detector.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_daylight_detector", + "textures": { + "side": "minecraft:block/daylight_detector_side", + "top": "minecraft:block/daylight_detector_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/daylight_detector_inverted.json b/assets/minecraft/models/block/daylight_detector_inverted.json new file mode 100644 index 00000000..861c143f --- /dev/null +++ b/assets/minecraft/models/block/daylight_detector_inverted.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_daylight_detector", + "textures": { + "side": "minecraft:block/daylight_detector_side", + "top": "minecraft:block/daylight_detector_inverted_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_brain_coral.json b/assets/minecraft/models/block/dead_brain_coral.json new file mode 100644 index 00000000..b6ddeefd --- /dev/null +++ b/assets/minecraft/models/block/dead_brain_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dead_brain_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_brain_coral_block.json b/assets/minecraft/models/block/dead_brain_coral_block.json new file mode 100644 index 00000000..d81ec753 --- /dev/null +++ b/assets/minecraft/models/block/dead_brain_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dead_brain_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_brain_coral_fan.json b/assets/minecraft/models/block/dead_brain_coral_fan.json new file mode 100644 index 00000000..e9bc5a20 --- /dev/null +++ b/assets/minecraft/models/block/dead_brain_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/dead_brain_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_brain_coral_wall_fan.json b/assets/minecraft/models/block/dead_brain_coral_wall_fan.json new file mode 100644 index 00000000..6c25874d --- /dev/null +++ b/assets/minecraft/models/block/dead_brain_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/dead_brain_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_bubble_coral.json b/assets/minecraft/models/block/dead_bubble_coral.json new file mode 100644 index 00000000..62708cfc --- /dev/null +++ b/assets/minecraft/models/block/dead_bubble_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dead_bubble_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_bubble_coral_block.json b/assets/minecraft/models/block/dead_bubble_coral_block.json new file mode 100644 index 00000000..53b47644 --- /dev/null +++ b/assets/minecraft/models/block/dead_bubble_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dead_bubble_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_bubble_coral_fan.json b/assets/minecraft/models/block/dead_bubble_coral_fan.json new file mode 100644 index 00000000..4f104c5a --- /dev/null +++ b/assets/minecraft/models/block/dead_bubble_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/dead_bubble_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_bubble_coral_wall_fan.json b/assets/minecraft/models/block/dead_bubble_coral_wall_fan.json new file mode 100644 index 00000000..e9f9688a --- /dev/null +++ b/assets/minecraft/models/block/dead_bubble_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/dead_bubble_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_bush.json b/assets/minecraft/models/block/dead_bush.json new file mode 100644 index 00000000..01573a5c --- /dev/null +++ b/assets/minecraft/models/block/dead_bush.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dead_bush" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_fire_coral.json b/assets/minecraft/models/block/dead_fire_coral.json new file mode 100644 index 00000000..8121184a --- /dev/null +++ b/assets/minecraft/models/block/dead_fire_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dead_fire_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_fire_coral_block.json b/assets/minecraft/models/block/dead_fire_coral_block.json new file mode 100644 index 00000000..a49a17a2 --- /dev/null +++ b/assets/minecraft/models/block/dead_fire_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dead_fire_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_fire_coral_fan.json b/assets/minecraft/models/block/dead_fire_coral_fan.json new file mode 100644 index 00000000..7eb4884d --- /dev/null +++ b/assets/minecraft/models/block/dead_fire_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/dead_fire_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_fire_coral_wall_fan.json b/assets/minecraft/models/block/dead_fire_coral_wall_fan.json new file mode 100644 index 00000000..62abee0b --- /dev/null +++ b/assets/minecraft/models/block/dead_fire_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/dead_fire_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_horn_coral.json b/assets/minecraft/models/block/dead_horn_coral.json new file mode 100644 index 00000000..ea1fb389 --- /dev/null +++ b/assets/minecraft/models/block/dead_horn_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dead_horn_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_horn_coral_block.json b/assets/minecraft/models/block/dead_horn_coral_block.json new file mode 100644 index 00000000..6e6505d9 --- /dev/null +++ b/assets/minecraft/models/block/dead_horn_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dead_horn_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_horn_coral_fan.json b/assets/minecraft/models/block/dead_horn_coral_fan.json new file mode 100644 index 00000000..0a14c1c6 --- /dev/null +++ b/assets/minecraft/models/block/dead_horn_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/dead_horn_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_horn_coral_wall_fan.json b/assets/minecraft/models/block/dead_horn_coral_wall_fan.json new file mode 100644 index 00000000..e303e967 --- /dev/null +++ b/assets/minecraft/models/block/dead_horn_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/dead_horn_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_sea_pickle.json b/assets/minecraft/models/block/dead_sea_pickle.json new file mode 100644 index 00000000..ce3ee6eb --- /dev/null +++ b/assets/minecraft/models/block/dead_sea_pickle.json @@ -0,0 +1,27 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 6, 0, 6 ], + "to": [ 10, 6, 10 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 6, 5.95, 6 ], + "to": [ 10, 5.95, 10 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/dead_tube_coral.json b/assets/minecraft/models/block/dead_tube_coral.json new file mode 100644 index 00000000..568dd7cb --- /dev/null +++ b/assets/minecraft/models/block/dead_tube_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/dead_tube_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_tube_coral_block.json b/assets/minecraft/models/block/dead_tube_coral_block.json new file mode 100644 index 00000000..7768abbf --- /dev/null +++ b/assets/minecraft/models/block/dead_tube_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dead_tube_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_tube_coral_fan.json b/assets/minecraft/models/block/dead_tube_coral_fan.json new file mode 100644 index 00000000..31080a1b --- /dev/null +++ b/assets/minecraft/models/block/dead_tube_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/dead_tube_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dead_tube_coral_wall_fan.json b/assets/minecraft/models/block/dead_tube_coral_wall_fan.json new file mode 100644 index 00000000..20dab6c1 --- /dev/null +++ b/assets/minecraft/models/block/dead_tube_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/dead_tube_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/decorated_pot.json b/assets/minecraft/models/block/decorated_pot.json new file mode 100644 index 00000000..1456e72d --- /dev/null +++ b/assets/minecraft/models/block/decorated_pot.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate.json b/assets/minecraft/models/block/deepslate.json new file mode 100644 index 00000000..dff2a5c6 --- /dev/null +++ b/assets/minecraft/models/block/deepslate.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/deepslate_top", + "side": "minecraft:block/deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_slab.json b/assets/minecraft/models/block/deepslate_brick_slab.json new file mode 100644 index 00000000..4c5bf879 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/deepslate_bricks", + "side": "minecraft:block/deepslate_bricks", + "top": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_slab_top.json b/assets/minecraft/models/block/deepslate_brick_slab_top.json new file mode 100644 index 00000000..5e520e6b --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/deepslate_bricks", + "side": "minecraft:block/deepslate_bricks", + "top": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_stairs.json b/assets/minecraft/models/block/deepslate_brick_stairs.json new file mode 100644 index 00000000..ccdee8b3 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/deepslate_bricks", + "side": "minecraft:block/deepslate_bricks", + "top": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_stairs_inner.json b/assets/minecraft/models/block/deepslate_brick_stairs_inner.json new file mode 100644 index 00000000..9cee383d --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/deepslate_bricks", + "side": "minecraft:block/deepslate_bricks", + "top": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_stairs_outer.json b/assets/minecraft/models/block/deepslate_brick_stairs_outer.json new file mode 100644 index 00000000..4350eda8 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/deepslate_bricks", + "side": "minecraft:block/deepslate_bricks", + "top": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_wall_inventory.json b/assets/minecraft/models/block/deepslate_brick_wall_inventory.json new file mode 100644 index 00000000..74224324 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_wall_post.json b/assets/minecraft/models/block/deepslate_brick_wall_post.json new file mode 100644 index 00000000..0497e7b6 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_wall_side.json b/assets/minecraft/models/block/deepslate_brick_wall_side.json new file mode 100644 index 00000000..c927a7b5 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_brick_wall_side_tall.json b/assets/minecraft/models/block/deepslate_brick_wall_side_tall.json new file mode 100644 index 00000000..8674f91e --- /dev/null +++ b/assets/minecraft/models/block/deepslate_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_bricks.json b/assets/minecraft/models/block/deepslate_bricks.json new file mode 100644 index 00000000..cebe5470 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_coal_ore.json b/assets/minecraft/models/block/deepslate_coal_ore.json new file mode 100644 index 00000000..808803b3 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_coal_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_coal_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_copper_ore.json b/assets/minecraft/models/block/deepslate_copper_ore.json new file mode 100644 index 00000000..50e3a622 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_copper_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_copper_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_diamond_ore.json b/assets/minecraft/models/block/deepslate_diamond_ore.json new file mode 100644 index 00000000..eea2f4ba --- /dev/null +++ b/assets/minecraft/models/block/deepslate_diamond_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_diamond_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_emerald_ore.json b/assets/minecraft/models/block/deepslate_emerald_ore.json new file mode 100644 index 00000000..47ccf6d8 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_emerald_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_emerald_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_gold_ore.json b/assets/minecraft/models/block/deepslate_gold_ore.json new file mode 100644 index 00000000..6111c16f --- /dev/null +++ b/assets/minecraft/models/block/deepslate_gold_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_gold_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_iron_ore.json b/assets/minecraft/models/block/deepslate_iron_ore.json new file mode 100644 index 00000000..fd7a8e48 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_iron_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_iron_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_lapis_ore.json b/assets/minecraft/models/block/deepslate_lapis_ore.json new file mode 100644 index 00000000..fa19ebab --- /dev/null +++ b/assets/minecraft/models/block/deepslate_lapis_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_lapis_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_mirrored.json b/assets/minecraft/models/block/deepslate_mirrored.json new file mode 100644 index 00000000..12a83f21 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_mirrored.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_mirrored", + "textures": { + "end": "minecraft:block/deepslate_top", + "side": "minecraft:block/deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_redstone_ore.json b/assets/minecraft/models/block/deepslate_redstone_ore.json new file mode 100644 index 00000000..ff45a3c0 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_redstone_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_redstone_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_slab.json b/assets/minecraft/models/block/deepslate_tile_slab.json new file mode 100644 index 00000000..a5acbda9 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/deepslate_tiles", + "side": "minecraft:block/deepslate_tiles", + "top": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_slab_top.json b/assets/minecraft/models/block/deepslate_tile_slab_top.json new file mode 100644 index 00000000..aa3cc4cc --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/deepslate_tiles", + "side": "minecraft:block/deepslate_tiles", + "top": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_stairs.json b/assets/minecraft/models/block/deepslate_tile_stairs.json new file mode 100644 index 00000000..0048204b --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/deepslate_tiles", + "side": "minecraft:block/deepslate_tiles", + "top": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_stairs_inner.json b/assets/minecraft/models/block/deepslate_tile_stairs_inner.json new file mode 100644 index 00000000..1cd46771 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/deepslate_tiles", + "side": "minecraft:block/deepslate_tiles", + "top": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_stairs_outer.json b/assets/minecraft/models/block/deepslate_tile_stairs_outer.json new file mode 100644 index 00000000..87b9eba6 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/deepslate_tiles", + "side": "minecraft:block/deepslate_tiles", + "top": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_wall_inventory.json b/assets/minecraft/models/block/deepslate_tile_wall_inventory.json new file mode 100644 index 00000000..7ee2ba1b --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_wall_post.json b/assets/minecraft/models/block/deepslate_tile_wall_post.json new file mode 100644 index 00000000..bb6f0b94 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_wall_side.json b/assets/minecraft/models/block/deepslate_tile_wall_side.json new file mode 100644 index 00000000..6e27c7b9 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tile_wall_side_tall.json b/assets/minecraft/models/block/deepslate_tile_wall_side_tall.json new file mode 100644 index 00000000..fd638ff8 --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tile_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/deepslate_tiles.json b/assets/minecraft/models/block/deepslate_tiles.json new file mode 100644 index 00000000..91ff5fce --- /dev/null +++ b/assets/minecraft/models/block/deepslate_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/deepslate_tiles" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/detector_rail.json b/assets/minecraft/models/block/detector_rail.json new file mode 100644 index 00000000..22b66826 --- /dev/null +++ b/assets/minecraft/models/block/detector_rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_flat", + "textures": { + "rail": "minecraft:block/detector_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/detector_rail_on.json b/assets/minecraft/models/block/detector_rail_on.json new file mode 100644 index 00000000..0cba22b8 --- /dev/null +++ b/assets/minecraft/models/block/detector_rail_on.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_flat", + "textures": { + "rail": "minecraft:block/detector_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/detector_rail_on_raised_ne.json b/assets/minecraft/models/block/detector_rail_on_raised_ne.json new file mode 100644 index 00000000..fe6bd149 --- /dev/null +++ b/assets/minecraft/models/block/detector_rail_on_raised_ne.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_ne", + "textures": { + "rail": "minecraft:block/detector_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/detector_rail_on_raised_sw.json b/assets/minecraft/models/block/detector_rail_on_raised_sw.json new file mode 100644 index 00000000..65615170 --- /dev/null +++ b/assets/minecraft/models/block/detector_rail_on_raised_sw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_sw", + "textures": { + "rail": "minecraft:block/detector_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/detector_rail_raised_ne.json b/assets/minecraft/models/block/detector_rail_raised_ne.json new file mode 100644 index 00000000..9128675b --- /dev/null +++ b/assets/minecraft/models/block/detector_rail_raised_ne.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_ne", + "textures": { + "rail": "minecraft:block/detector_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/detector_rail_raised_sw.json b/assets/minecraft/models/block/detector_rail_raised_sw.json new file mode 100644 index 00000000..74ee588f --- /dev/null +++ b/assets/minecraft/models/block/detector_rail_raised_sw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_sw", + "textures": { + "rail": "minecraft:block/detector_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diamond_block.json b/assets/minecraft/models/block/diamond_block.json new file mode 100644 index 00000000..a021068b --- /dev/null +++ b/assets/minecraft/models/block/diamond_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/diamond_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diamond_ore.json b/assets/minecraft/models/block/diamond_ore.json new file mode 100644 index 00000000..ca8480e5 --- /dev/null +++ b/assets/minecraft/models/block/diamond_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/diamond_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite.json b/assets/minecraft/models/block/diorite.json new file mode 100644 index 00000000..9f1f6eba --- /dev/null +++ b/assets/minecraft/models/block/diorite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_slab.json b/assets/minecraft/models/block/diorite_slab.json new file mode 100644 index 00000000..651005b5 --- /dev/null +++ b/assets/minecraft/models/block/diorite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/diorite", + "side": "minecraft:block/diorite", + "top": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_slab_top.json b/assets/minecraft/models/block/diorite_slab_top.json new file mode 100644 index 00000000..e97d4da1 --- /dev/null +++ b/assets/minecraft/models/block/diorite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/diorite", + "side": "minecraft:block/diorite", + "top": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_stairs.json b/assets/minecraft/models/block/diorite_stairs.json new file mode 100644 index 00000000..12279745 --- /dev/null +++ b/assets/minecraft/models/block/diorite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/diorite", + "side": "minecraft:block/diorite", + "top": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_stairs_inner.json b/assets/minecraft/models/block/diorite_stairs_inner.json new file mode 100644 index 00000000..ced839df --- /dev/null +++ b/assets/minecraft/models/block/diorite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/diorite", + "side": "minecraft:block/diorite", + "top": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_stairs_outer.json b/assets/minecraft/models/block/diorite_stairs_outer.json new file mode 100644 index 00000000..5f0b32fb --- /dev/null +++ b/assets/minecraft/models/block/diorite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/diorite", + "side": "minecraft:block/diorite", + "top": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_wall_inventory.json b/assets/minecraft/models/block/diorite_wall_inventory.json new file mode 100644 index 00000000..9e364aa8 --- /dev/null +++ b/assets/minecraft/models/block/diorite_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_wall_post.json b/assets/minecraft/models/block/diorite_wall_post.json new file mode 100644 index 00000000..7f161101 --- /dev/null +++ b/assets/minecraft/models/block/diorite_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_wall_side.json b/assets/minecraft/models/block/diorite_wall_side.json new file mode 100644 index 00000000..633d2539 --- /dev/null +++ b/assets/minecraft/models/block/diorite_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/diorite_wall_side_tall.json b/assets/minecraft/models/block/diorite_wall_side_tall.json new file mode 100644 index 00000000..0e5ea70f --- /dev/null +++ b/assets/minecraft/models/block/diorite_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dirt.json b/assets/minecraft/models/block/dirt.json new file mode 100644 index 00000000..04794138 --- /dev/null +++ b/assets/minecraft/models/block/dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dirt" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dirt_path.json b/assets/minecraft/models/block/dirt_path.json new file mode 100644 index 00000000..95c880db --- /dev/null +++ b/assets/minecraft/models/block/dirt_path.json @@ -0,0 +1,21 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/dirt", + "top": "block/dirt_path_top", + "side": "block/dirt_path_side", + "bottom": "block/dirt" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 15, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 1, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 1, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 1, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 1, 16, 16 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/dispenser.json b/assets/minecraft/models/block/dispenser.json new file mode 100644 index 00000000..321e6bca --- /dev/null +++ b/assets/minecraft/models/block/dispenser.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/dispenser_front", + "side": "minecraft:block/furnace_side", + "top": "minecraft:block/furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dispenser_vertical.json b/assets/minecraft/models/block/dispenser_vertical.json new file mode 100644 index 00000000..7b681162 --- /dev/null +++ b/assets/minecraft/models/block/dispenser_vertical.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/orientable_vertical", + "textures": { + "front": "minecraft:block/dispenser_front_vertical", + "side": "minecraft:block/furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/door_bottom_left.json b/assets/minecraft/models/block/door_bottom_left.json new file mode 100644 index 00000000..5eef3f89 --- /dev/null +++ b/assets/minecraft/models/block/door_bottom_left.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#bottom" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "down": { "uv": [ 16, 13, 0, 16 ], "texture": "#bottom", "cullface": "down", "rotation": 90 }, + "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "north" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "west" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#bottom" } + } + } + ] +} diff --git a/assets/minecraft/models/block/door_bottom_left_open.json b/assets/minecraft/models/block/door_bottom_left_open.json new file mode 100644 index 00000000..2c30d11a --- /dev/null +++ b/assets/minecraft/models/block/door_bottom_left_open.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#bottom" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 13 ], "texture": "#bottom", "cullface": "down", "rotation": 90 }, + "north": { "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "north" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "south" }, + "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#bottom", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" } + } + } + ] +} diff --git a/assets/minecraft/models/block/door_bottom_right.json b/assets/minecraft/models/block/door_bottom_right.json new file mode 100644 index 00000000..69f4df6e --- /dev/null +++ b/assets/minecraft/models/block/door_bottom_right.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#bottom" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 13, 16, 16 ], "texture": "#bottom", "cullface": "down", "rotation": 90 }, + "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "north" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "south" }, + "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#bottom", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" } + } + } + ] +} diff --git a/assets/minecraft/models/block/door_bottom_right_open.json b/assets/minecraft/models/block/door_bottom_right_open.json new file mode 100644 index 00000000..a0388a41 --- /dev/null +++ b/assets/minecraft/models/block/door_bottom_right_open.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#bottom" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "down": { "uv": [ 16, 16, 0, 13 ], "texture": "#bottom", "cullface": "down", "rotation": 90 }, + "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "north" }, + "south": { "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "west" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#bottom" } + } + } + ] +} diff --git a/assets/minecraft/models/block/door_top_left.json b/assets/minecraft/models/block/door_top_left.json new file mode 100644 index 00000000..46358e19 --- /dev/null +++ b/assets/minecraft/models/block/door_top_left.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#top" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "up": { "uv": [ 0, 3, 16, 0 ], "texture": "#top", "cullface": "up", "rotation": 90 }, + "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "west" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#top" } + } + } + ] +} diff --git a/assets/minecraft/models/block/door_top_left_open.json b/assets/minecraft/models/block/door_top_left_open.json new file mode 100644 index 00000000..e63fb2be --- /dev/null +++ b/assets/minecraft/models/block/door_top_left_open.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#top" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "up": { "uv": [ 0, 3, 16, 0 ], "texture": "#top", "cullface": "up", "rotation": 270 }, + "north": { "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "north" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south" }, + "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#top", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" } + } + } + ] +} diff --git a/assets/minecraft/models/block/door_top_right.json b/assets/minecraft/models/block/door_top_right.json new file mode 100644 index 00000000..891d8510 --- /dev/null +++ b/assets/minecraft/models/block/door_top_right.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#top" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "up": { "uv": [ 0, 0, 16, 3 ], "texture": "#top", "cullface": "up", "rotation": 270 }, + "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north" }, + "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south" }, + "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#top", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" } + } + } + ] +} diff --git a/assets/minecraft/models/block/door_top_right_open.json b/assets/minecraft/models/block/door_top_right_open.json new file mode 100644 index 00000000..99baffeb --- /dev/null +++ b/assets/minecraft/models/block/door_top_right_open.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#top" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 3, 16, 16 ], + "faces": { + "up": { "uv": [ 0, 0, 16, 3 ], "texture": "#top", "cullface": "up", "rotation": 90 }, + "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north" }, + "south": { "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "west" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#top" } + } + } + ] +} diff --git a/assets/minecraft/models/block/dragon_egg.json b/assets/minecraft/models/block/dragon_egg.json new file mode 100644 index 00000000..0e60bd70 --- /dev/null +++ b/assets/minecraft/models/block/dragon_egg.json @@ -0,0 +1,96 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/dragon_egg", + "all": "block/dragon_egg" + }, + "elements": [ + { "from": [ 6, 15, 6 ], + "to": [ 10, 16, 10 ], + "faces": { + "down": { "uv": [ 6, 6, 10, 10 ], "texture": "#all" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#all" }, + "north": { "uv": [ 6, 15, 10, 16 ], "texture": "#all" }, + "south": { "uv": [ 6, 15, 10, 16 ], "texture": "#all" }, + "west": { "uv": [ 6, 15, 10, 16 ], "texture": "#all" }, + "east": { "uv": [ 6, 15, 10, 16 ], "texture": "#all" } + } + }, + { "from": [ 5, 14, 5 ], + "to": [ 11, 15, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 11, 11 ], "texture": "#all" }, + "up": { "uv": [ 5, 5, 11, 11 ], "texture": "#all" }, + "north": { "uv": [ 5, 14, 11, 15 ], "texture": "#all" }, + "south": { "uv": [ 5, 14, 11, 15 ], "texture": "#all" }, + "west": { "uv": [ 5, 14, 11, 15 ], "texture": "#all" }, + "east": { "uv": [ 5, 14, 11, 15 ], "texture": "#all" } + } + }, + { "from": [ 5, 13, 5 ], + "to": [ 11, 14, 11 ], + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#all" }, + "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#all" }, + "north": { "uv": [ 4, 13, 12, 14 ], "texture": "#all" }, + "south": { "uv": [ 4, 13, 12, 14 ], "texture": "#all" }, + "west": { "uv": [ 4, 13, 12, 14 ], "texture": "#all" }, + "east": { "uv": [ 4, 13, 12, 14 ], "texture": "#all" } + } + }, + { "from": [ 3, 11, 3 ], + "to": [ 13, 13, 13 ], + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#all" }, + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#all" }, + "north": { "uv": [ 3, 11, 13, 13 ], "texture": "#all" }, + "south": { "uv": [ 3, 11, 13, 13 ], "texture": "#all" }, + "west": { "uv": [ 3, 11, 13, 13 ], "texture": "#all" }, + "east": { "uv": [ 3, 11, 13, 13 ], "texture": "#all" } + } + }, + { "from": [ 2, 8, 2 ], + "to": [ 14, 11, 14 ], + "faces": { + "down": { "uv": [ 2, 2, 14, 14 ], "texture": "#all" }, + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#all" }, + "north": { "uv": [ 2, 8, 14, 11 ], "texture": "#all" }, + "south": { "uv": [ 2, 8, 14, 11 ], "texture": "#all" }, + "west": { "uv": [ 2, 8, 14, 11 ], "texture": "#all" }, + "east": { "uv": [ 2, 8, 14, 11 ], "texture": "#all" } + } + }, + { "from": [ 1, 3, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "uv": [ 1, 1, 15, 15 ], "texture": "#all" }, + "up": { "uv": [ 1, 1, 15, 15 ], "texture": "#all" }, + "north": { "uv": [ 1, 3, 15, 8 ], "texture": "#all" }, + "south": { "uv": [ 1, 3, 15, 8 ], "texture": "#all" }, + "west": { "uv": [ 1, 3, 15, 8 ], "texture": "#all" }, + "east": { "uv": [ 1, 3, 15, 8 ], "texture": "#all" } + } + }, + { "from": [ 2, 1, 2 ], + "to": [ 14, 3, 14 ], + "faces": { + "down": { "uv": [ 2, 2, 14, 14 ], "texture": "#all" }, + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#all" }, + "north": { "uv": [ 2, 1, 14, 3 ], "texture": "#all" }, + "south": { "uv": [ 2, 1, 14, 3 ], "texture": "#all" }, + "west": { "uv": [ 2, 1, 14, 3 ], "texture": "#all" }, + "east": { "uv": [ 2, 1, 14, 3 ], "texture": "#all" } + } + }, + { "from": [ 3, 0, 3 ], + "to": [ 13, 1, 13 ], + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#all" }, + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#all" }, + "north": { "uv": [ 3, 0, 13, 1 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 13, 1 ], "texture": "#all" }, + "west": { "uv": [ 3, 0, 13, 1 ], "texture": "#all" }, + "east": { "uv": [ 3, 0, 13, 1 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/dried_kelp_block.json b/assets/minecraft/models/block/dried_kelp_block.json new file mode 100644 index 00000000..4d76967b --- /dev/null +++ b/assets/minecraft/models/block/dried_kelp_block.json @@ -0,0 +1,25 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/dried_kelp_side", + "down": "block/dried_kelp_bottom", + "up": "block/dried_kelp_top", + "north": "block/dried_kelp_side", + "east": "block/dried_kelp_side", + "south": "block/dried_kelp_side", + "west": "block/dried_kelp_side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "uv": [16, 0, 0, 16], "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west" }, + "east": { "uv": [16, 0, 0, 16], "texture": "#east", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/dripstone_block.json b/assets/minecraft/models/block/dripstone_block.json new file mode 100644 index 00000000..7c1da3f2 --- /dev/null +++ b/assets/minecraft/models/block/dripstone_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/dripstone_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dropper.json b/assets/minecraft/models/block/dropper.json new file mode 100644 index 00000000..f2bdc53b --- /dev/null +++ b/assets/minecraft/models/block/dropper.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/dropper_front", + "side": "minecraft:block/furnace_side", + "top": "minecraft:block/furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/dropper_vertical.json b/assets/minecraft/models/block/dropper_vertical.json new file mode 100644 index 00000000..98c24a7a --- /dev/null +++ b/assets/minecraft/models/block/dropper_vertical.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/orientable_vertical", + "textures": { + "front": "minecraft:block/dropper_front_vertical", + "side": "minecraft:block/furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/emerald_block.json b/assets/minecraft/models/block/emerald_block.json new file mode 100644 index 00000000..ae7a4f4c --- /dev/null +++ b/assets/minecraft/models/block/emerald_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/emerald_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/emerald_ore.json b/assets/minecraft/models/block/emerald_ore.json new file mode 100644 index 00000000..b71c29b8 --- /dev/null +++ b/assets/minecraft/models/block/emerald_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/emerald_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/enchanting_table.json b/assets/minecraft/models/block/enchanting_table.json new file mode 100644 index 00000000..404ca9a3 --- /dev/null +++ b/assets/minecraft/models/block/enchanting_table.json @@ -0,0 +1,21 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/enchanting_table_bottom", + "bottom": "block/enchanting_table_bottom", + "top": "block/enchanting_table_top", + "side": "block/enchanting_table_side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 12, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/end_portal.json b/assets/minecraft/models/block/end_portal.json new file mode 100644 index 00000000..ae6b33b2 --- /dev/null +++ b/assets/minecraft/models/block/end_portal.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/obsidian" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_portal_frame.json b/assets/minecraft/models/block/end_portal_frame.json new file mode 100644 index 00000000..ac716efd --- /dev/null +++ b/assets/minecraft/models/block/end_portal_frame.json @@ -0,0 +1,21 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/end_portal_frame_side", + "bottom": "block/end_stone", + "top": "block/end_portal_frame_top", + "side": "block/end_portal_frame_side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 13, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/end_portal_frame_filled.json b/assets/minecraft/models/block/end_portal_frame_filled.json new file mode 100644 index 00000000..b3ed9297 --- /dev/null +++ b/assets/minecraft/models/block/end_portal_frame_filled.json @@ -0,0 +1,32 @@ +{ + "textures": { + "particle": "block/end_portal_frame_side", + "bottom": "block/end_stone", + "top": "block/end_portal_frame_top", + "side": "block/end_portal_frame_side", + "eye": "block/end_portal_frame_eye" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 13, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 3, 16, 16 ], "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 4, 13, 4 ], + "to": [ 12, 16, 12 ], + "faces": { + "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#eye", "cullface": "up" }, + "north": { "uv": [ 4, 0, 12, 3 ], "texture": "#eye" }, + "south": { "uv": [ 4, 0, 12, 3 ], "texture": "#eye" }, + "west": { "uv": [ 4, 0, 12, 3 ], "texture": "#eye" }, + "east": { "uv": [ 4, 0, 12, 3 ], "texture": "#eye" } + } + } + ] +} diff --git a/assets/minecraft/models/block/end_rod.json b/assets/minecraft/models/block/end_rod.json new file mode 100644 index 00000000..aeb57d0b --- /dev/null +++ b/assets/minecraft/models/block/end_rod.json @@ -0,0 +1,43 @@ +{ "parent": "block/block", + "display": { + "head": { + "rotation": [ -60, 0, 0 ], + "translation": [ 0, 5, -9], + "scale":[ 1, 1, 1] + }, + "thirdperson_righthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.375, 0.375, 0.375 ] + } + }, + "textures": { + "end_rod": "block/end_rod", + "particle": "block/end_rod" + }, + "elements": [ + { + "from": [ 6, 0, 6 ], + "to": [ 10, 1, 10 ], + "faces": { + "down": { "uv": [ 6, 6, 2, 2 ], "texture": "#end_rod", "cullface": "down" }, + "up": { "uv": [ 2, 2, 6, 6 ], "texture": "#end_rod" }, + "north": { "uv": [ 2, 6, 6, 7 ], "texture": "#end_rod" }, + "south": { "uv": [ 2, 6, 6, 7 ], "texture": "#end_rod" }, + "west": { "uv": [ 2, 6, 6, 7 ], "texture": "#end_rod" }, + "east": { "uv": [ 2, 6, 6, 7 ], "texture": "#end_rod" } + } + }, + { + "from": [ 7, 1, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "up": { "uv": [ 2, 0, 4, 2 ], "texture": "#end_rod", "cullface": "up" }, + "north": { "uv": [ 0, 0, 2, 15 ], "texture": "#end_rod" }, + "south": { "uv": [ 0, 0, 2, 15 ], "texture": "#end_rod" }, + "west": { "uv": [ 0, 0, 2, 15 ], "texture": "#end_rod" }, + "east": { "uv": [ 0, 0, 2, 15 ], "texture": "#end_rod" } + } + } + ] +} diff --git a/assets/minecraft/models/block/end_stone.json b/assets/minecraft/models/block/end_stone.json new file mode 100644 index 00000000..b3cc680e --- /dev/null +++ b/assets/minecraft/models/block/end_stone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/end_stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_slab.json b/assets/minecraft/models/block/end_stone_brick_slab.json new file mode 100644 index 00000000..0526c489 --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/end_stone_bricks", + "side": "minecraft:block/end_stone_bricks", + "top": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_slab_top.json b/assets/minecraft/models/block/end_stone_brick_slab_top.json new file mode 100644 index 00000000..5794a652 --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/end_stone_bricks", + "side": "minecraft:block/end_stone_bricks", + "top": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_stairs.json b/assets/minecraft/models/block/end_stone_brick_stairs.json new file mode 100644 index 00000000..c20d2d75 --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/end_stone_bricks", + "side": "minecraft:block/end_stone_bricks", + "top": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_stairs_inner.json b/assets/minecraft/models/block/end_stone_brick_stairs_inner.json new file mode 100644 index 00000000..3bea77e9 --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/end_stone_bricks", + "side": "minecraft:block/end_stone_bricks", + "top": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_stairs_outer.json b/assets/minecraft/models/block/end_stone_brick_stairs_outer.json new file mode 100644 index 00000000..7c2bb688 --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/end_stone_bricks", + "side": "minecraft:block/end_stone_bricks", + "top": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_wall_inventory.json b/assets/minecraft/models/block/end_stone_brick_wall_inventory.json new file mode 100644 index 00000000..8d84ef2c --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_wall_post.json b/assets/minecraft/models/block/end_stone_brick_wall_post.json new file mode 100644 index 00000000..fba19f84 --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_wall_side.json b/assets/minecraft/models/block/end_stone_brick_wall_side.json new file mode 100644 index 00000000..be12a31b --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_brick_wall_side_tall.json b/assets/minecraft/models/block/end_stone_brick_wall_side_tall.json new file mode 100644 index 00000000..ba695b27 --- /dev/null +++ b/assets/minecraft/models/block/end_stone_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/end_stone_bricks.json b/assets/minecraft/models/block/end_stone_bricks.json new file mode 100644 index 00000000..fd288c3d --- /dev/null +++ b/assets/minecraft/models/block/end_stone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/end_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/ender_chest.json b/assets/minecraft/models/block/ender_chest.json new file mode 100644 index 00000000..ae6b33b2 --- /dev/null +++ b/assets/minecraft/models/block/ender_chest.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/obsidian" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_chiseled_copper.json b/assets/minecraft/models/block/exposed_chiseled_copper.json new file mode 100644 index 00000000..fca515bc --- /dev/null +++ b/assets/minecraft/models/block/exposed_chiseled_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper.json b/assets/minecraft/models/block/exposed_copper.json new file mode 100644 index 00000000..8d02db6d --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_bulb.json b/assets/minecraft/models/block/exposed_copper_bulb.json new file mode 100644 index 00000000..00128131 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_bulb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_copper_bulb" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_bulb_lit.json b/assets/minecraft/models/block/exposed_copper_bulb_lit.json new file mode 100644 index 00000000..6916e393 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_bulb_lit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_copper_bulb_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_bulb_lit_powered.json b/assets/minecraft/models/block/exposed_copper_bulb_lit_powered.json new file mode 100644 index 00000000..be6af274 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_bulb_lit_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_copper_bulb_lit_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_bulb_powered.json b/assets/minecraft/models/block/exposed_copper_bulb_powered.json new file mode 100644 index 00000000..1e508f6d --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_bulb_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_copper_bulb_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_bottom_left.json b/assets/minecraft/models/block/exposed_copper_door_bottom_left.json new file mode 100644 index 00000000..1ff28c82 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_bottom_left_open.json b/assets/minecraft/models/block/exposed_copper_door_bottom_left_open.json new file mode 100644 index 00000000..ab877818 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_bottom_right.json b/assets/minecraft/models/block/exposed_copper_door_bottom_right.json new file mode 100644 index 00000000..788ea381 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_bottom_right_open.json b/assets/minecraft/models/block/exposed_copper_door_bottom_right_open.json new file mode 100644 index 00000000..a2047614 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_top_left.json b/assets/minecraft/models/block/exposed_copper_door_top_left.json new file mode 100644 index 00000000..8ef26e34 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_top_left_open.json b/assets/minecraft/models/block/exposed_copper_door_top_left_open.json new file mode 100644 index 00000000..55548218 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_top_right.json b/assets/minecraft/models/block/exposed_copper_door_top_right.json new file mode 100644 index 00000000..5f407c5a --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_door_top_right_open.json b/assets/minecraft/models/block/exposed_copper_door_top_right_open.json new file mode 100644 index 00000000..f3979d86 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/exposed_copper_door_bottom", + "top": "minecraft:block/exposed_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_grate.json b/assets/minecraft/models/block/exposed_copper_grate.json new file mode 100644 index 00000000..13639fcb --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_grate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_copper_grate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_trapdoor_bottom.json b/assets/minecraft/models/block/exposed_copper_trapdoor_bottom.json new file mode 100644 index 00000000..9c90e497 --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/exposed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_trapdoor_open.json b/assets/minecraft/models/block/exposed_copper_trapdoor_open.json new file mode 100644 index 00000000..495a451f --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_open", + "textures": { + "texture": "minecraft:block/exposed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_copper_trapdoor_top.json b/assets/minecraft/models/block/exposed_copper_trapdoor_top.json new file mode 100644 index 00000000..d8e48aeb --- /dev/null +++ b/assets/minecraft/models/block/exposed_copper_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_top", + "textures": { + "texture": "minecraft:block/exposed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_cut_copper.json b/assets/minecraft/models/block/exposed_cut_copper.json new file mode 100644 index 00000000..42cfd595 --- /dev/null +++ b/assets/minecraft/models/block/exposed_cut_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/exposed_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_cut_copper_slab.json b/assets/minecraft/models/block/exposed_cut_copper_slab.json new file mode 100644 index 00000000..c736183e --- /dev/null +++ b/assets/minecraft/models/block/exposed_cut_copper_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/exposed_cut_copper", + "side": "minecraft:block/exposed_cut_copper", + "top": "minecraft:block/exposed_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_cut_copper_slab_top.json b/assets/minecraft/models/block/exposed_cut_copper_slab_top.json new file mode 100644 index 00000000..42f73316 --- /dev/null +++ b/assets/minecraft/models/block/exposed_cut_copper_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/exposed_cut_copper", + "side": "minecraft:block/exposed_cut_copper", + "top": "minecraft:block/exposed_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_cut_copper_stairs.json b/assets/minecraft/models/block/exposed_cut_copper_stairs.json new file mode 100644 index 00000000..c9a3eb69 --- /dev/null +++ b/assets/minecraft/models/block/exposed_cut_copper_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/exposed_cut_copper", + "side": "minecraft:block/exposed_cut_copper", + "top": "minecraft:block/exposed_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_cut_copper_stairs_inner.json b/assets/minecraft/models/block/exposed_cut_copper_stairs_inner.json new file mode 100644 index 00000000..d232176a --- /dev/null +++ b/assets/minecraft/models/block/exposed_cut_copper_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/exposed_cut_copper", + "side": "minecraft:block/exposed_cut_copper", + "top": "minecraft:block/exposed_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/exposed_cut_copper_stairs_outer.json b/assets/minecraft/models/block/exposed_cut_copper_stairs_outer.json new file mode 100644 index 00000000..02dea0cf --- /dev/null +++ b/assets/minecraft/models/block/exposed_cut_copper_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/exposed_cut_copper", + "side": "minecraft:block/exposed_cut_copper", + "top": "minecraft:block/exposed_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/farmland.json b/assets/minecraft/models/block/farmland.json new file mode 100644 index 00000000..6fb9a895 --- /dev/null +++ b/assets/minecraft/models/block/farmland.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_farmland", + "textures": { + "dirt": "minecraft:block/dirt", + "top": "minecraft:block/farmland" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/farmland_moist.json b/assets/minecraft/models/block/farmland_moist.json new file mode 100644 index 00000000..4ef2e24b --- /dev/null +++ b/assets/minecraft/models/block/farmland_moist.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_farmland", + "textures": { + "dirt": "minecraft:block/dirt", + "top": "minecraft:block/farmland_moist" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fence_inventory.json b/assets/minecraft/models/block/fence_inventory.json new file mode 100644 index 00000000..5c76bda5 --- /dev/null +++ b/assets/minecraft/models/block/fence_inventory.json @@ -0,0 +1,107 @@ +{ "parent": "block/block", + "display": { + "gui": { + "rotation": [ 30, 135, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "fixed": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + } + }, + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 6, 0, 0 ], + "to": [ 10, 16, 4 ], + "faces": { + "down": { "uv": [ 6, 0, 10, 4 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 6, 0, 10, 4 ], "texture": "#texture" }, + "north": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 0, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 4, 16 ], "texture": "#texture" } + }, + "__comment": "Left post" + }, + { "from": [ 6, 0, 12 ], + "to": [ 10, 16, 16 ], + "faces": { + "down": { "uv": [ 6, 12, 10, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 6, 12, 10, 16 ], "texture": "#texture" }, + "north": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" }, + "west": { "uv": [ 12, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 12, 0, 16, 16 ], "texture": "#texture" } + }, + "__comment": "Right post" + }, + { "from": [ 7, 12, 0 ], + "to": [ 9, 15, 16 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 16 ], "texture": "#texture" }, + "up": { "uv": [ 7, 0, 9, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 1, 16, 4 ], "texture": "#texture" }, + "east": { "uv": [ 0, 1, 16, 4 ], "texture": "#texture" } + }, + "__comment": "Top bar" + }, + { "from": [ 7, 12, -2 ], + "to": [ 9, 15, 0 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 2 ], "texture": "#texture" }, + "up": { "uv": [ 7, 14, 9, 16 ], "texture": "#texture" }, + "north": { "uv": [ 7, 1, 9, 4 ], "texture": "#texture" }, + "west": { "uv": [ 14, 1, 16, 4 ], "texture": "#texture" }, + "east": { "uv": [ 0, 1, 2, 4 ], "texture": "#texture" } + }, + "__comment": "Top bar left" + }, + { "from": [ 7, 12, 16 ], + "to": [ 9, 15, 18 ], + "faces": { + "down": { "uv": [ 7, 14, 9, 16 ], "texture": "#texture" }, + "up": { "uv": [ 7, 0, 9, 2 ], "texture": "#texture" }, + "south": { "uv": [ 7, 1, 9, 4 ], "texture": "#texture" }, + "west": { "uv": [ 0, 1, 2, 4 ], "texture": "#texture" }, + "east": { "uv": [ 14, 1, 16, 4 ], "texture": "#texture" } + }, + "__comment": "Top bar right" + }, + { "from": [ 7, 6, 0 ], + "to": [ 9, 9, 16 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 16 ], "texture": "#texture" }, + "up": { "uv": [ 7, 0, 9, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 7, 16, 10 ], "texture": "#texture" }, + "east": { "uv": [ 0, 7, 16, 10 ], "texture": "#texture" } + }, + "__comment": "Lower bar" + }, + { "from": [ 7, 6, -2 ], + "to": [ 9, 9, 0 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 2 ], "texture": "#texture" }, + "up": { "uv": [ 7, 14, 9, 16 ], "texture": "#texture" }, + "north": { "uv": [ 7, 7, 9, 10 ], "texture": "#texture" }, + "west": { "uv": [ 14, 7, 16, 10 ], "texture": "#texture" }, + "east": { "uv": [ 0, 7, 2, 10 ], "texture": "#texture" } + }, + "__comment": "Lower bar left" + }, + { "from": [ 7, 6, 16 ], + "to": [ 9, 9, 18 ], + "faces": { + "down": { "uv": [ 7, 14, 9, 16 ], "texture": "#texture" }, + "up": { "uv": [ 7, 0, 9, 2 ], "texture": "#texture" }, + "south": { "uv": [ 7, 7, 9, 10 ], "texture": "#texture" }, + "west": { "uv": [ 0, 7, 2, 10 ], "texture": "#texture" }, + "east": { "uv": [ 14, 7, 16, 10 ], "texture": "#texture" } + }, + "__comment": "Lower bar right" + } + ] +} diff --git a/assets/minecraft/models/block/fence_post.json b/assets/minecraft/models/block/fence_post.json new file mode 100644 index 00000000..4f6a7438 --- /dev/null +++ b/assets/minecraft/models/block/fence_post.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 6, 0, 6 ], + "to": [ 10, 16, 10 ], + "faces": { + "down": { "uv": [ 6, 6, 10, 10 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#texture", "cullface": "up" }, + "north": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" }, + "south": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" }, + "west": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 0, 10, 16 ], "texture": "#texture" } + }, + "__comment": "Center post" + } + ] +} diff --git a/assets/minecraft/models/block/fence_side.json b/assets/minecraft/models/block/fence_side.json new file mode 100644 index 00000000..7145349b --- /dev/null +++ b/assets/minecraft/models/block/fence_side.json @@ -0,0 +1,29 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 7, 12, 0 ], + "to": [ 9, 15, 9 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 9 ], "texture": "#texture" }, + "up": { "uv": [ 7, 0, 9, 9 ], "texture": "#texture" }, + "north": { "uv": [ 7, 1, 9, 4 ], "texture": "#texture", "cullface": "north" }, + "west": { "uv": [ 0, 1, 9, 4 ], "texture": "#texture" }, + "east": { "uv": [ 0, 1, 9, 4 ], "texture": "#texture" } + }, + "__comment": "top bar" + }, + { "from": [ 7, 6, 0 ], + "to": [ 9, 9, 9 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 9 ], "texture": "#texture" }, + "up": { "uv": [ 7, 0, 9, 9 ], "texture": "#texture" }, + "north": { "uv": [ 7, 7, 9, 10 ], "texture": "#texture", "cullface": "north" }, + "west": { "uv": [ 0, 7, 9, 10 ], "texture": "#texture" }, + "east": { "uv": [ 0, 7, 9, 10 ], "texture": "#texture" } + }, + "__comment": "lower bar" + } + ] +} diff --git a/assets/minecraft/models/block/fern.json b/assets/minecraft/models/block/fern.json new file mode 100644 index 00000000..69449f64 --- /dev/null +++ b/assets/minecraft/models/block/fern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/fern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_coral.json b/assets/minecraft/models/block/fire_coral.json new file mode 100644 index 00000000..0eaf71dd --- /dev/null +++ b/assets/minecraft/models/block/fire_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/fire_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_coral_block.json b/assets/minecraft/models/block/fire_coral_block.json new file mode 100644 index 00000000..ad084a77 --- /dev/null +++ b/assets/minecraft/models/block/fire_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/fire_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_coral_fan.json b/assets/minecraft/models/block/fire_coral_fan.json new file mode 100644 index 00000000..4aec8dd1 --- /dev/null +++ b/assets/minecraft/models/block/fire_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/fire_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_coral_wall_fan.json b/assets/minecraft/models/block/fire_coral_wall_fan.json new file mode 100644 index 00000000..07546a42 --- /dev/null +++ b/assets/minecraft/models/block/fire_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/fire_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_floor0.json b/assets/minecraft/models/block/fire_floor0.json new file mode 100644 index 00000000..f137115d --- /dev/null +++ b/assets/minecraft/models/block/fire_floor0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_floor", + "textures": { + "fire": "minecraft:block/fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_floor1.json b/assets/minecraft/models/block/fire_floor1.json new file mode 100644 index 00000000..1822fe75 --- /dev/null +++ b/assets/minecraft/models/block/fire_floor1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_floor", + "textures": { + "fire": "minecraft:block/fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_side0.json b/assets/minecraft/models/block/fire_side0.json new file mode 100644 index 00000000..4ae90508 --- /dev/null +++ b/assets/minecraft/models/block/fire_side0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side", + "textures": { + "fire": "minecraft:block/fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_side1.json b/assets/minecraft/models/block/fire_side1.json new file mode 100644 index 00000000..021602cd --- /dev/null +++ b/assets/minecraft/models/block/fire_side1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side", + "textures": { + "fire": "minecraft:block/fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_side_alt0.json b/assets/minecraft/models/block/fire_side_alt0.json new file mode 100644 index 00000000..13e9e56b --- /dev/null +++ b/assets/minecraft/models/block/fire_side_alt0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side_alt", + "textures": { + "fire": "minecraft:block/fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_side_alt1.json b/assets/minecraft/models/block/fire_side_alt1.json new file mode 100644 index 00000000..d8a8550b --- /dev/null +++ b/assets/minecraft/models/block/fire_side_alt1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side_alt", + "textures": { + "fire": "minecraft:block/fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_up0.json b/assets/minecraft/models/block/fire_up0.json new file mode 100644 index 00000000..ebae15a6 --- /dev/null +++ b/assets/minecraft/models/block/fire_up0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up", + "textures": { + "fire": "minecraft:block/fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_up1.json b/assets/minecraft/models/block/fire_up1.json new file mode 100644 index 00000000..b80f0ebd --- /dev/null +++ b/assets/minecraft/models/block/fire_up1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up", + "textures": { + "fire": "minecraft:block/fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_up_alt0.json b/assets/minecraft/models/block/fire_up_alt0.json new file mode 100644 index 00000000..8925e2f0 --- /dev/null +++ b/assets/minecraft/models/block/fire_up_alt0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up_alt", + "textures": { + "fire": "minecraft:block/fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fire_up_alt1.json b/assets/minecraft/models/block/fire_up_alt1.json new file mode 100644 index 00000000..696f351c --- /dev/null +++ b/assets/minecraft/models/block/fire_up_alt1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up_alt", + "textures": { + "fire": "minecraft:block/fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/fletching_table.json b/assets/minecraft/models/block/fletching_table.json new file mode 100644 index 00000000..7921725c --- /dev/null +++ b/assets/minecraft/models/block/fletching_table.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "minecraft:block/birch_planks", + "east": "minecraft:block/fletching_table_side", + "north": "minecraft:block/fletching_table_front", + "particle": "minecraft:block/fletching_table_front", + "south": "minecraft:block/fletching_table_front", + "up": "minecraft:block/fletching_table_top", + "west": "minecraft:block/fletching_table_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/flower_pot.json b/assets/minecraft/models/block/flower_pot.json new file mode 100644 index 00000000..45c7a75b --- /dev/null +++ b/assets/minecraft/models/block/flower_pot.json @@ -0,0 +1,57 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/flower_pot", + "flowerpot": "block/flower_pot", + "dirt": "block/dirt" + }, + "elements": [ + { "from": [ 5, 0, 5 ], + "to": [ 6, 6, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 10, 0, 5 ], + "to": [ 11, 6, 11 ], + "faces": { + "down": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 5 ], + "to": [ 10, 6, 6 ], + "faces": { + "down": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 10 ], + "to": [ 10, 6, 11 ], + "faces": { + "down": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 6 ], + "to": [ 10, 4, 10 ], + "faces": { + "down": { "uv": [ 6, 12, 10, 16 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#dirt" } + } + } + ] +} diff --git a/assets/minecraft/models/block/flower_pot_cross.json b/assets/minecraft/models/block/flower_pot_cross.json new file mode 100644 index 00000000..dbc2c9df --- /dev/null +++ b/assets/minecraft/models/block/flower_pot_cross.json @@ -0,0 +1,73 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/flower_pot", + "flowerpot": "block/flower_pot", + "dirt": "block/dirt" + }, + "elements": [ + { "from": [ 5, 0, 5 ], + "to": [ 6, 6, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 10, 0, 5 ], + "to": [ 11, 6, 11 ], + "faces": { + "down": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 5 ], + "to": [ 10, 6, 6 ], + "faces": { + "down": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 10 ], + "to": [ 10, 6, 11 ], + "faces": { + "down": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 6 ], + "to": [ 10, 4, 10 ], + "faces": { + "down": { "uv": [ 6, 12, 10, 16 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#dirt" } + } + }, + { "from": [ 2.6, 4, 8 ], + "to": [ 13.4, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" } + } + }, + { "from": [ 8, 4, 2.6 ], + "to": [ 8, 16, 13.4 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" } + } + } + ] +} diff --git a/assets/minecraft/models/block/flowerbed_1.json b/assets/minecraft/models/block/flowerbed_1.json new file mode 100644 index 00000000..5b7ba90d --- /dev/null +++ b/assets/minecraft/models/block/flowerbed_1.json @@ -0,0 +1,70 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "from": [0, 2.99, 0], + "to": [8, 2.99, 8], + "faces": { + "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed"}, + "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed"} + } + }, + { + "from": [4.25, 0, -2.6], + "to": [4.25, 2.99, -1.6], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [3.75, 0, -2.1], + "to": [4.75, 2.99, -2.1], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [4.9, 0, 2.3], + "to": [4.9, 2.99, 3.3], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [4.4, 0, 2.8], + "to": [5.4, 2.99, 2.8], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [9.15, 0, -0.45], + "to": [9.15, 2.99, 0.55], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [8.65, 0, 0.05], + "to": [9.65, 2.99, 0.05], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 4, 1, 7], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/assets/minecraft/models/block/flowerbed_2.json b/assets/minecraft/models/block/flowerbed_2.json new file mode 100644 index 00000000..de654b86 --- /dev/null +++ b/assets/minecraft/models/block/flowerbed_2.json @@ -0,0 +1,42 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "from": [0, 1, 8], + "to": [8, 1, 16], + "faces": { + "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed"}, + "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed"} + } + }, + { + "from": [0, 1, 8], + "to": [8, 1, 16], + "faces": { + "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed"}, + "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed"} + } + }, + { + "from": [10.15, 0, 5.25], + "to": [11.15, 1, 5.25], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 1]}, + "faces": { + "north": {"uv": [0, 6, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 6, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [10.65, 0, 4.75], + "to": [10.65, 1, 5.75], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 1]}, + "faces": { + "east": {"uv": [0, 6, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 6, 1, 7], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/assets/minecraft/models/block/flowerbed_3.json b/assets/minecraft/models/block/flowerbed_3.json new file mode 100644 index 00000000..1d3ba0fc --- /dev/null +++ b/assets/minecraft/models/block/flowerbed_3.json @@ -0,0 +1,70 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "from": [8, 2, 8], + "to": [16, 2, 16], + "faces": { + "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed"}, + "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed"} + } + }, + { + "from": [17.65, 0, 1.9], + "to": [18.65, 2, 1.9], + "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, + "faces": { + "north": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [18.15, 0, 1.4], + "to": [18.15, 2, 2.4], + "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, + "faces": { + "east": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [17.65, 0, -3.35], + "to": [17.65, 2, -2.35], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [17.15, 0, -2.85], + "to": [18.15, 2, -2.85], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [13.4, 0, -0.5], + "to": [13.4, 2, 0.5], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [12.9, 0, 0], + "to": [13.9, 2, 0], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/assets/minecraft/models/block/flowerbed_4.json b/assets/minecraft/models/block/flowerbed_4.json new file mode 100644 index 00000000..3559fe2f --- /dev/null +++ b/assets/minecraft/models/block/flowerbed_4.json @@ -0,0 +1,34 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "from": [8, 2, 0], + "to": [16, 2, 8], + "faces": { + "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed"}, + "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed"} + } + }, + { + "from": [12.4, 0, -7.7], + "to": [12.4, 2, -6.7], + "rotation": {"angle": -45, "axis": "y", "origin": [-1, 0, -3]}, + "faces": { + "east": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "from": [11.9, 0, -7.2], + "to": [12.9, 2, -7.2], + "rotation": {"angle": -45, "axis": "y", "origin": [-1, 0, -3]}, + "faces": { + "north": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 5, 1, 7], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/assets/minecraft/models/block/flowering_azalea.json b/assets/minecraft/models/block/flowering_azalea.json new file mode 100644 index 00000000..65ac15ab --- /dev/null +++ b/assets/minecraft/models/block/flowering_azalea.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_azalea", + "textures": { + "side": "minecraft:block/flowering_azalea_side", + "top": "minecraft:block/flowering_azalea_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/flowering_azalea_leaves.json b/assets/minecraft/models/block/flowering_azalea_leaves.json new file mode 100644 index 00000000..f5caf1d7 --- /dev/null +++ b/assets/minecraft/models/block/flowering_azalea_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/flowering_azalea_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/four_dead_sea_pickles.json b/assets/minecraft/models/block/four_dead_sea_pickles.json new file mode 100644 index 00000000..5b5b0e7b --- /dev/null +++ b/assets/minecraft/models/block/four_dead_sea_pickles.json @@ -0,0 +1,84 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 6, 6, 6 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 2, 5.95, 2 ], + "to": [ 6, 5.95, 6 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 9, 0, 10 ], + "to": [ 13, 4, 14 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 9 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 9 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 9 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 9 ], "texture": "#all" } + } + }, + { + "from": [ 9, 3.95, 10 ], + "to": [ 13, 3.95, 14 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 9, 0, 2 ], + "to": [ 13, 6, 6 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 9, 5.95, 2 ], + "to": [ 13, 5.95, 6 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 2, 0, 8 ], + "to": [ 6, 7, 12 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 12 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 12 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 12 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 12 ], "texture": "#all" } + } + }, + { + "from": [ 2, 6.95, 8 ], + "to": [ 6, 6.95, 12 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/four_sea_pickles.json b/assets/minecraft/models/block/four_sea_pickles.json new file mode 100644 index 00000000..a9480d94 --- /dev/null +++ b/assets/minecraft/models/block/four_sea_pickles.json @@ -0,0 +1,164 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 2, 0, 2 ], + "to": [ 6, 6, 6 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 2, 5.95, 2 ], + "to": [ 6, 5.95, 6 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 9, 0, 10 ], + "to": [ 13, 4, 14 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 9 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 9 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 9 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 9 ], "texture": "#all" } + } + }, + { + "from": [ 9, 3.95, 10 ], + "to": [ 13, 3.95, 14 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 9, 0, 2 ], + "to": [ 13, 6, 6 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 9, 5.95, 2 ], + "to": [ 13, 5.95, 6 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 2, 0, 8 ], + "to": [ 6, 7, 12 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 12 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 12 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 12 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 12 ], "texture": "#all" } + } + }, + { + "from": [ 2, 6.95, 8 ], + "to": [ 6, 6.95, 12 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 3.5, 5.2, 4 ], + "to": [ 4.5, 8.7, 4 ], + "rotation": { "origin": [ 4, 8, 4 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 4, 5.2, 3.5 ], + "to": [ 4, 8.7, 4.5 ], + "rotation": { "origin": [ 4, 8, 4 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + }, + { + "from": [ 10.5, 3.2, 12 ], + "to": [ 11.5, 6.7, 12 ], + "rotation": { "origin": [ 11, 8, 12 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 11, 3.2, 11.5 ], + "to": [ 11, 6.7, 12.5 ], + "rotation": { "origin": [ 11, 8, 12 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + }, + { + "from": [ 10.5, 5.2, 4 ], + "to": [ 11.5, 8.7, 4 ], + "rotation": { "origin": [ 11, 8, 4 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 11, 5.2, 3.5 ], + "to": [ 11, 8.7, 4.5 ], + "rotation": { "origin": [ 11, 8, 4 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + }, + { + "from": [ 3.5, 6.2, 10 ], + "to": [ 4.5, 9.7, 10 ], + "rotation": { "origin": [ 4, 8, 10 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 4, 6.2, 9.5 ], + "to": [ 4, 9.7, 10.5 ], + "rotation": { "origin": [ 4, 8, 10 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/four_slightly_cracked_turtle_eggs.json b/assets/minecraft/models/block/four_slightly_cracked_turtle_eggs.json new file mode 100644 index 00000000..fc2286aa --- /dev/null +++ b/assets/minecraft/models/block/four_slightly_cracked_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg_slightly_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/four_turtle_eggs.json b/assets/minecraft/models/block/four_turtle_eggs.json new file mode 100644 index 00000000..89506934 --- /dev/null +++ b/assets/minecraft/models/block/four_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/four_very_cracked_turtle_eggs.json b/assets/minecraft/models/block/four_very_cracked_turtle_eggs.json new file mode 100644 index 00000000..6d6a8a6d --- /dev/null +++ b/assets/minecraft/models/block/four_very_cracked_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg_very_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/frogspawn.json b/assets/minecraft/models/block/frogspawn.json new file mode 100644 index 00000000..fb730c6f --- /dev/null +++ b/assets/minecraft/models/block/frogspawn.json @@ -0,0 +1,16 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/frogspawn", + "texture": "block/frogspawn" + }, + "elements": [ + { "from": [ 0, 0.25, 0 ], + "to": [ 16, 0.25, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture"} + } + } + ] +} diff --git a/assets/minecraft/models/block/frosted_ice_0.json b/assets/minecraft/models/block/frosted_ice_0.json new file mode 100644 index 00000000..1873bb83 --- /dev/null +++ b/assets/minecraft/models/block/frosted_ice_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/frosted_ice_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/frosted_ice_1.json b/assets/minecraft/models/block/frosted_ice_1.json new file mode 100644 index 00000000..ada6d7cf --- /dev/null +++ b/assets/minecraft/models/block/frosted_ice_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/frosted_ice_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/frosted_ice_2.json b/assets/minecraft/models/block/frosted_ice_2.json new file mode 100644 index 00000000..f97882c6 --- /dev/null +++ b/assets/minecraft/models/block/frosted_ice_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/frosted_ice_2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/frosted_ice_3.json b/assets/minecraft/models/block/frosted_ice_3.json new file mode 100644 index 00000000..330bb943 --- /dev/null +++ b/assets/minecraft/models/block/frosted_ice_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/frosted_ice_3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/furnace.json b/assets/minecraft/models/block/furnace.json new file mode 100644 index 00000000..9603b454 --- /dev/null +++ b/assets/minecraft/models/block/furnace.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/furnace_front", + "side": "minecraft:block/furnace_side", + "top": "minecraft:block/furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/furnace_on.json b/assets/minecraft/models/block/furnace_on.json new file mode 100644 index 00000000..37c4d394 --- /dev/null +++ b/assets/minecraft/models/block/furnace_on.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/furnace_front_on", + "side": "minecraft:block/furnace_side", + "top": "minecraft:block/furnace_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gilded_blackstone.json b/assets/minecraft/models/block/gilded_blackstone.json new file mode 100644 index 00000000..088b2170 --- /dev/null +++ b/assets/minecraft/models/block/gilded_blackstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gilded_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/glass.json b/assets/minecraft/models/block/glass.json new file mode 100644 index 00000000..4c193d18 --- /dev/null +++ b/assets/minecraft/models/block/glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/glass_pane_noside.json b/assets/minecraft/models/block/glass_pane_noside.json new file mode 100644 index 00000000..dc01ef00 --- /dev/null +++ b/assets/minecraft/models/block/glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/glass_pane_noside_alt.json b/assets/minecraft/models/block/glass_pane_noside_alt.json new file mode 100644 index 00000000..f0151c1b --- /dev/null +++ b/assets/minecraft/models/block/glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/glass_pane_post.json b/assets/minecraft/models/block/glass_pane_post.json new file mode 100644 index 00000000..6067b6a8 --- /dev/null +++ b/assets/minecraft/models/block/glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/glass_pane_top", + "pane": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/glass_pane_side.json b/assets/minecraft/models/block/glass_pane_side.json new file mode 100644 index 00000000..0b03be05 --- /dev/null +++ b/assets/minecraft/models/block/glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/glass_pane_top", + "pane": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/glass_pane_side_alt.json b/assets/minecraft/models/block/glass_pane_side_alt.json new file mode 100644 index 00000000..e8bd700f --- /dev/null +++ b/assets/minecraft/models/block/glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/glass_pane_top", + "pane": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/glow_item_frame.json b/assets/minecraft/models/block/glow_item_frame.json new file mode 100644 index 00000000..d465e396 --- /dev/null +++ b/assets/minecraft/models/block/glow_item_frame.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_item_frame", + "textures": { + "particle": "block/birch_planks", + "wood": "block/birch_planks", + "back": "block/glow_item_frame" + } +} diff --git a/assets/minecraft/models/block/glow_item_frame_map.json b/assets/minecraft/models/block/glow_item_frame_map.json new file mode 100644 index 00000000..0f8f9623 --- /dev/null +++ b/assets/minecraft/models/block/glow_item_frame_map.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_item_frame_map", + "textures": { + "particle": "block/birch_planks", + "wood": "block/birch_planks", + "back": "block/glow_item_frame" + } +} diff --git a/assets/minecraft/models/block/glow_lichen.json b/assets/minecraft/models/block/glow_lichen.json new file mode 100644 index 00000000..4bc0ff69 --- /dev/null +++ b/assets/minecraft/models/block/glow_lichen.json @@ -0,0 +1,16 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/glow_lichen", + "glow_lichen": "block/glow_lichen" + }, + "elements": [ + { "from": [ 0, 0, 0.1 ], + "to": [ 16, 16, 0.1 ], + "faces": { + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#glow_lichen" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#glow_lichen" } + } + } + ] +} diff --git a/assets/minecraft/models/block/glowstone.json b/assets/minecraft/models/block/glowstone.json new file mode 100644 index 00000000..64b05023 --- /dev/null +++ b/assets/minecraft/models/block/glowstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/glowstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gold_block.json b/assets/minecraft/models/block/gold_block.json new file mode 100644 index 00000000..e4cf5ece --- /dev/null +++ b/assets/minecraft/models/block/gold_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gold_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gold_ore.json b/assets/minecraft/models/block/gold_ore.json new file mode 100644 index 00000000..e330e823 --- /dev/null +++ b/assets/minecraft/models/block/gold_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gold_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite.json b/assets/minecraft/models/block/granite.json new file mode 100644 index 00000000..def59d00 --- /dev/null +++ b/assets/minecraft/models/block/granite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_slab.json b/assets/minecraft/models/block/granite_slab.json new file mode 100644 index 00000000..937bb638 --- /dev/null +++ b/assets/minecraft/models/block/granite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/granite", + "side": "minecraft:block/granite", + "top": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_slab_top.json b/assets/minecraft/models/block/granite_slab_top.json new file mode 100644 index 00000000..fcf5f092 --- /dev/null +++ b/assets/minecraft/models/block/granite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/granite", + "side": "minecraft:block/granite", + "top": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_stairs.json b/assets/minecraft/models/block/granite_stairs.json new file mode 100644 index 00000000..240f8e17 --- /dev/null +++ b/assets/minecraft/models/block/granite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/granite", + "side": "minecraft:block/granite", + "top": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_stairs_inner.json b/assets/minecraft/models/block/granite_stairs_inner.json new file mode 100644 index 00000000..34977cbb --- /dev/null +++ b/assets/minecraft/models/block/granite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/granite", + "side": "minecraft:block/granite", + "top": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_stairs_outer.json b/assets/minecraft/models/block/granite_stairs_outer.json new file mode 100644 index 00000000..6bfbf03c --- /dev/null +++ b/assets/minecraft/models/block/granite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/granite", + "side": "minecraft:block/granite", + "top": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_wall_inventory.json b/assets/minecraft/models/block/granite_wall_inventory.json new file mode 100644 index 00000000..4fd63ac1 --- /dev/null +++ b/assets/minecraft/models/block/granite_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_wall_post.json b/assets/minecraft/models/block/granite_wall_post.json new file mode 100644 index 00000000..896a06a4 --- /dev/null +++ b/assets/minecraft/models/block/granite_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_wall_side.json b/assets/minecraft/models/block/granite_wall_side.json new file mode 100644 index 00000000..28bd6f3b --- /dev/null +++ b/assets/minecraft/models/block/granite_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/granite_wall_side_tall.json b/assets/minecraft/models/block/granite_wall_side_tall.json new file mode 100644 index 00000000..b995d75c --- /dev/null +++ b/assets/minecraft/models/block/granite_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/grass_block.json b/assets/minecraft/models/block/grass_block.json new file mode 100644 index 00000000..94c521cb --- /dev/null +++ b/assets/minecraft/models/block/grass_block.json @@ -0,0 +1,31 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/dirt", + "bottom": "block/dirt", + "top": "block/grass_block_top", + "side": "block/grass_block_side", + "overlay": "block/grass_block_side_overlay" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "up", "tintindex": 0 }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#overlay", "tintindex": 0, "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#overlay", "tintindex": 0, "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#overlay", "tintindex": 0, "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#overlay", "tintindex": 0, "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/grass_block_snow.json b/assets/minecraft/models/block/grass_block_snow.json new file mode 100644 index 00000000..2bf4bbaa --- /dev/null +++ b/assets/minecraft/models/block/grass_block_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/dirt", + "particle": "minecraft:block/dirt", + "side": "minecraft:block/grass_block_snow", + "top": "minecraft:block/grass_block_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gravel.json b/assets/minecraft/models/block/gravel.json new file mode 100644 index 00000000..ed35aa8b --- /dev/null +++ b/assets/minecraft/models/block/gravel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gravel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_cake.json b/assets/minecraft/models/block/gray_candle_cake.json new file mode 100644 index 00000000..e78d12b9 --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/gray_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_cake_lit.json b/assets/minecraft/models/block/gray_candle_cake_lit.json new file mode 100644 index 00000000..041054f5 --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/gray_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_four_candles.json b/assets/minecraft/models/block/gray_candle_four_candles.json new file mode 100644 index 00000000..88fc63be --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/gray_candle", + "particle": "minecraft:block/gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_four_candles_lit.json b/assets/minecraft/models/block/gray_candle_four_candles_lit.json new file mode 100644 index 00000000..543b0ab1 --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/gray_candle_lit", + "particle": "minecraft:block/gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_one_candle.json b/assets/minecraft/models/block/gray_candle_one_candle.json new file mode 100644 index 00000000..4bd2420c --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/gray_candle", + "particle": "minecraft:block/gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_one_candle_lit.json b/assets/minecraft/models/block/gray_candle_one_candle_lit.json new file mode 100644 index 00000000..ab6af17e --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/gray_candle_lit", + "particle": "minecraft:block/gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_three_candles.json b/assets/minecraft/models/block/gray_candle_three_candles.json new file mode 100644 index 00000000..62903c45 --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/gray_candle", + "particle": "minecraft:block/gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_three_candles_lit.json b/assets/minecraft/models/block/gray_candle_three_candles_lit.json new file mode 100644 index 00000000..73d97d57 --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/gray_candle_lit", + "particle": "minecraft:block/gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_two_candles.json b/assets/minecraft/models/block/gray_candle_two_candles.json new file mode 100644 index 00000000..8ad7e5ea --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/gray_candle", + "particle": "minecraft:block/gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_candle_two_candles_lit.json b/assets/minecraft/models/block/gray_candle_two_candles_lit.json new file mode 100644 index 00000000..c3e0cb06 --- /dev/null +++ b/assets/minecraft/models/block/gray_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/gray_candle_lit", + "particle": "minecraft:block/gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_carpet.json b/assets/minecraft/models/block/gray_carpet.json new file mode 100644 index 00000000..1924a401 --- /dev/null +++ b/assets/minecraft/models/block/gray_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/gray_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_concrete.json b/assets/minecraft/models/block/gray_concrete.json new file mode 100644 index 00000000..12c16a3b --- /dev/null +++ b/assets/minecraft/models/block/gray_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gray_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_concrete_powder.json b/assets/minecraft/models/block/gray_concrete_powder.json new file mode 100644 index 00000000..69ca2d0c --- /dev/null +++ b/assets/minecraft/models/block/gray_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gray_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_glazed_terracotta.json b/assets/minecraft/models/block/gray_glazed_terracotta.json new file mode 100644 index 00000000..4b8e268b --- /dev/null +++ b/assets/minecraft/models/block/gray_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/gray_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_shulker_box.json b/assets/minecraft/models/block/gray_shulker_box.json new file mode 100644 index 00000000..93cae990 --- /dev/null +++ b/assets/minecraft/models/block/gray_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/gray_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_stained_glass.json b/assets/minecraft/models/block/gray_stained_glass.json new file mode 100644 index 00000000..4255772e --- /dev/null +++ b/assets/minecraft/models/block/gray_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_stained_glass_pane_noside.json b/assets/minecraft/models/block/gray_stained_glass_pane_noside.json new file mode 100644 index 00000000..5ee05c4d --- /dev/null +++ b/assets/minecraft/models/block/gray_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/gray_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..4ea84aa6 --- /dev/null +++ b/assets/minecraft/models/block/gray_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_stained_glass_pane_post.json b/assets/minecraft/models/block/gray_stained_glass_pane_post.json new file mode 100644 index 00000000..7c762cff --- /dev/null +++ b/assets/minecraft/models/block/gray_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/gray_stained_glass_pane_top", + "pane": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_stained_glass_pane_side.json b/assets/minecraft/models/block/gray_stained_glass_pane_side.json new file mode 100644 index 00000000..e1bb68e7 --- /dev/null +++ b/assets/minecraft/models/block/gray_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/gray_stained_glass_pane_top", + "pane": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/gray_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..d0f02e67 --- /dev/null +++ b/assets/minecraft/models/block/gray_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/gray_stained_glass_pane_top", + "pane": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_terracotta.json b/assets/minecraft/models/block/gray_terracotta.json new file mode 100644 index 00000000..eae31cf9 --- /dev/null +++ b/assets/minecraft/models/block/gray_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gray_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/gray_wool.json b/assets/minecraft/models/block/gray_wool.json new file mode 100644 index 00000000..26140233 --- /dev/null +++ b/assets/minecraft/models/block/gray_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/gray_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_cake.json b/assets/minecraft/models/block/green_candle_cake.json new file mode 100644 index 00000000..80374894 --- /dev/null +++ b/assets/minecraft/models/block/green_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/green_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_cake_lit.json b/assets/minecraft/models/block/green_candle_cake_lit.json new file mode 100644 index 00000000..bfe09f03 --- /dev/null +++ b/assets/minecraft/models/block/green_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/green_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_four_candles.json b/assets/minecraft/models/block/green_candle_four_candles.json new file mode 100644 index 00000000..747a9025 --- /dev/null +++ b/assets/minecraft/models/block/green_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/green_candle", + "particle": "minecraft:block/green_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_four_candles_lit.json b/assets/minecraft/models/block/green_candle_four_candles_lit.json new file mode 100644 index 00000000..94d44e01 --- /dev/null +++ b/assets/minecraft/models/block/green_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/green_candle_lit", + "particle": "minecraft:block/green_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_one_candle.json b/assets/minecraft/models/block/green_candle_one_candle.json new file mode 100644 index 00000000..d1c0549e --- /dev/null +++ b/assets/minecraft/models/block/green_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/green_candle", + "particle": "minecraft:block/green_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_one_candle_lit.json b/assets/minecraft/models/block/green_candle_one_candle_lit.json new file mode 100644 index 00000000..fc34dc9a --- /dev/null +++ b/assets/minecraft/models/block/green_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/green_candle_lit", + "particle": "minecraft:block/green_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_three_candles.json b/assets/minecraft/models/block/green_candle_three_candles.json new file mode 100644 index 00000000..74af5d17 --- /dev/null +++ b/assets/minecraft/models/block/green_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/green_candle", + "particle": "minecraft:block/green_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_three_candles_lit.json b/assets/minecraft/models/block/green_candle_three_candles_lit.json new file mode 100644 index 00000000..2afade3f --- /dev/null +++ b/assets/minecraft/models/block/green_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/green_candle_lit", + "particle": "minecraft:block/green_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_two_candles.json b/assets/minecraft/models/block/green_candle_two_candles.json new file mode 100644 index 00000000..ab72a4be --- /dev/null +++ b/assets/minecraft/models/block/green_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/green_candle", + "particle": "minecraft:block/green_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_candle_two_candles_lit.json b/assets/minecraft/models/block/green_candle_two_candles_lit.json new file mode 100644 index 00000000..505c16ed --- /dev/null +++ b/assets/minecraft/models/block/green_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/green_candle_lit", + "particle": "minecraft:block/green_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_carpet.json b/assets/minecraft/models/block/green_carpet.json new file mode 100644 index 00000000..8d253d4b --- /dev/null +++ b/assets/minecraft/models/block/green_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/green_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_concrete.json b/assets/minecraft/models/block/green_concrete.json new file mode 100644 index 00000000..98a35206 --- /dev/null +++ b/assets/minecraft/models/block/green_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/green_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_concrete_powder.json b/assets/minecraft/models/block/green_concrete_powder.json new file mode 100644 index 00000000..b783da03 --- /dev/null +++ b/assets/minecraft/models/block/green_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/green_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_glazed_terracotta.json b/assets/minecraft/models/block/green_glazed_terracotta.json new file mode 100644 index 00000000..5238d5d3 --- /dev/null +++ b/assets/minecraft/models/block/green_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/green_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_shulker_box.json b/assets/minecraft/models/block/green_shulker_box.json new file mode 100644 index 00000000..7b07e640 --- /dev/null +++ b/assets/minecraft/models/block/green_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/green_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_stained_glass.json b/assets/minecraft/models/block/green_stained_glass.json new file mode 100644 index 00000000..9eb3adad --- /dev/null +++ b/assets/minecraft/models/block/green_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_stained_glass_pane_noside.json b/assets/minecraft/models/block/green_stained_glass_pane_noside.json new file mode 100644 index 00000000..3b91e355 --- /dev/null +++ b/assets/minecraft/models/block/green_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/green_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..1791ed8f --- /dev/null +++ b/assets/minecraft/models/block/green_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_stained_glass_pane_post.json b/assets/minecraft/models/block/green_stained_glass_pane_post.json new file mode 100644 index 00000000..0406b265 --- /dev/null +++ b/assets/minecraft/models/block/green_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/green_stained_glass_pane_top", + "pane": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_stained_glass_pane_side.json b/assets/minecraft/models/block/green_stained_glass_pane_side.json new file mode 100644 index 00000000..313b7950 --- /dev/null +++ b/assets/minecraft/models/block/green_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/green_stained_glass_pane_top", + "pane": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/green_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..61ee696d --- /dev/null +++ b/assets/minecraft/models/block/green_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/green_stained_glass_pane_top", + "pane": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_terracotta.json b/assets/minecraft/models/block/green_terracotta.json new file mode 100644 index 00000000..8c139007 --- /dev/null +++ b/assets/minecraft/models/block/green_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/green_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/green_wool.json b/assets/minecraft/models/block/green_wool.json new file mode 100644 index 00000000..79b5a21f --- /dev/null +++ b/assets/minecraft/models/block/green_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/green_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/grindstone.json b/assets/minecraft/models/block/grindstone.json new file mode 100644 index 00000000..cc5e0f1f --- /dev/null +++ b/assets/minecraft/models/block/grindstone.json @@ -0,0 +1,68 @@ +{ + "parent": "block/block", + "textures": { + "pivot": "block/grindstone_pivot", + "round": "block/grindstone_round", + "side": "block/grindstone_side", + "particle": "block/grindstone_side", + "leg": "block/dark_oak_log" + }, + "elements": [ + { + "from": [12, 0, 6], + "to": [14, 7, 10], + "faces": { + "north": {"uv": [2, 9, 4, 16], "texture": "#leg"}, + "east": {"uv": [10, 16, 6, 9], "texture": "#leg"}, + "south": {"uv": [12, 9, 14, 16], "texture": "#leg"}, + "west": {"uv": [6, 9, 10, 16], "texture": "#leg"}, + "down": {"uv": [12, 6, 14, 10], "texture": "#leg", "cullface": "down" } + } + }, + { + "from": [2, 0, 6], + "to": [4, 7, 10], + "faces": { + "north": {"uv": [12, 9, 14, 16], "texture": "#leg"}, + "east": {"uv": [10, 16, 6, 9], "texture": "#leg"}, + "south": {"uv": [2, 9, 4, 16], "texture": "#leg"}, + "west": {"uv": [6, 9, 10, 16], "texture": "#leg"}, + "down": {"uv": [2, 6, 4, 10], "texture": "#leg", "cullface": "down"} + } + }, + { + "from": [12, 7, 5], + "to": [14, 13, 11], + "faces": { + "north": {"uv": [6, 0, 8, 6], "texture": "#pivot"}, + "east": {"uv": [0, 0, 6, 6], "texture": "#pivot"}, + "south": {"uv": [6, 0, 8, 6], "texture": "#pivot"}, + "up": {"uv": [8, 0, 10, 6], "texture": "#pivot"}, + "down": {"uv": [8, 0, 10, 6], "texture": "#pivot"} + } + }, + { + "from": [2, 7, 5], + "to": [4, 13, 11], + "faces": { + "north": {"uv": [6, 0, 8, 6], "texture": "#pivot"}, + "south": {"uv": [6, 0, 8, 6], "texture": "#pivot"}, + "west": {"uv": [0, 0, 6, 6], "texture": "#pivot"}, + "up": {"uv": [8, 0, 10, 6], "texture": "#pivot"}, + "down": {"uv": [8, 0, 10, 6], "texture": "#pivot"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 16, 14], + "faces": { + "north": {"uv": [0, 0, 8, 12], "texture": "#round"}, + "east": {"uv": [0, 0, 12, 12], "texture": "#side"}, + "south": {"uv": [0, 0, 8, 12], "texture": "#round"}, + "west": {"uv": [0, 0, 12, 12], "texture": "#side"}, + "up": {"uv": [0, 0, 8, 12], "texture": "#round", "cullface": "up" }, + "down": {"uv": [0, 0, 8, 12], "texture": "#round"} + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/models/block/hanging_roots.json b/assets/minecraft/models/block/hanging_roots.json new file mode 100644 index 00000000..1c979695 --- /dev/null +++ b/assets/minecraft/models/block/hanging_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/hanging_roots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/hay_block.json b/assets/minecraft/models/block/hay_block.json new file mode 100644 index 00000000..6c0c225b --- /dev/null +++ b/assets/minecraft/models/block/hay_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/hay_block_top", + "side": "minecraft:block/hay_block_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/hay_block_horizontal.json b/assets/minecraft/models/block/hay_block_horizontal.json new file mode 100644 index 00000000..6e7df90b --- /dev/null +++ b/assets/minecraft/models/block/hay_block_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/hay_block_top", + "side": "minecraft:block/hay_block_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/heavy_core.json b/assets/minecraft/models/block/heavy_core.json new file mode 100644 index 00000000..d1f5161e --- /dev/null +++ b/assets/minecraft/models/block/heavy_core.json @@ -0,0 +1,44 @@ +{ + "display": { + "gui": { + "rotation": [ 30, 225, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 1, 1, 1 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 4, 0], + "scale":[ 1, 1, 1 ] + }, + "thirdperson_righthand": { + "rotation": [ 45, 45, 0 ], + "translation": [ 0, 3, 0 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + }, + "texture_size": [16, 16], + "textures": { + "all": "block/heavy_core", + "particle": "block/heavy_core" + }, + "elements": [ + { + "name": "heavy_core", + "from": [4, 0, 4], + "to": [12, 8, 12], + "faces": { + "north": {"uv": [0, 8, 8, 16], "texture": "all"}, + "east": {"uv": [0, 8, 8, 16], "texture": "all"}, + "south": {"uv": [0, 8, 8, 16], "texture": "all"}, + "west": {"uv": [0, 8, 8, 16], "texture": "all"}, + "up": {"uv": [0, 0, 8, 8], "texture": "all"}, + "down": {"uv": [8, 0, 16, 8], "texture": "all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/heavy_weighted_pressure_plate.json b/assets/minecraft/models/block/heavy_weighted_pressure_plate.json new file mode 100644 index 00000000..d0dd064d --- /dev/null +++ b/assets/minecraft/models/block/heavy_weighted_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/iron_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/heavy_weighted_pressure_plate_down.json b/assets/minecraft/models/block/heavy_weighted_pressure_plate_down.json new file mode 100644 index 00000000..dae1bb48 --- /dev/null +++ b/assets/minecraft/models/block/heavy_weighted_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/iron_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/honey_block.json b/assets/minecraft/models/block/honey_block.json new file mode 100644 index 00000000..d3dd49f9 --- /dev/null +++ b/assets/minecraft/models/block/honey_block.json @@ -0,0 +1,33 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/honey_block_top", + "down": "block/honey_block_bottom", + "up": "block/honey_block_top", + "side": "block/honey_block_side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#down", "cullface": "up" }, + "north": { "texture": "#down", "cullface": "north" }, + "south": { "texture": "#down", "cullface": "south" }, + "west": { "texture": "#down", "cullface": "west" }, + "east": { "texture": "#down", "cullface": "east" } + } + }, + { "from": [ 1, 1, 1 ], + "to": [ 15, 15, 15 ], + "faces": { + "down": { "uv": [ 1, 1, 15, 15 ], "texture": "#down"}, + "up": { "uv": [ 1, 1, 15, 15 ], "texture": "#up"}, + "north": { "uv": [ 1, 1, 15, 15 ], "texture": "#side"}, + "south": { "uv": [ 1, 1, 15, 15 ], "texture": "#side"}, + "west": { "uv": [ 1, 1, 15, 15 ], "texture": "#side"}, + "east": { "uv": [ 1, 1, 15, 15 ], "texture": "#side"} + } + } + ] +} + diff --git a/assets/minecraft/models/block/honeycomb_block.json b/assets/minecraft/models/block/honeycomb_block.json new file mode 100644 index 00000000..4421b231 --- /dev/null +++ b/assets/minecraft/models/block/honeycomb_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/honeycomb_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/hopper.json b/assets/minecraft/models/block/hopper.json new file mode 100644 index 00000000..ce9eb542 --- /dev/null +++ b/assets/minecraft/models/block/hopper.json @@ -0,0 +1,78 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/hopper_outside", + "top": "block/hopper_top", + "side": "block/hopper_outside", + "inside": "block/hopper_inside" + }, + "elements": [ + { "from": [ 0, 10, 0 ], + "to": [ 16, 11, 16 ], + "faces": { + "down": { "texture": "#inside" }, + "up": { "texture": "#inside", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "east": { "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 2, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "east": { "texture": "#side", "cullface": "up" } + } + }, + { "from": [ 14, 11, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "up" }, + "east": { "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 2, 11, 0 ], + "to": [ 14, 16, 2 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "up" } + } + }, + { "from": [ 2, 11, 14 ], + "to": [ 14, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "up" }, + "south": { "texture": "#side", "cullface": "south" } + } + }, + { "from": [ 4, 4, 4 ], + "to": [ 12, 10, 12 ], + "faces": { + "down": { "texture": "#inside" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side" } + } + }, + { "from": [ 6, 0, 6 ], + "to": [ 10, 4, 10 ], + "faces": { + "down": { "texture": "#inside", "cullface": "down" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/hopper_side.json b/assets/minecraft/models/block/hopper_side.json new file mode 100644 index 00000000..28d3dc65 --- /dev/null +++ b/assets/minecraft/models/block/hopper_side.json @@ -0,0 +1,78 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/hopper_outside", + "top": "block/hopper_top", + "side": "block/hopper_outside", + "inside": "block/hopper_inside" + }, + "elements": [ + { "from": [ 0, 10, 0 ], + "to": [ 16, 11, 16 ], + "faces": { + "down": { "texture": "#inside" }, + "up": { "texture": "#inside", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "east": { "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 0, 11, 0 ], + "to": [ 2, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "east": { "texture": "#side", "cullface": "up" } + } + }, + { "from": [ 14, 11, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "up" }, + "east": { "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 2, 11, 0 ], + "to": [ 14, 16, 2 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "up" } + } + }, + { "from": [ 2, 11, 14 ], + "to": [ 14, 16, 16 ], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#side", "cullface": "up" }, + "south": { "texture": "#side", "cullface": "south" } + } + }, + { "from": [ 4, 4, 4 ], + "to": [ 12, 10, 12 ], + "faces": { + "down": { "texture": "#inside" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side" } + } + }, + { "from": [ 6, 4, 0 ], + "to": [ 10, 8, 4 ], + "faces": { + "down": { "texture": "#inside" }, + "up": { "texture": "#side" }, + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/horn_coral.json b/assets/minecraft/models/block/horn_coral.json new file mode 100644 index 00000000..2b976df7 --- /dev/null +++ b/assets/minecraft/models/block/horn_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/horn_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/horn_coral_block.json b/assets/minecraft/models/block/horn_coral_block.json new file mode 100644 index 00000000..5ab74af9 --- /dev/null +++ b/assets/minecraft/models/block/horn_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/horn_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/horn_coral_fan.json b/assets/minecraft/models/block/horn_coral_fan.json new file mode 100644 index 00000000..01598b87 --- /dev/null +++ b/assets/minecraft/models/block/horn_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/horn_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/horn_coral_wall_fan.json b/assets/minecraft/models/block/horn_coral_wall_fan.json new file mode 100644 index 00000000..68001f16 --- /dev/null +++ b/assets/minecraft/models/block/horn_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/horn_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/ice.json b/assets/minecraft/models/block/ice.json new file mode 100644 index 00000000..cfe53a03 --- /dev/null +++ b/assets/minecraft/models/block/ice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/ice" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/inner_stairs.json b/assets/minecraft/models/block/inner_stairs.json new file mode 100644 index 00000000..364eff63 --- /dev/null +++ b/assets/minecraft/models/block/inner_stairs.json @@ -0,0 +1,37 @@ +{ + "textures": { + "particle": "#side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 8, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 8, 8, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "up": { "uv": [ 8, 0, 16, 16 ], "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 0, 0, 8, 8 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 8, 0, 16, 8 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 8 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 0, 8, 8 ], + "to": [ 8, 16, 16 ], + "faces": { + "up": { "uv": [ 0, 8, 8, 16 ], "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 8, 0, 16, 8 ], "texture": "#side" }, + "south": { "uv": [ 0, 0, 8, 8 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 8, 0, 16, 8 ], "texture": "#side", "cullface": "west" } + } + } + ] +} diff --git a/assets/minecraft/models/block/iron_bars_cap.json b/assets/minecraft/models/block/iron_bars_cap.json new file mode 100644 index 00000000..8790100a --- /dev/null +++ b/assets/minecraft/models/block/iron_bars_cap.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/iron_bars", + "bars": "block/iron_bars", + "edge": "block/iron_bars" + }, + "elements": [ + { "from": [ 8, 0, 8 ], + "to": [ 8, 16, 9 ], + "faces": { + "west": { "uv": [ 8, 0, 7, 16 ], "texture": "#bars" }, + "east": { "uv": [ 7, 0, 8, 16 ], "texture": "#bars" } + } + }, + { "from": [ 7, 0, 9 ], + "to": [ 9, 16, 9 ], + "faces": { + "north": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" }, + "south": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" } + } + } + ] +} diff --git a/assets/minecraft/models/block/iron_bars_cap_alt.json b/assets/minecraft/models/block/iron_bars_cap_alt.json new file mode 100644 index 00000000..0352a9d4 --- /dev/null +++ b/assets/minecraft/models/block/iron_bars_cap_alt.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/iron_bars", + "bars": "block/iron_bars", + "edge": "block/iron_bars" + }, + "elements": [ + { "from": [ 8, 0, 7 ], + "to": [ 8, 16, 8 ], + "faces": { + "west": { "uv": [ 8, 0, 9, 16 ], "texture": "#bars" }, + "east": { "uv": [ 9, 0, 8, 16 ], "texture": "#bars" } + } + }, + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 7 ], + "faces": { + "north": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" }, + "south": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" } + } + } + ] +} diff --git a/assets/minecraft/models/block/iron_bars_post.json b/assets/minecraft/models/block/iron_bars_post.json new file mode 100644 index 00000000..feb3e146 --- /dev/null +++ b/assets/minecraft/models/block/iron_bars_post.json @@ -0,0 +1,23 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/iron_bars", + "bars": "block/iron_bars" + }, + "elements": [ + { "from": [ 8, 0, 7 ], + "to": [ 8, 16, 9 ], + "faces": { + "west": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" }, + "east": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" } + } + }, + { "from": [ 7, 0, 8 ], + "to": [ 9, 16, 8 ], + "faces": { + "north": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" }, + "south": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" } + } + } + ] +} diff --git a/assets/minecraft/models/block/iron_bars_post_ends.json b/assets/minecraft/models/block/iron_bars_post_ends.json new file mode 100644 index 00000000..b0c1ef61 --- /dev/null +++ b/assets/minecraft/models/block/iron_bars_post_ends.json @@ -0,0 +1,23 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/iron_bars", + "edge": "block/iron_bars" + }, + "elements": [ + { "from": [ 7, 0.001, 7 ], + "to": [ 9, 0.001, 9 ], + "faces": { + "down": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" }, + "up": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" } + } + }, + { "from": [ 7, 15.999, 7 ], + "to": [ 9, 15.999, 9 ], + "faces": { + "down": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" }, + "up": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" } + } + } + ] +} diff --git a/assets/minecraft/models/block/iron_bars_side.json b/assets/minecraft/models/block/iron_bars_side.json new file mode 100644 index 00000000..01d74110 --- /dev/null +++ b/assets/minecraft/models/block/iron_bars_side.json @@ -0,0 +1,37 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/iron_bars", + "bars": "block/iron_bars", + "edge": "block/iron_bars" + }, + "elements": [ + { "from": [ 8, 0, 0 ], + "to": [ 8, 16, 8 ], + "faces": { + "west": { "uv": [ 16, 0, 8, 16 ], "texture": "#bars" }, + "east": { "uv": [ 8, 0, 16, 16 ], "texture": "#bars" } + } + }, + { "from": [ 7, 0, 0 ], + "to": [ 9, 16, 7 ], + "faces": { + "north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north" } + } + }, + { "from": [ 7, 0.001, 0 ], + "to": [ 9, 0.001, 7 ], + "faces": { + "down": { "uv": [ 9, 0, 7, 7 ], "texture": "#edge" }, + "up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" } + } + }, + { "from": [ 7, 15.999, 0 ], + "to": [ 9, 15.999, 7 ], + "faces": { + "down": { "uv": [ 9, 0, 7, 7 ], "texture": "#edge" }, + "up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" } + } + } + ] +} diff --git a/assets/minecraft/models/block/iron_bars_side_alt.json b/assets/minecraft/models/block/iron_bars_side_alt.json new file mode 100644 index 00000000..83842e68 --- /dev/null +++ b/assets/minecraft/models/block/iron_bars_side_alt.json @@ -0,0 +1,39 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/iron_bars", + "bars": "block/iron_bars", + "edge": "block/iron_bars" + }, + "elements": [ + { "from": [ 8, 0, 8 ], + "to": [ 8, 16, 16 ], + "faces": { + "west": { "uv": [ 8, 0, 0, 16 ], "texture": "#bars" }, + "east": { "uv": [ 0, 0, 8, 16 ], "texture": "#bars" } + } + }, + { "from": [ 7, 0, 9 ], + "to": [ 9, 16, 16 ], + "faces": { + "south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "south" }, + "down": { "uv": [ 9, 9, 7, 16 ], "texture": "#edge" }, + "up": { "uv": [ 7, 9, 9, 16 ], "texture": "#edge" } + } + }, + { "from": [ 7, 0.001, 9 ], + "to": [ 9, 0.001, 16 ], + "faces": { + "down": { "uv": [ 9, 9, 7, 16 ], "texture": "#edge" }, + "up": { "uv": [ 7, 9, 9, 16 ], "texture": "#edge" } + } + }, + { "from": [ 7, 15.999, 9 ], + "to": [ 9, 15.999, 16 ], + "faces": { + "down": { "uv": [ 9, 9, 7, 16 ], "texture": "#edge" }, + "up": { "uv": [ 7, 9, 9, 16 ], "texture": "#edge" } + } + } + ] +} diff --git a/assets/minecraft/models/block/iron_block.json b/assets/minecraft/models/block/iron_block.json new file mode 100644 index 00000000..8b87ea96 --- /dev/null +++ b/assets/minecraft/models/block/iron_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/iron_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_bottom_left.json b/assets/minecraft/models/block/iron_door_bottom_left.json new file mode 100644 index 00000000..00ef5550 --- /dev/null +++ b/assets/minecraft/models/block/iron_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_bottom_left_open.json b/assets/minecraft/models/block/iron_door_bottom_left_open.json new file mode 100644 index 00000000..e5e40a29 --- /dev/null +++ b/assets/minecraft/models/block/iron_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_bottom_right.json b/assets/minecraft/models/block/iron_door_bottom_right.json new file mode 100644 index 00000000..5bcd9581 --- /dev/null +++ b/assets/minecraft/models/block/iron_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_bottom_right_open.json b/assets/minecraft/models/block/iron_door_bottom_right_open.json new file mode 100644 index 00000000..7263ca8d --- /dev/null +++ b/assets/minecraft/models/block/iron_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_top_left.json b/assets/minecraft/models/block/iron_door_top_left.json new file mode 100644 index 00000000..a64f42cd --- /dev/null +++ b/assets/minecraft/models/block/iron_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_top_left_open.json b/assets/minecraft/models/block/iron_door_top_left_open.json new file mode 100644 index 00000000..af4f3d69 --- /dev/null +++ b/assets/minecraft/models/block/iron_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_top_right.json b/assets/minecraft/models/block/iron_door_top_right.json new file mode 100644 index 00000000..97226e37 --- /dev/null +++ b/assets/minecraft/models/block/iron_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_door_top_right_open.json b/assets/minecraft/models/block/iron_door_top_right_open.json new file mode 100644 index 00000000..f3b08b05 --- /dev/null +++ b/assets/minecraft/models/block/iron_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/iron_door_bottom", + "top": "minecraft:block/iron_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_ore.json b/assets/minecraft/models/block/iron_ore.json new file mode 100644 index 00000000..1660281b --- /dev/null +++ b/assets/minecraft/models/block/iron_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/iron_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_trapdoor_bottom.json b/assets/minecraft/models/block/iron_trapdoor_bottom.json new file mode 100644 index 00000000..97561197 --- /dev/null +++ b/assets/minecraft/models/block/iron_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/iron_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_trapdoor_open.json b/assets/minecraft/models/block/iron_trapdoor_open.json new file mode 100644 index 00000000..b638a44c --- /dev/null +++ b/assets/minecraft/models/block/iron_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_open", + "textures": { + "texture": "minecraft:block/iron_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/iron_trapdoor_top.json b/assets/minecraft/models/block/iron_trapdoor_top.json new file mode 100644 index 00000000..be3cc7ba --- /dev/null +++ b/assets/minecraft/models/block/iron_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_top", + "textures": { + "texture": "minecraft:block/iron_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/item_frame.json b/assets/minecraft/models/block/item_frame.json new file mode 100644 index 00000000..04c65e00 --- /dev/null +++ b/assets/minecraft/models/block/item_frame.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_item_frame", + "textures": { + "particle": "block/birch_planks", + "wood": "block/birch_planks", + "back": "block/item_frame" + } +} diff --git a/assets/minecraft/models/block/item_frame_map.json b/assets/minecraft/models/block/item_frame_map.json new file mode 100644 index 00000000..fb899863 --- /dev/null +++ b/assets/minecraft/models/block/item_frame_map.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_item_frame_map", + "textures": { + "particle": "block/birch_planks", + "wood": "block/birch_planks", + "back": "block/item_frame" + } +} diff --git a/assets/minecraft/models/block/jack_o_lantern.json b/assets/minecraft/models/block/jack_o_lantern.json new file mode 100644 index 00000000..637772f8 --- /dev/null +++ b/assets/minecraft/models/block/jack_o_lantern.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "front": "minecraft:block/jack_o_lantern", + "side": "minecraft:block/pumpkin_side", + "top": "minecraft:block/pumpkin_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jigsaw.json b/assets/minecraft/models/block/jigsaw.json new file mode 100644 index 00000000..def1e2e7 --- /dev/null +++ b/assets/minecraft/models/block/jigsaw.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube_directional", + "textures": { + "down": "minecraft:block/jigsaw_side", + "east": "minecraft:block/jigsaw_side", + "north": "minecraft:block/jigsaw_top", + "particle": "minecraft:block/jigsaw_top", + "south": "minecraft:block/jigsaw_bottom", + "up": "minecraft:block/jigsaw_lock", + "west": "minecraft:block/jigsaw_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jukebox.json b/assets/minecraft/models/block/jukebox.json new file mode 100644 index 00000000..9b9b61d8 --- /dev/null +++ b/assets/minecraft/models/block/jukebox.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_top", + "textures": { + "side": "minecraft:block/jukebox_side", + "top": "minecraft:block/jukebox_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_button.json b/assets/minecraft/models/block/jungle_button.json new file mode 100644 index 00000000..de9e6318 --- /dev/null +++ b/assets/minecraft/models/block/jungle_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_button_inventory.json b/assets/minecraft/models/block/jungle_button_inventory.json new file mode 100644 index 00000000..2f058f64 --- /dev/null +++ b/assets/minecraft/models/block/jungle_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_button_pressed.json b/assets/minecraft/models/block/jungle_button_pressed.json new file mode 100644 index 00000000..08687058 --- /dev/null +++ b/assets/minecraft/models/block/jungle_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_bottom_left.json b/assets/minecraft/models/block/jungle_door_bottom_left.json new file mode 100644 index 00000000..e1d1e72b --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_bottom_left_open.json b/assets/minecraft/models/block/jungle_door_bottom_left_open.json new file mode 100644 index 00000000..f60c74fc --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_bottom_right.json b/assets/minecraft/models/block/jungle_door_bottom_right.json new file mode 100644 index 00000000..4e6989ab --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_bottom_right_open.json b/assets/minecraft/models/block/jungle_door_bottom_right_open.json new file mode 100644 index 00000000..393c68c9 --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_top_left.json b/assets/minecraft/models/block/jungle_door_top_left.json new file mode 100644 index 00000000..a48721e3 --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_top_left_open.json b/assets/minecraft/models/block/jungle_door_top_left_open.json new file mode 100644 index 00000000..481ee6af --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_top_right.json b/assets/minecraft/models/block/jungle_door_top_right.json new file mode 100644 index 00000000..063b0d48 --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_door_top_right_open.json b/assets/minecraft/models/block/jungle_door_top_right_open.json new file mode 100644 index 00000000..64a498c5 --- /dev/null +++ b/assets/minecraft/models/block/jungle_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/jungle_door_bottom", + "top": "minecraft:block/jungle_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_fence_gate.json b/assets/minecraft/models/block/jungle_fence_gate.json new file mode 100644 index 00000000..a0f5231c --- /dev/null +++ b/assets/minecraft/models/block/jungle_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_fence_gate_open.json b/assets/minecraft/models/block/jungle_fence_gate_open.json new file mode 100644 index 00000000..d7e22852 --- /dev/null +++ b/assets/minecraft/models/block/jungle_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_fence_gate_wall.json b/assets/minecraft/models/block/jungle_fence_gate_wall.json new file mode 100644 index 00000000..8544a4b1 --- /dev/null +++ b/assets/minecraft/models/block/jungle_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_fence_gate_wall_open.json b/assets/minecraft/models/block/jungle_fence_gate_wall_open.json new file mode 100644 index 00000000..acb74dd7 --- /dev/null +++ b/assets/minecraft/models/block/jungle_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_fence_inventory.json b/assets/minecraft/models/block/jungle_fence_inventory.json new file mode 100644 index 00000000..70ce5096 --- /dev/null +++ b/assets/minecraft/models/block/jungle_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_fence_post.json b/assets/minecraft/models/block/jungle_fence_post.json new file mode 100644 index 00000000..6867e0d9 --- /dev/null +++ b/assets/minecraft/models/block/jungle_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_fence_side.json b/assets/minecraft/models/block/jungle_fence_side.json new file mode 100644 index 00000000..8efe3bc6 --- /dev/null +++ b/assets/minecraft/models/block/jungle_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_hanging_sign.json b/assets/minecraft/models/block/jungle_hanging_sign.json new file mode 100644 index 00000000..837a44e3 --- /dev/null +++ b/assets/minecraft/models/block/jungle_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_jungle_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_leaves.json b/assets/minecraft/models/block/jungle_leaves.json new file mode 100644 index 00000000..9feffd5d --- /dev/null +++ b/assets/minecraft/models/block/jungle_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/jungle_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_log.json b/assets/minecraft/models/block/jungle_log.json new file mode 100644 index 00000000..6e2042e8 --- /dev/null +++ b/assets/minecraft/models/block/jungle_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/jungle_log_top", + "side": "minecraft:block/jungle_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_log_horizontal.json b/assets/minecraft/models/block/jungle_log_horizontal.json new file mode 100644 index 00000000..8c4758db --- /dev/null +++ b/assets/minecraft/models/block/jungle_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/jungle_log_top", + "side": "minecraft:block/jungle_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_planks.json b/assets/minecraft/models/block/jungle_planks.json new file mode 100644 index 00000000..f35281e8 --- /dev/null +++ b/assets/minecraft/models/block/jungle_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_pressure_plate.json b/assets/minecraft/models/block/jungle_pressure_plate.json new file mode 100644 index 00000000..cf18c79e --- /dev/null +++ b/assets/minecraft/models/block/jungle_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_pressure_plate_down.json b/assets/minecraft/models/block/jungle_pressure_plate_down.json new file mode 100644 index 00000000..f34227b2 --- /dev/null +++ b/assets/minecraft/models/block/jungle_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_sapling.json b/assets/minecraft/models/block/jungle_sapling.json new file mode 100644 index 00000000..b1c50ecd --- /dev/null +++ b/assets/minecraft/models/block/jungle_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/jungle_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_sign.json b/assets/minecraft/models/block/jungle_sign.json new file mode 100644 index 00000000..6792ad6d --- /dev/null +++ b/assets/minecraft/models/block/jungle_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_slab.json b/assets/minecraft/models/block/jungle_slab.json new file mode 100644 index 00000000..d8e2e35c --- /dev/null +++ b/assets/minecraft/models/block/jungle_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/jungle_planks", + "side": "minecraft:block/jungle_planks", + "top": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_slab_top.json b/assets/minecraft/models/block/jungle_slab_top.json new file mode 100644 index 00000000..0a569d08 --- /dev/null +++ b/assets/minecraft/models/block/jungle_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/jungle_planks", + "side": "minecraft:block/jungle_planks", + "top": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_stairs.json b/assets/minecraft/models/block/jungle_stairs.json new file mode 100644 index 00000000..d852ba5a --- /dev/null +++ b/assets/minecraft/models/block/jungle_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/jungle_planks", + "side": "minecraft:block/jungle_planks", + "top": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_stairs_inner.json b/assets/minecraft/models/block/jungle_stairs_inner.json new file mode 100644 index 00000000..3bf1b36d --- /dev/null +++ b/assets/minecraft/models/block/jungle_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/jungle_planks", + "side": "minecraft:block/jungle_planks", + "top": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_stairs_outer.json b/assets/minecraft/models/block/jungle_stairs_outer.json new file mode 100644 index 00000000..1ddbccd7 --- /dev/null +++ b/assets/minecraft/models/block/jungle_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/jungle_planks", + "side": "minecraft:block/jungle_planks", + "top": "minecraft:block/jungle_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_trapdoor_bottom.json b/assets/minecraft/models/block/jungle_trapdoor_bottom.json new file mode 100644 index 00000000..937fc8bd --- /dev/null +++ b/assets/minecraft/models/block/jungle_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/jungle_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_trapdoor_open.json b/assets/minecraft/models/block/jungle_trapdoor_open.json new file mode 100644 index 00000000..af3cfdf5 --- /dev/null +++ b/assets/minecraft/models/block/jungle_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/jungle_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_trapdoor_top.json b/assets/minecraft/models/block/jungle_trapdoor_top.json new file mode 100644 index 00000000..6147ee6d --- /dev/null +++ b/assets/minecraft/models/block/jungle_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/jungle_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/jungle_wood.json b/assets/minecraft/models/block/jungle_wood.json new file mode 100644 index 00000000..e0960bb2 --- /dev/null +++ b/assets/minecraft/models/block/jungle_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/jungle_log", + "side": "minecraft:block/jungle_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/kelp.json b/assets/minecraft/models/block/kelp.json new file mode 100644 index 00000000..a9eba75f --- /dev/null +++ b/assets/minecraft/models/block/kelp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/kelp" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/kelp_plant.json b/assets/minecraft/models/block/kelp_plant.json new file mode 100644 index 00000000..cb981270 --- /dev/null +++ b/assets/minecraft/models/block/kelp_plant.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/kelp_plant" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/ladder.json b/assets/minecraft/models/block/ladder.json new file mode 100644 index 00000000..1b975e4d --- /dev/null +++ b/assets/minecraft/models/block/ladder.json @@ -0,0 +1,17 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/ladder", + "texture": "block/ladder" + }, + "elements": [ + { "from": [ 0, 0, 15.2 ], + "to": [ 16, 16, 15.2 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/lantern.json b/assets/minecraft/models/block/lantern.json new file mode 100644 index 00000000..12970adc --- /dev/null +++ b/assets/minecraft/models/block/lantern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_lantern", + "textures": { + "lantern": "minecraft:block/lantern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lantern_hanging.json b/assets/minecraft/models/block/lantern_hanging.json new file mode 100644 index 00000000..d047dcd0 --- /dev/null +++ b/assets/minecraft/models/block/lantern_hanging.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_hanging_lantern", + "textures": { + "lantern": "minecraft:block/lantern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lapis_block.json b/assets/minecraft/models/block/lapis_block.json new file mode 100644 index 00000000..97561c34 --- /dev/null +++ b/assets/minecraft/models/block/lapis_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/lapis_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lapis_ore.json b/assets/minecraft/models/block/lapis_ore.json new file mode 100644 index 00000000..561b8b59 --- /dev/null +++ b/assets/minecraft/models/block/lapis_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/lapis_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/large_amethyst_bud.json b/assets/minecraft/models/block/large_amethyst_bud.json new file mode 100644 index 00000000..27be909b --- /dev/null +++ b/assets/minecraft/models/block/large_amethyst_bud.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/large_amethyst_bud" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/large_fern_bottom.json b/assets/minecraft/models/block/large_fern_bottom.json new file mode 100644 index 00000000..832383dc --- /dev/null +++ b/assets/minecraft/models/block/large_fern_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/large_fern_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/large_fern_top.json b/assets/minecraft/models/block/large_fern_top.json new file mode 100644 index 00000000..e6d29325 --- /dev/null +++ b/assets/minecraft/models/block/large_fern_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/large_fern_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lava.json b/assets/minecraft/models/block/lava.json new file mode 100644 index 00000000..315d525f --- /dev/null +++ b/assets/minecraft/models/block/lava.json @@ -0,0 +1,6 @@ +{ + "textures": { + "particle": "block/lava_still" + } +} + diff --git a/assets/minecraft/models/block/lava_cauldron.json b/assets/minecraft/models/block/lava_cauldron.json new file mode 100644 index 00000000..f0a0a312 --- /dev/null +++ b/assets/minecraft/models/block/lava_cauldron.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_full", + "textures": { + "bottom": "minecraft:block/cauldron_bottom", + "content": "minecraft:block/lava_still", + "inside": "minecraft:block/cauldron_inner", + "particle": "minecraft:block/cauldron_side", + "side": "minecraft:block/cauldron_side", + "top": "minecraft:block/cauldron_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/leaves.json b/assets/minecraft/models/block/leaves.json new file mode 100644 index 00000000..722173fd --- /dev/null +++ b/assets/minecraft/models/block/leaves.json @@ -0,0 +1,18 @@ +{ "parent": "block/block", + "textures": { + "particle": "#all" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#all", "tintindex": 0, "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#all", "tintindex": 0, "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#all", "tintindex": 0, "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#all", "tintindex": 0, "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#all", "tintindex": 0, "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#all", "tintindex": 0, "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/lectern.json b/assets/minecraft/models/block/lectern.json new file mode 100644 index 00000000..0487bf02 --- /dev/null +++ b/assets/minecraft/models/block/lectern.json @@ -0,0 +1,55 @@ +{ + "parent": "block/block", + "display": { + "firstperson_righthand": { + "rotation": [ 0, 135, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.4, 0.4, 0.4 ] + } + }, + "textures": { + "particle": "block/lectern_sides", + "bottom": "block/oak_planks", + "base": "block/lectern_base", + "front": "block/lectern_front", + "sides": "block/lectern_sides", + "top": "block/lectern_top" + }, + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#base", "cullface": "north" }, + "east": { "uv": [ 0, 6, 16, 8 ], "texture": "#base", "cullface": "east" }, + "south": { "uv": [ 0, 6, 16, 8 ], "texture": "#base", "cullface": "south" }, + "west": { "uv": [ 0, 6, 16, 8 ], "texture": "#base", "cullface": "west" }, + "up": { "uv": [ 0, 0, 16, 16 ], "rotation": 180, "texture": "#base" }, + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [4, 2, 4], + "to": [12, 15, 12], + "faces": { + "north": { "uv": [ 0, 0, 8, 13 ], "texture": "#front" }, + "east": { "uv": [ 2, 16, 15, 8 ], "rotation": 90, "texture": "#sides" }, + "south": { "uv": [ 8, 3, 16, 16 ], "texture": "#front" }, + "west": { "uv": [ 2, 8, 15, 16 ], "rotation": 90, "texture": "#sides" } + } + }, + { + "from": [ 0.0125, 12, 3 ], + "to": [ 15.9875, 16, 16 ], + "rotation": { "angle": -22.5, "axis": "x", "origin": [ 8, 8, 8 ] }, + "faces": { + "north": { "uv": [ 0, 0, 16, 4 ], "texture": "#sides" }, + "east": { "uv": [ 0, 4, 13, 8 ], "texture": "#sides" }, + "south": { "uv": [ 0, 4, 16, 8 ], "texture": "#sides" }, + "west": { "uv": [ 0, 4, 13, 8 ], "texture": "#sides" }, + "up": { "uv": [ 0, 1, 16, 14 ], "rotation": 180, "texture": "#top" }, + "down": { "uv": [ 0, 0, 16, 13 ], "texture": "#bottom" } + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lever.json b/assets/minecraft/models/block/lever.json new file mode 100644 index 00000000..14cc4f86 --- /dev/null +++ b/assets/minecraft/models/block/lever.json @@ -0,0 +1,32 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cobblestone", + "base": "block/cobblestone", + "lever": "block/lever" + }, + "elements": [ + { "from": [ 5, -0.02, 4 ], + "to": [ 11, 2.98, 12 ], + "faces": { + "down": { "uv": [ 5, 4, 11, 12 ], "texture": "#base", "cullface": "down" }, + "up": { "uv": [ 5, 4, 11, 12 ], "texture": "#base" }, + "north": { "uv": [ 5, 0, 11, 3 ], "texture": "#base" }, + "south": { "uv": [ 5, 0, 11, 3 ], "texture": "#base" }, + "west": { "uv": [ 4, 0, 12, 3 ], "texture": "#base" }, + "east": { "uv": [ 4, 0, 12, 3 ], "texture": "#base" } + } + }, + { "from": [ 7, 1, 7 ], + "to": [ 9, 11, 9 ], + "rotation": { "origin": [ 8, 1, 8 ], "axis": "x", "angle": -45 }, + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lever" }, + "north": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }, + "south": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }, + "west": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }, + "east": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" } + } + } + ] +} diff --git a/assets/minecraft/models/block/lever_on.json b/assets/minecraft/models/block/lever_on.json new file mode 100644 index 00000000..64797896 --- /dev/null +++ b/assets/minecraft/models/block/lever_on.json @@ -0,0 +1,32 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cobblestone", + "base": "block/cobblestone", + "lever": "block/lever" + }, + "elements": [ + { "from": [ 5, -0.02, 4 ], + "to": [ 11, 2.98, 12 ], + "faces": { + "down": { "uv": [ 5, 4, 11, 12 ], "texture": "#base", "cullface": "down" }, + "up": { "uv": [ 5, 4, 11, 12 ], "texture": "#base" }, + "north": { "uv": [ 5, 0, 11, 3 ], "texture": "#base" }, + "south": { "uv": [ 5, 0, 11, 3 ], "texture": "#base" }, + "west": { "uv": [ 4, 0, 12, 3 ], "texture": "#base" }, + "east": { "uv": [ 4, 0, 12, 3 ], "texture": "#base" } + } + }, + { "from": [ 7, 1, 7 ], + "to": [ 9, 11, 9 ], + "rotation": { "origin": [ 8, 1, 8 ], "axis": "x", "angle": 45 }, + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lever" }, + "north": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }, + "south": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }, + "west": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }, + "east": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" } + } + } + ] +} diff --git a/assets/minecraft/models/block/light_00.json b/assets/minecraft/models/block/light_00.json new file mode 100644 index 00000000..2ffd3ce5 --- /dev/null +++ b/assets/minecraft/models/block/light_00.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_00" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_01.json b/assets/minecraft/models/block/light_01.json new file mode 100644 index 00000000..55d7c25a --- /dev/null +++ b/assets/minecraft/models/block/light_01.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_01" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_02.json b/assets/minecraft/models/block/light_02.json new file mode 100644 index 00000000..69d18968 --- /dev/null +++ b/assets/minecraft/models/block/light_02.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_02" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_03.json b/assets/minecraft/models/block/light_03.json new file mode 100644 index 00000000..0f6fe7d8 --- /dev/null +++ b/assets/minecraft/models/block/light_03.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_03" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_04.json b/assets/minecraft/models/block/light_04.json new file mode 100644 index 00000000..d13dabfa --- /dev/null +++ b/assets/minecraft/models/block/light_04.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_04" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_05.json b/assets/minecraft/models/block/light_05.json new file mode 100644 index 00000000..f155183b --- /dev/null +++ b/assets/minecraft/models/block/light_05.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_05" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_06.json b/assets/minecraft/models/block/light_06.json new file mode 100644 index 00000000..e8412194 --- /dev/null +++ b/assets/minecraft/models/block/light_06.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_06" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_07.json b/assets/minecraft/models/block/light_07.json new file mode 100644 index 00000000..c24497b9 --- /dev/null +++ b/assets/minecraft/models/block/light_07.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_07" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_08.json b/assets/minecraft/models/block/light_08.json new file mode 100644 index 00000000..01620569 --- /dev/null +++ b/assets/minecraft/models/block/light_08.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_08" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_09.json b/assets/minecraft/models/block/light_09.json new file mode 100644 index 00000000..18691a07 --- /dev/null +++ b/assets/minecraft/models/block/light_09.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_09" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_10.json b/assets/minecraft/models/block/light_10.json new file mode 100644 index 00000000..83291415 --- /dev/null +++ b/assets/minecraft/models/block/light_10.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_10" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_11.json b/assets/minecraft/models/block/light_11.json new file mode 100644 index 00000000..1b763eb5 --- /dev/null +++ b/assets/minecraft/models/block/light_11.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_11" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_12.json b/assets/minecraft/models/block/light_12.json new file mode 100644 index 00000000..cf4b46bc --- /dev/null +++ b/assets/minecraft/models/block/light_12.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_12" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_13.json b/assets/minecraft/models/block/light_13.json new file mode 100644 index 00000000..bdb9a24e --- /dev/null +++ b/assets/minecraft/models/block/light_13.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_13" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_14.json b/assets/minecraft/models/block/light_14.json new file mode 100644 index 00000000..2206335d --- /dev/null +++ b/assets/minecraft/models/block/light_14.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_14" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_15.json b/assets/minecraft/models/block/light_15.json new file mode 100644 index 00000000..4fa669c3 --- /dev/null +++ b/assets/minecraft/models/block/light_15.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/light_15" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_cake.json b/assets/minecraft/models/block/light_blue_candle_cake.json new file mode 100644 index 00000000..8ffc42fe --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/light_blue_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_cake_lit.json b/assets/minecraft/models/block/light_blue_candle_cake_lit.json new file mode 100644 index 00000000..85fd0a8f --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/light_blue_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_four_candles.json b/assets/minecraft/models/block/light_blue_candle_four_candles.json new file mode 100644 index 00000000..503ddb22 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/light_blue_candle", + "particle": "minecraft:block/light_blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_four_candles_lit.json b/assets/minecraft/models/block/light_blue_candle_four_candles_lit.json new file mode 100644 index 00000000..b7ee670c --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/light_blue_candle_lit", + "particle": "minecraft:block/light_blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_one_candle.json b/assets/minecraft/models/block/light_blue_candle_one_candle.json new file mode 100644 index 00000000..37d165d6 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/light_blue_candle", + "particle": "minecraft:block/light_blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_one_candle_lit.json b/assets/minecraft/models/block/light_blue_candle_one_candle_lit.json new file mode 100644 index 00000000..be1f1768 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/light_blue_candle_lit", + "particle": "minecraft:block/light_blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_three_candles.json b/assets/minecraft/models/block/light_blue_candle_three_candles.json new file mode 100644 index 00000000..d735cda7 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/light_blue_candle", + "particle": "minecraft:block/light_blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_three_candles_lit.json b/assets/minecraft/models/block/light_blue_candle_three_candles_lit.json new file mode 100644 index 00000000..4a481843 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/light_blue_candle_lit", + "particle": "minecraft:block/light_blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_two_candles.json b/assets/minecraft/models/block/light_blue_candle_two_candles.json new file mode 100644 index 00000000..ec4da566 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/light_blue_candle", + "particle": "minecraft:block/light_blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_candle_two_candles_lit.json b/assets/minecraft/models/block/light_blue_candle_two_candles_lit.json new file mode 100644 index 00000000..d9928775 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/light_blue_candle_lit", + "particle": "minecraft:block/light_blue_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_carpet.json b/assets/minecraft/models/block/light_blue_carpet.json new file mode 100644 index 00000000..e1949fe8 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/light_blue_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_concrete.json b/assets/minecraft/models/block/light_blue_concrete.json new file mode 100644 index 00000000..28590f93 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_blue_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_concrete_powder.json b/assets/minecraft/models/block/light_blue_concrete_powder.json new file mode 100644 index 00000000..f660be90 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_blue_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_glazed_terracotta.json b/assets/minecraft/models/block/light_blue_glazed_terracotta.json new file mode 100644 index 00000000..86980349 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/light_blue_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_shulker_box.json b/assets/minecraft/models/block/light_blue_shulker_box.json new file mode 100644 index 00000000..41f67725 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/light_blue_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_stained_glass.json b/assets/minecraft/models/block/light_blue_stained_glass.json new file mode 100644 index 00000000..6011b954 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_stained_glass_pane_noside.json b/assets/minecraft/models/block/light_blue_stained_glass_pane_noside.json new file mode 100644 index 00000000..66b5851a --- /dev/null +++ b/assets/minecraft/models/block/light_blue_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/light_blue_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..3c028538 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_stained_glass_pane_post.json b/assets/minecraft/models/block/light_blue_stained_glass_pane_post.json new file mode 100644 index 00000000..79b4de1e --- /dev/null +++ b/assets/minecraft/models/block/light_blue_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/light_blue_stained_glass_pane_top", + "pane": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_stained_glass_pane_side.json b/assets/minecraft/models/block/light_blue_stained_glass_pane_side.json new file mode 100644 index 00000000..f5f26875 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/light_blue_stained_glass_pane_top", + "pane": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/light_blue_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..7fb82b11 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/light_blue_stained_glass_pane_top", + "pane": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_terracotta.json b/assets/minecraft/models/block/light_blue_terracotta.json new file mode 100644 index 00000000..24816bc4 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_blue_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_blue_wool.json b/assets/minecraft/models/block/light_blue_wool.json new file mode 100644 index 00000000..4a4b3f04 --- /dev/null +++ b/assets/minecraft/models/block/light_blue_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_blue_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_cake.json b/assets/minecraft/models/block/light_gray_candle_cake.json new file mode 100644 index 00000000..119a3bcd --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/light_gray_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_cake_lit.json b/assets/minecraft/models/block/light_gray_candle_cake_lit.json new file mode 100644 index 00000000..332eb93d --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/light_gray_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_four_candles.json b/assets/minecraft/models/block/light_gray_candle_four_candles.json new file mode 100644 index 00000000..0559aae1 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/light_gray_candle", + "particle": "minecraft:block/light_gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_four_candles_lit.json b/assets/minecraft/models/block/light_gray_candle_four_candles_lit.json new file mode 100644 index 00000000..24912bfb --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/light_gray_candle_lit", + "particle": "minecraft:block/light_gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_one_candle.json b/assets/minecraft/models/block/light_gray_candle_one_candle.json new file mode 100644 index 00000000..b329a100 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/light_gray_candle", + "particle": "minecraft:block/light_gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_one_candle_lit.json b/assets/minecraft/models/block/light_gray_candle_one_candle_lit.json new file mode 100644 index 00000000..1099f9a5 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/light_gray_candle_lit", + "particle": "minecraft:block/light_gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_three_candles.json b/assets/minecraft/models/block/light_gray_candle_three_candles.json new file mode 100644 index 00000000..097d975f --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/light_gray_candle", + "particle": "minecraft:block/light_gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_three_candles_lit.json b/assets/minecraft/models/block/light_gray_candle_three_candles_lit.json new file mode 100644 index 00000000..85f44ad7 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/light_gray_candle_lit", + "particle": "minecraft:block/light_gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_two_candles.json b/assets/minecraft/models/block/light_gray_candle_two_candles.json new file mode 100644 index 00000000..73639430 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/light_gray_candle", + "particle": "minecraft:block/light_gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_candle_two_candles_lit.json b/assets/minecraft/models/block/light_gray_candle_two_candles_lit.json new file mode 100644 index 00000000..8010674d --- /dev/null +++ b/assets/minecraft/models/block/light_gray_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/light_gray_candle_lit", + "particle": "minecraft:block/light_gray_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_carpet.json b/assets/minecraft/models/block/light_gray_carpet.json new file mode 100644 index 00000000..29042319 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/light_gray_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_concrete.json b/assets/minecraft/models/block/light_gray_concrete.json new file mode 100644 index 00000000..a723d19e --- /dev/null +++ b/assets/minecraft/models/block/light_gray_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_gray_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_concrete_powder.json b/assets/minecraft/models/block/light_gray_concrete_powder.json new file mode 100644 index 00000000..bcbe6853 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_gray_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_glazed_terracotta.json b/assets/minecraft/models/block/light_gray_glazed_terracotta.json new file mode 100644 index 00000000..4732a356 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/light_gray_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_shulker_box.json b/assets/minecraft/models/block/light_gray_shulker_box.json new file mode 100644 index 00000000..265780f9 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/light_gray_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_stained_glass.json b/assets/minecraft/models/block/light_gray_stained_glass.json new file mode 100644 index 00000000..bf861d69 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_stained_glass_pane_noside.json b/assets/minecraft/models/block/light_gray_stained_glass_pane_noside.json new file mode 100644 index 00000000..e31a39fd --- /dev/null +++ b/assets/minecraft/models/block/light_gray_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/light_gray_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..3b24feda --- /dev/null +++ b/assets/minecraft/models/block/light_gray_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_stained_glass_pane_post.json b/assets/minecraft/models/block/light_gray_stained_glass_pane_post.json new file mode 100644 index 00000000..8efbcf68 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/light_gray_stained_glass_pane_top", + "pane": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_stained_glass_pane_side.json b/assets/minecraft/models/block/light_gray_stained_glass_pane_side.json new file mode 100644 index 00000000..11e77c2c --- /dev/null +++ b/assets/minecraft/models/block/light_gray_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/light_gray_stained_glass_pane_top", + "pane": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/light_gray_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..241d7599 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/light_gray_stained_glass_pane_top", + "pane": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_terracotta.json b/assets/minecraft/models/block/light_gray_terracotta.json new file mode 100644 index 00000000..19aa6402 --- /dev/null +++ b/assets/minecraft/models/block/light_gray_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_gray_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_gray_wool.json b/assets/minecraft/models/block/light_gray_wool.json new file mode 100644 index 00000000..d490cc2e --- /dev/null +++ b/assets/minecraft/models/block/light_gray_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/light_gray_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_weighted_pressure_plate.json b/assets/minecraft/models/block/light_weighted_pressure_plate.json new file mode 100644 index 00000000..7941d43f --- /dev/null +++ b/assets/minecraft/models/block/light_weighted_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/gold_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/light_weighted_pressure_plate_down.json b/assets/minecraft/models/block/light_weighted_pressure_plate_down.json new file mode 100644 index 00000000..8e9c2926 --- /dev/null +++ b/assets/minecraft/models/block/light_weighted_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/gold_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lightning_rod.json b/assets/minecraft/models/block/lightning_rod.json new file mode 100644 index 00000000..1f738f3a --- /dev/null +++ b/assets/minecraft/models/block/lightning_rod.json @@ -0,0 +1,40 @@ +{ + "parent": "block/block", + "display": { + "head": { + "rotation": [ -180, 0, 0 ], + "translation": [ 8.5, 4, 0 ] + }, + "thirdperson_righthand": { + "translation": [ 0, 2, 0.5], + "scale": [ 0.40, 0.40, 0.40 ] + } + }, + "textures": { + "texture": "block/lightning_rod", + "particle": "block/lightning_rod" + }, + "elements": [ + { "from": [ 6, 12, 6 ], + "to": [ 10, 16, 10 ], + "faces": { + "north": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "south": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "west": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "east": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#texture" }, + "up": { "uv": [ 4, 4, 0, 0 ], "texture": "#texture" } + } + }, + { "from": [ 7, 0, 7 ], + "to": [ 9, 12, 9 ], + "faces": { + "north": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "south": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "west": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "east": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "down": { "uv": [ 0, 4, 2, 6 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/lightning_rod_on.json b/assets/minecraft/models/block/lightning_rod_on.json new file mode 100644 index 00000000..893cccfa --- /dev/null +++ b/assets/minecraft/models/block/lightning_rod_on.json @@ -0,0 +1,32 @@ +{ + "parent": "block/block", + "textures": { + "texture": "block/lightning_rod_on", + "particle": "block/lightning_rod_on" + }, + "elements": [ + { "from": [ 6, 12, 6 ], + "to": [ 10, 16, 10 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "south": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "west": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "east": { "uv": [ 0, 0, 4, 4 ],"texture": "#texture" }, + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#texture" }, + "up": { "uv": [ 4, 4, 0, 0 ], "texture": "#texture" } + } + }, + { "from": [ 7, 0, 7 ], + "to": [ 9, 12, 9 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "south": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "west": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "east": { "uv": [ 0, 4, 2, 16 ],"texture": "#texture" }, + "down": { "uv": [ 0, 4, 2, 16 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/lilac_bottom.json b/assets/minecraft/models/block/lilac_bottom.json new file mode 100644 index 00000000..e1bf8969 --- /dev/null +++ b/assets/minecraft/models/block/lilac_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/lilac_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lilac_top.json b/assets/minecraft/models/block/lilac_top.json new file mode 100644 index 00000000..e5fc35b7 --- /dev/null +++ b/assets/minecraft/models/block/lilac_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/lilac_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lily_of_the_valley.json b/assets/minecraft/models/block/lily_of_the_valley.json new file mode 100644 index 00000000..6f0a89ac --- /dev/null +++ b/assets/minecraft/models/block/lily_of_the_valley.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/lily_of_the_valley" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lily_pad.json b/assets/minecraft/models/block/lily_pad.json new file mode 100644 index 00000000..6b27e40b --- /dev/null +++ b/assets/minecraft/models/block/lily_pad.json @@ -0,0 +1,16 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/lily_pad", + "texture": "block/lily_pad" + }, + "elements": [ + { "from": [ 0, 0.25, 0 ], + "to": [ 16, 0.25, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "tintindex": 0 }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/lime_candle_cake.json b/assets/minecraft/models/block/lime_candle_cake.json new file mode 100644 index 00000000..91326eab --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/lime_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_cake_lit.json b/assets/minecraft/models/block/lime_candle_cake_lit.json new file mode 100644 index 00000000..45657c7b --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/lime_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_four_candles.json b/assets/minecraft/models/block/lime_candle_four_candles.json new file mode 100644 index 00000000..55b45a95 --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/lime_candle", + "particle": "minecraft:block/lime_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_four_candles_lit.json b/assets/minecraft/models/block/lime_candle_four_candles_lit.json new file mode 100644 index 00000000..85a6d2fe --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/lime_candle_lit", + "particle": "minecraft:block/lime_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_one_candle.json b/assets/minecraft/models/block/lime_candle_one_candle.json new file mode 100644 index 00000000..254b4eb4 --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/lime_candle", + "particle": "minecraft:block/lime_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_one_candle_lit.json b/assets/minecraft/models/block/lime_candle_one_candle_lit.json new file mode 100644 index 00000000..a6c8b987 --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/lime_candle_lit", + "particle": "minecraft:block/lime_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_three_candles.json b/assets/minecraft/models/block/lime_candle_three_candles.json new file mode 100644 index 00000000..e71d2220 --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/lime_candle", + "particle": "minecraft:block/lime_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_three_candles_lit.json b/assets/minecraft/models/block/lime_candle_three_candles_lit.json new file mode 100644 index 00000000..738f8dc4 --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/lime_candle_lit", + "particle": "minecraft:block/lime_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_two_candles.json b/assets/minecraft/models/block/lime_candle_two_candles.json new file mode 100644 index 00000000..50edf847 --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/lime_candle", + "particle": "minecraft:block/lime_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_candle_two_candles_lit.json b/assets/minecraft/models/block/lime_candle_two_candles_lit.json new file mode 100644 index 00000000..5736293c --- /dev/null +++ b/assets/minecraft/models/block/lime_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/lime_candle_lit", + "particle": "minecraft:block/lime_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_carpet.json b/assets/minecraft/models/block/lime_carpet.json new file mode 100644 index 00000000..028c4987 --- /dev/null +++ b/assets/minecraft/models/block/lime_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/lime_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_concrete.json b/assets/minecraft/models/block/lime_concrete.json new file mode 100644 index 00000000..e0e92123 --- /dev/null +++ b/assets/minecraft/models/block/lime_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/lime_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_concrete_powder.json b/assets/minecraft/models/block/lime_concrete_powder.json new file mode 100644 index 00000000..48f4b696 --- /dev/null +++ b/assets/minecraft/models/block/lime_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/lime_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_glazed_terracotta.json b/assets/minecraft/models/block/lime_glazed_terracotta.json new file mode 100644 index 00000000..b6211a73 --- /dev/null +++ b/assets/minecraft/models/block/lime_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/lime_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_shulker_box.json b/assets/minecraft/models/block/lime_shulker_box.json new file mode 100644 index 00000000..aafff7dd --- /dev/null +++ b/assets/minecraft/models/block/lime_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/lime_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_stained_glass.json b/assets/minecraft/models/block/lime_stained_glass.json new file mode 100644 index 00000000..b06899ca --- /dev/null +++ b/assets/minecraft/models/block/lime_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_stained_glass_pane_noside.json b/assets/minecraft/models/block/lime_stained_glass_pane_noside.json new file mode 100644 index 00000000..51a062c5 --- /dev/null +++ b/assets/minecraft/models/block/lime_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/lime_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..7b0a67ac --- /dev/null +++ b/assets/minecraft/models/block/lime_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_stained_glass_pane_post.json b/assets/minecraft/models/block/lime_stained_glass_pane_post.json new file mode 100644 index 00000000..92ec01f0 --- /dev/null +++ b/assets/minecraft/models/block/lime_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/lime_stained_glass_pane_top", + "pane": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_stained_glass_pane_side.json b/assets/minecraft/models/block/lime_stained_glass_pane_side.json new file mode 100644 index 00000000..c54306a0 --- /dev/null +++ b/assets/minecraft/models/block/lime_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/lime_stained_glass_pane_top", + "pane": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/lime_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..6f12dd06 --- /dev/null +++ b/assets/minecraft/models/block/lime_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/lime_stained_glass_pane_top", + "pane": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_terracotta.json b/assets/minecraft/models/block/lime_terracotta.json new file mode 100644 index 00000000..7a7ee776 --- /dev/null +++ b/assets/minecraft/models/block/lime_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/lime_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lime_wool.json b/assets/minecraft/models/block/lime_wool.json new file mode 100644 index 00000000..3452083b --- /dev/null +++ b/assets/minecraft/models/block/lime_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/lime_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/lodestone.json b/assets/minecraft/models/block/lodestone.json new file mode 100644 index 00000000..f38f3e9a --- /dev/null +++ b/assets/minecraft/models/block/lodestone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/lodestone_top", + "side": "minecraft:block/lodestone_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/loom.json b/assets/minecraft/models/block/loom.json new file mode 100644 index 00000000..66f7792d --- /dev/null +++ b/assets/minecraft/models/block/loom.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/orientable_with_bottom", + "textures": { + "bottom": "minecraft:block/loom_bottom", + "front": "minecraft:block/loom_front", + "side": "minecraft:block/loom_side", + "top": "minecraft:block/loom_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_cake.json b/assets/minecraft/models/block/magenta_candle_cake.json new file mode 100644 index 00000000..4f8d51e1 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/magenta_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_cake_lit.json b/assets/minecraft/models/block/magenta_candle_cake_lit.json new file mode 100644 index 00000000..0aadfeb3 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/magenta_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_four_candles.json b/assets/minecraft/models/block/magenta_candle_four_candles.json new file mode 100644 index 00000000..cc10d412 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/magenta_candle", + "particle": "minecraft:block/magenta_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_four_candles_lit.json b/assets/minecraft/models/block/magenta_candle_four_candles_lit.json new file mode 100644 index 00000000..5c41051c --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/magenta_candle_lit", + "particle": "minecraft:block/magenta_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_one_candle.json b/assets/minecraft/models/block/magenta_candle_one_candle.json new file mode 100644 index 00000000..6cbff941 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/magenta_candle", + "particle": "minecraft:block/magenta_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_one_candle_lit.json b/assets/minecraft/models/block/magenta_candle_one_candle_lit.json new file mode 100644 index 00000000..39f81c17 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/magenta_candle_lit", + "particle": "minecraft:block/magenta_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_three_candles.json b/assets/minecraft/models/block/magenta_candle_three_candles.json new file mode 100644 index 00000000..90d34d68 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/magenta_candle", + "particle": "minecraft:block/magenta_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_three_candles_lit.json b/assets/minecraft/models/block/magenta_candle_three_candles_lit.json new file mode 100644 index 00000000..f648690c --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/magenta_candle_lit", + "particle": "minecraft:block/magenta_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_two_candles.json b/assets/minecraft/models/block/magenta_candle_two_candles.json new file mode 100644 index 00000000..128514c3 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/magenta_candle", + "particle": "minecraft:block/magenta_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_candle_two_candles_lit.json b/assets/minecraft/models/block/magenta_candle_two_candles_lit.json new file mode 100644 index 00000000..476532a7 --- /dev/null +++ b/assets/minecraft/models/block/magenta_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/magenta_candle_lit", + "particle": "minecraft:block/magenta_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_carpet.json b/assets/minecraft/models/block/magenta_carpet.json new file mode 100644 index 00000000..466161a3 --- /dev/null +++ b/assets/minecraft/models/block/magenta_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/magenta_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_concrete.json b/assets/minecraft/models/block/magenta_concrete.json new file mode 100644 index 00000000..73bbc6d4 --- /dev/null +++ b/assets/minecraft/models/block/magenta_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/magenta_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_concrete_powder.json b/assets/minecraft/models/block/magenta_concrete_powder.json new file mode 100644 index 00000000..e5a38d46 --- /dev/null +++ b/assets/minecraft/models/block/magenta_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/magenta_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_glazed_terracotta.json b/assets/minecraft/models/block/magenta_glazed_terracotta.json new file mode 100644 index 00000000..f36a5e7d --- /dev/null +++ b/assets/minecraft/models/block/magenta_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/magenta_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_shulker_box.json b/assets/minecraft/models/block/magenta_shulker_box.json new file mode 100644 index 00000000..6bb156a3 --- /dev/null +++ b/assets/minecraft/models/block/magenta_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/magenta_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_stained_glass.json b/assets/minecraft/models/block/magenta_stained_glass.json new file mode 100644 index 00000000..6e4da4ca --- /dev/null +++ b/assets/minecraft/models/block/magenta_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_stained_glass_pane_noside.json b/assets/minecraft/models/block/magenta_stained_glass_pane_noside.json new file mode 100644 index 00000000..8d6019b8 --- /dev/null +++ b/assets/minecraft/models/block/magenta_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/magenta_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..7b2ba6d5 --- /dev/null +++ b/assets/minecraft/models/block/magenta_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_stained_glass_pane_post.json b/assets/minecraft/models/block/magenta_stained_glass_pane_post.json new file mode 100644 index 00000000..d19e8217 --- /dev/null +++ b/assets/minecraft/models/block/magenta_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/magenta_stained_glass_pane_top", + "pane": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_stained_glass_pane_side.json b/assets/minecraft/models/block/magenta_stained_glass_pane_side.json new file mode 100644 index 00000000..4fd5b622 --- /dev/null +++ b/assets/minecraft/models/block/magenta_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/magenta_stained_glass_pane_top", + "pane": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/magenta_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..06ff17ab --- /dev/null +++ b/assets/minecraft/models/block/magenta_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/magenta_stained_glass_pane_top", + "pane": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_terracotta.json b/assets/minecraft/models/block/magenta_terracotta.json new file mode 100644 index 00000000..bd2bcfa0 --- /dev/null +++ b/assets/minecraft/models/block/magenta_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/magenta_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magenta_wool.json b/assets/minecraft/models/block/magenta_wool.json new file mode 100644 index 00000000..9111ee09 --- /dev/null +++ b/assets/minecraft/models/block/magenta_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/magenta_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/magma_block.json b/assets/minecraft/models/block/magma_block.json new file mode 100644 index 00000000..b9678ef1 --- /dev/null +++ b/assets/minecraft/models/block/magma_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/magma" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_button.json b/assets/minecraft/models/block/mangrove_button.json new file mode 100644 index 00000000..c5854e73 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_button_inventory.json b/assets/minecraft/models/block/mangrove_button_inventory.json new file mode 100644 index 00000000..b79a34db --- /dev/null +++ b/assets/minecraft/models/block/mangrove_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_button_pressed.json b/assets/minecraft/models/block/mangrove_button_pressed.json new file mode 100644 index 00000000..6981fdfb --- /dev/null +++ b/assets/minecraft/models/block/mangrove_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_bottom_left.json b/assets/minecraft/models/block/mangrove_door_bottom_left.json new file mode 100644 index 00000000..621e58e9 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_bottom_left_open.json b/assets/minecraft/models/block/mangrove_door_bottom_left_open.json new file mode 100644 index 00000000..93f1c66e --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_bottom_right.json b/assets/minecraft/models/block/mangrove_door_bottom_right.json new file mode 100644 index 00000000..5789fc87 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_bottom_right_open.json b/assets/minecraft/models/block/mangrove_door_bottom_right_open.json new file mode 100644 index 00000000..867d0205 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_top_left.json b/assets/minecraft/models/block/mangrove_door_top_left.json new file mode 100644 index 00000000..c4f7b287 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_top_left_open.json b/assets/minecraft/models/block/mangrove_door_top_left_open.json new file mode 100644 index 00000000..37008c90 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_top_right.json b/assets/minecraft/models/block/mangrove_door_top_right.json new file mode 100644 index 00000000..856a014e --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_door_top_right_open.json b/assets/minecraft/models/block/mangrove_door_top_right_open.json new file mode 100644 index 00000000..7135cd92 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/mangrove_door_bottom", + "top": "minecraft:block/mangrove_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_fence_gate.json b/assets/minecraft/models/block/mangrove_fence_gate.json new file mode 100644 index 00000000..b09253c7 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_fence_gate_open.json b/assets/minecraft/models/block/mangrove_fence_gate_open.json new file mode 100644 index 00000000..00395e06 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_fence_gate_wall.json b/assets/minecraft/models/block/mangrove_fence_gate_wall.json new file mode 100644 index 00000000..b6a2f0ed --- /dev/null +++ b/assets/minecraft/models/block/mangrove_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_fence_gate_wall_open.json b/assets/minecraft/models/block/mangrove_fence_gate_wall_open.json new file mode 100644 index 00000000..34950c03 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_fence_inventory.json b/assets/minecraft/models/block/mangrove_fence_inventory.json new file mode 100644 index 00000000..dd63182e --- /dev/null +++ b/assets/minecraft/models/block/mangrove_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_fence_post.json b/assets/minecraft/models/block/mangrove_fence_post.json new file mode 100644 index 00000000..49dc45bc --- /dev/null +++ b/assets/minecraft/models/block/mangrove_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_fence_side.json b/assets/minecraft/models/block/mangrove_fence_side.json new file mode 100644 index 00000000..2f3b40b3 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_hanging_sign.json b/assets/minecraft/models/block/mangrove_hanging_sign.json new file mode 100644 index 00000000..0dbd2177 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_mangrove_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_leaves.json b/assets/minecraft/models/block/mangrove_leaves.json new file mode 100644 index 00000000..1500d997 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/mangrove_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_log.json b/assets/minecraft/models/block/mangrove_log.json new file mode 100644 index 00000000..da563901 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/mangrove_log_top", + "side": "minecraft:block/mangrove_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_log_horizontal.json b/assets/minecraft/models/block/mangrove_log_horizontal.json new file mode 100644 index 00000000..a2b809c2 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/mangrove_log_top", + "side": "minecraft:block/mangrove_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_planks.json b/assets/minecraft/models/block/mangrove_planks.json new file mode 100644 index 00000000..ec9b48e9 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_pressure_plate.json b/assets/minecraft/models/block/mangrove_pressure_plate.json new file mode 100644 index 00000000..7d812727 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_pressure_plate_down.json b/assets/minecraft/models/block/mangrove_pressure_plate_down.json new file mode 100644 index 00000000..1fc80b84 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_propagule.json b/assets/minecraft/models/block/mangrove_propagule.json new file mode 100644 index 00000000..02d4c1a5 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_propagule.json @@ -0,0 +1,49 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/mangrove_propagule", + "sapling": "block/mangrove_propagule" + }, + "elements": [ + { + "name": "leaves", + "from": [4.5, 9, 8], + "to": [11.5, 15, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "north": {"uv": [4, 1, 11, 7], "texture": "#sapling"}, + "south": {"uv": [4, 1, 11, 7], "texture": "#sapling"} + } + }, + { + "name": "leaves", + "from": [8, 9, 4.5], + "to": [8, 15, 11.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "east": {"uv": [4, 1, 11, 7], "texture": "#sapling"}, + "west": {"uv": [4, 1, 11, 7], "texture": "#sapling"} + } + }, + { + "name": "hypocotyl", + "from": [8, 0, 7], + "to": [8, 9, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "east": {"uv": [7, 7, 9, 16], "texture": "#sapling"}, + "west": {"uv": [7, 7, 9, 16], "texture": "#sapling"} + } + }, + { + "name": "hypocotyl", + "from": [7, 0, 8], + "to": [9, 9, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "north": {"uv": [7, 7, 9, 16], "texture": "#sapling"}, + "south": {"uv": [7, 7, 9, 16], "texture": "#sapling"} + } + } + ] +} diff --git a/assets/minecraft/models/block/mangrove_propagule_hanging_0.json b/assets/minecraft/models/block/mangrove_propagule_hanging_0.json new file mode 100644 index 00000000..f6c4a9be --- /dev/null +++ b/assets/minecraft/models/block/mangrove_propagule_hanging_0.json @@ -0,0 +1,100 @@ +{ + "parent": "block/block", + "textures": { + "propagule": "block/mangrove_propagule_hanging", + "particle": "block/mangrove_propagule_hanging" + }, + "elements": [ + { + "from": [7, 13.61104, 10.07193], + "to": [9, 13.61104, 12.07193], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "texture": "#propagule"} + } + }, + { + "from": [10.07193, 13.61104, 7], + "to": [12.07193, 13.61104, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 90, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 90, "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 3.92807], + "to": [9, 13.61104, 5.92807], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 180, "texture": "#propagule"} + } + }, + { + "from": [3.92807, 13.61104, 7], + "to": [5.92807, 13.61104, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 270, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 270, "texture": "#propagule"} + } + }, + { + "from": [7, 13, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "east": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "south": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "west": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "down": {"uv": [0, 3, 2, 5], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + } + ] +} diff --git a/assets/minecraft/models/block/mangrove_propagule_hanging_1.json b/assets/minecraft/models/block/mangrove_propagule_hanging_1.json new file mode 100644 index 00000000..2bea314e --- /dev/null +++ b/assets/minecraft/models/block/mangrove_propagule_hanging_1.json @@ -0,0 +1,113 @@ +{ + "parent": "block/block", + "textures": { + "propagule": "block/mangrove_propagule_hanging", + "particle": "block/mangrove_propagule_hanging" + }, + "elements": [ + { + "from": [7, 10, 7], + "to": [9, 13, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "east": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "south": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "west": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "up": {"uv": [0, 5, 2, 7], "texture": "#propagule"}, + "down": {"uv": [0, 5, 2, 7], "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 10.07193], + "to": [9, 13.61104, 12.07193], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "texture": "#propagule"} + } + }, + { + "from": [10.07193, 13.61104, 7], + "to": [12.07193, 13.61104, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 90, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 90, "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 3.92807], + "to": [9, 13.61104, 5.92807], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 180, "texture": "#propagule"} + } + }, + { + "from": [3.92807, 13.61104, 7], + "to": [5.92807, 13.61104, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 270, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 270, "texture": "#propagule"} + } + }, + { + "from": [7, 13, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "east": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "south": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "west": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "down": {"uv": [0, 3, 2, 5], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + } + ] +} diff --git a/assets/minecraft/models/block/mangrove_propagule_hanging_2.json b/assets/minecraft/models/block/mangrove_propagule_hanging_2.json new file mode 100644 index 00000000..fc008f49 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_propagule_hanging_2.json @@ -0,0 +1,139 @@ +{ + "parent": "block/block", + "textures": { + "propagule": "block/mangrove_propagule_hanging", + "particle": "block/mangrove_propagule_hanging" + }, + "elements": [ + { + "from": [7, 10, 7], + "to": [9, 13, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "east": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "south": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "west": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "up": {"uv": [0, 5, 2, 7], "texture": "#propagule"}, + "down": {"uv": [0, 10, 2, 12], "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 10.07193], + "to": [9, 13.61104, 12.07193], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "texture": "#propagule"} + } + }, + { + "from": [10.07193, 13.61104, 7], + "to": [12.07193, 13.61104, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 90, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 90, "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 3.92807], + "to": [9, 13.61104, 5.92807], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 180, "texture": "#propagule"} + } + }, + { + "from": [3.92807, 13.61104, 7], + "to": [5.92807, 13.61104, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 270, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 270, "texture": "#propagule"} + } + }, + { + "from": [7, 13, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "east": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "south": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "west": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "down": {"uv": [0, 3, 2, 5], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 7, 8], + "to": [9, 10, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [3, 7, 5, 10], "texture": "#propagule"}, + "east": {"uv": [13, 0, 13, 10], "texture": "#propagule"}, + "south": {"uv": [3, 7, 5, 10], "texture": "#propagule"}, + "west": {"uv": [11, 0, 11, 10], "texture": "#propagule"}, + "up": {"uv": [11, 0, 13, 0], "texture": "#propagule"}, + "down": {"uv": [11, 10, 13, 10], "texture": "#propagule"} + } + }, + { + "from": [7, 7, 8], + "to": [9, 10, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [3, 7, 5, 10], "texture": "#propagule"}, + "east": {"uv": [11, 0, 11, 10], "texture": "#propagule"}, + "south": {"uv": [3, 7, 5, 10], "texture": "#propagule"}, + "west": {"uv": [13, 0, 13, 10], "texture": "#propagule"}, + "up": {"uv": [11, 0, 13, 0], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [11, 10, 13, 10], "rotation": 180, "texture": "#propagule"} + } + } + ] +} diff --git a/assets/minecraft/models/block/mangrove_propagule_hanging_3.json b/assets/minecraft/models/block/mangrove_propagule_hanging_3.json new file mode 100644 index 00000000..4ea6db3d --- /dev/null +++ b/assets/minecraft/models/block/mangrove_propagule_hanging_3.json @@ -0,0 +1,139 @@ +{ + "parent": "block/block", + "textures": { + "propagule": "block/mangrove_propagule_hanging", + "particle": "block/mangrove_propagule_hanging" + }, + "elements": [ + { + "from": [7, 10, 7], + "to": [9, 13, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "east": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "south": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "west": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "up": {"uv": [0, 5, 2, 7], "texture": "#propagule"}, + "down": {"uv": [0, 10, 2, 12], "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 10.07193], + "to": [9, 13.61104, 12.07193], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "texture": "#propagule"} + } + }, + { + "from": [10.07193, 13.61104, 7], + "to": [12.07193, 13.61104, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 90, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 90, "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 3.92807], + "to": [9, 13.61104, 5.92807], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 180, "texture": "#propagule"} + } + }, + { + "from": [3.92807, 13.61104, 7], + "to": [5.92807, 13.61104, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 270, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 270, "texture": "#propagule"} + } + }, + { + "from": [7, 13, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "east": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "south": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "west": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "down": {"uv": [0, 3, 2, 5], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 3, 8], + "to": [9, 10, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [3, 3, 5, 10], "texture": "#propagule"}, + "east": {"uv": [13, 0, 13, 10], "texture": "#propagule"}, + "south": {"uv": [3, 3, 5, 10], "texture": "#propagule"}, + "west": {"uv": [11, 0, 11, 10], "texture": "#propagule"}, + "up": {"uv": [11, 0, 13, 0], "texture": "#propagule"}, + "down": {"uv": [11, 10, 13, 10], "texture": "#propagule"} + } + }, + { + "from": [7, 3, 8], + "to": [9, 10, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [3, 3, 5, 10], "texture": "#propagule"}, + "east": {"uv": [11, 0, 11, 10], "texture": "#propagule"}, + "south": {"uv": [3, 3, 5, 10], "texture": "#propagule"}, + "west": {"uv": [13, 0, 13, 10], "texture": "#propagule"}, + "up": {"uv": [11, 0, 13, 0], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [11, 10, 13, 10], "rotation": 180, "texture": "#propagule"} + } + } + ] +} diff --git a/assets/minecraft/models/block/mangrove_propagule_hanging_4.json b/assets/minecraft/models/block/mangrove_propagule_hanging_4.json new file mode 100644 index 00000000..a6086f3a --- /dev/null +++ b/assets/minecraft/models/block/mangrove_propagule_hanging_4.json @@ -0,0 +1,139 @@ +{ + "parent": "block/block", + "textures": { + "propagule": "block/mangrove_propagule_hanging", + "particle": "block/mangrove_propagule_hanging" + }, + "elements": [ + { + "from": [7, 10, 7], + "to": [9, 13, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "east": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "south": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "west": {"uv": [0, 7, 2, 10], "texture": "#propagule"}, + "up": {"uv": [0, 5, 2, 7], "texture": "#propagule"}, + "down": {"uv": [0, 10, 2, 12], "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 10.07193], + "to": [9, 13.61104, 12.07193], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "texture": "#propagule"} + } + }, + { + "from": [10.07193, 13.61104, 7], + "to": [12.07193, 13.61104, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 90, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 90, "texture": "#propagule"} + } + }, + { + "from": [7, 13.61104, 3.92807], + "to": [9, 13.61104, 5.92807], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 180, "texture": "#propagule"} + } + }, + { + "from": [3.92807, 13.61104, 7], + "to": [5.92807, 13.61104, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "up": {"uv": [8, 3, 10, 5], "rotation": 270, "texture": "#propagule"}, + "down": {"uv": [6, 3, 8, 5], "rotation": 270, "texture": "#propagule"} + } + }, + { + "from": [7, 13, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "east": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "south": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "west": {"uv": [0, 2, 2, 3], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "down": {"uv": [0, 3, 2, 5], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 16, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#propagule"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#propagule"}, + "up": {"uv": [0, 0, 2, 0], "texture": "#propagule"}, + "down": {"uv": [0, 0, 2, 0], "texture": "#propagule"} + } + }, + { + "from": [7, 0, 8], + "to": [9, 10, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [3, 0, 5, 10], "texture": "#propagule"}, + "east": {"uv": [13, 0, 13, 10], "texture": "#propagule"}, + "south": {"uv": [3, 0, 5, 10], "texture": "#propagule"}, + "west": {"uv": [11, 0, 11, 10], "texture": "#propagule"}, + "up": {"uv": [11, 0, 13, 0], "texture": "#propagule"}, + "down": {"uv": [11, 10, 13, 10], "texture": "#propagule"} + } + }, + { + "from": [7, 0, 8], + "to": [9, 10, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [3, 0, 5, 10], "texture": "#propagule"}, + "east": {"uv": [11, 0, 11, 10], "texture": "#propagule"}, + "south": {"uv": [3, 0, 5, 10], "texture": "#propagule"}, + "west": {"uv": [13, 0, 13, 10], "texture": "#propagule"}, + "up": {"uv": [11, 0, 13, 0], "rotation": 180, "texture": "#propagule"}, + "down": {"uv": [11, 10, 13, 10], "rotation": 180, "texture": "#propagule"} + } + } + ] +} diff --git a/assets/minecraft/models/block/mangrove_roots.json b/assets/minecraft/models/block/mangrove_roots.json new file mode 100644 index 00000000..eda9523d --- /dev/null +++ b/assets/minecraft/models/block/mangrove_roots.json @@ -0,0 +1,74 @@ +{ + "parent": "block/block", + "textures": { + "side": "block/mangrove_roots_side", + "top": "block/mangrove_roots_top", + "particle": "#side" + }, + "elements": [ + { + "from": [ 0, 0, 8 ], + "to": [ 16, 16, 8 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + }, + { + "from": [ 8, 0, 0 ], + "to": [ 8, 16, 16 ], + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + }, + { + "from": [ 0, 15.998, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#top", "cullface": "up" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "up" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 16, 0.002, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "down" }, + "up": { "uv": [ 0, 16, 16, 0 ], "texture": "#top", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 0.002 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#side", "cullface": "north" } + } + }, + { + "from": [ 0, 0, 15.998 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#side", "cullface": "south" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "south" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 0.002, 16, 16 ], + "faces": { + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#side", "cullface": "west" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "west" } + } + }, + { + "from": [ 15.998, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "east" }, + "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/mangrove_sign.json b/assets/minecraft/models/block/mangrove_sign.json new file mode 100644 index 00000000..a3868f4f --- /dev/null +++ b/assets/minecraft/models/block/mangrove_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_slab.json b/assets/minecraft/models/block/mangrove_slab.json new file mode 100644 index 00000000..1808d03d --- /dev/null +++ b/assets/minecraft/models/block/mangrove_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/mangrove_planks", + "side": "minecraft:block/mangrove_planks", + "top": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_slab_top.json b/assets/minecraft/models/block/mangrove_slab_top.json new file mode 100644 index 00000000..a888006f --- /dev/null +++ b/assets/minecraft/models/block/mangrove_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/mangrove_planks", + "side": "minecraft:block/mangrove_planks", + "top": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_stairs.json b/assets/minecraft/models/block/mangrove_stairs.json new file mode 100644 index 00000000..6f676ac9 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/mangrove_planks", + "side": "minecraft:block/mangrove_planks", + "top": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_stairs_inner.json b/assets/minecraft/models/block/mangrove_stairs_inner.json new file mode 100644 index 00000000..54a1272c --- /dev/null +++ b/assets/minecraft/models/block/mangrove_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/mangrove_planks", + "side": "minecraft:block/mangrove_planks", + "top": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_stairs_outer.json b/assets/minecraft/models/block/mangrove_stairs_outer.json new file mode 100644 index 00000000..a1b41e1d --- /dev/null +++ b/assets/minecraft/models/block/mangrove_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/mangrove_planks", + "side": "minecraft:block/mangrove_planks", + "top": "minecraft:block/mangrove_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_trapdoor_bottom.json b/assets/minecraft/models/block/mangrove_trapdoor_bottom.json new file mode 100644 index 00000000..41aef9af --- /dev/null +++ b/assets/minecraft/models/block/mangrove_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/mangrove_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_trapdoor_open.json b/assets/minecraft/models/block/mangrove_trapdoor_open.json new file mode 100644 index 00000000..25e378a1 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/mangrove_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_trapdoor_top.json b/assets/minecraft/models/block/mangrove_trapdoor_top.json new file mode 100644 index 00000000..89513531 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/mangrove_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mangrove_wood.json b/assets/minecraft/models/block/mangrove_wood.json new file mode 100644 index 00000000..b831a362 --- /dev/null +++ b/assets/minecraft/models/block/mangrove_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/mangrove_log", + "side": "minecraft:block/mangrove_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/medium_amethyst_bud.json b/assets/minecraft/models/block/medium_amethyst_bud.json new file mode 100644 index 00000000..c69ea2a0 --- /dev/null +++ b/assets/minecraft/models/block/medium_amethyst_bud.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/medium_amethyst_bud" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon.json b/assets/minecraft/models/block/melon.json new file mode 100644 index 00000000..ef3816b9 --- /dev/null +++ b/assets/minecraft/models/block/melon.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/melon_top", + "side": "minecraft:block/melon_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage0.json b/assets/minecraft/models/block/melon_stem_stage0.json new file mode 100644 index 00000000..7f8918c5 --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth0", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage1.json b/assets/minecraft/models/block/melon_stem_stage1.json new file mode 100644 index 00000000..0d573b71 --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth1", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage2.json b/assets/minecraft/models/block/melon_stem_stage2.json new file mode 100644 index 00000000..c1934202 --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth2", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage3.json b/assets/minecraft/models/block/melon_stem_stage3.json new file mode 100644 index 00000000..8b4ef33f --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth3", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage4.json b/assets/minecraft/models/block/melon_stem_stage4.json new file mode 100644 index 00000000..cba7914b --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth4", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage5.json b/assets/minecraft/models/block/melon_stem_stage5.json new file mode 100644 index 00000000..bd48d3f1 --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth5", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage6.json b/assets/minecraft/models/block/melon_stem_stage6.json new file mode 100644 index 00000000..c8f07f26 --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth6", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/melon_stem_stage7.json b/assets/minecraft/models/block/melon_stem_stage7.json new file mode 100644 index 00000000..2b479f70 --- /dev/null +++ b/assets/minecraft/models/block/melon_stem_stage7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth7", + "textures": { + "stem": "minecraft:block/melon_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/moss_block.json b/assets/minecraft/models/block/moss_block.json new file mode 100644 index 00000000..3c2c9bcc --- /dev/null +++ b/assets/minecraft/models/block/moss_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/moss_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/moss_carpet.json b/assets/minecraft/models/block/moss_carpet.json new file mode 100644 index 00000000..3e5e68f2 --- /dev/null +++ b/assets/minecraft/models/block/moss_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/moss_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone.json b/assets/minecraft/models/block/mossy_cobblestone.json new file mode 100644 index 00000000..8767f35c --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_slab.json b/assets/minecraft/models/block/mossy_cobblestone_slab.json new file mode 100644 index 00000000..b59badb1 --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/mossy_cobblestone", + "side": "minecraft:block/mossy_cobblestone", + "top": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_slab_top.json b/assets/minecraft/models/block/mossy_cobblestone_slab_top.json new file mode 100644 index 00000000..16d9aa74 --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/mossy_cobblestone", + "side": "minecraft:block/mossy_cobblestone", + "top": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_stairs.json b/assets/minecraft/models/block/mossy_cobblestone_stairs.json new file mode 100644 index 00000000..26a21edd --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/mossy_cobblestone", + "side": "minecraft:block/mossy_cobblestone", + "top": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_stairs_inner.json b/assets/minecraft/models/block/mossy_cobblestone_stairs_inner.json new file mode 100644 index 00000000..49ffa981 --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/mossy_cobblestone", + "side": "minecraft:block/mossy_cobblestone", + "top": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_stairs_outer.json b/assets/minecraft/models/block/mossy_cobblestone_stairs_outer.json new file mode 100644 index 00000000..4ac59fa1 --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/mossy_cobblestone", + "side": "minecraft:block/mossy_cobblestone", + "top": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_wall_inventory.json b/assets/minecraft/models/block/mossy_cobblestone_wall_inventory.json new file mode 100644 index 00000000..ea176a42 --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_wall_post.json b/assets/minecraft/models/block/mossy_cobblestone_wall_post.json new file mode 100644 index 00000000..b6be998c --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_wall_side.json b/assets/minecraft/models/block/mossy_cobblestone_wall_side.json new file mode 100644 index 00000000..43c6c706 --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_cobblestone_wall_side_tall.json b/assets/minecraft/models/block/mossy_cobblestone_wall_side_tall.json new file mode 100644 index 00000000..96935989 --- /dev/null +++ b/assets/minecraft/models/block/mossy_cobblestone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/mossy_cobblestone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_slab.json b/assets/minecraft/models/block/mossy_stone_brick_slab.json new file mode 100644 index 00000000..80aa2456 --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/mossy_stone_bricks", + "side": "minecraft:block/mossy_stone_bricks", + "top": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_slab_top.json b/assets/minecraft/models/block/mossy_stone_brick_slab_top.json new file mode 100644 index 00000000..03570970 --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/mossy_stone_bricks", + "side": "minecraft:block/mossy_stone_bricks", + "top": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_stairs.json b/assets/minecraft/models/block/mossy_stone_brick_stairs.json new file mode 100644 index 00000000..301d37ce --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/mossy_stone_bricks", + "side": "minecraft:block/mossy_stone_bricks", + "top": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_stairs_inner.json b/assets/minecraft/models/block/mossy_stone_brick_stairs_inner.json new file mode 100644 index 00000000..bf4698a3 --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/mossy_stone_bricks", + "side": "minecraft:block/mossy_stone_bricks", + "top": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_stairs_outer.json b/assets/minecraft/models/block/mossy_stone_brick_stairs_outer.json new file mode 100644 index 00000000..b7d6b8f1 --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/mossy_stone_bricks", + "side": "minecraft:block/mossy_stone_bricks", + "top": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_wall_inventory.json b/assets/minecraft/models/block/mossy_stone_brick_wall_inventory.json new file mode 100644 index 00000000..e6822fea --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_wall_post.json b/assets/minecraft/models/block/mossy_stone_brick_wall_post.json new file mode 100644 index 00000000..56942804 --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_wall_side.json b/assets/minecraft/models/block/mossy_stone_brick_wall_side.json new file mode 100644 index 00000000..13fdfa2e --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_brick_wall_side_tall.json b/assets/minecraft/models/block/mossy_stone_brick_wall_side_tall.json new file mode 100644 index 00000000..265f6c3f --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mossy_stone_bricks.json b/assets/minecraft/models/block/mossy_stone_bricks.json new file mode 100644 index 00000000..4a4fa5ae --- /dev/null +++ b/assets/minecraft/models/block/mossy_stone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/moving_piston.json b/assets/minecraft/models/block/moving_piston.json new file mode 100644 index 00000000..021eedbe --- /dev/null +++ b/assets/minecraft/models/block/moving_piston.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/piston_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud.json b/assets/minecraft/models/block/mud.json new file mode 100644 index 00000000..5cfbb594 --- /dev/null +++ b/assets/minecraft/models/block/mud.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/mud" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_slab.json b/assets/minecraft/models/block/mud_brick_slab.json new file mode 100644 index 00000000..f42d900f --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/mud_bricks", + "side": "minecraft:block/mud_bricks", + "top": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_slab_top.json b/assets/minecraft/models/block/mud_brick_slab_top.json new file mode 100644 index 00000000..0208a1c4 --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/mud_bricks", + "side": "minecraft:block/mud_bricks", + "top": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_stairs.json b/assets/minecraft/models/block/mud_brick_stairs.json new file mode 100644 index 00000000..b56d553a --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/mud_bricks", + "side": "minecraft:block/mud_bricks", + "top": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_stairs_inner.json b/assets/minecraft/models/block/mud_brick_stairs_inner.json new file mode 100644 index 00000000..de826957 --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/mud_bricks", + "side": "minecraft:block/mud_bricks", + "top": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_stairs_outer.json b/assets/minecraft/models/block/mud_brick_stairs_outer.json new file mode 100644 index 00000000..ebdb5c0e --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/mud_bricks", + "side": "minecraft:block/mud_bricks", + "top": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_wall_inventory.json b/assets/minecraft/models/block/mud_brick_wall_inventory.json new file mode 100644 index 00000000..f84a0e64 --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_wall_post.json b/assets/minecraft/models/block/mud_brick_wall_post.json new file mode 100644 index 00000000..baa01c2c --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_wall_side.json b/assets/minecraft/models/block/mud_brick_wall_side.json new file mode 100644 index 00000000..c7ca96bc --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_brick_wall_side_tall.json b/assets/minecraft/models/block/mud_brick_wall_side_tall.json new file mode 100644 index 00000000..916ff685 --- /dev/null +++ b/assets/minecraft/models/block/mud_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_bricks.json b/assets/minecraft/models/block/mud_bricks.json new file mode 100644 index 00000000..7ec0e500 --- /dev/null +++ b/assets/minecraft/models/block/mud_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mud_bricks_north_west_mirrored.json b/assets/minecraft/models/block/mud_bricks_north_west_mirrored.json new file mode 100644 index 00000000..84815dd7 --- /dev/null +++ b/assets/minecraft/models/block/mud_bricks_north_west_mirrored.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_north_west_mirrored_all", + "textures": { + "all": "minecraft:block/mud_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/muddy_mangrove_roots.json b/assets/minecraft/models/block/muddy_mangrove_roots.json new file mode 100644 index 00000000..b3088afa --- /dev/null +++ b/assets/minecraft/models/block/muddy_mangrove_roots.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/muddy_mangrove_roots_top", + "side": "minecraft:block/muddy_mangrove_roots_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mushroom_block_inside.json b/assets/minecraft/models/block/mushroom_block_inside.json new file mode 100644 index 00000000..8c7b3713 --- /dev/null +++ b/assets/minecraft/models/block/mushroom_block_inside.json @@ -0,0 +1,6 @@ +{ + "parent": "block/template_single_face", + "textures": { + "texture": "block/mushroom_block_inside" + } +} diff --git a/assets/minecraft/models/block/mushroom_stem.json b/assets/minecraft/models/block/mushroom_stem.json new file mode 100644 index 00000000..76f8cdbc --- /dev/null +++ b/assets/minecraft/models/block/mushroom_stem.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_single_face", + "textures": { + "texture": "minecraft:block/mushroom_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mushroom_stem_inventory.json b/assets/minecraft/models/block/mushroom_stem_inventory.json new file mode 100644 index 00000000..ed373272 --- /dev/null +++ b/assets/minecraft/models/block/mushroom_stem_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/mushroom_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/mycelium.json b/assets/minecraft/models/block/mycelium.json new file mode 100644 index 00000000..a49b04e7 --- /dev/null +++ b/assets/minecraft/models/block/mycelium.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/dirt", + "side": "minecraft:block/mycelium_side", + "top": "minecraft:block/mycelium_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_fence_inventory.json b/assets/minecraft/models/block/nether_brick_fence_inventory.json new file mode 100644 index 00000000..c66b932e --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_fence_post.json b/assets/minecraft/models/block/nether_brick_fence_post.json new file mode 100644 index 00000000..22f5ac94 --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_fence_side.json b/assets/minecraft/models/block/nether_brick_fence_side.json new file mode 100644 index 00000000..1daddd0a --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_slab.json b/assets/minecraft/models/block/nether_brick_slab.json new file mode 100644 index 00000000..82bd330f --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/nether_bricks", + "side": "minecraft:block/nether_bricks", + "top": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_slab_top.json b/assets/minecraft/models/block/nether_brick_slab_top.json new file mode 100644 index 00000000..d9a53ec0 --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/nether_bricks", + "side": "minecraft:block/nether_bricks", + "top": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_stairs.json b/assets/minecraft/models/block/nether_brick_stairs.json new file mode 100644 index 00000000..f6656789 --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/nether_bricks", + "side": "minecraft:block/nether_bricks", + "top": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_stairs_inner.json b/assets/minecraft/models/block/nether_brick_stairs_inner.json new file mode 100644 index 00000000..5569ed42 --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/nether_bricks", + "side": "minecraft:block/nether_bricks", + "top": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_stairs_outer.json b/assets/minecraft/models/block/nether_brick_stairs_outer.json new file mode 100644 index 00000000..6140b9d7 --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/nether_bricks", + "side": "minecraft:block/nether_bricks", + "top": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_wall_inventory.json b/assets/minecraft/models/block/nether_brick_wall_inventory.json new file mode 100644 index 00000000..ef71ac4e --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_wall_post.json b/assets/minecraft/models/block/nether_brick_wall_post.json new file mode 100644 index 00000000..5d539376 --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_wall_side.json b/assets/minecraft/models/block/nether_brick_wall_side.json new file mode 100644 index 00000000..19b01afd --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_brick_wall_side_tall.json b/assets/minecraft/models/block/nether_brick_wall_side_tall.json new file mode 100644 index 00000000..e368b691 --- /dev/null +++ b/assets/minecraft/models/block/nether_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_bricks.json b/assets/minecraft/models/block/nether_bricks.json new file mode 100644 index 00000000..19ca75ce --- /dev/null +++ b/assets/minecraft/models/block/nether_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_gold_ore.json b/assets/minecraft/models/block/nether_gold_ore.json new file mode 100644 index 00000000..a7a48a50 --- /dev/null +++ b/assets/minecraft/models/block/nether_gold_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/nether_gold_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_portal_ew.json b/assets/minecraft/models/block/nether_portal_ew.json new file mode 100644 index 00000000..5b7869ab --- /dev/null +++ b/assets/minecraft/models/block/nether_portal_ew.json @@ -0,0 +1,15 @@ +{ + "textures": { + "particle": "block/nether_portal", + "portal": "block/nether_portal" + }, + "elements": [ + { "from": [ 6, 0, 0 ], + "to": [ 10, 16, 16 ], + "faces": { + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" } + } + } + ] +} diff --git a/assets/minecraft/models/block/nether_portal_ns.json b/assets/minecraft/models/block/nether_portal_ns.json new file mode 100644 index 00000000..937ca3b9 --- /dev/null +++ b/assets/minecraft/models/block/nether_portal_ns.json @@ -0,0 +1,15 @@ +{ + "textures": { + "particle": "block/nether_portal", + "portal": "block/nether_portal" + }, + "elements": [ + { "from": [ 0, 0, 6 ], + "to": [ 16, 16, 10 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#portal" } + } + } + ] +} diff --git a/assets/minecraft/models/block/nether_quartz_ore.json b/assets/minecraft/models/block/nether_quartz_ore.json new file mode 100644 index 00000000..831c93fa --- /dev/null +++ b/assets/minecraft/models/block/nether_quartz_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/nether_quartz_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_sprouts.json b/assets/minecraft/models/block/nether_sprouts.json new file mode 100644 index 00000000..a1348576 --- /dev/null +++ b/assets/minecraft/models/block/nether_sprouts.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/nether_sprouts" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_wart_block.json b/assets/minecraft/models/block/nether_wart_block.json new file mode 100644 index 00000000..e1643535 --- /dev/null +++ b/assets/minecraft/models/block/nether_wart_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/nether_wart_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_wart_stage0.json b/assets/minecraft/models/block/nether_wart_stage0.json new file mode 100644 index 00000000..795414f2 --- /dev/null +++ b/assets/minecraft/models/block/nether_wart_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/nether_wart_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_wart_stage1.json b/assets/minecraft/models/block/nether_wart_stage1.json new file mode 100644 index 00000000..55ac3277 --- /dev/null +++ b/assets/minecraft/models/block/nether_wart_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/nether_wart_stage1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/nether_wart_stage2.json b/assets/minecraft/models/block/nether_wart_stage2.json new file mode 100644 index 00000000..42d5a2ea --- /dev/null +++ b/assets/minecraft/models/block/nether_wart_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/nether_wart_stage2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/netherite_block.json b/assets/minecraft/models/block/netherite_block.json new file mode 100644 index 00000000..72fa8d9b --- /dev/null +++ b/assets/minecraft/models/block/netherite_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/netherite_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/netherrack.json b/assets/minecraft/models/block/netherrack.json new file mode 100644 index 00000000..11cebf7a --- /dev/null +++ b/assets/minecraft/models/block/netherrack.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/netherrack" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/note_block.json b/assets/minecraft/models/block/note_block.json new file mode 100644 index 00000000..5d7671bd --- /dev/null +++ b/assets/minecraft/models/block/note_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/note_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_button.json b/assets/minecraft/models/block/oak_button.json new file mode 100644 index 00000000..67b1c0f3 --- /dev/null +++ b/assets/minecraft/models/block/oak_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_button_inventory.json b/assets/minecraft/models/block/oak_button_inventory.json new file mode 100644 index 00000000..f58d4869 --- /dev/null +++ b/assets/minecraft/models/block/oak_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_button_pressed.json b/assets/minecraft/models/block/oak_button_pressed.json new file mode 100644 index 00000000..218d5cf4 --- /dev/null +++ b/assets/minecraft/models/block/oak_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_bottom_left.json b/assets/minecraft/models/block/oak_door_bottom_left.json new file mode 100644 index 00000000..9cd5e6b2 --- /dev/null +++ b/assets/minecraft/models/block/oak_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_bottom_left_open.json b/assets/minecraft/models/block/oak_door_bottom_left_open.json new file mode 100644 index 00000000..9796ce19 --- /dev/null +++ b/assets/minecraft/models/block/oak_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_bottom_right.json b/assets/minecraft/models/block/oak_door_bottom_right.json new file mode 100644 index 00000000..eefc4095 --- /dev/null +++ b/assets/minecraft/models/block/oak_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_bottom_right_open.json b/assets/minecraft/models/block/oak_door_bottom_right_open.json new file mode 100644 index 00000000..2834d9a6 --- /dev/null +++ b/assets/minecraft/models/block/oak_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_top_left.json b/assets/minecraft/models/block/oak_door_top_left.json new file mode 100644 index 00000000..025c7740 --- /dev/null +++ b/assets/minecraft/models/block/oak_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_top_left_open.json b/assets/minecraft/models/block/oak_door_top_left_open.json new file mode 100644 index 00000000..3d7468e6 --- /dev/null +++ b/assets/minecraft/models/block/oak_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_top_right.json b/assets/minecraft/models/block/oak_door_top_right.json new file mode 100644 index 00000000..fee6d812 --- /dev/null +++ b/assets/minecraft/models/block/oak_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_door_top_right_open.json b/assets/minecraft/models/block/oak_door_top_right_open.json new file mode 100644 index 00000000..0ed1f7fb --- /dev/null +++ b/assets/minecraft/models/block/oak_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/oak_door_bottom", + "top": "minecraft:block/oak_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_fence_gate.json b/assets/minecraft/models/block/oak_fence_gate.json new file mode 100644 index 00000000..74e6c445 --- /dev/null +++ b/assets/minecraft/models/block/oak_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_fence_gate_open.json b/assets/minecraft/models/block/oak_fence_gate_open.json new file mode 100644 index 00000000..c3e37495 --- /dev/null +++ b/assets/minecraft/models/block/oak_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_fence_gate_wall.json b/assets/minecraft/models/block/oak_fence_gate_wall.json new file mode 100644 index 00000000..9c2c0f39 --- /dev/null +++ b/assets/minecraft/models/block/oak_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_fence_gate_wall_open.json b/assets/minecraft/models/block/oak_fence_gate_wall_open.json new file mode 100644 index 00000000..2b515179 --- /dev/null +++ b/assets/minecraft/models/block/oak_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_fence_inventory.json b/assets/minecraft/models/block/oak_fence_inventory.json new file mode 100644 index 00000000..54282027 --- /dev/null +++ b/assets/minecraft/models/block/oak_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_fence_post.json b/assets/minecraft/models/block/oak_fence_post.json new file mode 100644 index 00000000..e05dc4ae --- /dev/null +++ b/assets/minecraft/models/block/oak_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_fence_side.json b/assets/minecraft/models/block/oak_fence_side.json new file mode 100644 index 00000000..fe4ed99e --- /dev/null +++ b/assets/minecraft/models/block/oak_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_hanging_sign.json b/assets/minecraft/models/block/oak_hanging_sign.json new file mode 100644 index 00000000..97f5acc2 --- /dev/null +++ b/assets/minecraft/models/block/oak_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_leaves.json b/assets/minecraft/models/block/oak_leaves.json new file mode 100644 index 00000000..192ebd67 --- /dev/null +++ b/assets/minecraft/models/block/oak_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/oak_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_log.json b/assets/minecraft/models/block/oak_log.json new file mode 100644 index 00000000..70583e67 --- /dev/null +++ b/assets/minecraft/models/block/oak_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/oak_log_top", + "side": "minecraft:block/oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_log_horizontal.json b/assets/minecraft/models/block/oak_log_horizontal.json new file mode 100644 index 00000000..fd9a02ca --- /dev/null +++ b/assets/minecraft/models/block/oak_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/oak_log_top", + "side": "minecraft:block/oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_planks.json b/assets/minecraft/models/block/oak_planks.json new file mode 100644 index 00000000..3a21a3f2 --- /dev/null +++ b/assets/minecraft/models/block/oak_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_pressure_plate.json b/assets/minecraft/models/block/oak_pressure_plate.json new file mode 100644 index 00000000..3fb5dd7c --- /dev/null +++ b/assets/minecraft/models/block/oak_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_pressure_plate_down.json b/assets/minecraft/models/block/oak_pressure_plate_down.json new file mode 100644 index 00000000..06c4db73 --- /dev/null +++ b/assets/minecraft/models/block/oak_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_sapling.json b/assets/minecraft/models/block/oak_sapling.json new file mode 100644 index 00000000..87354edc --- /dev/null +++ b/assets/minecraft/models/block/oak_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/oak_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_sign.json b/assets/minecraft/models/block/oak_sign.json new file mode 100644 index 00000000..9406a849 --- /dev/null +++ b/assets/minecraft/models/block/oak_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_slab.json b/assets/minecraft/models/block/oak_slab.json new file mode 100644 index 00000000..f11ff8ba --- /dev/null +++ b/assets/minecraft/models/block/oak_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/oak_planks", + "side": "minecraft:block/oak_planks", + "top": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_slab_top.json b/assets/minecraft/models/block/oak_slab_top.json new file mode 100644 index 00000000..d7adec0e --- /dev/null +++ b/assets/minecraft/models/block/oak_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/oak_planks", + "side": "minecraft:block/oak_planks", + "top": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_stairs.json b/assets/minecraft/models/block/oak_stairs.json new file mode 100644 index 00000000..d959a5f2 --- /dev/null +++ b/assets/minecraft/models/block/oak_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/oak_planks", + "side": "minecraft:block/oak_planks", + "top": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_stairs_inner.json b/assets/minecraft/models/block/oak_stairs_inner.json new file mode 100644 index 00000000..2850cc58 --- /dev/null +++ b/assets/minecraft/models/block/oak_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/oak_planks", + "side": "minecraft:block/oak_planks", + "top": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_stairs_outer.json b/assets/minecraft/models/block/oak_stairs_outer.json new file mode 100644 index 00000000..78644acd --- /dev/null +++ b/assets/minecraft/models/block/oak_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/oak_planks", + "side": "minecraft:block/oak_planks", + "top": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_trapdoor_bottom.json b/assets/minecraft/models/block/oak_trapdoor_bottom.json new file mode 100644 index 00000000..a4dcb639 --- /dev/null +++ b/assets/minecraft/models/block/oak_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/oak_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_trapdoor_open.json b/assets/minecraft/models/block/oak_trapdoor_open.json new file mode 100644 index 00000000..e8b0bb3b --- /dev/null +++ b/assets/minecraft/models/block/oak_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_open", + "textures": { + "texture": "minecraft:block/oak_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_trapdoor_top.json b/assets/minecraft/models/block/oak_trapdoor_top.json new file mode 100644 index 00000000..34322d68 --- /dev/null +++ b/assets/minecraft/models/block/oak_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_top", + "textures": { + "texture": "minecraft:block/oak_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oak_wood.json b/assets/minecraft/models/block/oak_wood.json new file mode 100644 index 00000000..79a8da03 --- /dev/null +++ b/assets/minecraft/models/block/oak_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/oak_log", + "side": "minecraft:block/oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/observer.json b/assets/minecraft/models/block/observer.json new file mode 100644 index 00000000..1b8ca609 --- /dev/null +++ b/assets/minecraft/models/block/observer.json @@ -0,0 +1,23 @@ +{ + "parent": "block/block", + "textures": { + "bottom": "block/observer_back", + "side": "block/observer_side", + "top": "block/observer_top", + "front": "block/observer_front", + "particle": "block/observer_front" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "down" }, + "up": { "uv": [ 0, 16, 16, 0 ], "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#front", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/observer_on.json b/assets/minecraft/models/block/observer_on.json new file mode 100644 index 00000000..ee290184 --- /dev/null +++ b/assets/minecraft/models/block/observer_on.json @@ -0,0 +1,6 @@ +{ + "parent": "block/observer", + "textures": { + "bottom": "block/observer_back_on" + } +} diff --git a/assets/minecraft/models/block/obsidian.json b/assets/minecraft/models/block/obsidian.json new file mode 100644 index 00000000..104a1994 --- /dev/null +++ b/assets/minecraft/models/block/obsidian.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/obsidian" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/ochre_froglight.json b/assets/minecraft/models/block/ochre_froglight.json new file mode 100644 index 00000000..344b79fa --- /dev/null +++ b/assets/minecraft/models/block/ochre_froglight.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/ochre_froglight_top", + "side": "minecraft:block/ochre_froglight_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/ochre_froglight_horizontal.json b/assets/minecraft/models/block/ochre_froglight_horizontal.json new file mode 100644 index 00000000..a11db54e --- /dev/null +++ b/assets/minecraft/models/block/ochre_froglight_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/ochre_froglight_top", + "side": "minecraft:block/ochre_froglight_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_cake.json b/assets/minecraft/models/block/orange_candle_cake.json new file mode 100644 index 00000000..9e2b1838 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/orange_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_cake_lit.json b/assets/minecraft/models/block/orange_candle_cake_lit.json new file mode 100644 index 00000000..44210f34 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/orange_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_four_candles.json b/assets/minecraft/models/block/orange_candle_four_candles.json new file mode 100644 index 00000000..4cbb2a4a --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/orange_candle", + "particle": "minecraft:block/orange_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_four_candles_lit.json b/assets/minecraft/models/block/orange_candle_four_candles_lit.json new file mode 100644 index 00000000..eb329068 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/orange_candle_lit", + "particle": "minecraft:block/orange_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_one_candle.json b/assets/minecraft/models/block/orange_candle_one_candle.json new file mode 100644 index 00000000..f1cf6b0e --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/orange_candle", + "particle": "minecraft:block/orange_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_one_candle_lit.json b/assets/minecraft/models/block/orange_candle_one_candle_lit.json new file mode 100644 index 00000000..0ba73ca2 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/orange_candle_lit", + "particle": "minecraft:block/orange_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_three_candles.json b/assets/minecraft/models/block/orange_candle_three_candles.json new file mode 100644 index 00000000..d2435363 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/orange_candle", + "particle": "minecraft:block/orange_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_three_candles_lit.json b/assets/minecraft/models/block/orange_candle_three_candles_lit.json new file mode 100644 index 00000000..ad150433 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/orange_candle_lit", + "particle": "minecraft:block/orange_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_two_candles.json b/assets/minecraft/models/block/orange_candle_two_candles.json new file mode 100644 index 00000000..42bfeb43 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/orange_candle", + "particle": "minecraft:block/orange_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_candle_two_candles_lit.json b/assets/minecraft/models/block/orange_candle_two_candles_lit.json new file mode 100644 index 00000000..56c06117 --- /dev/null +++ b/assets/minecraft/models/block/orange_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/orange_candle_lit", + "particle": "minecraft:block/orange_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_carpet.json b/assets/minecraft/models/block/orange_carpet.json new file mode 100644 index 00000000..886a5dbf --- /dev/null +++ b/assets/minecraft/models/block/orange_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/orange_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_concrete.json b/assets/minecraft/models/block/orange_concrete.json new file mode 100644 index 00000000..c0f6708a --- /dev/null +++ b/assets/minecraft/models/block/orange_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/orange_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_concrete_powder.json b/assets/minecraft/models/block/orange_concrete_powder.json new file mode 100644 index 00000000..a63474f6 --- /dev/null +++ b/assets/minecraft/models/block/orange_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/orange_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_glazed_terracotta.json b/assets/minecraft/models/block/orange_glazed_terracotta.json new file mode 100644 index 00000000..d39dc99b --- /dev/null +++ b/assets/minecraft/models/block/orange_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/orange_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_shulker_box.json b/assets/minecraft/models/block/orange_shulker_box.json new file mode 100644 index 00000000..202c3257 --- /dev/null +++ b/assets/minecraft/models/block/orange_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/orange_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_stained_glass.json b/assets/minecraft/models/block/orange_stained_glass.json new file mode 100644 index 00000000..cb420e05 --- /dev/null +++ b/assets/minecraft/models/block/orange_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_stained_glass_pane_noside.json b/assets/minecraft/models/block/orange_stained_glass_pane_noside.json new file mode 100644 index 00000000..d54ef0db --- /dev/null +++ b/assets/minecraft/models/block/orange_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/orange_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..56f2cd0b --- /dev/null +++ b/assets/minecraft/models/block/orange_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_stained_glass_pane_post.json b/assets/minecraft/models/block/orange_stained_glass_pane_post.json new file mode 100644 index 00000000..2e178a0c --- /dev/null +++ b/assets/minecraft/models/block/orange_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/orange_stained_glass_pane_top", + "pane": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_stained_glass_pane_side.json b/assets/minecraft/models/block/orange_stained_glass_pane_side.json new file mode 100644 index 00000000..9a54ee88 --- /dev/null +++ b/assets/minecraft/models/block/orange_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/orange_stained_glass_pane_top", + "pane": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/orange_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..32ce49a6 --- /dev/null +++ b/assets/minecraft/models/block/orange_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/orange_stained_glass_pane_top", + "pane": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_terracotta.json b/assets/minecraft/models/block/orange_terracotta.json new file mode 100644 index 00000000..2d5e41a1 --- /dev/null +++ b/assets/minecraft/models/block/orange_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/orange_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_tulip.json b/assets/minecraft/models/block/orange_tulip.json new file mode 100644 index 00000000..e0b71ccb --- /dev/null +++ b/assets/minecraft/models/block/orange_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/orange_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orange_wool.json b/assets/minecraft/models/block/orange_wool.json new file mode 100644 index 00000000..89a99b52 --- /dev/null +++ b/assets/minecraft/models/block/orange_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/orange_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/orientable.json b/assets/minecraft/models/block/orientable.json new file mode 100644 index 00000000..ad7bf9a7 --- /dev/null +++ b/assets/minecraft/models/block/orientable.json @@ -0,0 +1,6 @@ +{ + "parent": "block/orientable_with_bottom", + "textures": { + "bottom": "#top" + } +} diff --git a/assets/minecraft/models/block/orientable_vertical.json b/assets/minecraft/models/block/orientable_vertical.json new file mode 100644 index 00000000..5fb2223a --- /dev/null +++ b/assets/minecraft/models/block/orientable_vertical.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "#side", + "down": "#side", + "up": "#front", + "north": "#side", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/orientable_with_bottom.json b/assets/minecraft/models/block/orientable_with_bottom.json new file mode 100644 index 00000000..d03a89bd --- /dev/null +++ b/assets/minecraft/models/block/orientable_with_bottom.json @@ -0,0 +1,19 @@ +{ + "parent": "block/cube", + "display": { + "firstperson_righthand": { + "rotation": [ 0, 135, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + }, + "textures": { + "particle": "#front", + "down": "#bottom", + "up": "#top", + "north": "#front", + "east": "#side", + "south": "#side", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/outer_stairs.json b/assets/minecraft/models/block/outer_stairs.json new file mode 100644 index 00000000..03bbe420 --- /dev/null +++ b/assets/minecraft/models/block/outer_stairs.json @@ -0,0 +1,28 @@ +{ + "textures": { + "particle": "#side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 8, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 8, 8, 8 ], + "to": [ 16, 16, 16 ], + "faces": { + "up": { "uv": [ 8, 8, 16, 16 ], "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 0, 0, 8, 8 ], "texture": "#side" }, + "south": { "uv": [ 8, 0, 16, 8 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 8, 0, 16, 8 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 8, 8 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/oxeye_daisy.json b/assets/minecraft/models/block/oxeye_daisy.json new file mode 100644 index 00000000..bdc32c2e --- /dev/null +++ b/assets/minecraft/models/block/oxeye_daisy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/oxeye_daisy" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_chiseled_copper.json b/assets/minecraft/models/block/oxidized_chiseled_copper.json new file mode 100644 index 00000000..a5750a64 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_chiseled_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper.json b/assets/minecraft/models/block/oxidized_copper.json new file mode 100644 index 00000000..5da2d1ab --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_bulb.json b/assets/minecraft/models/block/oxidized_copper_bulb.json new file mode 100644 index 00000000..77017a21 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_bulb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_copper_bulb" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_bulb_lit.json b/assets/minecraft/models/block/oxidized_copper_bulb_lit.json new file mode 100644 index 00000000..b27236f7 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_bulb_lit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_copper_bulb_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_bulb_lit_powered.json b/assets/minecraft/models/block/oxidized_copper_bulb_lit_powered.json new file mode 100644 index 00000000..8977a455 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_bulb_lit_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_copper_bulb_lit_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_bulb_powered.json b/assets/minecraft/models/block/oxidized_copper_bulb_powered.json new file mode 100644 index 00000000..0bd0856b --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_bulb_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_copper_bulb_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_bottom_left.json b/assets/minecraft/models/block/oxidized_copper_door_bottom_left.json new file mode 100644 index 00000000..730c42d6 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_bottom_left_open.json b/assets/minecraft/models/block/oxidized_copper_door_bottom_left_open.json new file mode 100644 index 00000000..ef9ea289 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_bottom_right.json b/assets/minecraft/models/block/oxidized_copper_door_bottom_right.json new file mode 100644 index 00000000..7ee3c7bf --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_bottom_right_open.json b/assets/minecraft/models/block/oxidized_copper_door_bottom_right_open.json new file mode 100644 index 00000000..437ab8b7 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_top_left.json b/assets/minecraft/models/block/oxidized_copper_door_top_left.json new file mode 100644 index 00000000..9b519f28 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_top_left_open.json b/assets/minecraft/models/block/oxidized_copper_door_top_left_open.json new file mode 100644 index 00000000..75c86792 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_top_right.json b/assets/minecraft/models/block/oxidized_copper_door_top_right.json new file mode 100644 index 00000000..79cfd840 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_door_top_right_open.json b/assets/minecraft/models/block/oxidized_copper_door_top_right_open.json new file mode 100644 index 00000000..3a70a300 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/oxidized_copper_door_bottom", + "top": "minecraft:block/oxidized_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_grate.json b/assets/minecraft/models/block/oxidized_copper_grate.json new file mode 100644 index 00000000..ffba9448 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_grate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_copper_grate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_trapdoor_bottom.json b/assets/minecraft/models/block/oxidized_copper_trapdoor_bottom.json new file mode 100644 index 00000000..37d82f64 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/oxidized_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_trapdoor_open.json b/assets/minecraft/models/block/oxidized_copper_trapdoor_open.json new file mode 100644 index 00000000..e606f5de --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_open", + "textures": { + "texture": "minecraft:block/oxidized_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_copper_trapdoor_top.json b/assets/minecraft/models/block/oxidized_copper_trapdoor_top.json new file mode 100644 index 00000000..60e1b439 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_copper_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_top", + "textures": { + "texture": "minecraft:block/oxidized_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_cut_copper.json b/assets/minecraft/models/block/oxidized_cut_copper.json new file mode 100644 index 00000000..4ac7bb08 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_cut_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_cut_copper_slab.json b/assets/minecraft/models/block/oxidized_cut_copper_slab.json new file mode 100644 index 00000000..f61b04e5 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_cut_copper_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/oxidized_cut_copper", + "side": "minecraft:block/oxidized_cut_copper", + "top": "minecraft:block/oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_cut_copper_slab_top.json b/assets/minecraft/models/block/oxidized_cut_copper_slab_top.json new file mode 100644 index 00000000..06790cf1 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_cut_copper_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/oxidized_cut_copper", + "side": "minecraft:block/oxidized_cut_copper", + "top": "minecraft:block/oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_cut_copper_stairs.json b/assets/minecraft/models/block/oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..7cebec1d --- /dev/null +++ b/assets/minecraft/models/block/oxidized_cut_copper_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/oxidized_cut_copper", + "side": "minecraft:block/oxidized_cut_copper", + "top": "minecraft:block/oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_cut_copper_stairs_inner.json b/assets/minecraft/models/block/oxidized_cut_copper_stairs_inner.json new file mode 100644 index 00000000..c51ee268 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_cut_copper_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/oxidized_cut_copper", + "side": "minecraft:block/oxidized_cut_copper", + "top": "minecraft:block/oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/oxidized_cut_copper_stairs_outer.json b/assets/minecraft/models/block/oxidized_cut_copper_stairs_outer.json new file mode 100644 index 00000000..58f42dc6 --- /dev/null +++ b/assets/minecraft/models/block/oxidized_cut_copper_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/oxidized_cut_copper", + "side": "minecraft:block/oxidized_cut_copper", + "top": "minecraft:block/oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/packed_ice.json b/assets/minecraft/models/block/packed_ice.json new file mode 100644 index 00000000..3af1024f --- /dev/null +++ b/assets/minecraft/models/block/packed_ice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/packed_ice" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/packed_mud.json b/assets/minecraft/models/block/packed_mud.json new file mode 100644 index 00000000..5b637a27 --- /dev/null +++ b/assets/minecraft/models/block/packed_mud.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/packed_mud" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pearlescent_froglight.json b/assets/minecraft/models/block/pearlescent_froglight.json new file mode 100644 index 00000000..72ecd971 --- /dev/null +++ b/assets/minecraft/models/block/pearlescent_froglight.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/pearlescent_froglight_top", + "side": "minecraft:block/pearlescent_froglight_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pearlescent_froglight_horizontal.json b/assets/minecraft/models/block/pearlescent_froglight_horizontal.json new file mode 100644 index 00000000..483648f5 --- /dev/null +++ b/assets/minecraft/models/block/pearlescent_froglight_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/pearlescent_froglight_top", + "side": "minecraft:block/pearlescent_froglight_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/peony_bottom.json b/assets/minecraft/models/block/peony_bottom.json new file mode 100644 index 00000000..8b7ea916 --- /dev/null +++ b/assets/minecraft/models/block/peony_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/peony_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/peony_top.json b/assets/minecraft/models/block/peony_top.json new file mode 100644 index 00000000..6e0fd6b7 --- /dev/null +++ b/assets/minecraft/models/block/peony_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/peony_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/petrified_oak_slab.json b/assets/minecraft/models/block/petrified_oak_slab.json new file mode 100644 index 00000000..f11ff8ba --- /dev/null +++ b/assets/minecraft/models/block/petrified_oak_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/oak_planks", + "side": "minecraft:block/oak_planks", + "top": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/petrified_oak_slab_top.json b/assets/minecraft/models/block/petrified_oak_slab_top.json new file mode 100644 index 00000000..d7adec0e --- /dev/null +++ b/assets/minecraft/models/block/petrified_oak_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/oak_planks", + "side": "minecraft:block/oak_planks", + "top": "minecraft:block/oak_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_cake.json b/assets/minecraft/models/block/pink_candle_cake.json new file mode 100644 index 00000000..b203df96 --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/pink_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_cake_lit.json b/assets/minecraft/models/block/pink_candle_cake_lit.json new file mode 100644 index 00000000..3fbdc7af --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/pink_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_four_candles.json b/assets/minecraft/models/block/pink_candle_four_candles.json new file mode 100644 index 00000000..956b9897 --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/pink_candle", + "particle": "minecraft:block/pink_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_four_candles_lit.json b/assets/minecraft/models/block/pink_candle_four_candles_lit.json new file mode 100644 index 00000000..5f8c43f1 --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/pink_candle_lit", + "particle": "minecraft:block/pink_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_one_candle.json b/assets/minecraft/models/block/pink_candle_one_candle.json new file mode 100644 index 00000000..21075a6d --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/pink_candle", + "particle": "minecraft:block/pink_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_one_candle_lit.json b/assets/minecraft/models/block/pink_candle_one_candle_lit.json new file mode 100644 index 00000000..30c7ad59 --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/pink_candle_lit", + "particle": "minecraft:block/pink_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_three_candles.json b/assets/minecraft/models/block/pink_candle_three_candles.json new file mode 100644 index 00000000..47f2c6f0 --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/pink_candle", + "particle": "minecraft:block/pink_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_three_candles_lit.json b/assets/minecraft/models/block/pink_candle_three_candles_lit.json new file mode 100644 index 00000000..013f6f74 --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/pink_candle_lit", + "particle": "minecraft:block/pink_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_two_candles.json b/assets/minecraft/models/block/pink_candle_two_candles.json new file mode 100644 index 00000000..92054932 --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/pink_candle", + "particle": "minecraft:block/pink_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_candle_two_candles_lit.json b/assets/minecraft/models/block/pink_candle_two_candles_lit.json new file mode 100644 index 00000000..0dbe15bf --- /dev/null +++ b/assets/minecraft/models/block/pink_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/pink_candle_lit", + "particle": "minecraft:block/pink_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_carpet.json b/assets/minecraft/models/block/pink_carpet.json new file mode 100644 index 00000000..874e9744 --- /dev/null +++ b/assets/minecraft/models/block/pink_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/pink_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_concrete.json b/assets/minecraft/models/block/pink_concrete.json new file mode 100644 index 00000000..d64f49b9 --- /dev/null +++ b/assets/minecraft/models/block/pink_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/pink_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_concrete_powder.json b/assets/minecraft/models/block/pink_concrete_powder.json new file mode 100644 index 00000000..b6c6ec12 --- /dev/null +++ b/assets/minecraft/models/block/pink_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/pink_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_glazed_terracotta.json b/assets/minecraft/models/block/pink_glazed_terracotta.json new file mode 100644 index 00000000..6f6bc9f1 --- /dev/null +++ b/assets/minecraft/models/block/pink_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/pink_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_petals_1.json b/assets/minecraft/models/block/pink_petals_1.json new file mode 100644 index 00000000..38dacd57 --- /dev/null +++ b/assets/minecraft/models/block/pink_petals_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/flowerbed_1", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_petals_2.json b/assets/minecraft/models/block/pink_petals_2.json new file mode 100644 index 00000000..d2701a3c --- /dev/null +++ b/assets/minecraft/models/block/pink_petals_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/flowerbed_2", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_petals_3.json b/assets/minecraft/models/block/pink_petals_3.json new file mode 100644 index 00000000..34569a21 --- /dev/null +++ b/assets/minecraft/models/block/pink_petals_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/flowerbed_3", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_petals_4.json b/assets/minecraft/models/block/pink_petals_4.json new file mode 100644 index 00000000..7e132ab8 --- /dev/null +++ b/assets/minecraft/models/block/pink_petals_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/flowerbed_4", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_shulker_box.json b/assets/minecraft/models/block/pink_shulker_box.json new file mode 100644 index 00000000..f088a120 --- /dev/null +++ b/assets/minecraft/models/block/pink_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/pink_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_stained_glass.json b/assets/minecraft/models/block/pink_stained_glass.json new file mode 100644 index 00000000..bb30dc77 --- /dev/null +++ b/assets/minecraft/models/block/pink_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_stained_glass_pane_noside.json b/assets/minecraft/models/block/pink_stained_glass_pane_noside.json new file mode 100644 index 00000000..ea8bf6d6 --- /dev/null +++ b/assets/minecraft/models/block/pink_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/pink_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..14ee3c51 --- /dev/null +++ b/assets/minecraft/models/block/pink_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_stained_glass_pane_post.json b/assets/minecraft/models/block/pink_stained_glass_pane_post.json new file mode 100644 index 00000000..9377bf3d --- /dev/null +++ b/assets/minecraft/models/block/pink_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/pink_stained_glass_pane_top", + "pane": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_stained_glass_pane_side.json b/assets/minecraft/models/block/pink_stained_glass_pane_side.json new file mode 100644 index 00000000..ec16d661 --- /dev/null +++ b/assets/minecraft/models/block/pink_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/pink_stained_glass_pane_top", + "pane": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/pink_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..6c54e073 --- /dev/null +++ b/assets/minecraft/models/block/pink_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/pink_stained_glass_pane_top", + "pane": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_terracotta.json b/assets/minecraft/models/block/pink_terracotta.json new file mode 100644 index 00000000..37127754 --- /dev/null +++ b/assets/minecraft/models/block/pink_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/pink_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_tulip.json b/assets/minecraft/models/block/pink_tulip.json new file mode 100644 index 00000000..56946f9c --- /dev/null +++ b/assets/minecraft/models/block/pink_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/pink_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pink_wool.json b/assets/minecraft/models/block/pink_wool.json new file mode 100644 index 00000000..0c56bf01 --- /dev/null +++ b/assets/minecraft/models/block/pink_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/pink_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/piston.json b/assets/minecraft/models/block/piston.json new file mode 100644 index 00000000..02156a18 --- /dev/null +++ b/assets/minecraft/models/block/piston.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_piston", + "textures": { + "bottom": "minecraft:block/piston_bottom", + "platform": "minecraft:block/piston_top", + "side": "minecraft:block/piston_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/piston_base.json b/assets/minecraft/models/block/piston_base.json new file mode 100644 index 00000000..605c2f68 --- /dev/null +++ b/assets/minecraft/models/block/piston_base.json @@ -0,0 +1,8 @@ +{ + "parent": "block/piston_extended", + "textures": { + "bottom": "block/piston_bottom", + "side": "block/piston_side", + "inside": "block/piston_inner" + } +} diff --git a/assets/minecraft/models/block/piston_extended.json b/assets/minecraft/models/block/piston_extended.json new file mode 100644 index 00000000..45e04a30 --- /dev/null +++ b/assets/minecraft/models/block/piston_extended.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#side" + }, + "elements": [ + { "from": [ 0, 0, 4 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "down", "rotation": 180 }, + "up": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#inside" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "south" }, + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "west", "rotation": 270 }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "east", "rotation": 90 } + } + } + ] +} diff --git a/assets/minecraft/models/block/piston_head.json b/assets/minecraft/models/block/piston_head.json new file mode 100644 index 00000000..2caa096c --- /dev/null +++ b/assets/minecraft/models/block/piston_head.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_piston_head", + "textures": { + "platform": "minecraft:block/piston_top", + "side": "minecraft:block/piston_side", + "unsticky": "minecraft:block/piston_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/piston_head_short.json b/assets/minecraft/models/block/piston_head_short.json new file mode 100644 index 00000000..490b1c50 --- /dev/null +++ b/assets/minecraft/models/block/piston_head_short.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_piston_head_short", + "textures": { + "platform": "minecraft:block/piston_top", + "side": "minecraft:block/piston_side", + "unsticky": "minecraft:block/piston_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/piston_head_short_sticky.json b/assets/minecraft/models/block/piston_head_short_sticky.json new file mode 100644 index 00000000..c5a98204 --- /dev/null +++ b/assets/minecraft/models/block/piston_head_short_sticky.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_piston_head_short", + "textures": { + "platform": "minecraft:block/piston_top_sticky", + "side": "minecraft:block/piston_side", + "unsticky": "minecraft:block/piston_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/piston_head_sticky.json b/assets/minecraft/models/block/piston_head_sticky.json new file mode 100644 index 00000000..7fa4495a --- /dev/null +++ b/assets/minecraft/models/block/piston_head_sticky.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_piston_head", + "textures": { + "platform": "minecraft:block/piston_top_sticky", + "side": "minecraft:block/piston_side", + "unsticky": "minecraft:block/piston_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/piston_inventory.json b/assets/minecraft/models/block/piston_inventory.json new file mode 100644 index 00000000..589ed928 --- /dev/null +++ b/assets/minecraft/models/block/piston_inventory.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/piston_bottom", + "side": "minecraft:block/piston_side", + "top": "minecraft:block/piston_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pitcher_crop_bottom_stage_0.json b/assets/minecraft/models/block/pitcher_crop_bottom_stage_0.json new file mode 100644 index 00000000..7e4423e0 --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_bottom_stage_0.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top", + "pitcher_top": "block/pitcher_crop_top", + "pitcher_side": "block/pitcher_crop_side", + "pitcher_bottom": "block/pitcher_crop_bottom" + }, + "elements": [ + { + "name": "pitcher_crop_bottom_stage_0", + "from": [5, -1, 5], + "to": [11, 3, 11], + "faces": { + "north": {"uv": [3, 10, 9, 14], "texture": "#pitcher_side"}, + "east": {"uv": [3, 10, 9, 14], "texture": "#pitcher_side"}, + "south": {"uv": [3, 10, 9, 14], "texture": "#pitcher_side"}, + "west": {"uv": [3, 10, 9, 14], "texture": "#pitcher_side"}, + "up": {"uv": [5, 5, 11, 11], "texture": "#pitcher_top"}, + "down": {"uv": [5, 5, 11, 11], "texture": "#pitcher_bottom"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_crop_bottom_stage_1.json b/assets/minecraft/models/block/pitcher_crop_bottom_stage_1.json new file mode 100644 index 00000000..77b844fa --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_bottom_stage_1.json @@ -0,0 +1,47 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top", + "stage_1": "block/pitcher_crop_bottom_stage_1", + "pitcher_top": "block/pitcher_crop_top", + "pitcher_side": "block/pitcher_crop_side", + "pitcher_bottom": "block/pitcher_crop_bottom" + }, + "elements": [ + { + "name": "pitcher_crop_bottom_stage_1", + "from": [0, 5, 8], + "to": [16, 21, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 5, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_1"} + } + }, + { + "name": "pitcher_crop_bottom_stage_1", + "from": [0, 5, 8], + "to": [16, 21, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [8, 5, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_1"} + } + }, + { + "name": "pitcher_crop_bottom_stage_1", + "from": [3, -1, 3], + "to": [13, 5, 13], + "faces": { + "north": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "east": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "south": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "west": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "up": {"uv": [3, 3, 13, 13], "texture": "#pitcher_top"}, + "down": {"uv": [3, 3, 13, 13], "texture": "#pitcher_bottom"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_crop_bottom_stage_2.json b/assets/minecraft/models/block/pitcher_crop_bottom_stage_2.json new file mode 100644 index 00000000..36993940 --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_bottom_stage_2.json @@ -0,0 +1,47 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top", + "stage_2": "block/pitcher_crop_bottom_stage_2", + "pitcher_top": "block/pitcher_crop_top", + "pitcher_side": "block/pitcher_crop_side", + "pitcher_bottom": "block/pitcher_crop_bottom" + }, + "elements": [ + { + "name": "pitcher_crop_bottom_stage_2", + "from": [0, 5, 8], + "to": [16, 21, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 6, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_2"} + } + }, + { + "name": "pitcher_crop_bottom_stage_2", + "from": [8, 5, 0], + "to": [8, 21, 16], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 6, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#stage_2"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#stage_2"} + } + }, + { + "name": "pitcher_crop_bottom_stage_1", + "from": [3, -1, 3], + "to": [13, 5, 13], + "faces": { + "north": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "east": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "south": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "west": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "up": {"uv": [3, 3, 13, 13], "texture": "#pitcher_top"}, + "down": {"uv": [3, 3, 13, 13], "texture": "#pitcher_bottom"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_crop_bottom_stage_3.json b/assets/minecraft/models/block/pitcher_crop_bottom_stage_3.json new file mode 100644 index 00000000..520fbcba --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_bottom_stage_3.json @@ -0,0 +1,47 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top", + "stage_3_bottom": "block/pitcher_crop_bottom_stage_3", + "pitcher_top": "block/pitcher_crop_top", + "pitcher_side": "block/pitcher_crop_side", + "pitcher_bottom": "block/pitcher_crop_bottom" + }, + "elements": [ + { + "name": "pitcher_crop_bottom_stage_3", + "from": [0, 0, 8], + "to": [16, 16, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_3_bottom"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_3_bottom"} + } + }, + { + "name": "pitcher_crop_bottom_stage_3", + "from": [0, 0, 8], + "to": [16, 16, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_3_bottom"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_3_bottom"} + } + }, + { + "name": "pitcher_crop_bottom_stage_1", + "from": [3, -1, 3], + "to": [13, 5, 13], + "faces": { + "north": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "east": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "south": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "west": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "up": {"uv": [3, 3, 13, 13], "texture": "#pitcher_top"}, + "down": {"uv": [3, 3, 13, 13], "texture": "#pitcher_bottom"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_crop_bottom_stage_4.json b/assets/minecraft/models/block/pitcher_crop_bottom_stage_4.json new file mode 100644 index 00000000..1b258f05 --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_bottom_stage_4.json @@ -0,0 +1,47 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top", + "stage_4_bottom": "block/pitcher_crop_bottom_stage_4", + "pitcher_top": "block/pitcher_crop_top", + "pitcher_side": "block/pitcher_crop_side", + "pitcher_bottom": "block/pitcher_crop_bottom" + }, + "elements": [ + { + "name": "pitcher_crop_bottom_stage_4", + "from": [8, 0, 0], + "to": [8, 16, 16], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#stage_4_bottom"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#stage_4_bottom"} + } + }, + { + "name": "pitcher_crop_bottom_stage_4", + "from": [0, 0, 8], + "to": [16, 16, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_4_bottom"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_4_bottom"} + } + }, + { + "name": "pitcher_crop_bottom_stage_1", + "from": [3, -1, 3], + "to": [13, 5, 13], + "faces": { + "north": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "east": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "south": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "west": {"uv": [3, 10, 13, 16], "texture": "#pitcher_side"}, + "up": {"uv": [3, 3, 13, 13], "texture": "#pitcher_top"}, + "down": {"uv": [3, 3, 13, 13], "texture": "#pitcher_bottom"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_crop_top_stage_0.json b/assets/minecraft/models/block/pitcher_crop_top_stage_0.json new file mode 100644 index 00000000..93576f7c --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_top_stage_0.json @@ -0,0 +1,6 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top" + } +} diff --git a/assets/minecraft/models/block/pitcher_crop_top_stage_1.json b/assets/minecraft/models/block/pitcher_crop_top_stage_1.json new file mode 100644 index 00000000..1e9bae1f --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_top_stage_1.json @@ -0,0 +1,6 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top" + } +} diff --git a/assets/minecraft/models/block/pitcher_crop_top_stage_2.json b/assets/minecraft/models/block/pitcher_crop_top_stage_2.json new file mode 100644 index 00000000..1e9bae1f --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_top_stage_2.json @@ -0,0 +1,6 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top" + } +} diff --git a/assets/minecraft/models/block/pitcher_crop_top_stage_3.json b/assets/minecraft/models/block/pitcher_crop_top_stage_3.json new file mode 100644 index 00000000..ab16f851 --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_top_stage_3.json @@ -0,0 +1,31 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top", + "stage_3_top": "block/pitcher_crop_top_stage_3" + }, + "elements": [ + { + "name": "pitcher_crop_top_stage_3", + "from": [0, 0, 8], + "to": [16, 16, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_3_top"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_3_top"} + } + }, + { + "name": "pitcher_crop_top_stage_3", + "from": [0, 0, 8], + "to": [16, 16, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_3_top"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_3_top"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_crop_top_stage_4.json b/assets/minecraft/models/block/pitcher_crop_top_stage_4.json new file mode 100644 index 00000000..ef33757d --- /dev/null +++ b/assets/minecraft/models/block/pitcher_crop_top_stage_4.json @@ -0,0 +1,33 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top", + "stage_4_top": "block/pitcher_crop_top_stage_4", + "pitcher_top": "block/pitcher_crop_top", + "pitcher_side": "block/pitcher_crop_side" + }, + "elements": [ + { + "name": "pitcher_crop_top_stage_4", + "from": [8, 0, 0], + "to": [8, 16, 16], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#stage_4_top"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#stage_4_top"} + } + }, + { + "name": "pitcher_crop_top_stage_4", + "from": [0, 0, 8], + "to": [16, 16, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#stage_4_top"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#stage_4_top"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_plant_bottom.json b/assets/minecraft/models/block/pitcher_plant_bottom.json new file mode 100644 index 00000000..cd979bf9 --- /dev/null +++ b/assets/minecraft/models/block/pitcher_plant_bottom.json @@ -0,0 +1,39 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_bottom_stage_4", + "bottom": "block/pitcher_crop_bottom_stage_4" + }, + "elements": [ + { + "name": "pitcher_plant_bottom", + "from": [8, -5, 0], + "to": [8, 11, 16], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 3, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 16], "texture": "#bottom"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#bottom"}, + "south": {"uv": [0, 0, 0, 16], "texture": "#bottom"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#bottom"}, + "up": {"uv": [0, 0, 16, 0], "rotation": 90, "texture": "#bottom"}, + "down": {"uv": [0, 0, 16, 0], "rotation": 270, "texture": "#bottom"} + } + }, + { + "name": "pitcher_plant_bottom", + "from": [0, -5, 8], + "to": [16, 11, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 3, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#bottom"}, + "east": {"uv": [0, 0, 0, 16], "texture": "#bottom"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#bottom"}, + "west": {"uv": [0, 0, 0, 16], "texture": "#bottom"}, + "up": {"uv": [0, 0, 16, 0], "texture": "#bottom"}, + "down": {"uv": [0, 0, 16, 0], "texture": "#bottom"} + } + } + ] +} diff --git a/assets/minecraft/models/block/pitcher_plant_top.json b/assets/minecraft/models/block/pitcher_plant_top.json new file mode 100644 index 00000000..9d21ab89 --- /dev/null +++ b/assets/minecraft/models/block/pitcher_plant_top.json @@ -0,0 +1,39 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/pitcher_crop_top_stage_4", + "top": "block/pitcher_crop_top_stage_4" + }, + "elements": [ + { + "name": "pitcher_plant_top", + "from": [8, -5, 0], + "to": [8, 11, 16], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 19, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 16], "texture": "#top"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#top"}, + "south": {"uv": [0, 0, 0, 16], "texture": "#top"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#top"}, + "up": {"uv": [0, 0, 16, 0], "rotation": 90, "texture": "#top"}, + "down": {"uv": [0, 0, 16, 0], "rotation": 270, "texture": "#top"} + } + }, + { + "name": "pitcher_plant_top", + "from": [0, -5, 8], + "to": [16, 11, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 19, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#top"}, + "east": {"uv": [0, 0, 0, 16], "texture": "#top"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#top"}, + "west": {"uv": [0, 0, 0, 16], "texture": "#top"}, + "up": {"uv": [0, 0, 16, 0], "texture": "#top"}, + "down": {"uv": [0, 0, 16, 0], "texture": "#top"} + } + } + ] +} diff --git a/assets/minecraft/models/block/podzol.json b/assets/minecraft/models/block/podzol.json new file mode 100644 index 00000000..e3489217 --- /dev/null +++ b/assets/minecraft/models/block/podzol.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/dirt", + "side": "minecraft:block/podzol_side", + "top": "minecraft:block/podzol_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone.json b/assets/minecraft/models/block/pointed_dripstone.json new file mode 100644 index 00000000..78394717 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": true, + "textures": { + "particle": "#cross" + }, + "elements": [ + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 16, 15.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + } + } + ] +} diff --git a/assets/minecraft/models/block/pointed_dripstone_down_base.json b/assets/minecraft/models/block/pointed_dripstone_down_base.json new file mode 100644 index 00000000..3664c712 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_down_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_down_base" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_down_frustum.json b/assets/minecraft/models/block/pointed_dripstone_down_frustum.json new file mode 100644 index 00000000..56005b2c --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_down_frustum.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_down_frustum" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_down_middle.json b/assets/minecraft/models/block/pointed_dripstone_down_middle.json new file mode 100644 index 00000000..14d2c305 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_down_middle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_down_middle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_down_tip.json b/assets/minecraft/models/block/pointed_dripstone_down_tip.json new file mode 100644 index 00000000..ab610fb8 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_down_tip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_down_tip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_down_tip_merge.json b/assets/minecraft/models/block/pointed_dripstone_down_tip_merge.json new file mode 100644 index 00000000..4d0c1bf6 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_down_tip_merge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_down_tip_merge" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_up_base.json b/assets/minecraft/models/block/pointed_dripstone_up_base.json new file mode 100644 index 00000000..27b8b813 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_up_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_up_base" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_up_frustum.json b/assets/minecraft/models/block/pointed_dripstone_up_frustum.json new file mode 100644 index 00000000..556b1430 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_up_frustum.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_up_frustum" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_up_middle.json b/assets/minecraft/models/block/pointed_dripstone_up_middle.json new file mode 100644 index 00000000..27cf4e55 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_up_middle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_up_middle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_up_tip.json b/assets/minecraft/models/block/pointed_dripstone_up_tip.json new file mode 100644 index 00000000..8b1bf8ce --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_up_tip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_up_tip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pointed_dripstone_up_tip_merge.json b/assets/minecraft/models/block/pointed_dripstone_up_tip_merge.json new file mode 100644 index 00000000..70240899 --- /dev/null +++ b/assets/minecraft/models/block/pointed_dripstone_up_tip_merge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "minecraft:block/pointed_dripstone_up_tip_merge" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_andesite.json b/assets/minecraft/models/block/polished_andesite.json new file mode 100644 index 00000000..cd1067ab --- /dev/null +++ b/assets/minecraft/models/block/polished_andesite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_andesite_slab.json b/assets/minecraft/models/block/polished_andesite_slab.json new file mode 100644 index 00000000..72d8299f --- /dev/null +++ b/assets/minecraft/models/block/polished_andesite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_andesite_slab_top.json b/assets/minecraft/models/block/polished_andesite_slab_top.json new file mode 100644 index 00000000..3211d4d2 --- /dev/null +++ b/assets/minecraft/models/block/polished_andesite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_andesite_stairs.json b/assets/minecraft/models/block/polished_andesite_stairs.json new file mode 100644 index 00000000..d5d69805 --- /dev/null +++ b/assets/minecraft/models/block/polished_andesite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_andesite_stairs_inner.json b/assets/minecraft/models/block/polished_andesite_stairs_inner.json new file mode 100644 index 00000000..7275bfb0 --- /dev/null +++ b/assets/minecraft/models/block/polished_andesite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_andesite_stairs_outer.json b/assets/minecraft/models/block/polished_andesite_stairs_outer.json new file mode 100644 index 00000000..30d83744 --- /dev/null +++ b/assets/minecraft/models/block/polished_andesite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/polished_andesite", + "side": "minecraft:block/polished_andesite", + "top": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_basalt.json b/assets/minecraft/models/block/polished_basalt.json new file mode 100644 index 00000000..cdf565e4 --- /dev/null +++ b/assets/minecraft/models/block/polished_basalt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/polished_basalt_top", + "side": "minecraft:block/polished_basalt_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone.json b/assets/minecraft/models/block/polished_blackstone.json new file mode 100644 index 00000000..41baabeb --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_slab.json b/assets/minecraft/models/block/polished_blackstone_brick_slab.json new file mode 100644 index 00000000..d9c1e4d0 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_blackstone_bricks", + "side": "minecraft:block/polished_blackstone_bricks", + "top": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_slab_top.json b/assets/minecraft/models/block/polished_blackstone_brick_slab_top.json new file mode 100644 index 00000000..bb2fd0f2 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_blackstone_bricks", + "side": "minecraft:block/polished_blackstone_bricks", + "top": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_stairs.json b/assets/minecraft/models/block/polished_blackstone_brick_stairs.json new file mode 100644 index 00000000..535eab26 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/polished_blackstone_bricks", + "side": "minecraft:block/polished_blackstone_bricks", + "top": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_stairs_inner.json b/assets/minecraft/models/block/polished_blackstone_brick_stairs_inner.json new file mode 100644 index 00000000..0439b1c0 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/polished_blackstone_bricks", + "side": "minecraft:block/polished_blackstone_bricks", + "top": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_stairs_outer.json b/assets/minecraft/models/block/polished_blackstone_brick_stairs_outer.json new file mode 100644 index 00000000..324e6f7b --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/polished_blackstone_bricks", + "side": "minecraft:block/polished_blackstone_bricks", + "top": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_wall_inventory.json b/assets/minecraft/models/block/polished_blackstone_brick_wall_inventory.json new file mode 100644 index 00000000..1c934f4a --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_wall_post.json b/assets/minecraft/models/block/polished_blackstone_brick_wall_post.json new file mode 100644 index 00000000..1f634397 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_wall_side.json b/assets/minecraft/models/block/polished_blackstone_brick_wall_side.json new file mode 100644 index 00000000..2b0179ed --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_brick_wall_side_tall.json b/assets/minecraft/models/block/polished_blackstone_brick_wall_side_tall.json new file mode 100644 index 00000000..8f5ee0c5 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_bricks.json b/assets/minecraft/models/block/polished_blackstone_bricks.json new file mode 100644 index 00000000..b94caf75 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_button.json b/assets/minecraft/models/block/polished_blackstone_button.json new file mode 100644 index 00000000..46472f13 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_button_inventory.json b/assets/minecraft/models/block/polished_blackstone_button_inventory.json new file mode 100644 index 00000000..9e717030 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_button_pressed.json b/assets/minecraft/models/block/polished_blackstone_button_pressed.json new file mode 100644 index 00000000..11457972 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_pressure_plate.json b/assets/minecraft/models/block/polished_blackstone_pressure_plate.json new file mode 100644 index 00000000..e9d41846 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_pressure_plate_down.json b/assets/minecraft/models/block/polished_blackstone_pressure_plate_down.json new file mode 100644 index 00000000..62fd5664 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_slab.json b/assets/minecraft/models/block/polished_blackstone_slab.json new file mode 100644 index 00000000..260c098e --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_slab_top.json b/assets/minecraft/models/block/polished_blackstone_slab_top.json new file mode 100644 index 00000000..b52a9ee9 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_stairs.json b/assets/minecraft/models/block/polished_blackstone_stairs.json new file mode 100644 index 00000000..00d6d5fd --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_stairs_inner.json b/assets/minecraft/models/block/polished_blackstone_stairs_inner.json new file mode 100644 index 00000000..a8534223 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_stairs_outer.json b/assets/minecraft/models/block/polished_blackstone_stairs_outer.json new file mode 100644 index 00000000..dc6e55a3 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/polished_blackstone", + "side": "minecraft:block/polished_blackstone", + "top": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_wall_inventory.json b/assets/minecraft/models/block/polished_blackstone_wall_inventory.json new file mode 100644 index 00000000..d361d99b --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_wall_post.json b/assets/minecraft/models/block/polished_blackstone_wall_post.json new file mode 100644 index 00000000..24cf5a40 --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_wall_side.json b/assets/minecraft/models/block/polished_blackstone_wall_side.json new file mode 100644 index 00000000..fc72cbea --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_blackstone_wall_side_tall.json b/assets/minecraft/models/block/polished_blackstone_wall_side_tall.json new file mode 100644 index 00000000..5d3f4f0c --- /dev/null +++ b/assets/minecraft/models/block/polished_blackstone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/polished_blackstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate.json b/assets/minecraft/models/block/polished_deepslate.json new file mode 100644 index 00000000..6645c7e0 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_slab.json b/assets/minecraft/models/block/polished_deepslate_slab.json new file mode 100644 index 00000000..b622b958 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_slab_top.json b/assets/minecraft/models/block/polished_deepslate_slab_top.json new file mode 100644 index 00000000..c9d076b9 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_stairs.json b/assets/minecraft/models/block/polished_deepslate_stairs.json new file mode 100644 index 00000000..1d14d0b1 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_stairs_inner.json b/assets/minecraft/models/block/polished_deepslate_stairs_inner.json new file mode 100644 index 00000000..de71267f --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_stairs_outer.json b/assets/minecraft/models/block/polished_deepslate_stairs_outer.json new file mode 100644 index 00000000..22018b12 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/polished_deepslate", + "side": "minecraft:block/polished_deepslate", + "top": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_wall_inventory.json b/assets/minecraft/models/block/polished_deepslate_wall_inventory.json new file mode 100644 index 00000000..233596b3 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_wall_post.json b/assets/minecraft/models/block/polished_deepslate_wall_post.json new file mode 100644 index 00000000..47da476f --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_wall_side.json b/assets/minecraft/models/block/polished_deepslate_wall_side.json new file mode 100644 index 00000000..6335eae3 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_deepslate_wall_side_tall.json b/assets/minecraft/models/block/polished_deepslate_wall_side_tall.json new file mode 100644 index 00000000..04a1d522 --- /dev/null +++ b/assets/minecraft/models/block/polished_deepslate_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_diorite.json b/assets/minecraft/models/block/polished_diorite.json new file mode 100644 index 00000000..99afb394 --- /dev/null +++ b/assets/minecraft/models/block/polished_diorite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_diorite_slab.json b/assets/minecraft/models/block/polished_diorite_slab.json new file mode 100644 index 00000000..04bbeb21 --- /dev/null +++ b/assets/minecraft/models/block/polished_diorite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_diorite_slab_top.json b/assets/minecraft/models/block/polished_diorite_slab_top.json new file mode 100644 index 00000000..aa5ed4f5 --- /dev/null +++ b/assets/minecraft/models/block/polished_diorite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_diorite_stairs.json b/assets/minecraft/models/block/polished_diorite_stairs.json new file mode 100644 index 00000000..22348dcb --- /dev/null +++ b/assets/minecraft/models/block/polished_diorite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_diorite_stairs_inner.json b/assets/minecraft/models/block/polished_diorite_stairs_inner.json new file mode 100644 index 00000000..6bac942a --- /dev/null +++ b/assets/minecraft/models/block/polished_diorite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_diorite_stairs_outer.json b/assets/minecraft/models/block/polished_diorite_stairs_outer.json new file mode 100644 index 00000000..2984c3f8 --- /dev/null +++ b/assets/minecraft/models/block/polished_diorite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/polished_diorite", + "side": "minecraft:block/polished_diorite", + "top": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_granite.json b/assets/minecraft/models/block/polished_granite.json new file mode 100644 index 00000000..46f93fd8 --- /dev/null +++ b/assets/minecraft/models/block/polished_granite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_granite_slab.json b/assets/minecraft/models/block/polished_granite_slab.json new file mode 100644 index 00000000..07a13acc --- /dev/null +++ b/assets/minecraft/models/block/polished_granite_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_granite_slab_top.json b/assets/minecraft/models/block/polished_granite_slab_top.json new file mode 100644 index 00000000..244ea115 --- /dev/null +++ b/assets/minecraft/models/block/polished_granite_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_granite_stairs.json b/assets/minecraft/models/block/polished_granite_stairs.json new file mode 100644 index 00000000..d57f59f7 --- /dev/null +++ b/assets/minecraft/models/block/polished_granite_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_granite_stairs_inner.json b/assets/minecraft/models/block/polished_granite_stairs_inner.json new file mode 100644 index 00000000..1d38f86c --- /dev/null +++ b/assets/minecraft/models/block/polished_granite_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_granite_stairs_outer.json b/assets/minecraft/models/block/polished_granite_stairs_outer.json new file mode 100644 index 00000000..4f824236 --- /dev/null +++ b/assets/minecraft/models/block/polished_granite_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/polished_granite", + "side": "minecraft:block/polished_granite", + "top": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff.json b/assets/minecraft/models/block/polished_tuff.json new file mode 100644 index 00000000..ccf1b27b --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_slab.json b/assets/minecraft/models/block/polished_tuff_slab.json new file mode 100644 index 00000000..7fce08e9 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/polished_tuff", + "side": "minecraft:block/polished_tuff", + "top": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_slab_top.json b/assets/minecraft/models/block/polished_tuff_slab_top.json new file mode 100644 index 00000000..5a6c03f2 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/polished_tuff", + "side": "minecraft:block/polished_tuff", + "top": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_stairs.json b/assets/minecraft/models/block/polished_tuff_stairs.json new file mode 100644 index 00000000..be42e557 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/polished_tuff", + "side": "minecraft:block/polished_tuff", + "top": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_stairs_inner.json b/assets/minecraft/models/block/polished_tuff_stairs_inner.json new file mode 100644 index 00000000..b5cfb212 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/polished_tuff", + "side": "minecraft:block/polished_tuff", + "top": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_stairs_outer.json b/assets/minecraft/models/block/polished_tuff_stairs_outer.json new file mode 100644 index 00000000..df5eb7f3 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/polished_tuff", + "side": "minecraft:block/polished_tuff", + "top": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_wall_inventory.json b/assets/minecraft/models/block/polished_tuff_wall_inventory.json new file mode 100644 index 00000000..d55e3856 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_wall_post.json b/assets/minecraft/models/block/polished_tuff_wall_post.json new file mode 100644 index 00000000..ec072dd8 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_wall_side.json b/assets/minecraft/models/block/polished_tuff_wall_side.json new file mode 100644 index 00000000..25c445d7 --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/polished_tuff_wall_side_tall.json b/assets/minecraft/models/block/polished_tuff_wall_side_tall.json new file mode 100644 index 00000000..97dfe6ad --- /dev/null +++ b/assets/minecraft/models/block/polished_tuff_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/polished_tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/poppy.json b/assets/minecraft/models/block/poppy.json new file mode 100644 index 00000000..dd37fe80 --- /dev/null +++ b/assets/minecraft/models/block/poppy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/poppy" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potatoes_stage0.json b/assets/minecraft/models/block/potatoes_stage0.json new file mode 100644 index 00000000..7bd4a3c4 --- /dev/null +++ b/assets/minecraft/models/block/potatoes_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/potatoes_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potatoes_stage1.json b/assets/minecraft/models/block/potatoes_stage1.json new file mode 100644 index 00000000..e1ccb2e9 --- /dev/null +++ b/assets/minecraft/models/block/potatoes_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/potatoes_stage1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potatoes_stage2.json b/assets/minecraft/models/block/potatoes_stage2.json new file mode 100644 index 00000000..139c6401 --- /dev/null +++ b/assets/minecraft/models/block/potatoes_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/potatoes_stage2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potatoes_stage3.json b/assets/minecraft/models/block/potatoes_stage3.json new file mode 100644 index 00000000..8ac74e8a --- /dev/null +++ b/assets/minecraft/models/block/potatoes_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/potatoes_stage3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_acacia_sapling.json b/assets/minecraft/models/block/potted_acacia_sapling.json new file mode 100644 index 00000000..e1b2b703 --- /dev/null +++ b/assets/minecraft/models/block/potted_acacia_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/acacia_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_allium.json b/assets/minecraft/models/block/potted_allium.json new file mode 100644 index 00000000..5b576fbb --- /dev/null +++ b/assets/minecraft/models/block/potted_allium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/allium" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_azalea_bush.json b/assets/minecraft/models/block/potted_azalea_bush.json new file mode 100644 index 00000000..c6c15caa --- /dev/null +++ b/assets/minecraft/models/block/potted_azalea_bush.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_potted_azalea_bush", + "textures": { + "plant": "minecraft:block/potted_azalea_bush_plant", + "side": "minecraft:block/potted_azalea_bush_side", + "top": "minecraft:block/potted_azalea_bush_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_azure_bluet.json b/assets/minecraft/models/block/potted_azure_bluet.json new file mode 100644 index 00000000..175b4c04 --- /dev/null +++ b/assets/minecraft/models/block/potted_azure_bluet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/azure_bluet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_bamboo.json b/assets/minecraft/models/block/potted_bamboo.json new file mode 100644 index 00000000..14ffcc2a --- /dev/null +++ b/assets/minecraft/models/block/potted_bamboo.json @@ -0,0 +1,77 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/flower_pot", + "flowerpot": "block/flower_pot", + "dirt": "block/dirt", + "bamboo": "block/bamboo_stalk", + "leaf": "block/bamboo_singleleaf" + }, + "elements": [ + { "from": [ 5, 0, 5 ], + "to": [ 6, 6, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 10, 0, 5 ], + "to": [ 11, 6, 11 ], + "faces": { + "down": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 5 ], + "to": [ 10, 6, 6 ], + "faces": { + "down": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 10 ], + "to": [ 10, 6, 11 ], + "faces": { + "down": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 6 ], + "to": [ 10, 4, 10 ], + "faces": { + "down": { "uv": [ 6, 12, 10, 16 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#dirt" } + } + }, + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "up": { "uv": [ 13, 0, 15, 2], "texture": "#bamboo", "cullface": "up" }, + "north": { "uv": [ 6, 0, 8, 16 ], "texture": "#bamboo" }, + "south": { "uv": [ 6, 0, 8, 16 ], "texture": "#bamboo" }, + "west": { "uv": [ 6, 0, 8, 16 ], "texture": "#bamboo" }, + "east": { "uv": [ 6, 0, 8, 16 ], "texture": "#bamboo" } + } + }, + { "from": [ 0, 2, 8 ], + "to": [ 16, 18, 8 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#leaf" }, + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#leaf" } + } + } + ] +} diff --git a/assets/minecraft/models/block/potted_birch_sapling.json b/assets/minecraft/models/block/potted_birch_sapling.json new file mode 100644 index 00000000..b19246fb --- /dev/null +++ b/assets/minecraft/models/block/potted_birch_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/birch_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_blue_orchid.json b/assets/minecraft/models/block/potted_blue_orchid.json new file mode 100644 index 00000000..f9b31bad --- /dev/null +++ b/assets/minecraft/models/block/potted_blue_orchid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/blue_orchid" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_brown_mushroom.json b/assets/minecraft/models/block/potted_brown_mushroom.json new file mode 100644 index 00000000..3e837e62 --- /dev/null +++ b/assets/minecraft/models/block/potted_brown_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/brown_mushroom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_cactus.json b/assets/minecraft/models/block/potted_cactus.json new file mode 100644 index 00000000..6f662412 --- /dev/null +++ b/assets/minecraft/models/block/potted_cactus.json @@ -0,0 +1,32 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/flower_pot", + "flowerpot": "block/flower_pot", + "cactus_top": "block/cactus_top", + "cactus": "block/cactus_side" + }, + "elements": [ + { "from": [ 5, 0, 5 ], + "to": [ 11, 6, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "texture": "#flowerpot" }, + "north": { "texture": "#flowerpot" }, + "south": { "texture": "#flowerpot" }, + "west": { "texture": "#flowerpot" }, + "east": { "texture": "#flowerpot" } + } + }, + { "from": [ 6, 5, 6 ], + "to": [ 10, 16, 10 ], + "faces": { + "up": { "texture": "#cactus_top", "cullface": "up" }, + "north": { "uv": [ 6, 0, 10, 11 ], "texture": "#cactus" }, + "south": { "uv": [ 6, 0, 10, 11 ], "texture": "#cactus" }, + "west": { "uv": [ 6, 0, 10, 11 ], "texture": "#cactus" }, + "east": { "uv": [ 6, 0, 10, 11 ], "texture": "#cactus" } + } + } + ] +} diff --git a/assets/minecraft/models/block/potted_cherry_sapling.json b/assets/minecraft/models/block/potted_cherry_sapling.json new file mode 100644 index 00000000..953170b7 --- /dev/null +++ b/assets/minecraft/models/block/potted_cherry_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/cherry_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_cornflower.json b/assets/minecraft/models/block/potted_cornflower.json new file mode 100644 index 00000000..70d88359 --- /dev/null +++ b/assets/minecraft/models/block/potted_cornflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/cornflower" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_crimson_fungus.json b/assets/minecraft/models/block/potted_crimson_fungus.json new file mode 100644 index 00000000..08aea2cb --- /dev/null +++ b/assets/minecraft/models/block/potted_crimson_fungus.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/crimson_fungus" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_crimson_roots.json b/assets/minecraft/models/block/potted_crimson_roots.json new file mode 100644 index 00000000..b5b27112 --- /dev/null +++ b/assets/minecraft/models/block/potted_crimson_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/crimson_roots_pot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_dandelion.json b/assets/minecraft/models/block/potted_dandelion.json new file mode 100644 index 00000000..c6c36133 --- /dev/null +++ b/assets/minecraft/models/block/potted_dandelion.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/dandelion" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_dark_oak_sapling.json b/assets/minecraft/models/block/potted_dark_oak_sapling.json new file mode 100644 index 00000000..b269e873 --- /dev/null +++ b/assets/minecraft/models/block/potted_dark_oak_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/dark_oak_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_dead_bush.json b/assets/minecraft/models/block/potted_dead_bush.json new file mode 100644 index 00000000..e2f1fc5f --- /dev/null +++ b/assets/minecraft/models/block/potted_dead_bush.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/dead_bush" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_fern.json b/assets/minecraft/models/block/potted_fern.json new file mode 100644 index 00000000..3076b6d1 --- /dev/null +++ b/assets/minecraft/models/block/potted_fern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_flower_pot_cross", + "textures": { + "plant": "minecraft:block/fern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_flowering_azalea_bush.json b/assets/minecraft/models/block/potted_flowering_azalea_bush.json new file mode 100644 index 00000000..ef95facb --- /dev/null +++ b/assets/minecraft/models/block/potted_flowering_azalea_bush.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_potted_azalea_bush", + "textures": { + "plant": "minecraft:block/potted_flowering_azalea_bush_plant", + "side": "minecraft:block/potted_flowering_azalea_bush_side", + "top": "minecraft:block/potted_flowering_azalea_bush_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_jungle_sapling.json b/assets/minecraft/models/block/potted_jungle_sapling.json new file mode 100644 index 00000000..4ee93988 --- /dev/null +++ b/assets/minecraft/models/block/potted_jungle_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/jungle_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_lily_of_the_valley.json b/assets/minecraft/models/block/potted_lily_of_the_valley.json new file mode 100644 index 00000000..a09d9c16 --- /dev/null +++ b/assets/minecraft/models/block/potted_lily_of_the_valley.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/lily_of_the_valley" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_mangrove_propagule.json b/assets/minecraft/models/block/potted_mangrove_propagule.json new file mode 100644 index 00000000..6d817996 --- /dev/null +++ b/assets/minecraft/models/block/potted_mangrove_propagule.json @@ -0,0 +1,103 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/flower_pot", + "sapling": "block/mangrove_propagule", + "flowerpot": "block/flower_pot", + "dirt": "block/dirt" + }, + "elements": [ + { + "name": "leaves", + "from": [4.5, 9, 8], + "to": [11.5, 15, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "north": {"uv": [4, 1, 11, 7], "texture": "#sapling"}, + "south": {"uv": [4, 1, 11, 7], "texture": "#sapling"} + } + }, + { + "name": "leaves", + "from": [8, 9, 4.5], + "to": [8, 15, 11.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "east": {"uv": [4, 1, 11, 7], "texture": "#sapling"}, + "west": {"uv": [4, 1, 11, 7], "texture": "#sapling"} + } + }, + { + "name": "hypocotyl", + "from": [8, 0, 7], + "to": [8, 9, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "east": {"uv": [7, 7, 9, 16], "texture": "#sapling"}, + "west": {"uv": [7, 7, 9, 16], "texture": "#sapling"} + } + }, + { + "name": "hypocotyl", + "from": [7, 0, 8], + "to": [9, 9, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8], "rescale": true}, + "faces": { + "north": {"uv": [7, 7, 9, 16], "texture": "#sapling"}, + "south": {"uv": [7, 7, 9, 16], "texture": "#sapling"} + } + }, + { + "from": [ 5, 0, 5 ], + "to": [ 6, 6, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { + "from": [ 10, 0, 5 ], + "to": [ 11, 6, 11 ], + "faces": { + "down": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { + "from": [ 6, 0, 5 ], + "to": [ 10, 6, 6 ], + "faces": { + "down": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { + "from": [ 6, 0, 10 ], + "to": [ 10, 6, 11 ], + "faces": { + "down": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { + "from": [ 6, 0, 6 ], + "to": [ 10, 4, 10 ], + "faces": { + "down": { "uv": [ 6, 12, 10, 16 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#dirt" } + } + } + ] +} diff --git a/assets/minecraft/models/block/potted_oak_sapling.json b/assets/minecraft/models/block/potted_oak_sapling.json new file mode 100644 index 00000000..c4746c46 --- /dev/null +++ b/assets/minecraft/models/block/potted_oak_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/oak_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_orange_tulip.json b/assets/minecraft/models/block/potted_orange_tulip.json new file mode 100644 index 00000000..bd2b5e75 --- /dev/null +++ b/assets/minecraft/models/block/potted_orange_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/orange_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_oxeye_daisy.json b/assets/minecraft/models/block/potted_oxeye_daisy.json new file mode 100644 index 00000000..107dc8e8 --- /dev/null +++ b/assets/minecraft/models/block/potted_oxeye_daisy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/oxeye_daisy" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_pink_tulip.json b/assets/minecraft/models/block/potted_pink_tulip.json new file mode 100644 index 00000000..75658f75 --- /dev/null +++ b/assets/minecraft/models/block/potted_pink_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/pink_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_poppy.json b/assets/minecraft/models/block/potted_poppy.json new file mode 100644 index 00000000..6fdefca8 --- /dev/null +++ b/assets/minecraft/models/block/potted_poppy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/poppy" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_red_mushroom.json b/assets/minecraft/models/block/potted_red_mushroom.json new file mode 100644 index 00000000..9bc28969 --- /dev/null +++ b/assets/minecraft/models/block/potted_red_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/red_mushroom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_red_tulip.json b/assets/minecraft/models/block/potted_red_tulip.json new file mode 100644 index 00000000..6541daaa --- /dev/null +++ b/assets/minecraft/models/block/potted_red_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/red_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_spruce_sapling.json b/assets/minecraft/models/block/potted_spruce_sapling.json new file mode 100644 index 00000000..431559fa --- /dev/null +++ b/assets/minecraft/models/block/potted_spruce_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/spruce_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_torchflower.json b/assets/minecraft/models/block/potted_torchflower.json new file mode 100644 index 00000000..a7a38e62 --- /dev/null +++ b/assets/minecraft/models/block/potted_torchflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/torchflower" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_warped_fungus.json b/assets/minecraft/models/block/potted_warped_fungus.json new file mode 100644 index 00000000..de7e890a --- /dev/null +++ b/assets/minecraft/models/block/potted_warped_fungus.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/warped_fungus" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_warped_roots.json b/assets/minecraft/models/block/potted_warped_roots.json new file mode 100644 index 00000000..ac44109d --- /dev/null +++ b/assets/minecraft/models/block/potted_warped_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/warped_roots_pot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_white_tulip.json b/assets/minecraft/models/block/potted_white_tulip.json new file mode 100644 index 00000000..efc662fe --- /dev/null +++ b/assets/minecraft/models/block/potted_white_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/white_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/potted_wither_rose.json b/assets/minecraft/models/block/potted_wither_rose.json new file mode 100644 index 00000000..1eab257a --- /dev/null +++ b/assets/minecraft/models/block/potted_wither_rose.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "minecraft:block/wither_rose" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powder_snow.json b/assets/minecraft/models/block/powder_snow.json new file mode 100644 index 00000000..6be3d245 --- /dev/null +++ b/assets/minecraft/models/block/powder_snow.json @@ -0,0 +1,51 @@ +{ + "parent": "block/block", + "textures": { + "texture": "block/powder_snow", + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 15.998, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "up" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "up" } + } + }, + { "from": [ 0, 0, 0 ], + "to": [ 16, 0.002, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "down" } + } + }, + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 0.002 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#texture", "cullface": "north" } + } + }, + { "from": [ 0, 0, 15.998 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#texture", "cullface": "south" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "south" } + } + }, + { "from": [ 0, 0, 0 ], + "to": [ 0.002, 16, 16 ], + "faces": { + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#texture", "cullface": "west" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "west" } + } + }, + { "from": [ 15.998, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "east" }, + "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/powder_snow_cauldron_full.json b/assets/minecraft/models/block/powder_snow_cauldron_full.json new file mode 100644 index 00000000..09cf43bf --- /dev/null +++ b/assets/minecraft/models/block/powder_snow_cauldron_full.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_full", + "textures": { + "bottom": "minecraft:block/cauldron_bottom", + "content": "minecraft:block/powder_snow", + "inside": "minecraft:block/cauldron_inner", + "particle": "minecraft:block/cauldron_side", + "side": "minecraft:block/cauldron_side", + "top": "minecraft:block/cauldron_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powder_snow_cauldron_level1.json b/assets/minecraft/models/block/powder_snow_cauldron_level1.json new file mode 100644 index 00000000..6cc69ae7 --- /dev/null +++ b/assets/minecraft/models/block/powder_snow_cauldron_level1.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_level1", + "textures": { + "bottom": "minecraft:block/cauldron_bottom", + "content": "minecraft:block/powder_snow", + "inside": "minecraft:block/cauldron_inner", + "particle": "minecraft:block/cauldron_side", + "side": "minecraft:block/cauldron_side", + "top": "minecraft:block/cauldron_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powder_snow_cauldron_level2.json b/assets/minecraft/models/block/powder_snow_cauldron_level2.json new file mode 100644 index 00000000..1d76edc1 --- /dev/null +++ b/assets/minecraft/models/block/powder_snow_cauldron_level2.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_level2", + "textures": { + "bottom": "minecraft:block/cauldron_bottom", + "content": "minecraft:block/powder_snow", + "inside": "minecraft:block/cauldron_inner", + "particle": "minecraft:block/cauldron_side", + "side": "minecraft:block/cauldron_side", + "top": "minecraft:block/cauldron_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powered_rail.json b/assets/minecraft/models/block/powered_rail.json new file mode 100644 index 00000000..be1faa81 --- /dev/null +++ b/assets/minecraft/models/block/powered_rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_flat", + "textures": { + "rail": "minecraft:block/powered_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powered_rail_on.json b/assets/minecraft/models/block/powered_rail_on.json new file mode 100644 index 00000000..eccba5ee --- /dev/null +++ b/assets/minecraft/models/block/powered_rail_on.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_flat", + "textures": { + "rail": "minecraft:block/powered_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powered_rail_on_raised_ne.json b/assets/minecraft/models/block/powered_rail_on_raised_ne.json new file mode 100644 index 00000000..b8be1418 --- /dev/null +++ b/assets/minecraft/models/block/powered_rail_on_raised_ne.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_ne", + "textures": { + "rail": "minecraft:block/powered_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powered_rail_on_raised_sw.json b/assets/minecraft/models/block/powered_rail_on_raised_sw.json new file mode 100644 index 00000000..07fdc142 --- /dev/null +++ b/assets/minecraft/models/block/powered_rail_on_raised_sw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_sw", + "textures": { + "rail": "minecraft:block/powered_rail_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powered_rail_raised_ne.json b/assets/minecraft/models/block/powered_rail_raised_ne.json new file mode 100644 index 00000000..ebfd5e1c --- /dev/null +++ b/assets/minecraft/models/block/powered_rail_raised_ne.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_ne", + "textures": { + "rail": "minecraft:block/powered_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/powered_rail_raised_sw.json b/assets/minecraft/models/block/powered_rail_raised_sw.json new file mode 100644 index 00000000..516a56ee --- /dev/null +++ b/assets/minecraft/models/block/powered_rail_raised_sw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_sw", + "textures": { + "rail": "minecraft:block/powered_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pressure_plate_down.json b/assets/minecraft/models/block/pressure_plate_down.json new file mode 100644 index 00000000..db6e6ba6 --- /dev/null +++ b/assets/minecraft/models/block/pressure_plate_down.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 1, 0, 1 ], + "to": [ 15, 0.5, 15 ], + "faces": { + "down": { "uv": [ 1, 1, 15, 15 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 1, 1, 15, 15 ], "texture": "#texture" }, + "north": { "uv": [ 1, 15, 15, 15.5 ], "texture": "#texture" }, + "south": { "uv": [ 1, 15, 15, 15.5 ], "texture": "#texture" }, + "west": { "uv": [ 1, 15, 15, 15.5 ], "texture": "#texture" }, + "east": { "uv": [ 1, 15, 15, 15.5 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/pressure_plate_up.json b/assets/minecraft/models/block/pressure_plate_up.json new file mode 100644 index 00000000..689fbe4f --- /dev/null +++ b/assets/minecraft/models/block/pressure_plate_up.json @@ -0,0 +1,18 @@ +{ "parent": "block/thin_block", + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 1, 0, 1 ], + "to": [ 15, 1, 15 ], + "faces": { + "down": { "uv": [ 1, 1, 15, 15 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 1, 1, 15, 15 ], "texture": "#texture" }, + "north": { "uv": [ 1, 15, 15, 16 ], "texture": "#texture" }, + "south": { "uv": [ 1, 15, 15, 16 ], "texture": "#texture" }, + "west": { "uv": [ 1, 15, 15, 16 ], "texture": "#texture" }, + "east": { "uv": [ 1, 15, 15, 16 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/prismarine.json b/assets/minecraft/models/block/prismarine.json new file mode 100644 index 00000000..bbac86bf --- /dev/null +++ b/assets/minecraft/models/block/prismarine.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_brick_slab.json b/assets/minecraft/models/block/prismarine_brick_slab.json new file mode 100644 index 00000000..a8126216 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_brick_slab_top.json b/assets/minecraft/models/block/prismarine_brick_slab_top.json new file mode 100644 index 00000000..32a5b364 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_brick_stairs.json b/assets/minecraft/models/block/prismarine_brick_stairs.json new file mode 100644 index 00000000..139c6e2d --- /dev/null +++ b/assets/minecraft/models/block/prismarine_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_brick_stairs_inner.json b/assets/minecraft/models/block/prismarine_brick_stairs_inner.json new file mode 100644 index 00000000..5383506b --- /dev/null +++ b/assets/minecraft/models/block/prismarine_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_brick_stairs_outer.json b/assets/minecraft/models/block/prismarine_brick_stairs_outer.json new file mode 100644 index 00000000..9dbe7dfa --- /dev/null +++ b/assets/minecraft/models/block/prismarine_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/prismarine_bricks", + "side": "minecraft:block/prismarine_bricks", + "top": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_bricks.json b/assets/minecraft/models/block/prismarine_bricks.json new file mode 100644 index 00000000..ee4a465b --- /dev/null +++ b/assets/minecraft/models/block/prismarine_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/prismarine_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_slab.json b/assets/minecraft/models/block/prismarine_slab.json new file mode 100644 index 00000000..9a518126 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/prismarine", + "side": "minecraft:block/prismarine", + "top": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_slab_top.json b/assets/minecraft/models/block/prismarine_slab_top.json new file mode 100644 index 00000000..52514d9b --- /dev/null +++ b/assets/minecraft/models/block/prismarine_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/prismarine", + "side": "minecraft:block/prismarine", + "top": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_stairs.json b/assets/minecraft/models/block/prismarine_stairs.json new file mode 100644 index 00000000..274c6057 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/prismarine", + "side": "minecraft:block/prismarine", + "top": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_stairs_inner.json b/assets/minecraft/models/block/prismarine_stairs_inner.json new file mode 100644 index 00000000..a89a05b5 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/prismarine", + "side": "minecraft:block/prismarine", + "top": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_stairs_outer.json b/assets/minecraft/models/block/prismarine_stairs_outer.json new file mode 100644 index 00000000..62c76278 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/prismarine", + "side": "minecraft:block/prismarine", + "top": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_wall_inventory.json b/assets/minecraft/models/block/prismarine_wall_inventory.json new file mode 100644 index 00000000..d638391d --- /dev/null +++ b/assets/minecraft/models/block/prismarine_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_wall_post.json b/assets/minecraft/models/block/prismarine_wall_post.json new file mode 100644 index 00000000..207d59d8 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_wall_side.json b/assets/minecraft/models/block/prismarine_wall_side.json new file mode 100644 index 00000000..e21990c6 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/prismarine_wall_side_tall.json b/assets/minecraft/models/block/prismarine_wall_side_tall.json new file mode 100644 index 00000000..31ed03f5 --- /dev/null +++ b/assets/minecraft/models/block/prismarine_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/prismarine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin.json b/assets/minecraft/models/block/pumpkin.json new file mode 100644 index 00000000..ab505114 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin.json @@ -0,0 +1,14 @@ +{ + "parent": "block/cube_column", + "display": { + "firstperson_righthand": { + "rotation": [ 0, 135, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + }, + "textures": { + "end": "block/pumpkin_top", + "side": "block/pumpkin_side" + } +} diff --git a/assets/minecraft/models/block/pumpkin_stem_stage0.json b/assets/minecraft/models/block/pumpkin_stem_stage0.json new file mode 100644 index 00000000..dc984be4 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth0", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin_stem_stage1.json b/assets/minecraft/models/block/pumpkin_stem_stage1.json new file mode 100644 index 00000000..510c8e6c --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth1", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin_stem_stage2.json b/assets/minecraft/models/block/pumpkin_stem_stage2.json new file mode 100644 index 00000000..d92cfae7 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth2", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin_stem_stage3.json b/assets/minecraft/models/block/pumpkin_stem_stage3.json new file mode 100644 index 00000000..a6fc0463 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth3", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin_stem_stage4.json b/assets/minecraft/models/block/pumpkin_stem_stage4.json new file mode 100644 index 00000000..6e43c087 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth4", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin_stem_stage5.json b/assets/minecraft/models/block/pumpkin_stem_stage5.json new file mode 100644 index 00000000..8dc2dfe8 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth5", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin_stem_stage6.json b/assets/minecraft/models/block/pumpkin_stem_stage6.json new file mode 100644 index 00000000..a2be41d6 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth6", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/pumpkin_stem_stage7.json b/assets/minecraft/models/block/pumpkin_stem_stage7.json new file mode 100644 index 00000000..a4e71598 --- /dev/null +++ b/assets/minecraft/models/block/pumpkin_stem_stage7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/stem_growth7", + "textures": { + "stem": "minecraft:block/pumpkin_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_cake.json b/assets/minecraft/models/block/purple_candle_cake.json new file mode 100644 index 00000000..7d7af96f --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/purple_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_cake_lit.json b/assets/minecraft/models/block/purple_candle_cake_lit.json new file mode 100644 index 00000000..b5b085c8 --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/purple_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_four_candles.json b/assets/minecraft/models/block/purple_candle_four_candles.json new file mode 100644 index 00000000..fa3e32bb --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/purple_candle", + "particle": "minecraft:block/purple_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_four_candles_lit.json b/assets/minecraft/models/block/purple_candle_four_candles_lit.json new file mode 100644 index 00000000..29a0bfb8 --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/purple_candle_lit", + "particle": "minecraft:block/purple_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_one_candle.json b/assets/minecraft/models/block/purple_candle_one_candle.json new file mode 100644 index 00000000..feb3302d --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/purple_candle", + "particle": "minecraft:block/purple_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_one_candle_lit.json b/assets/minecraft/models/block/purple_candle_one_candle_lit.json new file mode 100644 index 00000000..c2fdd538 --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/purple_candle_lit", + "particle": "minecraft:block/purple_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_three_candles.json b/assets/minecraft/models/block/purple_candle_three_candles.json new file mode 100644 index 00000000..cbfc5f32 --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/purple_candle", + "particle": "minecraft:block/purple_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_three_candles_lit.json b/assets/minecraft/models/block/purple_candle_three_candles_lit.json new file mode 100644 index 00000000..73e33ade --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/purple_candle_lit", + "particle": "minecraft:block/purple_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_two_candles.json b/assets/minecraft/models/block/purple_candle_two_candles.json new file mode 100644 index 00000000..39d9a9db --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/purple_candle", + "particle": "minecraft:block/purple_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_candle_two_candles_lit.json b/assets/minecraft/models/block/purple_candle_two_candles_lit.json new file mode 100644 index 00000000..9b165c0c --- /dev/null +++ b/assets/minecraft/models/block/purple_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/purple_candle_lit", + "particle": "minecraft:block/purple_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_carpet.json b/assets/minecraft/models/block/purple_carpet.json new file mode 100644 index 00000000..4cf9a92c --- /dev/null +++ b/assets/minecraft/models/block/purple_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/purple_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_concrete.json b/assets/minecraft/models/block/purple_concrete.json new file mode 100644 index 00000000..e064fd9e --- /dev/null +++ b/assets/minecraft/models/block/purple_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/purple_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_concrete_powder.json b/assets/minecraft/models/block/purple_concrete_powder.json new file mode 100644 index 00000000..9911efb2 --- /dev/null +++ b/assets/minecraft/models/block/purple_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/purple_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_glazed_terracotta.json b/assets/minecraft/models/block/purple_glazed_terracotta.json new file mode 100644 index 00000000..8921b2dc --- /dev/null +++ b/assets/minecraft/models/block/purple_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/purple_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_shulker_box.json b/assets/minecraft/models/block/purple_shulker_box.json new file mode 100644 index 00000000..6f9cfc87 --- /dev/null +++ b/assets/minecraft/models/block/purple_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/purple_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_stained_glass.json b/assets/minecraft/models/block/purple_stained_glass.json new file mode 100644 index 00000000..b64439f4 --- /dev/null +++ b/assets/minecraft/models/block/purple_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_stained_glass_pane_noside.json b/assets/minecraft/models/block/purple_stained_glass_pane_noside.json new file mode 100644 index 00000000..9fc919ba --- /dev/null +++ b/assets/minecraft/models/block/purple_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/purple_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..9a5775b3 --- /dev/null +++ b/assets/minecraft/models/block/purple_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_stained_glass_pane_post.json b/assets/minecraft/models/block/purple_stained_glass_pane_post.json new file mode 100644 index 00000000..cdebfe3b --- /dev/null +++ b/assets/minecraft/models/block/purple_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/purple_stained_glass_pane_top", + "pane": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_stained_glass_pane_side.json b/assets/minecraft/models/block/purple_stained_glass_pane_side.json new file mode 100644 index 00000000..93c049bb --- /dev/null +++ b/assets/minecraft/models/block/purple_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/purple_stained_glass_pane_top", + "pane": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/purple_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..a8d61592 --- /dev/null +++ b/assets/minecraft/models/block/purple_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/purple_stained_glass_pane_top", + "pane": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_terracotta.json b/assets/minecraft/models/block/purple_terracotta.json new file mode 100644 index 00000000..5c4c94fd --- /dev/null +++ b/assets/minecraft/models/block/purple_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/purple_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purple_wool.json b/assets/minecraft/models/block/purple_wool.json new file mode 100644 index 00000000..c59282e5 --- /dev/null +++ b/assets/minecraft/models/block/purple_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/purple_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_block.json b/assets/minecraft/models/block/purpur_block.json new file mode 100644 index 00000000..c0bc8076 --- /dev/null +++ b/assets/minecraft/models/block/purpur_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/purpur_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_pillar.json b/assets/minecraft/models/block/purpur_pillar.json new file mode 100644 index 00000000..f35e1ddc --- /dev/null +++ b/assets/minecraft/models/block/purpur_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/purpur_pillar_top", + "side": "minecraft:block/purpur_pillar" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_pillar_horizontal.json b/assets/minecraft/models/block/purpur_pillar_horizontal.json new file mode 100644 index 00000000..d047a8f7 --- /dev/null +++ b/assets/minecraft/models/block/purpur_pillar_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/purpur_pillar_top", + "side": "minecraft:block/purpur_pillar" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_slab.json b/assets/minecraft/models/block/purpur_slab.json new file mode 100644 index 00000000..2a060e8d --- /dev/null +++ b/assets/minecraft/models/block/purpur_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/purpur_block", + "side": "minecraft:block/purpur_block", + "top": "minecraft:block/purpur_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_slab_top.json b/assets/minecraft/models/block/purpur_slab_top.json new file mode 100644 index 00000000..8a3df90a --- /dev/null +++ b/assets/minecraft/models/block/purpur_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/purpur_block", + "side": "minecraft:block/purpur_block", + "top": "minecraft:block/purpur_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_stairs.json b/assets/minecraft/models/block/purpur_stairs.json new file mode 100644 index 00000000..ce2f0510 --- /dev/null +++ b/assets/minecraft/models/block/purpur_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/purpur_block", + "side": "minecraft:block/purpur_block", + "top": "minecraft:block/purpur_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_stairs_inner.json b/assets/minecraft/models/block/purpur_stairs_inner.json new file mode 100644 index 00000000..fd4829da --- /dev/null +++ b/assets/minecraft/models/block/purpur_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/purpur_block", + "side": "minecraft:block/purpur_block", + "top": "minecraft:block/purpur_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/purpur_stairs_outer.json b/assets/minecraft/models/block/purpur_stairs_outer.json new file mode 100644 index 00000000..6f882621 --- /dev/null +++ b/assets/minecraft/models/block/purpur_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/purpur_block", + "side": "minecraft:block/purpur_block", + "top": "minecraft:block/purpur_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_block.json b/assets/minecraft/models/block/quartz_block.json new file mode 100644 index 00000000..863b82e5 --- /dev/null +++ b/assets/minecraft/models/block/quartz_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/quartz_block_top", + "side": "minecraft:block/quartz_block_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_bricks.json b/assets/minecraft/models/block/quartz_bricks.json new file mode 100644 index 00000000..f2b85517 --- /dev/null +++ b/assets/minecraft/models/block/quartz_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/quartz_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_pillar.json b/assets/minecraft/models/block/quartz_pillar.json new file mode 100644 index 00000000..fc1845e7 --- /dev/null +++ b/assets/minecraft/models/block/quartz_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/quartz_pillar_top", + "side": "minecraft:block/quartz_pillar" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_pillar_horizontal.json b/assets/minecraft/models/block/quartz_pillar_horizontal.json new file mode 100644 index 00000000..38b07ba1 --- /dev/null +++ b/assets/minecraft/models/block/quartz_pillar_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/quartz_pillar_top", + "side": "minecraft:block/quartz_pillar" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_slab.json b/assets/minecraft/models/block/quartz_slab.json new file mode 100644 index 00000000..ccccb53f --- /dev/null +++ b/assets/minecraft/models/block/quartz_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/quartz_block_top", + "side": "minecraft:block/quartz_block_side", + "top": "minecraft:block/quartz_block_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_slab_top.json b/assets/minecraft/models/block/quartz_slab_top.json new file mode 100644 index 00000000..157e8ee8 --- /dev/null +++ b/assets/minecraft/models/block/quartz_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/quartz_block_top", + "side": "minecraft:block/quartz_block_side", + "top": "minecraft:block/quartz_block_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_stairs.json b/assets/minecraft/models/block/quartz_stairs.json new file mode 100644 index 00000000..cf5d6eb8 --- /dev/null +++ b/assets/minecraft/models/block/quartz_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/quartz_block_top", + "side": "minecraft:block/quartz_block_side", + "top": "minecraft:block/quartz_block_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_stairs_inner.json b/assets/minecraft/models/block/quartz_stairs_inner.json new file mode 100644 index 00000000..6dd7aea5 --- /dev/null +++ b/assets/minecraft/models/block/quartz_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/quartz_block_top", + "side": "minecraft:block/quartz_block_side", + "top": "minecraft:block/quartz_block_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/quartz_stairs_outer.json b/assets/minecraft/models/block/quartz_stairs_outer.json new file mode 100644 index 00000000..d8aa6d88 --- /dev/null +++ b/assets/minecraft/models/block/quartz_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/quartz_block_top", + "side": "minecraft:block/quartz_block_side", + "top": "minecraft:block/quartz_block_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/rail.json b/assets/minecraft/models/block/rail.json new file mode 100644 index 00000000..0f7a0244 --- /dev/null +++ b/assets/minecraft/models/block/rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_flat", + "textures": { + "rail": "minecraft:block/rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/rail_corner.json b/assets/minecraft/models/block/rail_corner.json new file mode 100644 index 00000000..ea109639 --- /dev/null +++ b/assets/minecraft/models/block/rail_corner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/rail_curved", + "textures": { + "rail": "minecraft:block/rail_corner" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/rail_curved.json b/assets/minecraft/models/block/rail_curved.json new file mode 100644 index 00000000..299a44ba --- /dev/null +++ b/assets/minecraft/models/block/rail_curved.json @@ -0,0 +1,15 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#rail" + }, + "elements": [ + { "from": [ 0, 1, 0 ], + "to": [ 16, 1, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#rail" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#rail" } + } + } + ] +} diff --git a/assets/minecraft/models/block/rail_flat.json b/assets/minecraft/models/block/rail_flat.json new file mode 100644 index 00000000..299a44ba --- /dev/null +++ b/assets/minecraft/models/block/rail_flat.json @@ -0,0 +1,15 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#rail" + }, + "elements": [ + { "from": [ 0, 1, 0 ], + "to": [ 16, 1, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#rail" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#rail" } + } + } + ] +} diff --git a/assets/minecraft/models/block/rail_raised_ne.json b/assets/minecraft/models/block/rail_raised_ne.json new file mode 100644 index 00000000..a51c59fd --- /dev/null +++ b/assets/minecraft/models/block/rail_raised_ne.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_ne", + "textures": { + "rail": "minecraft:block/rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/rail_raised_sw.json b/assets/minecraft/models/block/rail_raised_sw.json new file mode 100644 index 00000000..4d48c089 --- /dev/null +++ b/assets/minecraft/models/block/rail_raised_sw.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_rail_raised_sw", + "textures": { + "rail": "minecraft:block/rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/raw_copper_block.json b/assets/minecraft/models/block/raw_copper_block.json new file mode 100644 index 00000000..3f6008ec --- /dev/null +++ b/assets/minecraft/models/block/raw_copper_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/raw_copper_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/raw_gold_block.json b/assets/minecraft/models/block/raw_gold_block.json new file mode 100644 index 00000000..ce79d18f --- /dev/null +++ b/assets/minecraft/models/block/raw_gold_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/raw_gold_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/raw_iron_block.json b/assets/minecraft/models/block/raw_iron_block.json new file mode 100644 index 00000000..25d19886 --- /dev/null +++ b/assets/minecraft/models/block/raw_iron_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/raw_iron_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_cake.json b/assets/minecraft/models/block/red_candle_cake.json new file mode 100644 index 00000000..6c9ee4bb --- /dev/null +++ b/assets/minecraft/models/block/red_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/red_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_cake_lit.json b/assets/minecraft/models/block/red_candle_cake_lit.json new file mode 100644 index 00000000..52c3c5eb --- /dev/null +++ b/assets/minecraft/models/block/red_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/red_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_four_candles.json b/assets/minecraft/models/block/red_candle_four_candles.json new file mode 100644 index 00000000..c090c532 --- /dev/null +++ b/assets/minecraft/models/block/red_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/red_candle", + "particle": "minecraft:block/red_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_four_candles_lit.json b/assets/minecraft/models/block/red_candle_four_candles_lit.json new file mode 100644 index 00000000..f7d6ca07 --- /dev/null +++ b/assets/minecraft/models/block/red_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/red_candle_lit", + "particle": "minecraft:block/red_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_one_candle.json b/assets/minecraft/models/block/red_candle_one_candle.json new file mode 100644 index 00000000..47c0ce8a --- /dev/null +++ b/assets/minecraft/models/block/red_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/red_candle", + "particle": "minecraft:block/red_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_one_candle_lit.json b/assets/minecraft/models/block/red_candle_one_candle_lit.json new file mode 100644 index 00000000..710f5416 --- /dev/null +++ b/assets/minecraft/models/block/red_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/red_candle_lit", + "particle": "minecraft:block/red_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_three_candles.json b/assets/minecraft/models/block/red_candle_three_candles.json new file mode 100644 index 00000000..e0a4f0c9 --- /dev/null +++ b/assets/minecraft/models/block/red_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/red_candle", + "particle": "minecraft:block/red_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_three_candles_lit.json b/assets/minecraft/models/block/red_candle_three_candles_lit.json new file mode 100644 index 00000000..a4b2b86f --- /dev/null +++ b/assets/minecraft/models/block/red_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/red_candle_lit", + "particle": "minecraft:block/red_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_two_candles.json b/assets/minecraft/models/block/red_candle_two_candles.json new file mode 100644 index 00000000..148bd6c8 --- /dev/null +++ b/assets/minecraft/models/block/red_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/red_candle", + "particle": "minecraft:block/red_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_candle_two_candles_lit.json b/assets/minecraft/models/block/red_candle_two_candles_lit.json new file mode 100644 index 00000000..40af0f6f --- /dev/null +++ b/assets/minecraft/models/block/red_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/red_candle_lit", + "particle": "minecraft:block/red_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_carpet.json b/assets/minecraft/models/block/red_carpet.json new file mode 100644 index 00000000..c31f191e --- /dev/null +++ b/assets/minecraft/models/block/red_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/red_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_concrete.json b/assets/minecraft/models/block/red_concrete.json new file mode 100644 index 00000000..aed4725e --- /dev/null +++ b/assets/minecraft/models/block/red_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_concrete_powder.json b/assets/minecraft/models/block/red_concrete_powder.json new file mode 100644 index 00000000..69ada128 --- /dev/null +++ b/assets/minecraft/models/block/red_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_glazed_terracotta.json b/assets/minecraft/models/block/red_glazed_terracotta.json new file mode 100644 index 00000000..baf6a0df --- /dev/null +++ b/assets/minecraft/models/block/red_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/red_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_mushroom.json b/assets/minecraft/models/block/red_mushroom.json new file mode 100644 index 00000000..4dd14e49 --- /dev/null +++ b/assets/minecraft/models/block/red_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/red_mushroom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_mushroom_block.json b/assets/minecraft/models/block/red_mushroom_block.json new file mode 100644 index 00000000..14ac5d54 --- /dev/null +++ b/assets/minecraft/models/block/red_mushroom_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_single_face", + "textures": { + "texture": "minecraft:block/red_mushroom_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_mushroom_block_inventory.json b/assets/minecraft/models/block/red_mushroom_block_inventory.json new file mode 100644 index 00000000..588dd72a --- /dev/null +++ b/assets/minecraft/models/block/red_mushroom_block_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_mushroom_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_slab.json b/assets/minecraft/models/block/red_nether_brick_slab.json new file mode 100644 index 00000000..196f926f --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/red_nether_bricks", + "side": "minecraft:block/red_nether_bricks", + "top": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_slab_top.json b/assets/minecraft/models/block/red_nether_brick_slab_top.json new file mode 100644 index 00000000..0bf20b28 --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/red_nether_bricks", + "side": "minecraft:block/red_nether_bricks", + "top": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_stairs.json b/assets/minecraft/models/block/red_nether_brick_stairs.json new file mode 100644 index 00000000..0320b060 --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/red_nether_bricks", + "side": "minecraft:block/red_nether_bricks", + "top": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_stairs_inner.json b/assets/minecraft/models/block/red_nether_brick_stairs_inner.json new file mode 100644 index 00000000..3a329692 --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/red_nether_bricks", + "side": "minecraft:block/red_nether_bricks", + "top": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_stairs_outer.json b/assets/minecraft/models/block/red_nether_brick_stairs_outer.json new file mode 100644 index 00000000..e793420f --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/red_nether_bricks", + "side": "minecraft:block/red_nether_bricks", + "top": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_wall_inventory.json b/assets/minecraft/models/block/red_nether_brick_wall_inventory.json new file mode 100644 index 00000000..aeaa716e --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_wall_post.json b/assets/minecraft/models/block/red_nether_brick_wall_post.json new file mode 100644 index 00000000..9fa44bde --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_wall_side.json b/assets/minecraft/models/block/red_nether_brick_wall_side.json new file mode 100644 index 00000000..e8f23ec6 --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_brick_wall_side_tall.json b/assets/minecraft/models/block/red_nether_brick_wall_side_tall.json new file mode 100644 index 00000000..6546ecec --- /dev/null +++ b/assets/minecraft/models/block/red_nether_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_nether_bricks.json b/assets/minecraft/models/block/red_nether_bricks.json new file mode 100644 index 00000000..a13b8381 --- /dev/null +++ b/assets/minecraft/models/block/red_nether_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_nether_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sand.json b/assets/minecraft/models/block/red_sand.json new file mode 100644 index 00000000..d6f5cecf --- /dev/null +++ b/assets/minecraft/models/block/red_sand.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_sand" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone.json b/assets/minecraft/models/block/red_sandstone.json new file mode 100644 index 00000000..008568b8 --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_slab.json b/assets/minecraft/models/block/red_sandstone_slab.json new file mode 100644 index 00000000..cd1c1ec9 --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_slab_top.json b/assets/minecraft/models/block/red_sandstone_slab_top.json new file mode 100644 index 00000000..d240a03a --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_stairs.json b/assets/minecraft/models/block/red_sandstone_stairs.json new file mode 100644 index 00000000..6f393c73 --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_stairs_inner.json b/assets/minecraft/models/block/red_sandstone_stairs_inner.json new file mode 100644 index 00000000..a32a7a2a --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_stairs_outer.json b/assets/minecraft/models/block/red_sandstone_stairs_outer.json new file mode 100644 index 00000000..d862d18f --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/red_sandstone_bottom", + "side": "minecraft:block/red_sandstone", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_wall_inventory.json b/assets/minecraft/models/block/red_sandstone_wall_inventory.json new file mode 100644 index 00000000..efec8f3f --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/red_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_wall_post.json b/assets/minecraft/models/block/red_sandstone_wall_post.json new file mode 100644 index 00000000..ab117588 --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/red_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_wall_side.json b/assets/minecraft/models/block/red_sandstone_wall_side.json new file mode 100644 index 00000000..798b2f91 --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/red_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_sandstone_wall_side_tall.json b/assets/minecraft/models/block/red_sandstone_wall_side_tall.json new file mode 100644 index 00000000..b8cc6d37 --- /dev/null +++ b/assets/minecraft/models/block/red_sandstone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/red_sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_shulker_box.json b/assets/minecraft/models/block/red_shulker_box.json new file mode 100644 index 00000000..4414a86e --- /dev/null +++ b/assets/minecraft/models/block/red_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/red_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_stained_glass.json b/assets/minecraft/models/block/red_stained_glass.json new file mode 100644 index 00000000..fd841d4e --- /dev/null +++ b/assets/minecraft/models/block/red_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_stained_glass_pane_noside.json b/assets/minecraft/models/block/red_stained_glass_pane_noside.json new file mode 100644 index 00000000..30aee4a9 --- /dev/null +++ b/assets/minecraft/models/block/red_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/red_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..051e7ebe --- /dev/null +++ b/assets/minecraft/models/block/red_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_stained_glass_pane_post.json b/assets/minecraft/models/block/red_stained_glass_pane_post.json new file mode 100644 index 00000000..41cf1b5c --- /dev/null +++ b/assets/minecraft/models/block/red_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/red_stained_glass_pane_top", + "pane": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_stained_glass_pane_side.json b/assets/minecraft/models/block/red_stained_glass_pane_side.json new file mode 100644 index 00000000..78124b12 --- /dev/null +++ b/assets/minecraft/models/block/red_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/red_stained_glass_pane_top", + "pane": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/red_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..5dd4fd2a --- /dev/null +++ b/assets/minecraft/models/block/red_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/red_stained_glass_pane_top", + "pane": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_terracotta.json b/assets/minecraft/models/block/red_terracotta.json new file mode 100644 index 00000000..14908068 --- /dev/null +++ b/assets/minecraft/models/block/red_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_tulip.json b/assets/minecraft/models/block/red_tulip.json new file mode 100644 index 00000000..1c0c290b --- /dev/null +++ b/assets/minecraft/models/block/red_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/red_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/red_wool.json b/assets/minecraft/models/block/red_wool.json new file mode 100644 index 00000000..72267b62 --- /dev/null +++ b/assets/minecraft/models/block/red_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_block.json b/assets/minecraft/models/block/redstone_block.json new file mode 100644 index 00000000..b3942b36 --- /dev/null +++ b/assets/minecraft/models/block/redstone_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/redstone_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_dust_dot.json b/assets/minecraft/models/block/redstone_dust_dot.json new file mode 100644 index 00000000..4a8cda17 --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_dot.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/redstone_dust_dot", + "line": "block/redstone_dust_dot", + "overlay": "block/redstone_dust_overlay" + }, + "elements": [ + { "from": [ 0, 0.25, 0 ], + "to": [ 16, 0.25, 16 ], + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#line", "tintindex": 0 }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#line", "tintindex": 0 } + } + }, + { "from": [ 0, 0.25, 0 ], + "to": [ 16, 0.25, 16 ], + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#overlay" }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#overlay" } + } + } + ] +} diff --git a/assets/minecraft/models/block/redstone_dust_side.json b/assets/minecraft/models/block/redstone_dust_side.json new file mode 100644 index 00000000..523a4117 --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_side.json @@ -0,0 +1,25 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/redstone_dust_dot", + "overlay": "block/redstone_dust_overlay" + }, + "elements": [ + { "from": [ 0, 0.25, 0 ], + "to": [ 16, 0.25, 8 ], + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 8 ], "texture": "#line", "tintindex": 0 }, + "down": { "uv": [ 0, 8, 16, 0 ], "texture": "#line", "tintindex": 0 } + } + }, + { "from": [ 0, 0.25, 0 ], + "to": [ 16, 0.25, 8 ], + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 8 ], "texture": "#overlay" }, + "down": { "uv": [ 0, 8, 16, 0 ], "texture": "#overlay" } + } + } + ] +} diff --git a/assets/minecraft/models/block/redstone_dust_side0.json b/assets/minecraft/models/block/redstone_dust_side0.json new file mode 100644 index 00000000..8ba2e73e --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_side0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/redstone_dust_side", + "textures": { + "line": "block/redstone_dust_line0" + } +} diff --git a/assets/minecraft/models/block/redstone_dust_side1.json b/assets/minecraft/models/block/redstone_dust_side1.json new file mode 100644 index 00000000..1f545393 --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_side1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/redstone_dust_side", + "textures": { + "line": "block/redstone_dust_line1" + } +} diff --git a/assets/minecraft/models/block/redstone_dust_side_alt.json b/assets/minecraft/models/block/redstone_dust_side_alt.json new file mode 100644 index 00000000..8b58a46c --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_side_alt.json @@ -0,0 +1,25 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/redstone_dust_dot", + "overlay": "block/redstone_dust_overlay" + }, + "elements": [ + { "from": [ 0, 0.25, 8 ], + "to": [ 16, 0.25, 16 ], + "shade": false, + "faces": { + "up": { "uv": [ 0, 8, 16, 16 ], "texture": "#line", "tintindex": 0 }, + "down": { "uv": [ 0, 16, 16, 8 ], "texture": "#line", "tintindex": 0 } + } + }, + { "from": [ 0, 0.25, 8 ], + "to": [ 16, 0.25, 16 ], + "shade": false, + "faces": { + "up": { "uv": [ 0, 8, 16, 16 ], "texture": "#overlay" }, + "down": { "uv": [ 0, 16, 16, 8 ], "texture": "#overlay" } + } + } + ] +} diff --git a/assets/minecraft/models/block/redstone_dust_side_alt0.json b/assets/minecraft/models/block/redstone_dust_side_alt0.json new file mode 100644 index 00000000..f74884dd --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_side_alt0.json @@ -0,0 +1,6 @@ +{ + "parent": "block/redstone_dust_side_alt", + "textures": { + "line": "block/redstone_dust_line0" + } +} diff --git a/assets/minecraft/models/block/redstone_dust_side_alt1.json b/assets/minecraft/models/block/redstone_dust_side_alt1.json new file mode 100644 index 00000000..a31f8487 --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_side_alt1.json @@ -0,0 +1,6 @@ +{ + "parent": "block/redstone_dust_side_alt", + "textures": { + "line": "block/redstone_dust_line1" + } +} diff --git a/assets/minecraft/models/block/redstone_dust_up.json b/assets/minecraft/models/block/redstone_dust_up.json new file mode 100644 index 00000000..2154da22 --- /dev/null +++ b/assets/minecraft/models/block/redstone_dust_up.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/redstone_dust_dot", + "line": "block/redstone_dust_line0", + "overlay": "block/redstone_dust_overlay" + }, + "elements": [ + { "from": [ 0, 0, 0.25 ], + "to": [ 16, 16, 0.25 ], + "shade": false, + "faces": { + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#line", "tintindex": 0 }, + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#line", "tintindex": 0 } + } + }, + { "from": [ 0, 0, 0.25 ], + "to": [ 16, 16, 0.25 ], + "shade": false, + "faces": { + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#overlay" }, + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#overlay" } + } + } + ] +} diff --git a/assets/minecraft/models/block/redstone_lamp.json b/assets/minecraft/models/block/redstone_lamp.json new file mode 100644 index 00000000..530bd0d7 --- /dev/null +++ b/assets/minecraft/models/block/redstone_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/redstone_lamp" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_lamp_on.json b/assets/minecraft/models/block/redstone_lamp_on.json new file mode 100644 index 00000000..bde04e26 --- /dev/null +++ b/assets/minecraft/models/block/redstone_lamp_on.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/redstone_lamp_on" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_ore.json b/assets/minecraft/models/block/redstone_ore.json new file mode 100644 index 00000000..a387db99 --- /dev/null +++ b/assets/minecraft/models/block/redstone_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/redstone_ore" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_torch.json b/assets/minecraft/models/block/redstone_torch.json new file mode 100644 index 00000000..47d4d756 --- /dev/null +++ b/assets/minecraft/models/block/redstone_torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch", + "textures": { + "torch": "minecraft:block/redstone_torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_torch_off.json b/assets/minecraft/models/block/redstone_torch_off.json new file mode 100644 index 00000000..9dcffffe --- /dev/null +++ b/assets/minecraft/models/block/redstone_torch_off.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch", + "textures": { + "torch": "minecraft:block/redstone_torch_off" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_wall_torch.json b/assets/minecraft/models/block/redstone_wall_torch.json new file mode 100644 index 00000000..2d2a9496 --- /dev/null +++ b/assets/minecraft/models/block/redstone_wall_torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch_wall", + "textures": { + "torch": "minecraft:block/redstone_torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/redstone_wall_torch_off.json b/assets/minecraft/models/block/redstone_wall_torch_off.json new file mode 100644 index 00000000..eb02aed8 --- /dev/null +++ b/assets/minecraft/models/block/redstone_wall_torch_off.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch_wall", + "textures": { + "torch": "minecraft:block/redstone_torch_off" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/reinforced_deepslate.json b/assets/minecraft/models/block/reinforced_deepslate.json new file mode 100644 index 00000000..8d3c9026 --- /dev/null +++ b/assets/minecraft/models/block/reinforced_deepslate.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/reinforced_deepslate_bottom", + "side": "minecraft:block/reinforced_deepslate_side", + "top": "minecraft:block/reinforced_deepslate_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/repeater_1tick.json b/assets/minecraft/models/block/repeater_1tick.json new file mode 100644 index 00000000..8539d997 --- /dev/null +++ b/assets/minecraft/models/block/repeater_1tick.json @@ -0,0 +1,44 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 2, 6 ], + "to": [ 9, 7, 8 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_1tick_locked.json b/assets/minecraft/models/block/repeater_1tick_locked.json new file mode 100644 index 00000000..d1457f3d --- /dev/null +++ b/assets/minecraft/models/block/repeater_1tick_locked.json @@ -0,0 +1,45 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "lock": "block/bedrock", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 6 ], + "to": [ 14, 4, 8 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_1tick_on.json b/assets/minecraft/models/block/repeater_1tick_on.json new file mode 100644 index 00000000..8123d2cb --- /dev/null +++ b/assets/minecraft/models/block/repeater_1tick_on.json @@ -0,0 +1,62 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 7, 6 ], + "to": [ 9, 7, 8 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 5 ], + "to": [ 9, 8, 9 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 6 ], + "to": [ 10, 8, 8 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_1tick_on_locked.json b/assets/minecraft/models/block/repeater_1tick_on_locked.json new file mode 100644 index 00000000..60a40718 --- /dev/null +++ b/assets/minecraft/models/block/repeater_1tick_on_locked.json @@ -0,0 +1,54 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch", + "lock": "block/bedrock" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 6 ], + "to": [ 14, 4, 8 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_2tick.json b/assets/minecraft/models/block/repeater_2tick.json new file mode 100644 index 00000000..b8323e2b --- /dev/null +++ b/assets/minecraft/models/block/repeater_2tick.json @@ -0,0 +1,44 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 2, 8 ], + "to": [ 9, 7, 10 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_2tick_locked.json b/assets/minecraft/models/block/repeater_2tick_locked.json new file mode 100644 index 00000000..8dc5975b --- /dev/null +++ b/assets/minecraft/models/block/repeater_2tick_locked.json @@ -0,0 +1,45 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "lock": "block/bedrock", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 8 ], + "to": [ 14, 4, 10 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_2tick_on.json b/assets/minecraft/models/block/repeater_2tick_on.json new file mode 100644 index 00000000..11a2bcb1 --- /dev/null +++ b/assets/minecraft/models/block/repeater_2tick_on.json @@ -0,0 +1,62 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 7, 8 ], + "to": [ 9, 7, 10 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 7 ], + "to": [ 9, 8, 11 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 8 ], + "to": [ 10, 8, 10 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_2tick_on_locked.json b/assets/minecraft/models/block/repeater_2tick_on_locked.json new file mode 100644 index 00000000..12a1cbe8 --- /dev/null +++ b/assets/minecraft/models/block/repeater_2tick_on_locked.json @@ -0,0 +1,54 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch", + "lock": "block/bedrock" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 8 ], + "to": [ 14, 4, 10 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_3tick.json b/assets/minecraft/models/block/repeater_3tick.json new file mode 100644 index 00000000..e854cc01 --- /dev/null +++ b/assets/minecraft/models/block/repeater_3tick.json @@ -0,0 +1,44 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 2, 10 ], + "to": [ 9, 7, 12 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_3tick_locked.json b/assets/minecraft/models/block/repeater_3tick_locked.json new file mode 100644 index 00000000..6d64a3dc --- /dev/null +++ b/assets/minecraft/models/block/repeater_3tick_locked.json @@ -0,0 +1,45 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "lock": "block/bedrock", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 10 ], + "to": [ 14, 4, 12 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_3tick_on.json b/assets/minecraft/models/block/repeater_3tick_on.json new file mode 100644 index 00000000..414032e6 --- /dev/null +++ b/assets/minecraft/models/block/repeater_3tick_on.json @@ -0,0 +1,62 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 7, 10 ], + "to": [ 9, 7, 12 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 9 ], + "to": [ 9, 8, 13 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 10 ], + "to": [ 10, 8, 12 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_3tick_on_locked.json b/assets/minecraft/models/block/repeater_3tick_on_locked.json new file mode 100644 index 00000000..5c21a323 --- /dev/null +++ b/assets/minecraft/models/block/repeater_3tick_on_locked.json @@ -0,0 +1,54 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch", + "lock": "block/bedrock" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 10 ], + "to": [ 14, 4, 12 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_4tick.json b/assets/minecraft/models/block/repeater_4tick.json new file mode 100644 index 00000000..a708a44f --- /dev/null +++ b/assets/minecraft/models/block/repeater_4tick.json @@ -0,0 +1,44 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 2, 12 ], + "to": [ 9, 7, 14 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_4tick_locked.json b/assets/minecraft/models/block/repeater_4tick_locked.json new file mode 100644 index 00000000..fac32c88 --- /dev/null +++ b/assets/minecraft/models/block/repeater_4tick_locked.json @@ -0,0 +1,45 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater", + "slab": "block/smooth_stone", + "top": "block/repeater", + "lock": "block/bedrock", + "unlit": "block/redstone_torch_off" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 12 ], + "to": [ 14, 4, 14 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 2, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#unlit" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#unlit" }, + "north": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "south": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "west": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" }, + "east": { "uv": [ 7, 6, 9, 11 ], "texture": "#unlit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_4tick_on.json b/assets/minecraft/models/block/repeater_4tick_on.json new file mode 100644 index 00000000..4e081aa8 --- /dev/null +++ b/assets/minecraft/models/block/repeater_4tick_on.json @@ -0,0 +1,62 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 7, 7, 12 ], + "to": [ 9, 7, 14 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 11 ], + "to": [ 9, 8, 15 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 12 ], + "to": [ 10, 8, 14 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeater_4tick_on_locked.json b/assets/minecraft/models/block/repeater_4tick_on_locked.json new file mode 100644 index 00000000..fcdd6448 --- /dev/null +++ b/assets/minecraft/models/block/repeater_4tick_on_locked.json @@ -0,0 +1,54 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/repeater_on", + "slab": "block/smooth_stone", + "top": "block/repeater_on", + "lit": "block/redstone_torch", + "lock": "block/bedrock" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#slab", "cullface": "east" } + } + }, + { "from": [ 2, 2, 12 ], + "to": [ 14, 4, 14 ], + "faces": { + "down": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "up": { "uv": [ 7, 2, 9, 14 ], "texture": "#lock", "rotation": 90 }, + "north": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "south": { "uv": [ 2, 7, 14, 9 ], "texture": "#lock" }, + "west": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" }, + "east": { "uv": [ 6, 7, 8, 9 ], "texture": "#lock" } + } + }, + { "from": [ 7, 7, 2 ], + "to": [ 9, 7, 4 ], + "faces": { + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#lit" } + } + }, + { "from": [ 7, 2, 1 ], + "to": [ 9, 8, 5 ], + "faces": { + "west": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "east": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + }, + { "from": [ 6, 2, 2 ], + "to": [ 10, 8, 4 ], + "faces": { + "north": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" }, + "south": { "uv": [ 6, 5, 10, 11 ], "texture": "#lit" } + } + } + ] +} diff --git a/assets/minecraft/models/block/repeating_command_block.json b/assets/minecraft/models/block/repeating_command_block.json new file mode 100644 index 00000000..7525fc9b --- /dev/null +++ b/assets/minecraft/models/block/repeating_command_block.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_command_block", + "textures": { + "back": "minecraft:block/repeating_command_block_back", + "front": "minecraft:block/repeating_command_block_front", + "side": "minecraft:block/repeating_command_block_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/repeating_command_block_conditional.json b/assets/minecraft/models/block/repeating_command_block_conditional.json new file mode 100644 index 00000000..f261c672 --- /dev/null +++ b/assets/minecraft/models/block/repeating_command_block_conditional.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_command_block", + "textures": { + "back": "minecraft:block/repeating_command_block_back", + "front": "minecraft:block/repeating_command_block_front", + "side": "minecraft:block/repeating_command_block_conditional" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/respawn_anchor_0.json b/assets/minecraft/models/block/respawn_anchor_0.json new file mode 100644 index 00000000..29c7e5fc --- /dev/null +++ b/assets/minecraft/models/block/respawn_anchor_0.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/respawn_anchor_bottom", + "side": "minecraft:block/respawn_anchor_side0", + "top": "minecraft:block/respawn_anchor_top_off" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/respawn_anchor_1.json b/assets/minecraft/models/block/respawn_anchor_1.json new file mode 100644 index 00000000..00989b93 --- /dev/null +++ b/assets/minecraft/models/block/respawn_anchor_1.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/respawn_anchor_bottom", + "side": "minecraft:block/respawn_anchor_side1", + "top": "minecraft:block/respawn_anchor_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/respawn_anchor_2.json b/assets/minecraft/models/block/respawn_anchor_2.json new file mode 100644 index 00000000..b0ea19be --- /dev/null +++ b/assets/minecraft/models/block/respawn_anchor_2.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/respawn_anchor_bottom", + "side": "minecraft:block/respawn_anchor_side2", + "top": "minecraft:block/respawn_anchor_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/respawn_anchor_3.json b/assets/minecraft/models/block/respawn_anchor_3.json new file mode 100644 index 00000000..fd67ee06 --- /dev/null +++ b/assets/minecraft/models/block/respawn_anchor_3.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/respawn_anchor_bottom", + "side": "minecraft:block/respawn_anchor_side3", + "top": "minecraft:block/respawn_anchor_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/respawn_anchor_4.json b/assets/minecraft/models/block/respawn_anchor_4.json new file mode 100644 index 00000000..068403c4 --- /dev/null +++ b/assets/minecraft/models/block/respawn_anchor_4.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/respawn_anchor_bottom", + "side": "minecraft:block/respawn_anchor_side4", + "top": "minecraft:block/respawn_anchor_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/rooted_dirt.json b/assets/minecraft/models/block/rooted_dirt.json new file mode 100644 index 00000000..f9e1f179 --- /dev/null +++ b/assets/minecraft/models/block/rooted_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/rooted_dirt" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/rose_bush_bottom.json b/assets/minecraft/models/block/rose_bush_bottom.json new file mode 100644 index 00000000..88116aa3 --- /dev/null +++ b/assets/minecraft/models/block/rose_bush_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/rose_bush_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/rose_bush_top.json b/assets/minecraft/models/block/rose_bush_top.json new file mode 100644 index 00000000..79066463 --- /dev/null +++ b/assets/minecraft/models/block/rose_bush_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/rose_bush_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sand.json b/assets/minecraft/models/block/sand.json new file mode 100644 index 00000000..b73935a3 --- /dev/null +++ b/assets/minecraft/models/block/sand.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/sand" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone.json b/assets/minecraft/models/block/sandstone.json new file mode 100644 index 00000000..1271558b --- /dev/null +++ b/assets/minecraft/models/block/sandstone.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_slab.json b/assets/minecraft/models/block/sandstone_slab.json new file mode 100644 index 00000000..fbaa615d --- /dev/null +++ b/assets/minecraft/models/block/sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_slab_top.json b/assets/minecraft/models/block/sandstone_slab_top.json new file mode 100644 index 00000000..e0f4a0dd --- /dev/null +++ b/assets/minecraft/models/block/sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_stairs.json b/assets/minecraft/models/block/sandstone_stairs.json new file mode 100644 index 00000000..664202e5 --- /dev/null +++ b/assets/minecraft/models/block/sandstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_stairs_inner.json b/assets/minecraft/models/block/sandstone_stairs_inner.json new file mode 100644 index 00000000..8a83ad96 --- /dev/null +++ b/assets/minecraft/models/block/sandstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_stairs_outer.json b/assets/minecraft/models/block/sandstone_stairs_outer.json new file mode 100644 index 00000000..7deee18f --- /dev/null +++ b/assets/minecraft/models/block/sandstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/sandstone_bottom", + "side": "minecraft:block/sandstone", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_wall_inventory.json b/assets/minecraft/models/block/sandstone_wall_inventory.json new file mode 100644 index 00000000..ab5aa55e --- /dev/null +++ b/assets/minecraft/models/block/sandstone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_wall_post.json b/assets/minecraft/models/block/sandstone_wall_post.json new file mode 100644 index 00000000..edcb0e4e --- /dev/null +++ b/assets/minecraft/models/block/sandstone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_wall_side.json b/assets/minecraft/models/block/sandstone_wall_side.json new file mode 100644 index 00000000..f195f7fb --- /dev/null +++ b/assets/minecraft/models/block/sandstone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sandstone_wall_side_tall.json b/assets/minecraft/models/block/sandstone_wall_side_tall.json new file mode 100644 index 00000000..dc29097f --- /dev/null +++ b/assets/minecraft/models/block/sandstone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/sandstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/scaffolding_stable.json b/assets/minecraft/models/block/scaffolding_stable.json new file mode 100644 index 00000000..bbcb6c4e --- /dev/null +++ b/assets/minecraft/models/block/scaffolding_stable.json @@ -0,0 +1,99 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/scaffolding_top", + "top": "block/scaffolding_top", + "side": "block/scaffolding_side", + "bottom": "block/scaffolding_bottom" + }, + "elements": [ + { + "from": [0, 15.99, 0], + "to": [16, 16, 16], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#top", "uv": [0, 16, 16, 0] } + } + }, + { + "from": [0, 0, 0], + "to": [2, 16, 2], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [0, 0, 14], + "to": [2, 16, 16], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [14, 0, 14], + "to": [16, 16, 16], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [14, 0, 0], + "to": [16, 16, 2], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [2, 14, 0], + "to": [14, 16, 2], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "uv": [2, 2, 14, 4] }, + "down": { "texture": "#bottom" } + } + }, + { + "from": [2, 14, 14], + "to": [14, 16, 16], + "faces": { + "north": { "texture": "#side", "uv": [14, 0, 2, 2] }, + "south": { "texture": "#side", "cullface": "south" }, + "down": { "texture": "#bottom" } + } + }, + { + "from": [14, 14, 2], + "to": [16, 16, 14], + "faces": { + "east": { "texture": "#side", "uv": [14, 0, 2, 2], "cullface": "east" }, + "west": { "texture": "#side", "uv": [14, 2, 2, 4] }, + "down": { "texture": "#bottom" } + } + }, + { + "from": [0, 14, 2], + "to": [2, 16, 14], + "faces": { + "east": { "texture": "#side" }, + "west": { "texture": "#side", "uv": [14, 0, 2, 2], "cullface": "west" }, + "down": { "texture": "#bottom" } + } + } + ] +} diff --git a/assets/minecraft/models/block/scaffolding_unstable.json b/assets/minecraft/models/block/scaffolding_unstable.json new file mode 100644 index 00000000..f5d64e3c --- /dev/null +++ b/assets/minecraft/models/block/scaffolding_unstable.json @@ -0,0 +1,143 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/scaffolding_top", + "top": "block/scaffolding_top", + "side": "block/scaffolding_side", + "bottom": "block/scaffolding_bottom" + }, + "elements": [ + { + "from": [0, 15.99, 0], + "to": [16, 16, 16], + "faces": { + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#top", "uv": [0, 16, 16, 0] } + } + }, + { + "from": [0, 0, 0], + "to": [2, 16, 2], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [0, 0, 14], + "to": [2, 16, 16], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [14, 0, 14], + "to": [16, 16, 16], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [14, 0, 0], + "to": [16, 16, 2], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [2, 14, 0], + "to": [14, 16, 2], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side", "uv": [2, 2, 14, 4] }, + "down": { "texture": "#bottom" } + } + }, + { + "from": [2, 14, 14], + "to": [14, 16, 16], + "faces": { + "north": { "texture": "#side", "uv": [14, 0, 2, 2] }, + "south": { "texture": "#side", "cullface": "south" }, + "down": { "texture": "#bottom" } + } + }, + { + "from": [14, 14, 2], + "to": [16, 16, 14], + "faces": { + "east": { "texture": "#side", "uv": [14, 0, 2, 2], "cullface": "east" }, + "west": { "texture": "#side", "uv": [14, 2, 2, 4] }, + "down": { "texture": "#bottom" } + } + }, + { + "from": [0, 14, 2], + "to": [2, 16, 14], + "faces": { + "east": { "texture": "#side" }, + "west": { "texture": "#side", "uv": [14, 0, 2, 2], "cullface": "west" }, + "down": { "texture": "#bottom" } + } + }, + { + "from": [0, 1.99, 0], + "to": [16, 2, 16], + "faces": { + "up": { "texture": "#top"}, + "down": { "uv": [0, 16, 16, 0], "texture": "#top" } + } + }, + { + "from": [2, 0, 0], + "to": [14, 2, 2], + "faces": { + "north": { "texture": "#side", "uv": [2, 0, 14, 2] , "cullface": "north" }, + "south": { "texture": "#side", "uv": [2, 2, 14, 4] }, + "down": { "texture": "#bottom", "cullface": "bottom" } + } + }, + { + "from": [2, 0, 14], + "to": [14, 2, 16], + "faces": { + "north": { "texture": "#side", "uv": [14, 0, 2, 2] }, + "south": { "texture": "#side", "uv": [2, 0, 14, 2] , "cullface": "south" }, + "down": { "texture": "#bottom", "cullface": "bottom" } + } + }, + { + "from": [14, 0, 2], + "to": [16, 2, 14], + "faces": { + "east": { "texture": "#side", "uv": [14, 0, 2, 2], "cullface": "east"}, + "west": { "texture": "#side", "uv": [14, 2, 2, 4] }, + "down": { "texture": "#bottom", "cullface": "bottom" } + } + }, + { + "from": [0, 0, 2], + "to": [2, 2, 14], + "faces": { + "east": { "texture": "#side", "uv": [2, 0, 14, 2] }, + "west": { "texture": "#side", "uv": [14, 0, 2, 2], "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "bottom" } + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk.json b/assets/minecraft/models/block/sculk.json new file mode 100644 index 00000000..28942bfc --- /dev/null +++ b/assets/minecraft/models/block/sculk.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/sculk" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_catalyst.json b/assets/minecraft/models/block/sculk_catalyst.json new file mode 100644 index 00000000..f678701b --- /dev/null +++ b/assets/minecraft/models/block/sculk_catalyst.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/sculk_catalyst_bottom", + "side": "minecraft:block/sculk_catalyst_side", + "top": "minecraft:block/sculk_catalyst_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_catalyst_bloom.json b/assets/minecraft/models/block/sculk_catalyst_bloom.json new file mode 100644 index 00000000..5255598d --- /dev/null +++ b/assets/minecraft/models/block/sculk_catalyst_bloom.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/sculk_catalyst_bottom", + "side": "minecraft:block/sculk_catalyst_side_bloom", + "top": "minecraft:block/sculk_catalyst_top_bloom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_mirrored.json b/assets/minecraft/models/block/sculk_mirrored.json new file mode 100644 index 00000000..f0092011 --- /dev/null +++ b/assets/minecraft/models/block/sculk_mirrored.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_mirrored_all", + "textures": { + "all": "minecraft:block/sculk" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_sensor.json b/assets/minecraft/models/block/sculk_sensor.json new file mode 100644 index 00000000..e3307b7f --- /dev/null +++ b/assets/minecraft/models/block/sculk_sensor.json @@ -0,0 +1,60 @@ +{ + "parent": "block/block", + "textures": { + "bottom": "block/sculk_sensor_bottom", + "side": "block/sculk_sensor_side", + "tendrils": "block/sculk_sensor_tendril_inactive", + "top": "block/sculk_sensor_top", + "particle": "block/sculk_sensor_bottom" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 8, 16], + "faces": { + "north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + }, + { + "from": [-1, 8, 3], + "to": [7, 16, 3], + "rotation": {"angle": 45, "axis": "y", "origin": [3, 12, 3]}, + "faces": { + "north": {"uv": [4, 8, 12, 16], "texture": "#tendrils" }, + "south": {"uv": [12, 8, 4, 16], "texture": "#tendrils" } + } + }, + { + "from": [9, 8, 3], + "to": [17, 16, 3], + "rotation": {"angle": -45, "axis": "y", "origin": [13, 12, 3]}, + "faces": { + "north": {"uv": [12, 8, 4, 16], "texture": "#tendrils" }, + "south": {"uv": [4, 8, 12, 16], "texture": "#tendrils" } + } + }, + { + "from": [9, 8, 13], + "to": [17, 16, 13], + "rotation": {"angle": 45, "axis": "y", "origin": [13, 12, 13]}, + "faces": { + "north": {"uv": [12, 8, 4, 16], "texture": "#tendrils" }, + "south": {"uv": [4, 8, 12, 16], "texture": "#tendrils" } + } + }, + { + "from": [-1, 8, 13], + "to": [7, 16, 13], + "rotation": {"angle": -45, "axis": "y", "origin": [3, 12, 13]}, + "faces": { + "north": {"uv": [4, 8, 12, 16], "texture": "#tendrils" }, + "south": {"uv": [12, 8, 4, 16], "texture": "#tendrils" } + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_sensor_active.json b/assets/minecraft/models/block/sculk_sensor_active.json new file mode 100644 index 00000000..92852fcb --- /dev/null +++ b/assets/minecraft/models/block/sculk_sensor_active.json @@ -0,0 +1,6 @@ +{ + "parent": "block/sculk_sensor", + "textures": { + "tendrils": "block/sculk_sensor_tendril_active" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_sensor_inactive.json b/assets/minecraft/models/block/sculk_sensor_inactive.json new file mode 100644 index 00000000..060f59e7 --- /dev/null +++ b/assets/minecraft/models/block/sculk_sensor_inactive.json @@ -0,0 +1,6 @@ +{ + "parent": "block/sculk_sensor", + "textures": { + "tendrils": "block/sculk_sensor_tendril_inactive" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_shrieker.json b/assets/minecraft/models/block/sculk_shrieker.json new file mode 100644 index 00000000..04316a1d --- /dev/null +++ b/assets/minecraft/models/block/sculk_shrieker.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_sculk_shrieker", + "textures": { + "bottom": "minecraft:block/sculk_shrieker_bottom", + "inner_top": "minecraft:block/sculk_shrieker_inner_top", + "particle": "minecraft:block/sculk_shrieker_bottom", + "side": "minecraft:block/sculk_shrieker_side", + "top": "minecraft:block/sculk_shrieker_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_shrieker_can_summon.json b/assets/minecraft/models/block/sculk_shrieker_can_summon.json new file mode 100644 index 00000000..2b543dc4 --- /dev/null +++ b/assets/minecraft/models/block/sculk_shrieker_can_summon.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_sculk_shrieker", + "textures": { + "bottom": "minecraft:block/sculk_shrieker_bottom", + "inner_top": "minecraft:block/sculk_shrieker_can_summon_inner_top", + "particle": "minecraft:block/sculk_shrieker_bottom", + "side": "minecraft:block/sculk_shrieker_side", + "top": "minecraft:block/sculk_shrieker_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sculk_vein.json b/assets/minecraft/models/block/sculk_vein.json new file mode 100644 index 00000000..03f39419 --- /dev/null +++ b/assets/minecraft/models/block/sculk_vein.json @@ -0,0 +1,16 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/sculk_vein", + "sculk_vein": "block/sculk_vein" + }, + "elements": [ + { "from": [ 0, 0, 0.1 ], + "to": [ 16, 16, 0.1 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#sculk_vein" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#sculk_vein" } + } + } + ] +} diff --git a/assets/minecraft/models/block/sea_lantern.json b/assets/minecraft/models/block/sea_lantern.json new file mode 100644 index 00000000..f7602b29 --- /dev/null +++ b/assets/minecraft/models/block/sea_lantern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/sea_lantern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sea_pickle.json b/assets/minecraft/models/block/sea_pickle.json new file mode 100644 index 00000000..31fef1af --- /dev/null +++ b/assets/minecraft/models/block/sea_pickle.json @@ -0,0 +1,47 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 6, 0, 6 ], + "to": [ 10, 6, 10 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 6, 5.95, 6 ], + "to": [ 10, 5.95, 10 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 7.5, 5.2, 8 ], + "to": [ 8.5, 8.7, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 8, 5.2, 7.5 ], + "to": [ 8, 8.7, 8.5 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/seagrass.json b/assets/minecraft/models/block/seagrass.json new file mode 100644 index 00000000..53c7a392 --- /dev/null +++ b/assets/minecraft/models/block/seagrass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_seagrass", + "textures": { + "texture": "minecraft:block/seagrass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/short_grass.json b/assets/minecraft/models/block/short_grass.json new file mode 100644 index 00000000..6cd93c94 --- /dev/null +++ b/assets/minecraft/models/block/short_grass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/short_grass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/shroomlight.json b/assets/minecraft/models/block/shroomlight.json new file mode 100644 index 00000000..13f52aa3 --- /dev/null +++ b/assets/minecraft/models/block/shroomlight.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/shroomlight" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/shulker_box.json b/assets/minecraft/models/block/shulker_box.json new file mode 100644 index 00000000..7eb23421 --- /dev/null +++ b/assets/minecraft/models/block/shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/skull.json b/assets/minecraft/models/block/skull.json new file mode 100644 index 00000000..99a7d709 --- /dev/null +++ b/assets/minecraft/models/block/skull.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/soul_sand" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/slab.json b/assets/minecraft/models/block/slab.json new file mode 100644 index 00000000..1eadc701 --- /dev/null +++ b/assets/minecraft/models/block/slab.json @@ -0,0 +1,18 @@ +{ "parent": "block/block", + "textures": { + "particle": "#side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 8, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/slab_top.json b/assets/minecraft/models/block/slab_top.json new file mode 100644 index 00000000..e21eb932 --- /dev/null +++ b/assets/minecraft/models/block/slab_top.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#side" + }, + "elements": [ + { "from": [ 0, 8, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/slightly_cracked_turtle_egg.json b/assets/minecraft/models/block/slightly_cracked_turtle_egg.json new file mode 100644 index 00000000..fe9f6dc2 --- /dev/null +++ b/assets/minecraft/models/block/slightly_cracked_turtle_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "minecraft:block/turtle_egg_slightly_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/slime_block.json b/assets/minecraft/models/block/slime_block.json new file mode 100644 index 00000000..95f92bdf --- /dev/null +++ b/assets/minecraft/models/block/slime_block.json @@ -0,0 +1,30 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/slime_block", + "texture": "block/slime_block" + }, + "elements": [ + { "from": [ 3, 3, 3 ], + "to": [ 13, 13, 13 ], + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "north": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "south": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "west": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "east": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" } + } + }, + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/small_amethyst_bud.json b/assets/minecraft/models/block/small_amethyst_bud.json new file mode 100644 index 00000000..a8f342fd --- /dev/null +++ b/assets/minecraft/models/block/small_amethyst_bud.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/small_amethyst_bud" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/small_dripleaf_bottom.json b/assets/minecraft/models/block/small_dripleaf_bottom.json new file mode 100644 index 00000000..c6913e7c --- /dev/null +++ b/assets/minecraft/models/block/small_dripleaf_bottom.json @@ -0,0 +1,27 @@ +{ + "parent": "block/block", + "textures": { + "stem": "block/small_dripleaf_stem_bottom", + "particle": "block/big_dripleaf_stem" + }, + "elements": [ + { "from": [ 4.5, 0, 8 ], + "to": [ 11.5, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": false }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + }, + { "from": [ 4.5, 0, 8 ], + "to": [ 11.5, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45, "rescale": false }, + "shade": false, + "faces": { + "north": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" }, + "south": { "uv": [ 3, 0, 14, 16 ], "texture": "#stem" } + } + } + ] +} diff --git a/assets/minecraft/models/block/small_dripleaf_top.json b/assets/minecraft/models/block/small_dripleaf_top.json new file mode 100644 index 00000000..c9e2929c --- /dev/null +++ b/assets/minecraft/models/block/small_dripleaf_top.json @@ -0,0 +1,83 @@ +{ + "parent": "block/block", + "textures": { + "top": "block/small_dripleaf_top", + "side": "block/small_dripleaf_side", + "stem": "block/small_dripleaf_stem_top", + "particle": "block/small_dripleaf_top" + }, + "elements": [ + { "from": [ 8, 2.99, 8 ], + "to": [ 15, 2.99, 15 ], + "shade": false, + "faces": { + "down": { "uv": [ 8, 0, 0, 8 ], "texture": "#top" }, + "up": { "uv": [ 8, 8, 0, 0 ], "texture": "#top" } + } + }, + { "from": [ 1, 8, 1 ], + "to": [ 8, 8, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 8, 8, 0 ], "texture": "#top" }, + "up": { "uv": [ 0, 0, 8, 8 ], "texture": "#top" } + } + }, + { "from": [ 1, 12, 8 ], + "to": [ 8, 12, 15 ], + "shade": false, + "faces": { + "down": { "uv": [ 8, 0, 0, 8 ], "texture": "#top" , "rotation": 270}, + "up": { "uv": [ 0, 0, 8, 8 ], "texture": "#top" , "rotation": 270} + } + }, + { "from": [ 8, 2, 8 ], + "to": [ 15, 3, 15 ], + "shade": false, + "faces": { + "east": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" }, + "west": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" }, + "north": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" }, + "south": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" } + } + }, + { "from": [ 1, 7, 1.01 ], + "to": [ 8, 8, 8 ], + "shade": false, + "faces": { + "east": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" }, + "west": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" }, + "north": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" }, + "south": { "uv": [ 0, 0, 8, 1 ], "texture": "#side" } + } + }, + { "from": [ 1, 11, 8 ], + "to": [ 8, 12, 15 ], + "shade": false, + "faces": { + "east": { "uv": [ 0, 0, 8, 1 ], "texture": "#side"}, + "west": { "uv": [ 0, 0, 8, 1 ], "texture": "#side"}, + "north": { "uv": [ 0, 0, 8, 1 ], "texture": "#side"}, + "south": { "uv": [ 0, 0, 8, 1 ], "texture": "#side"} + } + }, + { "from": [ 4.5, 0, 8 ], + "to": [ 11.5, 14, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": false }, + "shade": false, + "faces": { + "north": { "uv": [ 4, 0, 12, 14 ], "texture": "#stem" }, + "south": { "uv": [ 4, 0, 12, 14 ], "texture": "#stem" } + } + }, + { "from": [ 4.5, 0, 8 ], + "to": [ 11.5, 14, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45, "rescale": false }, + "shade": false, + "faces": { + "north": { "uv": [ 4, 0, 12, 14 ], "texture": "#stem" }, + "south": { "uv": [ 4, 0, 12, 14 ], "texture": "#stem" } + } + } + ] +} diff --git a/assets/minecraft/models/block/smithing_table.json b/assets/minecraft/models/block/smithing_table.json new file mode 100644 index 00000000..f7bcd3e1 --- /dev/null +++ b/assets/minecraft/models/block/smithing_table.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "down": "minecraft:block/smithing_table_bottom", + "east": "minecraft:block/smithing_table_side", + "north": "minecraft:block/smithing_table_front", + "particle": "minecraft:block/smithing_table_front", + "south": "minecraft:block/smithing_table_front", + "up": "minecraft:block/smithing_table_top", + "west": "minecraft:block/smithing_table_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smoker.json b/assets/minecraft/models/block/smoker.json new file mode 100644 index 00000000..6babece9 --- /dev/null +++ b/assets/minecraft/models/block/smoker.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/orientable_with_bottom", + "textures": { + "bottom": "minecraft:block/smoker_bottom", + "front": "minecraft:block/smoker_front", + "side": "minecraft:block/smoker_side", + "top": "minecraft:block/smoker_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smoker_on.json b/assets/minecraft/models/block/smoker_on.json new file mode 100644 index 00000000..551e0f8a --- /dev/null +++ b/assets/minecraft/models/block/smoker_on.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/orientable_with_bottom", + "textures": { + "bottom": "minecraft:block/smoker_bottom", + "front": "minecraft:block/smoker_front_on", + "side": "minecraft:block/smoker_side", + "top": "minecraft:block/smoker_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_basalt.json b/assets/minecraft/models/block/smooth_basalt.json new file mode 100644 index 00000000..c8f8da1c --- /dev/null +++ b/assets/minecraft/models/block/smooth_basalt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/smooth_basalt" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_quartz.json b/assets/minecraft/models/block/smooth_quartz.json new file mode 100644 index 00000000..7af04ba1 --- /dev/null +++ b/assets/minecraft/models/block/smooth_quartz.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/quartz_block_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_quartz_slab.json b/assets/minecraft/models/block/smooth_quartz_slab.json new file mode 100644 index 00000000..a22f5b9f --- /dev/null +++ b/assets/minecraft/models/block/smooth_quartz_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_bottom", + "top": "minecraft:block/quartz_block_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_quartz_slab_top.json b/assets/minecraft/models/block/smooth_quartz_slab_top.json new file mode 100644 index 00000000..e65cab28 --- /dev/null +++ b/assets/minecraft/models/block/smooth_quartz_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_bottom", + "top": "minecraft:block/quartz_block_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_quartz_stairs.json b/assets/minecraft/models/block/smooth_quartz_stairs.json new file mode 100644 index 00000000..c75048dd --- /dev/null +++ b/assets/minecraft/models/block/smooth_quartz_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_bottom", + "top": "minecraft:block/quartz_block_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_quartz_stairs_inner.json b/assets/minecraft/models/block/smooth_quartz_stairs_inner.json new file mode 100644 index 00000000..d3a0f20e --- /dev/null +++ b/assets/minecraft/models/block/smooth_quartz_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_bottom", + "top": "minecraft:block/quartz_block_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_quartz_stairs_outer.json b/assets/minecraft/models/block/smooth_quartz_stairs_outer.json new file mode 100644 index 00000000..2760bd49 --- /dev/null +++ b/assets/minecraft/models/block/smooth_quartz_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/quartz_block_bottom", + "side": "minecraft:block/quartz_block_bottom", + "top": "minecraft:block/quartz_block_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_red_sandstone.json b/assets/minecraft/models/block/smooth_red_sandstone.json new file mode 100644 index 00000000..db56d1c0 --- /dev/null +++ b/assets/minecraft/models/block/smooth_red_sandstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_red_sandstone_slab.json b/assets/minecraft/models/block/smooth_red_sandstone_slab.json new file mode 100644 index 00000000..1597dd8b --- /dev/null +++ b/assets/minecraft/models/block/smooth_red_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/red_sandstone_top", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_red_sandstone_slab_top.json b/assets/minecraft/models/block/smooth_red_sandstone_slab_top.json new file mode 100644 index 00000000..8ec4c38b --- /dev/null +++ b/assets/minecraft/models/block/smooth_red_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/red_sandstone_top", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_red_sandstone_stairs.json b/assets/minecraft/models/block/smooth_red_sandstone_stairs.json new file mode 100644 index 00000000..97f7801e --- /dev/null +++ b/assets/minecraft/models/block/smooth_red_sandstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/red_sandstone_top", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_red_sandstone_stairs_inner.json b/assets/minecraft/models/block/smooth_red_sandstone_stairs_inner.json new file mode 100644 index 00000000..0a4edbc1 --- /dev/null +++ b/assets/minecraft/models/block/smooth_red_sandstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/red_sandstone_top", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_red_sandstone_stairs_outer.json b/assets/minecraft/models/block/smooth_red_sandstone_stairs_outer.json new file mode 100644 index 00000000..20b58b62 --- /dev/null +++ b/assets/minecraft/models/block/smooth_red_sandstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/red_sandstone_top", + "side": "minecraft:block/red_sandstone_top", + "top": "minecraft:block/red_sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_sandstone.json b/assets/minecraft/models/block/smooth_sandstone.json new file mode 100644 index 00000000..2f886a74 --- /dev/null +++ b/assets/minecraft/models/block/smooth_sandstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_sandstone_slab.json b/assets/minecraft/models/block/smooth_sandstone_slab.json new file mode 100644 index 00000000..1e59e358 --- /dev/null +++ b/assets/minecraft/models/block/smooth_sandstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/sandstone_top", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_sandstone_slab_top.json b/assets/minecraft/models/block/smooth_sandstone_slab_top.json new file mode 100644 index 00000000..694512d0 --- /dev/null +++ b/assets/minecraft/models/block/smooth_sandstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/sandstone_top", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_sandstone_stairs.json b/assets/minecraft/models/block/smooth_sandstone_stairs.json new file mode 100644 index 00000000..4bba62db --- /dev/null +++ b/assets/minecraft/models/block/smooth_sandstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/sandstone_top", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_sandstone_stairs_inner.json b/assets/minecraft/models/block/smooth_sandstone_stairs_inner.json new file mode 100644 index 00000000..50227f02 --- /dev/null +++ b/assets/minecraft/models/block/smooth_sandstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/sandstone_top", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_sandstone_stairs_outer.json b/assets/minecraft/models/block/smooth_sandstone_stairs_outer.json new file mode 100644 index 00000000..c200a8d6 --- /dev/null +++ b/assets/minecraft/models/block/smooth_sandstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/sandstone_top", + "side": "minecraft:block/sandstone_top", + "top": "minecraft:block/sandstone_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_stone.json b/assets/minecraft/models/block/smooth_stone.json new file mode 100644 index 00000000..54595f0c --- /dev/null +++ b/assets/minecraft/models/block/smooth_stone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/smooth_stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_stone_slab.json b/assets/minecraft/models/block/smooth_stone_slab.json new file mode 100644 index 00000000..1df1c231 --- /dev/null +++ b/assets/minecraft/models/block/smooth_stone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone_slab_side", + "top": "minecraft:block/smooth_stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_stone_slab_double.json b/assets/minecraft/models/block/smooth_stone_slab_double.json new file mode 100644 index 00000000..f937d93d --- /dev/null +++ b/assets/minecraft/models/block/smooth_stone_slab_double.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone_slab_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/smooth_stone_slab_top.json b/assets/minecraft/models/block/smooth_stone_slab_top.json new file mode 100644 index 00000000..b4bc88b8 --- /dev/null +++ b/assets/minecraft/models/block/smooth_stone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/smooth_stone", + "side": "minecraft:block/smooth_stone_slab_side", + "top": "minecraft:block/smooth_stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sniffer_egg.json b/assets/minecraft/models/block/sniffer_egg.json new file mode 100644 index 00000000..65d5380a --- /dev/null +++ b/assets/minecraft/models/block/sniffer_egg.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "#north" + }, + "elements": [ + { + "from": [1, 0, 2], + "to": [15, 16, 14], + "faces": { + "north": {"uv": [0, 0, 14, 16], "texture": "#north"}, + "east": {"uv": [0, 0, 12, 16], "texture": "#east"}, + "south": {"uv": [0, 0, 14, 16], "texture": "#south"}, + "west": {"uv": [0, 0, 12, 16], "texture": "#west"}, + "up": {"uv": [0, 0, 14, 12], "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 14, 12], "texture": "#bottom", "cullface": "down"} + } + } + ] +} diff --git a/assets/minecraft/models/block/sniffer_egg_not_cracked.json b/assets/minecraft/models/block/sniffer_egg_not_cracked.json new file mode 100644 index 00000000..0b05be19 --- /dev/null +++ b/assets/minecraft/models/block/sniffer_egg_not_cracked.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/sniffer_egg", + "textures": { + "bottom": "minecraft:block/sniffer_egg_not_cracked_bottom", + "east": "minecraft:block/sniffer_egg_not_cracked_east", + "north": "minecraft:block/sniffer_egg_not_cracked_north", + "south": "minecraft:block/sniffer_egg_not_cracked_south", + "top": "minecraft:block/sniffer_egg_not_cracked_top", + "west": "minecraft:block/sniffer_egg_not_cracked_west" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sniffer_egg_slightly_cracked.json b/assets/minecraft/models/block/sniffer_egg_slightly_cracked.json new file mode 100644 index 00000000..4ee1aaf6 --- /dev/null +++ b/assets/minecraft/models/block/sniffer_egg_slightly_cracked.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/sniffer_egg", + "textures": { + "bottom": "minecraft:block/sniffer_egg_slightly_cracked_bottom", + "east": "minecraft:block/sniffer_egg_slightly_cracked_east", + "north": "minecraft:block/sniffer_egg_slightly_cracked_north", + "south": "minecraft:block/sniffer_egg_slightly_cracked_south", + "top": "minecraft:block/sniffer_egg_slightly_cracked_top", + "west": "minecraft:block/sniffer_egg_slightly_cracked_west" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sniffer_egg_very_cracked.json b/assets/minecraft/models/block/sniffer_egg_very_cracked.json new file mode 100644 index 00000000..f989439d --- /dev/null +++ b/assets/minecraft/models/block/sniffer_egg_very_cracked.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/sniffer_egg", + "textures": { + "bottom": "minecraft:block/sniffer_egg_very_cracked_bottom", + "east": "minecraft:block/sniffer_egg_very_cracked_east", + "north": "minecraft:block/sniffer_egg_very_cracked_north", + "south": "minecraft:block/sniffer_egg_very_cracked_south", + "top": "minecraft:block/sniffer_egg_very_cracked_top", + "west": "minecraft:block/sniffer_egg_very_cracked_west" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/snow_block.json b/assets/minecraft/models/block/snow_block.json new file mode 100644 index 00000000..c6c8096c --- /dev/null +++ b/assets/minecraft/models/block/snow_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/snow" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/snow_height10.json b/assets/minecraft/models/block/snow_height10.json new file mode 100644 index 00000000..dd72cc9e --- /dev/null +++ b/assets/minecraft/models/block/snow_height10.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "block/snow", + "texture": "block/snow" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 10, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 6, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/snow_height12.json b/assets/minecraft/models/block/snow_height12.json new file mode 100644 index 00000000..bdce96c0 --- /dev/null +++ b/assets/minecraft/models/block/snow_height12.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "block/snow", + "texture": "block/snow" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 12, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/snow_height14.json b/assets/minecraft/models/block/snow_height14.json new file mode 100644 index 00000000..30e1d888 --- /dev/null +++ b/assets/minecraft/models/block/snow_height14.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "block/snow", + "texture": "block/snow" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 14, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 2, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/snow_height2.json b/assets/minecraft/models/block/snow_height2.json new file mode 100644 index 00000000..de13fc62 --- /dev/null +++ b/assets/minecraft/models/block/snow_height2.json @@ -0,0 +1,19 @@ +{ "parent": "block/thin_block", + "textures": { + "particle": "block/snow", + "texture": "block/snow" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 2, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 14, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/snow_height4.json b/assets/minecraft/models/block/snow_height4.json new file mode 100644 index 00000000..650692c5 --- /dev/null +++ b/assets/minecraft/models/block/snow_height4.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "block/snow", + "texture": "block/snow" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 4, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 12, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/snow_height6.json b/assets/minecraft/models/block/snow_height6.json new file mode 100644 index 00000000..32468b9b --- /dev/null +++ b/assets/minecraft/models/block/snow_height6.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "block/snow", + "texture": "block/snow" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 6, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 10, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/snow_height8.json b/assets/minecraft/models/block/snow_height8.json new file mode 100644 index 00000000..53d22828 --- /dev/null +++ b/assets/minecraft/models/block/snow_height8.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "block/snow", + "texture": "block/snow" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 8, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 8, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/soul_campfire.json b/assets/minecraft/models/block/soul_campfire.json new file mode 100644 index 00000000..d3097b59 --- /dev/null +++ b/assets/minecraft/models/block/soul_campfire.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_campfire", + "textures": { + "fire": "minecraft:block/soul_campfire_fire", + "lit_log": "minecraft:block/soul_campfire_log_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_fire_floor0.json b/assets/minecraft/models/block/soul_fire_floor0.json new file mode 100644 index 00000000..5623972e --- /dev/null +++ b/assets/minecraft/models/block/soul_fire_floor0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_floor", + "textures": { + "fire": "minecraft:block/soul_fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_fire_floor1.json b/assets/minecraft/models/block/soul_fire_floor1.json new file mode 100644 index 00000000..19228ef1 --- /dev/null +++ b/assets/minecraft/models/block/soul_fire_floor1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_floor", + "textures": { + "fire": "minecraft:block/soul_fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_fire_side0.json b/assets/minecraft/models/block/soul_fire_side0.json new file mode 100644 index 00000000..253bac58 --- /dev/null +++ b/assets/minecraft/models/block/soul_fire_side0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side", + "textures": { + "fire": "minecraft:block/soul_fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_fire_side1.json b/assets/minecraft/models/block/soul_fire_side1.json new file mode 100644 index 00000000..be0004a3 --- /dev/null +++ b/assets/minecraft/models/block/soul_fire_side1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side", + "textures": { + "fire": "minecraft:block/soul_fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_fire_side_alt0.json b/assets/minecraft/models/block/soul_fire_side_alt0.json new file mode 100644 index 00000000..adb4cff6 --- /dev/null +++ b/assets/minecraft/models/block/soul_fire_side_alt0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side_alt", + "textures": { + "fire": "minecraft:block/soul_fire_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_fire_side_alt1.json b/assets/minecraft/models/block/soul_fire_side_alt1.json new file mode 100644 index 00000000..3e6e709a --- /dev/null +++ b/assets/minecraft/models/block/soul_fire_side_alt1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side_alt", + "textures": { + "fire": "minecraft:block/soul_fire_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_lantern.json b/assets/minecraft/models/block/soul_lantern.json new file mode 100644 index 00000000..6a0a0e99 --- /dev/null +++ b/assets/minecraft/models/block/soul_lantern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_lantern", + "textures": { + "lantern": "minecraft:block/soul_lantern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_lantern_hanging.json b/assets/minecraft/models/block/soul_lantern_hanging.json new file mode 100644 index 00000000..8aa725b2 --- /dev/null +++ b/assets/minecraft/models/block/soul_lantern_hanging.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_hanging_lantern", + "textures": { + "lantern": "minecraft:block/soul_lantern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_sand.json b/assets/minecraft/models/block/soul_sand.json new file mode 100644 index 00000000..ca623542 --- /dev/null +++ b/assets/minecraft/models/block/soul_sand.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/soul_sand" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_soil.json b/assets/minecraft/models/block/soul_soil.json new file mode 100644 index 00000000..73a888f6 --- /dev/null +++ b/assets/minecraft/models/block/soul_soil.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/soul_soil" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_torch.json b/assets/minecraft/models/block/soul_torch.json new file mode 100644 index 00000000..275d76e2 --- /dev/null +++ b/assets/minecraft/models/block/soul_torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch", + "textures": { + "torch": "minecraft:block/soul_torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/soul_wall_torch.json b/assets/minecraft/models/block/soul_wall_torch.json new file mode 100644 index 00000000..22b9e9ed --- /dev/null +++ b/assets/minecraft/models/block/soul_wall_torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch_wall", + "textures": { + "torch": "minecraft:block/soul_torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spawner.json b/assets/minecraft/models/block/spawner.json new file mode 100644 index 00000000..720b6d99 --- /dev/null +++ b/assets/minecraft/models/block/spawner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all_inner_faces", + "textures": { + "all": "minecraft:block/spawner" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sponge.json b/assets/minecraft/models/block/sponge.json new file mode 100644 index 00000000..93acf885 --- /dev/null +++ b/assets/minecraft/models/block/sponge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/sponge" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spore_blossom.json b/assets/minecraft/models/block/spore_blossom.json new file mode 100644 index 00000000..b11ad8d5 --- /dev/null +++ b/assets/minecraft/models/block/spore_blossom.json @@ -0,0 +1,54 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/spore_blossom", + "flower": "block/spore_blossom", + "base": "block/spore_blossom_base" + }, + "elements": [ + { "from": [ 1, 15.9, 1 ], + "to": [ 15, 15.9, 15 ], + "shade": false, + "faces": { + "up": { "uv": [ 1, 1, 15, 15 ], "texture": "#base"}, + "down": { "uv": [ 1, 1, 15, 15 ], "texture": "#base"} + } + }, + { "from": [ 8, 15.7, 0 ], + "to": [ 24, 15.7, 16 ], + "rotation": { "origin": [ 8, 16, 0 ], "axis": "z", "angle": -22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#flower", "rotation": 90 }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#flower", "rotation": 270 } + } + }, + { "from": [ -8, 15.7, 0 ], + "to": [ 8, 15.7, 16 ], + "rotation": { "origin": [ 8, 16, 0 ], "axis": "z", "angle": 22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#flower", "rotation": 270 }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#flower", "rotation": 90 } + } + }, + { "from": [ 0, 15.7, 8 ], + "to": [ 16, 15.7, 24 ], + "rotation": { "origin": [ 0, 16, 8 ], "axis": "x", "angle": 22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 16, 16, 0, 0 ], "texture": "#flower" }, + "down": { "uv": [ 16, 0, 0, 16 ], "texture": "#flower" } + } + }, + { "from": [ 0, 15.7, -8 ], + "to": [ 16, 15.7, 8 ], + "rotation": { "origin": [ 0, 16, 8 ], "axis": "x", "angle": -22.5, "rescale": false }, + "shade": false, + "faces": { + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#flower" }, + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#flower" } + } + } + ] +} diff --git a/assets/minecraft/models/block/spruce_button.json b/assets/minecraft/models/block/spruce_button.json new file mode 100644 index 00000000..7c86fded --- /dev/null +++ b/assets/minecraft/models/block/spruce_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_button_inventory.json b/assets/minecraft/models/block/spruce_button_inventory.json new file mode 100644 index 00000000..372657bb --- /dev/null +++ b/assets/minecraft/models/block/spruce_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_button_pressed.json b/assets/minecraft/models/block/spruce_button_pressed.json new file mode 100644 index 00000000..da881755 --- /dev/null +++ b/assets/minecraft/models/block/spruce_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_bottom_left.json b/assets/minecraft/models/block/spruce_door_bottom_left.json new file mode 100644 index 00000000..d3c5e003 --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_bottom_left_open.json b/assets/minecraft/models/block/spruce_door_bottom_left_open.json new file mode 100644 index 00000000..04569ba0 --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_bottom_right.json b/assets/minecraft/models/block/spruce_door_bottom_right.json new file mode 100644 index 00000000..3274bef6 --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_bottom_right_open.json b/assets/minecraft/models/block/spruce_door_bottom_right_open.json new file mode 100644 index 00000000..22f42b3f --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_top_left.json b/assets/minecraft/models/block/spruce_door_top_left.json new file mode 100644 index 00000000..7dfb61b9 --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_top_left_open.json b/assets/minecraft/models/block/spruce_door_top_left_open.json new file mode 100644 index 00000000..a23353d0 --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_top_right.json b/assets/minecraft/models/block/spruce_door_top_right.json new file mode 100644 index 00000000..708af675 --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_door_top_right_open.json b/assets/minecraft/models/block/spruce_door_top_right_open.json new file mode 100644 index 00000000..9607e97d --- /dev/null +++ b/assets/minecraft/models/block/spruce_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/spruce_door_bottom", + "top": "minecraft:block/spruce_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_fence_gate.json b/assets/minecraft/models/block/spruce_fence_gate.json new file mode 100644 index 00000000..ed324b64 --- /dev/null +++ b/assets/minecraft/models/block/spruce_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_fence_gate_open.json b/assets/minecraft/models/block/spruce_fence_gate_open.json new file mode 100644 index 00000000..e6308346 --- /dev/null +++ b/assets/minecraft/models/block/spruce_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_fence_gate_wall.json b/assets/minecraft/models/block/spruce_fence_gate_wall.json new file mode 100644 index 00000000..05914db0 --- /dev/null +++ b/assets/minecraft/models/block/spruce_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_fence_gate_wall_open.json b/assets/minecraft/models/block/spruce_fence_gate_wall_open.json new file mode 100644 index 00000000..08e41a5b --- /dev/null +++ b/assets/minecraft/models/block/spruce_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_fence_inventory.json b/assets/minecraft/models/block/spruce_fence_inventory.json new file mode 100644 index 00000000..041d3d29 --- /dev/null +++ b/assets/minecraft/models/block/spruce_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_fence_post.json b/assets/minecraft/models/block/spruce_fence_post.json new file mode 100644 index 00000000..fb0f1dbd --- /dev/null +++ b/assets/minecraft/models/block/spruce_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_fence_side.json b/assets/minecraft/models/block/spruce_fence_side.json new file mode 100644 index 00000000..3ad6ffc0 --- /dev/null +++ b/assets/minecraft/models/block/spruce_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_hanging_sign.json b/assets/minecraft/models/block/spruce_hanging_sign.json new file mode 100644 index 00000000..b64f9092 --- /dev/null +++ b/assets/minecraft/models/block/spruce_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_leaves.json b/assets/minecraft/models/block/spruce_leaves.json new file mode 100644 index 00000000..fe8ae0dd --- /dev/null +++ b/assets/minecraft/models/block/spruce_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "minecraft:block/spruce_leaves" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_log.json b/assets/minecraft/models/block/spruce_log.json new file mode 100644 index 00000000..85aa8907 --- /dev/null +++ b/assets/minecraft/models/block/spruce_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/spruce_log_top", + "side": "minecraft:block/spruce_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_log_horizontal.json b/assets/minecraft/models/block/spruce_log_horizontal.json new file mode 100644 index 00000000..9a7e4aad --- /dev/null +++ b/assets/minecraft/models/block/spruce_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/spruce_log_top", + "side": "minecraft:block/spruce_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_planks.json b/assets/minecraft/models/block/spruce_planks.json new file mode 100644 index 00000000..1345a140 --- /dev/null +++ b/assets/minecraft/models/block/spruce_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_pressure_plate.json b/assets/minecraft/models/block/spruce_pressure_plate.json new file mode 100644 index 00000000..89e7400e --- /dev/null +++ b/assets/minecraft/models/block/spruce_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_pressure_plate_down.json b/assets/minecraft/models/block/spruce_pressure_plate_down.json new file mode 100644 index 00000000..8fb289a8 --- /dev/null +++ b/assets/minecraft/models/block/spruce_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_sapling.json b/assets/minecraft/models/block/spruce_sapling.json new file mode 100644 index 00000000..99c270a2 --- /dev/null +++ b/assets/minecraft/models/block/spruce_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/spruce_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_sign.json b/assets/minecraft/models/block/spruce_sign.json new file mode 100644 index 00000000..d4f03b2e --- /dev/null +++ b/assets/minecraft/models/block/spruce_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_slab.json b/assets/minecraft/models/block/spruce_slab.json new file mode 100644 index 00000000..bcdc4b2a --- /dev/null +++ b/assets/minecraft/models/block/spruce_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/spruce_planks", + "side": "minecraft:block/spruce_planks", + "top": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_slab_top.json b/assets/minecraft/models/block/spruce_slab_top.json new file mode 100644 index 00000000..3cbde014 --- /dev/null +++ b/assets/minecraft/models/block/spruce_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/spruce_planks", + "side": "minecraft:block/spruce_planks", + "top": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_stairs.json b/assets/minecraft/models/block/spruce_stairs.json new file mode 100644 index 00000000..7e53bad1 --- /dev/null +++ b/assets/minecraft/models/block/spruce_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/spruce_planks", + "side": "minecraft:block/spruce_planks", + "top": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_stairs_inner.json b/assets/minecraft/models/block/spruce_stairs_inner.json new file mode 100644 index 00000000..5864e0d6 --- /dev/null +++ b/assets/minecraft/models/block/spruce_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/spruce_planks", + "side": "minecraft:block/spruce_planks", + "top": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_stairs_outer.json b/assets/minecraft/models/block/spruce_stairs_outer.json new file mode 100644 index 00000000..b3ba3d53 --- /dev/null +++ b/assets/minecraft/models/block/spruce_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/spruce_planks", + "side": "minecraft:block/spruce_planks", + "top": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_trapdoor_bottom.json b/assets/minecraft/models/block/spruce_trapdoor_bottom.json new file mode 100644 index 00000000..b5dacb63 --- /dev/null +++ b/assets/minecraft/models/block/spruce_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/spruce_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_trapdoor_open.json b/assets/minecraft/models/block/spruce_trapdoor_open.json new file mode 100644 index 00000000..f8b61984 --- /dev/null +++ b/assets/minecraft/models/block/spruce_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/spruce_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_trapdoor_top.json b/assets/minecraft/models/block/spruce_trapdoor_top.json new file mode 100644 index 00000000..11589722 --- /dev/null +++ b/assets/minecraft/models/block/spruce_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/spruce_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/spruce_wood.json b/assets/minecraft/models/block/spruce_wood.json new file mode 100644 index 00000000..244a9d5a --- /dev/null +++ b/assets/minecraft/models/block/spruce_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/spruce_log", + "side": "minecraft:block/spruce_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stairs.json b/assets/minecraft/models/block/stairs.json new file mode 100644 index 00000000..986ce9c6 --- /dev/null +++ b/assets/minecraft/models/block/stairs.json @@ -0,0 +1,45 @@ +{ "parent": "block/block", + "display": { + "gui": { + "rotation": [ 30, 135, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "head": { + "rotation": [ 0, -90, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 1, 1, 1 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, -135, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + } + }, + "textures": { + "particle": "#side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 8, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 8, 8, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "up": { "uv": [ 8, 0, 16, 16 ], "texture": "#top", "cullface": "up" }, + "north": { "uv": [ 0, 0, 8, 8 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 8, 0, 16, 8 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 8 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_fruit.json b/assets/minecraft/models/block/stem_fruit.json new file mode 100644 index 00000000..86d59c66 --- /dev/null +++ b/assets/minecraft/models/block/stem_fruit.json @@ -0,0 +1,31 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 7, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 7, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 0, 0, 8 ], + "to": [ 9, 16, 8 ], + "faces": { + "north": { "uv": [ 9, 0, 0, 16 ], "texture": "#upperstem", "tintindex": 0 }, + "south": { "uv": [ 0, 0, 9, 16 ], "texture": "#upperstem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth0.json b/assets/minecraft/models/block/stem_growth0.json new file mode 100644 index 00000000..6e977315 --- /dev/null +++ b/assets/minecraft/models/block/stem_growth0.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 1, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 2 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 2 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 1, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 2 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 2 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth1.json b/assets/minecraft/models/block/stem_growth1.json new file mode 100644 index 00000000..ea97f754 --- /dev/null +++ b/assets/minecraft/models/block/stem_growth1.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 3, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 4 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 4 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 3, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 4 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth2.json b/assets/minecraft/models/block/stem_growth2.json new file mode 100644 index 00000000..4ab6f4c2 --- /dev/null +++ b/assets/minecraft/models/block/stem_growth2.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 5, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 6 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 6 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 5, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 6 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 6 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth3.json b/assets/minecraft/models/block/stem_growth3.json new file mode 100644 index 00000000..542a8205 --- /dev/null +++ b/assets/minecraft/models/block/stem_growth3.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 7, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 7, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth4.json b/assets/minecraft/models/block/stem_growth4.json new file mode 100644 index 00000000..77befceb --- /dev/null +++ b/assets/minecraft/models/block/stem_growth4.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 9, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 9, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth5.json b/assets/minecraft/models/block/stem_growth5.json new file mode 100644 index 00000000..678450e6 --- /dev/null +++ b/assets/minecraft/models/block/stem_growth5.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 11, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 12 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 12 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 11, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 12 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 12 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth6.json b/assets/minecraft/models/block/stem_growth6.json new file mode 100644 index 00000000..523974e2 --- /dev/null +++ b/assets/minecraft/models/block/stem_growth6.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 13, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 14 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 14 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 13, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 14 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 14 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stem_growth7.json b/assets/minecraft/models/block/stem_growth7.json new file mode 100644 index 00000000..bd4f9d18 --- /dev/null +++ b/assets/minecraft/models/block/stem_growth7.json @@ -0,0 +1,24 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#stem" + }, + "elements": [ + { "from": [ 0, -1, 8 ], + "to": [ 16, 15, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#stem", "tintindex": 0 }, + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#stem", "tintindex": 0 } + } + }, + { "from": [ 8, -1, 0 ], + "to": [ 8, 15, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#stem", "tintindex": 0 }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#stem", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/sticky_piston.json b/assets/minecraft/models/block/sticky_piston.json new file mode 100644 index 00000000..84fcdca6 --- /dev/null +++ b/assets/minecraft/models/block/sticky_piston.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/template_piston", + "textures": { + "bottom": "minecraft:block/piston_bottom", + "platform": "minecraft:block/piston_top_sticky", + "side": "minecraft:block/piston_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sticky_piston_inventory.json b/assets/minecraft/models/block/sticky_piston_inventory.json new file mode 100644 index 00000000..24b376ab --- /dev/null +++ b/assets/minecraft/models/block/sticky_piston_inventory.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/piston_bottom", + "side": "minecraft:block/piston_side", + "top": "minecraft:block/piston_top_sticky" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone.json b/assets/minecraft/models/block/stone.json new file mode 100644 index 00000000..1a2f6a79 --- /dev/null +++ b/assets/minecraft/models/block/stone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_slab.json b/assets/minecraft/models/block/stone_brick_slab.json new file mode 100644 index 00000000..8c8e75d2 --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/stone_bricks", + "side": "minecraft:block/stone_bricks", + "top": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_slab_top.json b/assets/minecraft/models/block/stone_brick_slab_top.json new file mode 100644 index 00000000..40d3e83a --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/stone_bricks", + "side": "minecraft:block/stone_bricks", + "top": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_stairs.json b/assets/minecraft/models/block/stone_brick_stairs.json new file mode 100644 index 00000000..e4688225 --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/stone_bricks", + "side": "minecraft:block/stone_bricks", + "top": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_stairs_inner.json b/assets/minecraft/models/block/stone_brick_stairs_inner.json new file mode 100644 index 00000000..a4d11659 --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/stone_bricks", + "side": "minecraft:block/stone_bricks", + "top": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_stairs_outer.json b/assets/minecraft/models/block/stone_brick_stairs_outer.json new file mode 100644 index 00000000..92b707bc --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/stone_bricks", + "side": "minecraft:block/stone_bricks", + "top": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_wall_inventory.json b/assets/minecraft/models/block/stone_brick_wall_inventory.json new file mode 100644 index 00000000..b15051bc --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_wall_post.json b/assets/minecraft/models/block/stone_brick_wall_post.json new file mode 100644 index 00000000..47ee222a --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_wall_side.json b/assets/minecraft/models/block/stone_brick_wall_side.json new file mode 100644 index 00000000..86d914b4 --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_brick_wall_side_tall.json b/assets/minecraft/models/block/stone_brick_wall_side_tall.json new file mode 100644 index 00000000..6dd8aa44 --- /dev/null +++ b/assets/minecraft/models/block/stone_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_bricks.json b/assets/minecraft/models/block/stone_bricks.json new file mode 100644 index 00000000..87f6bbe0 --- /dev/null +++ b/assets/minecraft/models/block/stone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/stone_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_button.json b/assets/minecraft/models/block/stone_button.json new file mode 100644 index 00000000..42d1cc4d --- /dev/null +++ b/assets/minecraft/models/block/stone_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_button_inventory.json b/assets/minecraft/models/block/stone_button_inventory.json new file mode 100644 index 00000000..ffee63f2 --- /dev/null +++ b/assets/minecraft/models/block/stone_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_button_pressed.json b/assets/minecraft/models/block/stone_button_pressed.json new file mode 100644 index 00000000..4606dfa0 --- /dev/null +++ b/assets/minecraft/models/block/stone_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_mirrored.json b/assets/minecraft/models/block/stone_mirrored.json new file mode 100644 index 00000000..3cf2cb6d --- /dev/null +++ b/assets/minecraft/models/block/stone_mirrored.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_mirrored_all", + "textures": { + "all": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_pressure_plate.json b/assets/minecraft/models/block/stone_pressure_plate.json new file mode 100644 index 00000000..98b53783 --- /dev/null +++ b/assets/minecraft/models/block/stone_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_pressure_plate_down.json b/assets/minecraft/models/block/stone_pressure_plate_down.json new file mode 100644 index 00000000..ff0d176c --- /dev/null +++ b/assets/minecraft/models/block/stone_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_slab.json b/assets/minecraft/models/block/stone_slab.json new file mode 100644 index 00000000..b52b9cd5 --- /dev/null +++ b/assets/minecraft/models/block/stone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/stone", + "side": "minecraft:block/stone", + "top": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_slab_top.json b/assets/minecraft/models/block/stone_slab_top.json new file mode 100644 index 00000000..62f91159 --- /dev/null +++ b/assets/minecraft/models/block/stone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/stone", + "side": "minecraft:block/stone", + "top": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_stairs.json b/assets/minecraft/models/block/stone_stairs.json new file mode 100644 index 00000000..fe93e7f6 --- /dev/null +++ b/assets/minecraft/models/block/stone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/stone", + "side": "minecraft:block/stone", + "top": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_stairs_inner.json b/assets/minecraft/models/block/stone_stairs_inner.json new file mode 100644 index 00000000..08f85f6c --- /dev/null +++ b/assets/minecraft/models/block/stone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/stone", + "side": "minecraft:block/stone", + "top": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stone_stairs_outer.json b/assets/minecraft/models/block/stone_stairs_outer.json new file mode 100644 index 00000000..24ddd3ae --- /dev/null +++ b/assets/minecraft/models/block/stone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/stone", + "side": "minecraft:block/stone", + "top": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stonecutter.json b/assets/minecraft/models/block/stonecutter.json new file mode 100644 index 00000000..b89f0aaa --- /dev/null +++ b/assets/minecraft/models/block/stonecutter.json @@ -0,0 +1,29 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/stonecutter_bottom", + "bottom": "block/stonecutter_bottom", + "top": "block/stonecutter_top", + "side": "block/stonecutter_side", + "saw": "block/stonecutter_saw" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 9, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 7, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 7, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 7, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#side", "cullface": "east" } + } + }, + { "from": [ 1, 9, 8 ], + "to": [ 15, 16, 8 ], + "faces": { + "north": { "uv": [ 1, 9, 15, 16 ], "texture": "#saw", "tintindex": 0 }, + "south": { "uv": [ 15, 9, 1, 16 ], "texture": "#saw", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/stripped_acacia_log.json b/assets/minecraft/models/block/stripped_acacia_log.json new file mode 100644 index 00000000..54d47b63 --- /dev/null +++ b/assets/minecraft/models/block/stripped_acacia_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_acacia_log_top", + "side": "minecraft:block/stripped_acacia_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_acacia_log_horizontal.json b/assets/minecraft/models/block/stripped_acacia_log_horizontal.json new file mode 100644 index 00000000..454c86b5 --- /dev/null +++ b/assets/minecraft/models/block/stripped_acacia_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/stripped_acacia_log_top", + "side": "minecraft:block/stripped_acacia_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_acacia_wood.json b/assets/minecraft/models/block/stripped_acacia_wood.json new file mode 100644 index 00000000..1583b0d5 --- /dev/null +++ b/assets/minecraft/models/block/stripped_acacia_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_acacia_log", + "side": "minecraft:block/stripped_acacia_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_bamboo_block.json b/assets/minecraft/models/block/stripped_bamboo_block.json new file mode 100644 index 00000000..9e838eac --- /dev/null +++ b/assets/minecraft/models/block/stripped_bamboo_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_bamboo_block_top", + "side": "minecraft:block/stripped_bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_bamboo_block_x.json b/assets/minecraft/models/block/stripped_bamboo_block_x.json new file mode 100644 index 00000000..c657a0cc --- /dev/null +++ b/assets/minecraft/models/block/stripped_bamboo_block_x.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_x", + "textures": { + "end": "minecraft:block/stripped_bamboo_block_top", + "side": "minecraft:block/stripped_bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_bamboo_block_y.json b/assets/minecraft/models/block/stripped_bamboo_block_y.json new file mode 100644 index 00000000..96bd5d24 --- /dev/null +++ b/assets/minecraft/models/block/stripped_bamboo_block_y.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_y", + "textures": { + "end": "minecraft:block/stripped_bamboo_block_top", + "side": "minecraft:block/stripped_bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_bamboo_block_z.json b/assets/minecraft/models/block/stripped_bamboo_block_z.json new file mode 100644 index 00000000..21c919af --- /dev/null +++ b/assets/minecraft/models/block/stripped_bamboo_block_z.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_z", + "textures": { + "end": "minecraft:block/stripped_bamboo_block_top", + "side": "minecraft:block/stripped_bamboo_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_birch_log.json b/assets/minecraft/models/block/stripped_birch_log.json new file mode 100644 index 00000000..d7e395a7 --- /dev/null +++ b/assets/minecraft/models/block/stripped_birch_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_birch_log_top", + "side": "minecraft:block/stripped_birch_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_birch_log_horizontal.json b/assets/minecraft/models/block/stripped_birch_log_horizontal.json new file mode 100644 index 00000000..6f62e421 --- /dev/null +++ b/assets/minecraft/models/block/stripped_birch_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/stripped_birch_log_top", + "side": "minecraft:block/stripped_birch_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_birch_wood.json b/assets/minecraft/models/block/stripped_birch_wood.json new file mode 100644 index 00000000..4faf78e3 --- /dev/null +++ b/assets/minecraft/models/block/stripped_birch_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_birch_log", + "side": "minecraft:block/stripped_birch_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_cherry_log.json b/assets/minecraft/models/block/stripped_cherry_log.json new file mode 100644 index 00000000..08f5f52c --- /dev/null +++ b/assets/minecraft/models/block/stripped_cherry_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_cherry_log_top", + "side": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_cherry_log_x.json b/assets/minecraft/models/block/stripped_cherry_log_x.json new file mode 100644 index 00000000..00e524f2 --- /dev/null +++ b/assets/minecraft/models/block/stripped_cherry_log_x.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_x", + "textures": { + "end": "minecraft:block/stripped_cherry_log_top", + "side": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_cherry_log_y.json b/assets/minecraft/models/block/stripped_cherry_log_y.json new file mode 100644 index 00000000..8ff831c2 --- /dev/null +++ b/assets/minecraft/models/block/stripped_cherry_log_y.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_y", + "textures": { + "end": "minecraft:block/stripped_cherry_log_top", + "side": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_cherry_log_z.json b/assets/minecraft/models/block/stripped_cherry_log_z.json new file mode 100644 index 00000000..8137f6a7 --- /dev/null +++ b/assets/minecraft/models/block/stripped_cherry_log_z.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_uv_locked_z", + "textures": { + "end": "minecraft:block/stripped_cherry_log_top", + "side": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_cherry_wood.json b/assets/minecraft/models/block/stripped_cherry_wood.json new file mode 100644 index 00000000..6c9b2d4e --- /dev/null +++ b/assets/minecraft/models/block/stripped_cherry_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_cherry_log", + "side": "minecraft:block/stripped_cherry_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_crimson_hyphae.json b/assets/minecraft/models/block/stripped_crimson_hyphae.json new file mode 100644 index 00000000..cbc86c4d --- /dev/null +++ b/assets/minecraft/models/block/stripped_crimson_hyphae.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_crimson_stem", + "side": "minecraft:block/stripped_crimson_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_crimson_stem.json b/assets/minecraft/models/block/stripped_crimson_stem.json new file mode 100644 index 00000000..8104f731 --- /dev/null +++ b/assets/minecraft/models/block/stripped_crimson_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_crimson_stem_top", + "side": "minecraft:block/stripped_crimson_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_dark_oak_log.json b/assets/minecraft/models/block/stripped_dark_oak_log.json new file mode 100644 index 00000000..fa1dedea --- /dev/null +++ b/assets/minecraft/models/block/stripped_dark_oak_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_dark_oak_log_top", + "side": "minecraft:block/stripped_dark_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_dark_oak_log_horizontal.json b/assets/minecraft/models/block/stripped_dark_oak_log_horizontal.json new file mode 100644 index 00000000..c4e5e432 --- /dev/null +++ b/assets/minecraft/models/block/stripped_dark_oak_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/stripped_dark_oak_log_top", + "side": "minecraft:block/stripped_dark_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_dark_oak_wood.json b/assets/minecraft/models/block/stripped_dark_oak_wood.json new file mode 100644 index 00000000..1ca9d015 --- /dev/null +++ b/assets/minecraft/models/block/stripped_dark_oak_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_dark_oak_log", + "side": "minecraft:block/stripped_dark_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_jungle_log.json b/assets/minecraft/models/block/stripped_jungle_log.json new file mode 100644 index 00000000..d40694df --- /dev/null +++ b/assets/minecraft/models/block/stripped_jungle_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_jungle_log_top", + "side": "minecraft:block/stripped_jungle_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_jungle_log_horizontal.json b/assets/minecraft/models/block/stripped_jungle_log_horizontal.json new file mode 100644 index 00000000..0dd48d1c --- /dev/null +++ b/assets/minecraft/models/block/stripped_jungle_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/stripped_jungle_log_top", + "side": "minecraft:block/stripped_jungle_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_jungle_wood.json b/assets/minecraft/models/block/stripped_jungle_wood.json new file mode 100644 index 00000000..f4b0fe76 --- /dev/null +++ b/assets/minecraft/models/block/stripped_jungle_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_jungle_log", + "side": "minecraft:block/stripped_jungle_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_mangrove_log.json b/assets/minecraft/models/block/stripped_mangrove_log.json new file mode 100644 index 00000000..5a8654ea --- /dev/null +++ b/assets/minecraft/models/block/stripped_mangrove_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_mangrove_log_top", + "side": "minecraft:block/stripped_mangrove_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_mangrove_log_horizontal.json b/assets/minecraft/models/block/stripped_mangrove_log_horizontal.json new file mode 100644 index 00000000..70f40bdf --- /dev/null +++ b/assets/minecraft/models/block/stripped_mangrove_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/stripped_mangrove_log_top", + "side": "minecraft:block/stripped_mangrove_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_mangrove_wood.json b/assets/minecraft/models/block/stripped_mangrove_wood.json new file mode 100644 index 00000000..900c73d8 --- /dev/null +++ b/assets/minecraft/models/block/stripped_mangrove_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_mangrove_log", + "side": "minecraft:block/stripped_mangrove_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_oak_log.json b/assets/minecraft/models/block/stripped_oak_log.json new file mode 100644 index 00000000..4b3fc057 --- /dev/null +++ b/assets/minecraft/models/block/stripped_oak_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_oak_log_top", + "side": "minecraft:block/stripped_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_oak_log_horizontal.json b/assets/minecraft/models/block/stripped_oak_log_horizontal.json new file mode 100644 index 00000000..a1163f03 --- /dev/null +++ b/assets/minecraft/models/block/stripped_oak_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/stripped_oak_log_top", + "side": "minecraft:block/stripped_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_oak_wood.json b/assets/minecraft/models/block/stripped_oak_wood.json new file mode 100644 index 00000000..554325dd --- /dev/null +++ b/assets/minecraft/models/block/stripped_oak_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_oak_log", + "side": "minecraft:block/stripped_oak_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_spruce_log.json b/assets/minecraft/models/block/stripped_spruce_log.json new file mode 100644 index 00000000..665bd31b --- /dev/null +++ b/assets/minecraft/models/block/stripped_spruce_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_spruce_log_top", + "side": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_spruce_log_horizontal.json b/assets/minecraft/models/block/stripped_spruce_log_horizontal.json new file mode 100644 index 00000000..7a4c1139 --- /dev/null +++ b/assets/minecraft/models/block/stripped_spruce_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/stripped_spruce_log_top", + "side": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_spruce_wood.json b/assets/minecraft/models/block/stripped_spruce_wood.json new file mode 100644 index 00000000..6c96a668 --- /dev/null +++ b/assets/minecraft/models/block/stripped_spruce_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_spruce_log", + "side": "minecraft:block/stripped_spruce_log" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_warped_hyphae.json b/assets/minecraft/models/block/stripped_warped_hyphae.json new file mode 100644 index 00000000..fa055c37 --- /dev/null +++ b/assets/minecraft/models/block/stripped_warped_hyphae.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_warped_stem", + "side": "minecraft:block/stripped_warped_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/stripped_warped_stem.json b/assets/minecraft/models/block/stripped_warped_stem.json new file mode 100644 index 00000000..adcfb554 --- /dev/null +++ b/assets/minecraft/models/block/stripped_warped_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/stripped_warped_stem_top", + "side": "minecraft:block/stripped_warped_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/structure_block.json b/assets/minecraft/models/block/structure_block.json new file mode 100644 index 00000000..ab31c0ae --- /dev/null +++ b/assets/minecraft/models/block/structure_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/structure_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/structure_block_corner.json b/assets/minecraft/models/block/structure_block_corner.json new file mode 100644 index 00000000..d5522e3b --- /dev/null +++ b/assets/minecraft/models/block/structure_block_corner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/structure_block_corner" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/structure_block_data.json b/assets/minecraft/models/block/structure_block_data.json new file mode 100644 index 00000000..a0e707f6 --- /dev/null +++ b/assets/minecraft/models/block/structure_block_data.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/structure_block_data" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/structure_block_load.json b/assets/minecraft/models/block/structure_block_load.json new file mode 100644 index 00000000..80e3237b --- /dev/null +++ b/assets/minecraft/models/block/structure_block_load.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/structure_block_load" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/structure_block_save.json b/assets/minecraft/models/block/structure_block_save.json new file mode 100644 index 00000000..7e6967ac --- /dev/null +++ b/assets/minecraft/models/block/structure_block_save.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/structure_block_save" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/structure_void.json b/assets/minecraft/models/block/structure_void.json new file mode 100644 index 00000000..7003f085 --- /dev/null +++ b/assets/minecraft/models/block/structure_void.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:item/structure_void" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sugar_cane.json b/assets/minecraft/models/block/sugar_cane.json new file mode 100644 index 00000000..c4092853 --- /dev/null +++ b/assets/minecraft/models/block/sugar_cane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/sugar_cane" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sunflower_bottom.json b/assets/minecraft/models/block/sunflower_bottom.json new file mode 100644 index 00000000..f9b91c41 --- /dev/null +++ b/assets/minecraft/models/block/sunflower_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/sunflower_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sunflower_top.json b/assets/minecraft/models/block/sunflower_top.json new file mode 100644 index 00000000..f98a1802 --- /dev/null +++ b/assets/minecraft/models/block/sunflower_top.json @@ -0,0 +1,53 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/sunflower_front", + "cross": "block/sunflower_top", + "back": "block/sunflower_back", + "front": "block/sunflower_front" + }, + "elements": [ + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 8, 8 ], + "rotation": { + "origin": [ 8, 8, 8 ], + "axis": "y", + "angle": 45, + "rescale": true + }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 8, 16, 16 ], "texture": "#cross" }, + "south": { "uv": [ 0, 8, 16, 16 ], "texture": "#cross" } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 8, 15.2 ], + "rotation": { + "origin": [ 8, 8, 8 ], + "axis": "y", + "angle": 45, + "rescale": true + }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 8, 16, 16 ], "texture": "#cross" }, + "east": { "uv": [ 0, 8, 16, 16 ], "texture": "#cross" } + } + }, + { "from": [ 9.6, -1, 1 ], + "to": [ 9.6, 15, 15 ], + "rotation": { + "origin": [ 8, 8, 8 ], + "axis": "z", + "angle": 22.5, + "rescale": true + }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#back" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#front" } + } + } + ] +} diff --git a/assets/minecraft/models/block/suspicious_gravel_0.json b/assets/minecraft/models/block/suspicious_gravel_0.json new file mode 100644 index 00000000..54ae011c --- /dev/null +++ b/assets/minecraft/models/block/suspicious_gravel_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_gravel_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/suspicious_gravel_1.json b/assets/minecraft/models/block/suspicious_gravel_1.json new file mode 100644 index 00000000..8c3ef949 --- /dev/null +++ b/assets/minecraft/models/block/suspicious_gravel_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_gravel_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/suspicious_gravel_2.json b/assets/minecraft/models/block/suspicious_gravel_2.json new file mode 100644 index 00000000..2e6b819b --- /dev/null +++ b/assets/minecraft/models/block/suspicious_gravel_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_gravel_2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/suspicious_gravel_3.json b/assets/minecraft/models/block/suspicious_gravel_3.json new file mode 100644 index 00000000..b335d4f8 --- /dev/null +++ b/assets/minecraft/models/block/suspicious_gravel_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_gravel_3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/suspicious_sand_0.json b/assets/minecraft/models/block/suspicious_sand_0.json new file mode 100644 index 00000000..f021a962 --- /dev/null +++ b/assets/minecraft/models/block/suspicious_sand_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_sand_0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/suspicious_sand_1.json b/assets/minecraft/models/block/suspicious_sand_1.json new file mode 100644 index 00000000..96e97058 --- /dev/null +++ b/assets/minecraft/models/block/suspicious_sand_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_sand_1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/suspicious_sand_2.json b/assets/minecraft/models/block/suspicious_sand_2.json new file mode 100644 index 00000000..41542af0 --- /dev/null +++ b/assets/minecraft/models/block/suspicious_sand_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_sand_2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/suspicious_sand_3.json b/assets/minecraft/models/block/suspicious_sand_3.json new file mode 100644 index 00000000..f4358f74 --- /dev/null +++ b/assets/minecraft/models/block/suspicious_sand_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/suspicious_sand_3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sweet_berry_bush_stage0.json b/assets/minecraft/models/block/sweet_berry_bush_stage0.json new file mode 100644 index 00000000..35d51667 --- /dev/null +++ b/assets/minecraft/models/block/sweet_berry_bush_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/sweet_berry_bush_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sweet_berry_bush_stage1.json b/assets/minecraft/models/block/sweet_berry_bush_stage1.json new file mode 100644 index 00000000..af18f15b --- /dev/null +++ b/assets/minecraft/models/block/sweet_berry_bush_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/sweet_berry_bush_stage1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sweet_berry_bush_stage2.json b/assets/minecraft/models/block/sweet_berry_bush_stage2.json new file mode 100644 index 00000000..d1227845 --- /dev/null +++ b/assets/minecraft/models/block/sweet_berry_bush_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/sweet_berry_bush_stage2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/sweet_berry_bush_stage3.json b/assets/minecraft/models/block/sweet_berry_bush_stage3.json new file mode 100644 index 00000000..9625d2da --- /dev/null +++ b/assets/minecraft/models/block/sweet_berry_bush_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/sweet_berry_bush_stage3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tall_grass_bottom.json b/assets/minecraft/models/block/tall_grass_bottom.json new file mode 100644 index 00000000..aedd5f4f --- /dev/null +++ b/assets/minecraft/models/block/tall_grass_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/tall_grass_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tall_grass_top.json b/assets/minecraft/models/block/tall_grass_top.json new file mode 100644 index 00000000..ca1f32dd --- /dev/null +++ b/assets/minecraft/models/block/tall_grass_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/tinted_cross", + "textures": { + "cross": "minecraft:block/tall_grass_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tall_seagrass_bottom.json b/assets/minecraft/models/block/tall_seagrass_bottom.json new file mode 100644 index 00000000..84613667 --- /dev/null +++ b/assets/minecraft/models/block/tall_seagrass_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_seagrass", + "textures": { + "texture": "minecraft:block/tall_seagrass_bottom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tall_seagrass_top.json b/assets/minecraft/models/block/tall_seagrass_top.json new file mode 100644 index 00000000..ce30eefc --- /dev/null +++ b/assets/minecraft/models/block/tall_seagrass_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_seagrass", + "textures": { + "texture": "minecraft:block/tall_seagrass_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/target.json b/assets/minecraft/models/block/target.json new file mode 100644 index 00000000..061cd788 --- /dev/null +++ b/assets/minecraft/models/block/target.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/target_top", + "side": "minecraft:block/target_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/template_anvil.json b/assets/minecraft/models/block/template_anvil.json new file mode 100644 index 00000000..195ede53 --- /dev/null +++ b/assets/minecraft/models/block/template_anvil.json @@ -0,0 +1,60 @@ +{ "parent": "block/block", + "textures": { + "particle": "block/anvil", + "body": "block/anvil" + }, + "display": { + "fixed": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + }, + "elements": [ + { "__comment": "Anvil base", + "from": [ 2, 0, 2 ], + "to": [ 14, 4, 14 ], + "faces": { + "down": { "uv": [ 2, 2, 14, 14 ], "texture": "#body", "rotation": 180, "cullface": "down" }, + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#body", "rotation": 180 }, + "north": { "uv": [ 2, 12, 14, 16 ], "texture": "#body" }, + "south": { "uv": [ 2, 12, 14, 16 ], "texture": "#body" }, + "west": { "uv": [ 0, 2, 4, 14 ], "texture": "#body", "rotation": 90 }, + "east": { "uv": [ 4, 2, 0, 14 ], "texture": "#body", "rotation": 270 } + } + }, + { "__comment": "Lower narrow portion", + "from": [ 4, 4, 3 ], + "to": [ 12, 5, 13 ], + "faces": { + "up": { "uv": [ 4, 3, 12, 13 ], "texture": "#body", "rotation": 180 }, + "north": { "uv": [ 4, 11, 12, 12 ], "texture": "#body" }, + "south": { "uv": [ 4, 11, 12, 12 ], "texture": "#body" }, + "west": { "uv": [ 4, 3, 5, 13 ], "texture": "#body", "rotation": 90 }, + "east": { "uv": [ 5, 3, 4, 13 ], "texture": "#body", "rotation": 270 } + } + }, + { "__comment": "Wider section beneath top portion", + "from": [ 6, 5, 4 ], + "to": [ 10, 10, 12 ], + "faces": { + "north": { "uv": [ 6, 6, 10, 11 ], "texture": "#body" }, + "south": { "uv": [ 6, 6, 10, 11 ], "texture": "#body" }, + "west": { "uv": [ 5, 4, 10, 12 ], "texture": "#body", "rotation": 90 }, + "east": { "uv": [ 10, 4, 5, 12 ], "texture": "#body", "rotation": 270 } + } + }, + { "__comment": "Anvil top", + "from": [ 3, 10, 0 ], + "to": [ 13, 16, 16 ], + "faces": { + "down": { "uv": [ 3, 0, 13, 16 ], "texture": "#body", "rotation": 180 }, + "up": { "uv": [ 3, 0, 13, 16 ], "texture": "#top", "rotation": 180 }, + "north": { "uv": [ 3, 0, 13, 6 ], "texture": "#body" }, + "south": { "uv": [ 3, 0, 13, 6 ], "texture": "#body" }, + "west": { "uv": [ 10, 0, 16, 16 ], "texture": "#body", "rotation": 90 }, + "east": { "uv": [ 16, 0, 10, 16 ], "texture": "#body", "rotation": 270 } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_azalea.json b/assets/minecraft/models/block/template_azalea.json new file mode 100644 index 00000000..2c22ef84 --- /dev/null +++ b/assets/minecraft/models/block/template_azalea.json @@ -0,0 +1,60 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/azalea_plant", + "plant": "block/azalea_plant" + }, + "elements": [ + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#top" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "up" } + } + }, + { "from": [ 0, 5, 0 ], + "to": [ 16, 16, 0.01 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 11 ], "texture": "#side", "cullface": "north"}, + "south": { "uv": [ 16, 0, 0, 11 ], "texture": "#side"} + } + }, + { "from": [ 0, 5, 15.99 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "uv": [ 16, 0, 0, 11 ], "texture": "#side"}, + "south": { "uv": [ 0, 0, 16, 11 ], "texture": "#side", "cullface": "south"} + } + }, + { "from": [ 0, 5, 0 ], + "to": [ 0.01, 16, 16 ], + "faces": { + "west": { "uv": [ 0, 0, 16, 11 ], "texture": "#side", "cullface": "west"}, + "east": { "uv": [ 16, 0, 0, 11 ], "texture": "#side"} + } + }, + { "from": [ 15.99, 5, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "west": { "uv": [ 16, 0, 0, 11 ], "texture": "#side"}, + "east": { "uv": [ 0, 0, 16, 11 ], "texture": "#side", "cullface": "east"} + } + }, + { "from": [ 0.1, 0, 8 ], + "to": [ 15.9, 15.9, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" } + } + }, + { "from": [ 8, 0, 0.1 ], + "to": [ 8, 15.9, 15.9 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_cake_with_candle.json b/assets/minecraft/models/block/template_cake_with_candle.json new file mode 100644 index 00000000..82a6ee82 --- /dev/null +++ b/assets/minecraft/models/block/template_cake_with_candle.json @@ -0,0 +1,51 @@ +{ + "textures": { + "particle": "block/cake_side", + "bottom": "block/cake_bottom", + "top": "block/cake_top", + "side": "block/cake_side" + }, + "elements": [ + { "from": [ 1, 0, 1 ], + "to": [ 15, 8, 15 ], + "faces": { + "down": { "texture": "#bottom", "cullface": "down" }, + "up": { "texture": "#top" }, + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "east": { "texture": "#side" } + } + }, + { + "from": [7, 8, 7], + "to": [9, 14, 9], + "faces": { + "north": {"uv": [0, 8, 2, 14], "texture": "#candle"}, + "east": {"uv": [0, 8, 2, 14], "texture": "#candle"}, + "south": {"uv": [0, 8, 2, 14], "texture": "#candle"}, + "west": {"uv": [0, 8, 2, 14], "texture": "#candle"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#candle"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#candle", "cullface": "down"} + } + }, + { + "from": [7.5, 14, 8], + "to": [8.5, 15, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 14, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#candle"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#candle"} + } + }, + { + "from": [7.5, 14, 8], + "to": [8.5, 15, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 14, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#candle"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#candle"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_campfire.json b/assets/minecraft/models/block/template_campfire.json new file mode 100644 index 00000000..85587666 --- /dev/null +++ b/assets/minecraft/models/block/template_campfire.json @@ -0,0 +1,91 @@ +{ + "parent": "block/block", + "display": { + "head": { + "translation": [ 0, 10.5, 0 ] + } + }, + "textures": { + "particle": "block/campfire_log", + "log": "block/campfire_log" + }, + "elements": [ + { + "from": [ 1, 0, 0 ], + "to": [ 5, 4, 16 ], + "faces": { + "north": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "north" }, + "east": { "uv": [ 0, 1, 16, 5 ], "texture": "#lit_log" }, + "south": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "south" }, + "west": { "uv": [ 16, 0, 0, 4 ], "texture": "#log" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log" }, + "down": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log", "cullface": "down" } + } + }, + { + "from": [ 0, 3, 11 ], + "to": [ 16, 7, 15 ], + "faces": { + "north": { "uv": [ 16, 0, 0, 4 ], "texture": "#lit_log" }, + "east": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "east" }, + "south": { "uv": [ 0, 0, 16, 4 ], "texture": "#lit_log" }, + "west": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "west" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 180, "texture": "#log" }, + "down": { "uv": [ 0, 4, 16, 8 ], "texture": "#lit_log" } + } + }, + { + "from": [ 11, 0, 0 ], + "to": [ 15, 4, 16 ], + "faces": { + "north": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "north" }, + "east": { "uv": [ 0, 0, 16, 4 ], "texture": "#log" }, + "south": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "south" }, + "west": { "uv": [ 16, 1, 0, 5 ], "texture": "#lit_log" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log" }, + "down": { "uv": [ 0, 0, 16, 4 ], "rotation": 90, "texture": "#log", "cullface": "down" } + } + }, + { + "from": [ 0, 3, 1 ], + "to": [ 16, 7, 5 ], + "faces": { + "north": { "uv": [ 0, 0, 16, 4 ], "texture": "#lit_log" }, + "east": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "east" }, + "south": { "uv": [ 16, 0, 0, 4 ], "texture": "#lit_log" }, + "west": { "uv": [ 0, 4, 4, 8 ], "texture": "#log", "cullface": "west" }, + "up": { "uv": [ 0, 0, 16, 4 ], "rotation": 180, "texture": "#log" }, + "down": { "uv": [ 0, 4, 16, 8 ], "texture": "#lit_log" } + } + }, + { + "from": [ 5, 0, 0 ], + "to": [ 11, 1, 16 ], + "faces": { + "north": {"uv": [ 0, 15, 6, 16 ], "texture": "#log", "cullface": "north" }, + "south": {"uv": [ 10, 15, 16, 16 ], "texture": "#log", "cullface": "south" }, + "up": {"uv": [ 0, 8, 16, 14 ], "rotation": 90, "texture": "#lit_log" }, + "down": {"uv": [ 0, 8, 16, 14 ], "rotation": 90, "texture": "#log", "cullface": "down" } + } + }, + { "from": [ 0.8, 1, 8 ], + "to": [ 15.2, 17, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" } + } + }, + { "from": [ 8, 1, 0.8 ], + "to": [ 8, 17, 15.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" } + } + } + ] +} + diff --git a/assets/minecraft/models/block/template_candle.json b/assets/minecraft/models/block/template_candle.json new file mode 100644 index 00000000..111b3b6c --- /dev/null +++ b/assets/minecraft/models/block/template_candle.json @@ -0,0 +1,35 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [7, 0, 7], + "to": [9, 6, 9], + "faces": { + "north": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [7.5, 6, 8], + "to": [8.5, 7, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 6, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + }, + { + "from": [7.5, 6, 8], + "to": [8.5, 7, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 6, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_cauldron_full.json b/assets/minecraft/models/block/template_cauldron_full.json new file mode 100644 index 00000000..2925eba4 --- /dev/null +++ b/assets/minecraft/models/block/template_cauldron_full.json @@ -0,0 +1,155 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cauldron_side", + "top": "block/cauldron_top", + "bottom": "block/cauldron_bottom", + "side": "block/cauldron_side", + "inside": "block/cauldron_inner" + }, + "elements": [ + { + "from": [ 0, 3, 0 ], + "to": [ 2, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 2 ], + "to": [ 14, 4, 14 ], + "faces": { + "up": { "texture": "#inside" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 14, 3, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 0 ], + "to": [ 14, 16, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 14 ], + "to": [ 14, 16, 16 ], + "faces": { + "north": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 4, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 2 ], + "to": [ 2, 3, 4 ], + "faces": { + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 0 ], + "to": [ 16, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 2 ], + "to": [ 16, 3, 4 ], + "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 14 ], + "to": [ 4, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 12 ], + "to": [ 2, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 14 ], + "to": [ 16, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 12 ], + "to": [ 16, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 2, 4, 2 ], + "to": [ 14, 15, 14 ], + "faces": { + "up": { "texture": "#content", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_cauldron_level1.json b/assets/minecraft/models/block/template_cauldron_level1.json new file mode 100644 index 00000000..61fb386b --- /dev/null +++ b/assets/minecraft/models/block/template_cauldron_level1.json @@ -0,0 +1,155 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cauldron_side", + "top": "block/cauldron_top", + "bottom": "block/cauldron_bottom", + "side": "block/cauldron_side", + "inside": "block/cauldron_inner" + }, + "elements": [ + { + "from": [ 0, 3, 0 ], + "to": [ 2, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 2 ], + "to": [ 14, 4, 14 ], + "faces": { + "up": { "texture": "#inside" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 14, 3, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 0 ], + "to": [ 14, 16, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 14 ], + "to": [ 14, 16, 16 ], + "faces": { + "north": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 4, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 2 ], + "to": [ 2, 3, 4 ], + "faces": { + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 0 ], + "to": [ 16, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 2 ], + "to": [ 16, 3, 4 ], + "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 14 ], + "to": [ 4, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 12 ], + "to": [ 2, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 14 ], + "to": [ 16, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 12 ], + "to": [ 16, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 2, 4, 2 ], + "to": [ 14, 9, 14 ], + "faces": { + "up": { "texture": "#content", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_cauldron_level2.json b/assets/minecraft/models/block/template_cauldron_level2.json new file mode 100644 index 00000000..fd748349 --- /dev/null +++ b/assets/minecraft/models/block/template_cauldron_level2.json @@ -0,0 +1,155 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/cauldron_side", + "top": "block/cauldron_top", + "bottom": "block/cauldron_bottom", + "side": "block/cauldron_side", + "inside": "block/cauldron_inner" + }, + "elements": [ + { + "from": [ 0, 3, 0 ], + "to": [ 2, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 2 ], + "to": [ 14, 4, 14 ], + "faces": { + "up": { "texture": "#inside" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 14, 3, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 0 ], + "to": [ 14, 16, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "south": { "texture": "#side" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 2, 3, 14 ], + "to": [ 14, 16, 16 ], + "faces": { + "north": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#top", "cullface": "up" }, + "down": { "texture": "#inside" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 4, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 2 ], + "to": [ 2, 3, 4 ], + "faces": { + "east": { "texture": "#side" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 0 ], + "to": [ 16, 3, 2 ], + "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 2 ], + "to": [ 16, 3, 4 ], + "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 14 ], + "to": [ 4, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 0, 0, 12 ], + "to": [ 2, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 12, 0, 14 ], + "to": [ 16, 3, 16 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 14, 0, 12 ], + "to": [ 16, 3, 14 ], + "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "west": { "texture": "#side" }, + "down": { "texture": "#bottom", "cullface": "down" } + } + }, + { + "from": [ 2, 4, 2 ], + "to": [ 14, 12, 14 ], + "faces": { + "up": { "texture": "#content", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_left.json b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_left.json new file mode 100644 index 00000000..ee8a35b9 --- /dev/null +++ b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_left.json @@ -0,0 +1,14 @@ +{ + "textures": { + "texture": "#texture" + }, + "elements": [ + { + "from": [10, 0, 0], + "to": [16, 8, 0], + "faces": { + "north": {"uv": [0, 8, 6, 16], "texture": "#texture", "cullface": "north"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_mid.json b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_mid.json new file mode 100644 index 00000000..f29dadfc --- /dev/null +++ b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_mid.json @@ -0,0 +1,14 @@ +{ + "textures": { + "texture": "#texture" + }, + "elements": [ + { + "from": [5, 0, 0], + "to": [10, 8, 0], + "faces": { + "north": {"uv": [6, 8, 11, 16], "texture": "#texture", "cullface": "north"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_right.json b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_right.json new file mode 100644 index 00000000..c4ccaaff --- /dev/null +++ b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_bottom_right.json @@ -0,0 +1,14 @@ +{ + "textures": { + "texture": "#texture" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [5, 8, 0], + "faces": { + "north": {"uv": [11, 8, 16, 16], "texture": "#texture", "cullface": "north"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_left.json b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_left.json new file mode 100644 index 00000000..77dcb59a --- /dev/null +++ b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_left.json @@ -0,0 +1,14 @@ +{ + "textures": { + "texture": "#texture" + }, + "elements": [ + { + "from": [10, 8, 0], + "to": [16, 16, 0], + "faces": { + "north": {"uv": [0, 0, 6, 8], "texture": "#texture", "cullface": "north"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_mid.json b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_mid.json new file mode 100644 index 00000000..736bf09c --- /dev/null +++ b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_mid.json @@ -0,0 +1,14 @@ +{ + "textures": { + "texture": "#texture" + }, + "elements": [ + { + "from": [5, 8, 0], + "to": [10, 16, 0], + "faces": { + "north": {"uv": [6, 0, 11, 8], "texture": "#texture", "cullface": "north"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_right.json b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_right.json new file mode 100644 index 00000000..072a1eef --- /dev/null +++ b/assets/minecraft/models/block/template_chiseled_bookshelf_slot_top_right.json @@ -0,0 +1,14 @@ +{ + "textures": { + "texture": "#texture" + }, + "elements": [ + { + "from": [0, 8, 0], + "to": [5, 16, 0], + "faces": { + "north": {"uv": [11, 0, 16, 8], "texture": "#texture", "cullface": "north"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_chorus_flower.json b/assets/minecraft/models/block/template_chorus_flower.json new file mode 100644 index 00000000..06b850dd --- /dev/null +++ b/assets/minecraft/models/block/template_chorus_flower.json @@ -0,0 +1,76 @@ +{ + "parent": "block/block", + "textures": { + "bottom": "block/chorus_plant", + "particle": "#texture" + }, + "elements": [ + { + "from": [ 2, 14, 2 ], + "to": [ 14, 16, 14 ], + "faces": { + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" }, + "north": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" }, + "south": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" }, + "west": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" }, + "east": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" } + } + }, + { + "from": [ 0, 2, 2 ], + "to": [ 2, 14, 14 ], + "faces": { + "down": { "uv": [ 16, 14, 14, 2 ], "texture": "#bottom" }, + "up": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" }, + "north": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" }, + "south": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" }, + "west": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" } + } + }, + { + "from": [ 2, 2, 0 ], + "to": [ 14, 14, 2 ], + "faces": { + "down": { "uv": [ 14, 2, 2, 0 ], "texture": "#bottom" }, + "up": { "uv": [ 2, 0, 14, 2 ], "texture": "#bottom" }, + "north": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" }, + "west": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" }, + "east": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" } + } + }, + { + "from": [ 2, 2, 14 ], + "to": [ 14, 14, 16 ], + "faces": { + "down": { "uv": [ 14, 16, 2, 14 ], "texture": "#bottom" }, + "up": { "uv": [ 2, 14, 14, 16 ], "texture": "#bottom" }, + "south": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" }, + "west": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" }, + "east": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" } + } + }, + { + "from": [ 14, 2, 2 ], + "to": [ 16, 14, 14 ], + "faces": { + "down": { "uv": [ 2, 14, 0, 2 ], "texture": "#bottom" }, + "up": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" }, + "north": { "uv": [ 0, 2, 2, 14 ], "texture": "#bottom" }, + "south": { "uv": [ 14, 2, 16, 14 ], "texture": "#bottom" }, + "east": { "uv": [ 2, 2, 14, 14 ], "texture": "#texture" } + } + }, + { + "from": [ 2, 0, 2 ], + "to": [ 14, 14, 14 ], + "faces": { + "up": { "uv": [ 2, 2, 14, 14 ], "texture": "#bottom" }, + "down": { "uv": [ 14, 14, 2, 2 ], "texture": "#bottom" }, + "north": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" }, + "south": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" }, + "west": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" }, + "east": { "uv": [ 2, 2, 14, 16 ], "texture": "#bottom" } + } + } + ] +} \ No newline at end of file diff --git a/assets/minecraft/models/block/template_command_block.json b/assets/minecraft/models/block/template_command_block.json new file mode 100644 index 00000000..76cbff1e --- /dev/null +++ b/assets/minecraft/models/block/template_command_block.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube_directional", + "textures": { + "particle": "#back", + "down": "#side", + "up": "#side", + "north": "#front", + "east": "#side", + "south": "#back", + "west": "#side" + } +} diff --git a/assets/minecraft/models/block/template_custom_fence_gate.json b/assets/minecraft/models/block/template_custom_fence_gate.json new file mode 100644 index 00000000..0d41bf65 --- /dev/null +++ b/assets/minecraft/models/block/template_custom_fence_gate.json @@ -0,0 +1,112 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#particle" + }, + "elements": [ + { + "name": "Left-hand post", + "from": [0, 5, 7], + "to": [2, 16, 9], + "faces": { + "north": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "east": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "south": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"}, + "up": {"uv": [14, 0, 16, 2], "texture": "#texture"}, + "down": {"uv": [16, 13, 14, 15], "texture": "#texture"} + } + }, + { + "name": "Right-hand post", + "from": [14, 5, 7], + "to": [16, 16, 9], + "faces": { + "north": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"}, + "south": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "west": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#texture"}, + "down": {"uv": [2, 13, 0, 15], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of left-hand gate door", + "from": [6, 6, 7], + "to": [8, 15, 9], + "faces": { + "north": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "south": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "west": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "up": {"uv": [8, 1, 10, 3], "texture": "#texture"}, + "down": {"uv": [8, 14, 10, 12], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of right-hand gate door", + "from": [8, 6, 7], + "to": [10, 15, 9], + "faces": { + "north": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "east": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "south": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "up": {"uv": [6, 1, 8, 3], "texture": "#texture"}, + "down": {"uv": [6, 14, 8, 12], "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of left-hand gate door", + "from": [2, 6, 7], + "to": [6, 9, 9], + "faces": { + "north": {"uv": [10, 3, 14, 6], "texture": "#texture"}, + "south": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "texture": "#texture"}, + "down": {"uv": [10, 14, 14, 12], "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of left-hand gate door", + "from": [2, 12, 7], + "to": [6, 15, 9], + "faces": { + "north": {"uv": [10, 3, 14, 6], "texture": "#texture"}, + "south": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "texture": "#texture"}, + "down": {"uv": [10, 14, 14, 12], "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of right-hand gate door", + "from": [10, 6, 7], + "to": [14, 9, 9], + "faces": { + "north": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "south": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "texture": "#texture"}, + "down": {"uv": [2, 14, 6, 12], "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of right-hand gate door", + "from": [10, 12, 7], + "to": [14, 15, 9], + "faces": { + "north": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "south": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "texture": "#texture"}, + "down": {"uv": [2, 14, 6, 12], "texture": "#texture"} + } + } + ], + "display": { + "gui": { + "rotation": [30, 45, 0], + "translation": [0, -1, 0], + "scale": [0.8, 0.8, 0.8] + }, + "head": { + "translation": [0, -3, -6] + } + } +} diff --git a/assets/minecraft/models/block/template_custom_fence_gate_open.json b/assets/minecraft/models/block/template_custom_fence_gate_open.json new file mode 100644 index 00000000..727da9c5 --- /dev/null +++ b/assets/minecraft/models/block/template_custom_fence_gate_open.json @@ -0,0 +1,103 @@ +{ + "textures": { + "particle": "#particle" + }, + "elements": [ + { + "name": "Left-hand post", + "from": [0, 5, 7], + "to": [2, 16, 9], + "faces": { + "north": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "east": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "south": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"}, + "up": {"uv": [14, 0, 16, 2], "texture": "#texture"}, + "down": {"uv": [16, 13, 14, 15], "texture": "#texture"} + } + }, + { + "name": "Right-hand post", + "from": [14, 5, 7], + "to": [16, 16, 9], + "faces": { + "north": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"}, + "south": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "west": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#texture"}, + "down": {"uv": [2, 13, 0, 15], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of left-hand gate door", + "from": [0, 6, 13], + "to": [2, 15, 15], + "faces": { + "north": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "east": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "south": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "west": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "up": {"uv": [8, 1, 10, 3], "texture": "#texture"}, + "down": {"uv": [8, 14, 10, 12], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of right-hand gate door", + "from": [14, 6, 13], + "to": [16, 15, 15], + "faces": { + "north": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "east": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "south": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "west": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "up": {"uv": [6, 1, 8, 3], "texture": "#texture"}, + "down": {"uv": [6, 14, 8, 12], "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of left-hand gate door", + "from": [0, 6, 9], + "to": [2, 9, 13], + "faces": { + "east": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "west": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of left-hand gate door", + "from": [0, 12, 9], + "to": [2, 15, 13], + "faces": { + "east": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "west": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of left-hand gate door", + "from": [14, 6, 9], + "to": [16, 9, 13], + "faces": { + "east": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "west": {"uv": [10, 3, 14, 6], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of left-hand gate door", + "from": [14, 12, 9], + "to": [16, 15, 13], + "faces": { + "east": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "west": {"uv": [14, 3, 10, 6], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_custom_fence_gate_wall.json b/assets/minecraft/models/block/template_custom_fence_gate_wall.json new file mode 100644 index 00000000..45f48fc8 --- /dev/null +++ b/assets/minecraft/models/block/template_custom_fence_gate_wall.json @@ -0,0 +1,102 @@ +{ + "ambientocclusion": true, + "textures": { + "particle": "#particle" + }, + "elements": [ + { + "name": "Left-hand post", + "from": [0, 2, 7], + "to": [2, 13, 9], + "faces": { + "north": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "east": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "south": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"}, + "up": {"uv": [14, 0, 16, 2], "texture": "#texture"}, + "down": {"uv": [16, 13, 14, 15], "texture": "#texture"} + } + }, + { + "name": "Right-hand post", + "from": [14, 2, 7], + "to": [16, 13, 9], + "faces": { + "north": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"}, + "south": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "west": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#texture"}, + "down": {"uv": [2, 13, 0, 15], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of left-hand gate door", + "from": [6, 3, 7], + "to": [8, 12, 9], + "faces": { + "north": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "south": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "west": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "up": {"uv": [8, 1, 10, 3], "texture": "#texture"}, + "down": {"uv": [8, 14, 10, 12], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of right-hand gate door", + "from": [8, 3, 7], + "to": [10, 12, 9], + "faces": { + "north": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "east": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "south": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "up": {"uv": [6, 1, 8, 3], "texture": "#texture"}, + "down": {"uv": [6, 14, 8, 12], "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of left-hand gate door", + "from": [2, 3, 7], + "to": [6, 6, 9], + "faces": { + "north": {"uv": [10, 3, 14, 6], "texture": "#texture"}, + "south": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "texture": "#texture"}, + "down": {"uv": [10, 14, 14, 12], "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of left-hand gate door", + "from": [2, 9, 7], + "to": [6, 12, 9], + "faces": { + "north": {"uv": [10, 3, 14, 6], "texture": "#texture"}, + "south": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "texture": "#texture"}, + "down": {"uv": [10, 14, 14, 12], "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of right-hand gate door", + "from": [10, 3, 7], + "to": [14, 6, 9], + "faces": { + "north": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "south": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "texture": "#texture"}, + "down": {"uv": [2, 14, 6, 12], "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of right-hand gate door", + "from": [10, 9, 7], + "to": [14, 12, 9], + "faces": { + "north": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "south": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "texture": "#texture"}, + "down": {"uv": [2, 14, 6, 12], "texture": "#texture"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_custom_fence_gate_wall_open.json b/assets/minecraft/models/block/template_custom_fence_gate_wall_open.json new file mode 100644 index 00000000..5b5a81d5 --- /dev/null +++ b/assets/minecraft/models/block/template_custom_fence_gate_wall_open.json @@ -0,0 +1,104 @@ +{ + "ambientocclusion": true, + "textures": { + "particle": "#particle" + }, + "elements": [ + { + "name": "Left-hand post", + "from": [0, 2, 7], + "to": [2, 13, 9], + "faces": { + "north": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "east": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "south": {"uv": [14, 2, 16, 13], "texture": "#texture"}, + "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"}, + "up": {"uv": [14, 0, 16, 2], "texture": "#texture"}, + "down": {"uv": [16, 13, 14, 15], "texture": "#texture"} + } + }, + { + "name": "Right-hand post", + "from": [14, 2, 7], + "to": [16, 13, 9], + "faces": { + "north": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"}, + "south": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "west": {"uv": [0, 2, 2, 13], "texture": "#texture"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#texture"}, + "down": {"uv": [2, 13, 0, 15], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of left-hand gate door", + "from": [0, 3, 13], + "to": [2, 12, 15], + "faces": { + "north": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "east": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "south": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "west": {"uv": [8, 3, 10, 12], "texture": "#texture"}, + "up": {"uv": [8, 1, 10, 3], "texture": "#texture"}, + "down": {"uv": [8, 14, 10, 12], "texture": "#texture"} + } + }, + { + "name": "Inner vertical post of right-hand gate door", + "from": [14, 3, 13], + "to": [16, 12, 15], + "faces": { + "north": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "east": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "south": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "west": {"uv": [6, 3, 8, 12], "texture": "#texture"}, + "up": {"uv": [6, 1, 8, 3], "texture": "#texture"}, + "down": {"uv": [6, 14, 8, 12], "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of left-hand gate door", + "from": [0, 3, 9], + "to": [2, 6, 13], + "faces": { + "east": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "west": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of left-hand gate door", + "from": [0, 9, 9], + "to": [2, 12, 13], + "faces": { + "east": {"uv": [2, 9, 6, 12], "texture": "#texture"}, + "west": {"uv": [2, 3, 6, 6], "texture": "#texture"}, + "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"} + } + }, + { + "name": "Lower horizontal bar of left-hand gate door", + "from": [14, 3, 9], + "to": [16, 6, 13], + "faces": { + "east": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "west": {"uv": [10, 3, 14, 6], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"} + } + }, + { + "name": "Upper horizontal bar of left-hand gate door", + "from": [14, 9, 9], + "to": [16, 12, 13], + "faces": { + "east": {"uv": [10, 9, 14, 12], "texture": "#texture"}, + "west": {"uv": [14, 3, 10, 6], "texture": "#texture"}, + "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"}, + "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_daylight_detector.json b/assets/minecraft/models/block/template_daylight_detector.json new file mode 100644 index 00000000..ef2a0021 --- /dev/null +++ b/assets/minecraft/models/block/template_daylight_detector.json @@ -0,0 +1,19 @@ +{ + "parent": "block/thin_block", + "textures": { + "particle": "#top" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 6, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 10, 16, 16 ], "texture": "#side", "cullface": "north" }, + "south": { "uv": [ 0, 10, 16, 16 ], "texture": "#side", "cullface": "south" }, + "west": { "uv": [ 0, 10, 16, 16 ], "texture": "#side", "cullface": "west" }, + "east": { "uv": [ 0, 10, 16, 16 ], "texture": "#side", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_farmland.json b/assets/minecraft/models/block/template_farmland.json new file mode 100644 index 00000000..4000d7a2 --- /dev/null +++ b/assets/minecraft/models/block/template_farmland.json @@ -0,0 +1,19 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#dirt" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 15, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#dirt", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, + "north": { "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "north" }, + "south": { "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "south" }, + "west": { "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "west" }, + "east": { "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_fence_gate.json b/assets/minecraft/models/block/template_fence_gate.json new file mode 100644 index 00000000..b1a090fa --- /dev/null +++ b/assets/minecraft/models/block/template_fence_gate.json @@ -0,0 +1,107 @@ +{ "parent": "block/block", + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, -1, 0], + "scale":[ 0.8, 0.8, 0.8 ] + }, + "head": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, -3, -6], + "scale":[ 1, 1, 1] + } + }, + "textures": { + "particle": "#texture" + }, + "elements": [ + { "__comment": "Left-hand post", + "from": [ 0, 5, 7 ], + "to": [ 2, 16, 9 ], + "faces": { + "down": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "up": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" } + } + }, + { "__comment": "Right-hand post", + "from": [ 14, 5, 7 ], + "to": [ 16, 16, 9 ], + "faces": { + "down": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "up": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "north": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "south": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "east" } + } + }, + { "__comment": "Inner vertical post of left-hand gate door", + "from": [ 6, 6, 7 ], + "to": [ 8, 15, 9 ], + "faces": { + "down": { "uv": [ 6, 7, 8, 9 ], "texture": "#texture" }, + "up": { "uv": [ 6, 7, 8, 9 ], "texture": "#texture" }, + "north": { "uv": [ 6, 1, 8, 10 ], "texture": "#texture" }, + "south": { "uv": [ 6, 1, 8, 10 ], "texture": "#texture" }, + "west": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" }, + "east": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Inner vertical post of right-hand gate door", + "from": [ 8, 6, 7 ], + "to": [ 10, 15, 9 ], + "faces": { + "down": { "uv": [ 8, 7, 10, 9 ], "texture": "#texture" }, + "up": { "uv": [ 8, 7, 10, 9 ], "texture": "#texture" }, + "north": { "uv": [ 8, 1, 10, 10 ], "texture": "#texture" }, + "south": { "uv": [ 8, 1, 10, 10 ], "texture": "#texture" }, + "west": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" }, + "east": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of left-hand gate door", + "from": [ 2, 6, 7 ], + "to": [ 6, 9, 9 ], + "faces": { + "down": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "up": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "north": { "uv": [ 2, 7, 6, 10 ], "texture": "#texture" }, + "south": { "uv": [ 2, 7, 6, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of left-hand gate door", + "from": [ 2, 12, 7 ], + "to": [ 6, 15, 9 ], + "faces": { + "down": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "up": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "north": { "uv": [ 2, 1, 6, 4 ], "texture": "#texture" }, + "south": { "uv": [ 2, 1, 6, 4 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of right-hand gate door", + "from": [ 10, 6, 7 ], + "to": [ 14, 9, 9 ], + "faces": { + "down": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "up": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "north": { "uv": [ 10, 7, 14, 10 ], "texture": "#texture" }, + "south": { "uv": [ 10, 7, 14, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of right-hand gate door", + "from": [ 10, 12, 7 ], + "to": [ 14, 15, 9 ], + "faces": { + "down": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "up": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "north": { "uv": [ 10, 1, 14, 4 ], "texture": "#texture" }, + "south": { "uv": [ 10, 1, 14, 4 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_fence_gate_open.json b/assets/minecraft/models/block/template_fence_gate_open.json new file mode 100644 index 00000000..af2062a1 --- /dev/null +++ b/assets/minecraft/models/block/template_fence_gate_open.json @@ -0,0 +1,95 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "__comment": "Left-hand post", + "from": [ 0, 5, 7 ], + "to": [ 2, 16, 9 ], + "faces": { + "down": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "up": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" } + } + }, + { "__comment": "Right-hand post", + "from": [ 14, 5, 7 ], + "to": [ 16, 16, 9 ], + "faces": { + "down": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "up": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "north": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "south": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "east" } + } + }, + { "__comment": "Inner vertical post of left-hand gate door", + "from": [ 0, 6, 13 ], + "to": [ 2, 15, 15 ], + "faces": { + "down": { "uv": [ 0, 13, 2, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 13, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 0, 1, 2, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 1, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Inner vertical post of right-hand gate door", + "from": [ 14, 6, 13 ], + "to": [ 16, 15, 15 ], + "faces": { + "down": { "uv": [ 14, 13, 16, 15 ], "texture": "#texture" }, + "up": { "uv": [ 14, 13, 16, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 1, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 14, 1, 16, 10 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of left-hand gate door", + "from": [ 0, 6, 9 ], + "to": [ 2, 9, 13 ], + "faces": { + "down": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of left-hand gate door", + "from": [ 0, 12, 9 ], + "to": [ 2, 15, 13 ], + "faces": { + "down": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of left-hand gate door", + "from": [ 14, 6, 9 ], + "to": [ 16, 9, 13 ], + "faces": { + "down": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "up": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of left-hand gate door", + "from": [ 14, 12, 9 ], + "to": [ 16, 15, 13 ], + "faces": { + "down": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "up": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_fence_gate_wall.json b/assets/minecraft/models/block/template_fence_gate_wall.json new file mode 100644 index 00000000..7b301338 --- /dev/null +++ b/assets/minecraft/models/block/template_fence_gate_wall.json @@ -0,0 +1,96 @@ +{ + "ambientocclusion": true, + "textures": { + "particle": "#texture" + }, + "elements": [ + { "__comment": "Left-hand post", + "from": [ 0, 2, 7 ], + "to": [ 2, 13, 9 ], + "faces": { + "down": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "up": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" } + } + }, + { "__comment": "Right-hand post", + "from": [ 14, 2, 7 ], + "to": [ 16, 13, 9 ], + "faces": { + "down": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "up": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "north": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "south": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "east" } + } + }, + { "__comment": "Inner vertical post of left-hand gate door", + "from": [ 6, 3, 7 ], + "to": [ 8, 12, 9 ], + "faces": { + "down": { "uv": [ 6, 7, 8, 9 ], "texture": "#texture" }, + "up": { "uv": [ 6, 7, 8, 9 ], "texture": "#texture" }, + "north": { "uv": [ 6, 1, 8, 10 ], "texture": "#texture" }, + "south": { "uv": [ 6, 1, 8, 10 ], "texture": "#texture" }, + "west": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" }, + "east": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Inner vertical post of right-hand gate door", + "from": [ 8, 3, 7 ], + "to": [ 10, 12, 9 ], + "faces": { + "down": { "uv": [ 8, 7, 10, 9 ], "texture": "#texture" }, + "up": { "uv": [ 8, 7, 10, 9 ], "texture": "#texture" }, + "north": { "uv": [ 8, 1, 10, 10 ], "texture": "#texture" }, + "south": { "uv": [ 8, 1, 10, 10 ], "texture": "#texture" }, + "west": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" }, + "east": { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of left-hand gate door", + "from": [ 2, 3, 7 ], + "to": [ 6, 6, 9 ], + "faces": { + "down": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "up": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "north": { "uv": [ 2, 7, 6, 10 ], "texture": "#texture" }, + "south": { "uv": [ 2, 7, 6, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of left-hand gate door", + "from": [ 2, 9, 7 ], + "to": [ 6, 12, 9 ], + "faces": { + "down": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "up": { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" }, + "north": { "uv": [ 2, 1, 6, 4 ], "texture": "#texture" }, + "south": { "uv": [ 2, 1, 6, 4 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of right-hand gate door", + "from": [ 10, 3, 7 ], + "to": [ 14, 6, 9 ], + "faces": { + "down": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "up": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "north": { "uv": [ 10, 7, 14, 10 ], "texture": "#texture" }, + "south": { "uv": [ 10, 7, 14, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of right-hand gate door", + "from": [ 10, 9, 7 ], + "to": [ 14, 12, 9 ], + "faces": { + "down": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "up": { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" }, + "north": { "uv": [ 10, 1, 14, 4 ], "texture": "#texture" }, + "south": { "uv": [ 10, 1, 14, 4 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_fence_gate_wall_open.json b/assets/minecraft/models/block/template_fence_gate_wall_open.json new file mode 100644 index 00000000..6fddae61 --- /dev/null +++ b/assets/minecraft/models/block/template_fence_gate_wall_open.json @@ -0,0 +1,96 @@ +{ + "ambientocclusion": true, + "textures": { + "particle": "#texture" + }, + "elements": [ + { "__comment": "Left-hand post", + "from": [ 0, 2, 7 ], + "to": [ 2, 13, 9 ], + "faces": { + "down": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "up": { "uv": [ 0, 7, 2, 9 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" } + } + }, + { "__comment": "Right-hand post", + "from": [ 14, 2, 7 ], + "to": [ 16, 13, 9 ], + "faces": { + "down": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "up": { "uv": [ 14, 7, 16, 9 ], "texture": "#texture" }, + "north": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "south": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" }, + "west": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" }, + "east": { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "east" } + } + }, + { "__comment": "Inner vertical post of left-hand gate door", + "from": [ 0, 3, 13 ], + "to": [ 2, 12, 15 ], + "faces": { + "down": { "uv": [ 0, 13, 2, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 13, 2, 15 ], "texture": "#texture" }, + "north": { "uv": [ 0, 1, 2, 10 ], "texture": "#texture" }, + "south": { "uv": [ 0, 1, 2, 10 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Inner vertical post of right-hand gate door", + "from": [ 14, 3, 13 ], + "to": [ 16, 12, 15 ], + "faces": { + "down": { "uv": [ 14, 13, 16, 15 ], "texture": "#texture" }, + "up": { "uv": [ 14, 13, 16, 15 ], "texture": "#texture" }, + "north": { "uv": [ 14, 1, 16, 10 ], "texture": "#texture" }, + "south": { "uv": [ 14, 1, 16, 10 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of left-hand gate door", + "from": [ 0, 3, 9 ], + "to": [ 2, 6, 13 ], + "faces": { + "down": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of left-hand gate door", + "from": [ 0, 9, 9 ], + "to": [ 2, 12, 13 ], + "faces": { + "down": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "up": { "uv": [ 0, 9, 2, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" } + } + }, + { "__comment": "Lower horizontal bar of left-hand gate door", + "from": [ 14, 3, 9 ], + "to": [ 16, 6, 13 ], + "faces": { + "down": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "up": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" }, + "east": { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" } + } + }, + { "__comment": "Upper horizontal bar of left-hand gate door", + "from": [ 14, 9, 9 ], + "to": [ 16, 12, 13 ], + "faces": { + "down": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "up": { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" }, + "west": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" }, + "east": { "uv": [ 13, 1, 15, 4 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_fire_floor.json b/assets/minecraft/models/block/template_fire_floor.json new file mode 100644 index 00000000..a5e46b55 --- /dev/null +++ b/assets/minecraft/models/block/template_fire_floor.json @@ -0,0 +1,32 @@ +{ + "textures": { + "particle": "#fire" + }, + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 0, 8.8 ], + "to": [ 16, 22.4, 8.8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "x", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + }, + { "from": [ 0, 0, 7.2 ], + "to": [ 16, 22.4, 7.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "x", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + }, + { "from": [ 8.8, 0, 0 ], + "to": [ 8.8, 22.4, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "z", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + }, + { "from": [ 7.2, 0, 0 ], + "to": [ 7.2, 22.4, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "z", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + } + ] +} diff --git a/assets/minecraft/models/block/template_fire_side.json b/assets/minecraft/models/block/template_fire_side.json new file mode 100644 index 00000000..da323e33 --- /dev/null +++ b/assets/minecraft/models/block/template_fire_side.json @@ -0,0 +1,16 @@ +{ + "textures": { + "particle": "#fire" + }, + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 0, 0.01 ], + "to": [ 16, 22.4, 0.01 ], + "shade": false, + "faces": { + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_fire_side_alt.json b/assets/minecraft/models/block/template_fire_side_alt.json new file mode 100644 index 00000000..83d76ea3 --- /dev/null +++ b/assets/minecraft/models/block/template_fire_side_alt.json @@ -0,0 +1,16 @@ +{ + "textures": { + "particle": "#fire" + }, + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 0, 0.01 ], + "to": [ 16, 22.4, 0.01 ], + "shade": false, + "faces": { + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#fire" }, + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#fire" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_fire_up.json b/assets/minecraft/models/block/template_fire_up.json new file mode 100644 index 00000000..1cebdf22 --- /dev/null +++ b/assets/minecraft/models/block/template_fire_up.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "#fire" + }, + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 16, 16, 8 ], "axis": "z", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire", "rotation": 270 }} + }, + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 0, 16, 8 ], "axis": "z", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire", "rotation": 90 }} + } + ] +} diff --git a/assets/minecraft/models/block/template_fire_up_alt.json b/assets/minecraft/models/block/template_fire_up_alt.json new file mode 100644 index 00000000..31be9be2 --- /dev/null +++ b/assets/minecraft/models/block/template_fire_up_alt.json @@ -0,0 +1,20 @@ +{ + "textures": { + "particle": "#fire" + }, + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 8, 16, 16 ], "axis": "x", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire", "rotation": 180 }} + }, + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 8, 16, 0 ], "axis": "x", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + } + ] +} diff --git a/assets/minecraft/models/block/template_four_candles.json b/assets/minecraft/models/block/template_four_candles.json new file mode 100644 index 00000000..7515ba12 --- /dev/null +++ b/assets/minecraft/models/block/template_four_candles.json @@ -0,0 +1,125 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [6, 0, 8], + "to": [8, 3, 10], + "faces": { + "north": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [6.5, 3, 9], + "to": [7.5, 4, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [7, 3, 9]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [6.5, 3, 9], + "to": [7.5, 4, 9], + "rotation": {"angle": -45, "axis": "y", "origin": [7, 3, 9]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [9, 0, 8], + "to": [11, 5, 10], + "faces": { + "north": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [9.5, 5, 9], + "to": [10.5, 6, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [10, 5, 9]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [9.5, 5, 9], + "to": [10.5, 6, 9], + "rotation": {"angle": -45, "axis": "y", "origin": [10, 5, 9]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [5, 0, 5], + "to": [7, 5, 7], + "faces": { + "north": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [5.5, 5, 6], + "to": [6.5, 6, 6], + "rotation": {"angle": 45, "axis": "y", "origin": [6, 5, 6]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [5.5, 5, 6], + "to": [6.5, 6, 6], + "rotation": {"angle": -45, "axis": "y", "origin": [6, 5, 6]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [8, 0, 5], + "to": [10, 6, 7], + "faces": { + "north": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [8.5, 6, 6], + "to": [9.5, 7, 6], + "rotation": {"angle": 45, "axis": "y", "origin": [9, 6, 6]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + }, + { + "from": [8.5, 6, 6], + "to": [9.5, 7, 6], + "rotation": {"angle": -45, "axis": "y", "origin": [9, 6, 6]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_four_turtle_eggs.json b/assets/minecraft/models/block/template_four_turtle_eggs.json new file mode 100644 index 00000000..93a7ca4b --- /dev/null +++ b/assets/minecraft/models/block/template_four_turtle_eggs.json @@ -0,0 +1,56 @@ +{ + "parent": "block/block", + "textures": { + "all": "block/turtle_egg", + "particle": "#all" + }, + "elements": [ + { "from": [ 5, 0, 4 ], + "to": [ 9, 7, 8 ], + "faces": { + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 0, 0, 4, 4 ], "texture": "#all" }, + "north": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "south": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "west": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "east": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" } + } + }, + { + "from": [ 1, 0, 7 ], + "to": [ 5, 5, 11 ], + "faces": { + "down": { "uv": [ 6, 7, 10, 11 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 6, 7, 10, 11 ], "texture": "#all" }, + "north": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "south": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "west": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "east": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" } + } + }, + { + "from": [ 11, 0, 7 ], + "to": [ 14, 4, 10 ], + "faces": { + "down": { "uv": [ 5, 0, 8, 3 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 5, 0, 8, 3 ], "texture": "#all" }, + "north": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" }, + "south": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" }, + "west": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" }, + "east": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" } + } + }, + { + "from": [ 6, 0, 9 ], + "to": [ 10, 4, 13 ], + "faces": { + "down": { "uv": [ 0, 11, 4, 15 ], "texture": "#all" }, + "up": { "uv": [ 0, 11, 4, 15 ], "texture": "#all" }, + "north": { "uv": [ 4, 11, 8, 15 ], "texture": "#all" }, + "south": { "uv": [ 4, 11, 8, 15 ], "texture": "#all" }, + "west": { "uv": [ 4, 11, 8, 15 ], "texture": "#all" }, + "east": { "uv": [ 4, 11, 8, 15 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_glass_pane_noside.json b/assets/minecraft/models/block/template_glass_pane_noside.json new file mode 100644 index 00000000..af16ff94 --- /dev/null +++ b/assets/minecraft/models/block/template_glass_pane_noside.json @@ -0,0 +1,14 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#pane" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "north": { "uv": [ 9, 0, 7, 16 ], "texture": "#pane" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_glass_pane_noside_alt.json b/assets/minecraft/models/block/template_glass_pane_noside_alt.json new file mode 100644 index 00000000..771d6942 --- /dev/null +++ b/assets/minecraft/models/block/template_glass_pane_noside_alt.json @@ -0,0 +1,14 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#pane" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "east": { "uv": [ 7, 0, 9, 16 ], "texture": "#pane" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_glass_pane_post.json b/assets/minecraft/models/block/template_glass_pane_post.json new file mode 100644 index 00000000..54d7fa88 --- /dev/null +++ b/assets/minecraft/models/block/template_glass_pane_post.json @@ -0,0 +1,15 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#pane" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 16, 9 ], + "faces": { + "down": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" }, + "up": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_glass_pane_side.json b/assets/minecraft/models/block/template_glass_pane_side.json new file mode 100644 index 00000000..fae06dcc --- /dev/null +++ b/assets/minecraft/models/block/template_glass_pane_side.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#pane" + }, + "elements": [ + { "from": [ 7, 0, 0 ], + "to": [ 9, 16, 7 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" }, + "up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" }, + "north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north" }, + "west": { "uv": [ 16, 0, 9, 16 ], "texture": "#pane" }, + "east": { "uv": [ 9, 0, 16, 16 ], "texture": "#pane" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_glass_pane_side_alt.json b/assets/minecraft/models/block/template_glass_pane_side_alt.json new file mode 100644 index 00000000..82d0e98e --- /dev/null +++ b/assets/minecraft/models/block/template_glass_pane_side_alt.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#pane" + }, + "elements": [ + { "from": [ 7, 0, 9 ], + "to": [ 9, 16, 16 ], + "faces": { + "down": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" }, + "up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" }, + "south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "south" }, + "west": { "uv": [ 7, 0, 0, 16 ], "texture": "#pane" }, + "east": { "uv": [ 0, 0, 7, 16 ], "texture": "#pane" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_glazed_terracotta.json b/assets/minecraft/models/block/template_glazed_terracotta.json new file mode 100644 index 00000000..c6574a9f --- /dev/null +++ b/assets/minecraft/models/block/template_glazed_terracotta.json @@ -0,0 +1,26 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "#pattern" + }, + "display": { + "firstperson_righthand": { + "rotation": [ 0, 135, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "north", "rotation": 90 }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "south", "rotation": 270 }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "west", "rotation": 0 }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "east", "rotation": 180 } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_hanging_lantern.json b/assets/minecraft/models/block/template_hanging_lantern.json new file mode 100644 index 00000000..fb7ebb4d --- /dev/null +++ b/assets/minecraft/models/block/template_hanging_lantern.json @@ -0,0 +1,50 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#lantern" + }, + "elements": [ + { "from": [ 5, 1, 5 ], + "to": [ 11, 8, 11 ], + "faces": { + "down": { "uv": [ 0, 9, 6, 15 ], "texture": "#lantern"}, + "up": { "uv": [ 0, 9, 6, 15 ], "texture": "#lantern" }, + "north": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" }, + "south": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" }, + "west": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" }, + "east": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" } + } + }, + { "from": [ 6, 8, 6 ], + "to": [ 10, 10, 10 ], + "faces": { + "down": { "uv": [ 1, 10, 5, 14 ], "texture": "#lantern"}, + "up": { "uv": [ 1, 10, 5, 14 ], "texture": "#lantern" }, + "north": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" }, + "south": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" }, + "west": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" }, + "east": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" } + } + }, + { + "from": [ 6.5, 11, 8 ], + "to": [ 9.5, 15, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45}, + "shade": false, + "faces": { + "north": { "uv": [ 14, 1, 11, 5 ], "texture": "#lantern" }, + "south": { "uv": [ 11, 1, 14, 5 ], "texture": "#lantern" } + } + }, + { + "from": [ 8, 10, 6.5 ], + "to": [ 8, 16, 9.5 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45}, + "shade": false, + "faces": { + "west": { "uv": [ 14, 6, 11, 12 ], "texture": "#lantern" }, + "east": { "uv": [ 11, 6, 14, 12 ], "texture": "#lantern" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_item_frame.json b/assets/minecraft/models/block/template_item_frame.json new file mode 100644 index 00000000..12f519a1 --- /dev/null +++ b/assets/minecraft/models/block/template_item_frame.json @@ -0,0 +1,51 @@ +{ + "elements": [ + { "from": [ 3, 3, 15.5 ], + "to": [ 13, 13, 16 ], + "faces": { + "north": { "uv": [ 3, 3, 13, 13 ], "texture": "#back" }, + "south": { "uv": [ 3, 3, 13, 13 ], "texture": "#back" } + } + }, + { "from": [ 2, 2, 15 ], + "to": [ 14, 3, 16 ], + "faces": { + "down": { "uv": [ 2, 0, 14, 1 ], "texture": "#wood" }, + "up": { "uv": [ 2, 15, 14, 16 ], "texture": "#wood" }, + "north": { "uv": [ 2, 13, 14, 14 ], "texture": "#wood" }, + "south": { "uv": [ 2, 13, 14, 14 ], "texture": "#wood" }, + "west": { "uv": [ 15, 13, 16, 14 ], "texture": "#wood" }, + "east": { "uv": [ 0, 13, 1, 14 ], "texture": "#wood" } + } + }, + { "from": [ 2, 13, 15 ], + "to": [ 14, 14, 16 ], + "faces": { + "down": { "uv": [ 2, 0, 14, 1 ], "texture": "#wood" }, + "up": { "uv": [ 2, 15, 14, 16 ], "texture": "#wood" }, + "north": { "uv": [ 2, 2, 14, 3 ], "texture": "#wood" }, + "south": { "uv": [ 2, 2, 14, 3 ], "texture": "#wood" }, + "west": { "uv": [ 15, 2, 16, 3 ], "texture": "#wood" }, + "east": { "uv": [ 0, 2, 1, 3 ], "texture": "#wood" } + } + }, + { "from": [ 2, 3, 15 ], + "to": [ 3, 13, 16 ], + "faces": { + "north": { "uv": [ 13, 3, 14, 13 ], "texture": "#wood" }, + "south": { "uv": [ 2, 3, 3, 13 ], "texture": "#wood" }, + "west": { "uv": [ 15, 3, 16, 13 ], "texture": "#wood" }, + "east": { "uv": [ 0, 3, 1, 13 ], "texture": "#wood" } + } + }, + { "from": [ 13, 3, 15 ], + "to": [ 14, 13, 16 ], + "faces": { + "north": { "uv": [ 2, 3, 3, 13 ], "texture": "#wood" }, + "south": { "uv": [ 13, 3, 14, 13 ], "texture": "#wood" }, + "west": { "uv": [ 15, 3, 16, 13 ], "texture": "#wood" }, + "east": { "uv": [ 0, 3, 1, 13 ], "texture": "#wood" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_item_frame_map.json b/assets/minecraft/models/block/template_item_frame_map.json new file mode 100644 index 00000000..2a6054e8 --- /dev/null +++ b/assets/minecraft/models/block/template_item_frame_map.json @@ -0,0 +1,51 @@ +{ + "elements": [ + { "from": [ 1, 1, 15.001 ], + "to": [ 15, 15, 16 ], + "faces": { + "north": { "uv": [ 1, 1, 15, 15 ], "texture": "#back" }, + "south": { "uv": [ 1, 1, 15, 15 ], "texture": "#back" } + } + }, + { "from": [ 0, 0, 15.001 ], + "to": [ 16, 1, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 1 ], "texture": "#wood" }, + "up": { "uv": [ 0, 15, 16, 16 ], "texture": "#wood" }, + "north": { "uv": [ 0, 15, 16, 16 ], "texture": "#wood" }, + "south": { "uv": [ 0, 15, 16, 16 ], "texture": "#wood" }, + "west": { "uv": [ 15, 15, 16, 16 ], "texture": "#wood" }, + "east": { "uv": [ 0, 15, 1, 16 ], "texture": "#wood" } + } + }, + { "from": [ 0, 15, 15.001 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 1 ], "texture": "#wood" }, + "up": { "uv": [ 0, 15, 16, 16 ], "texture": "#wood" }, + "north": { "uv": [ 0, 0, 16, 1 ], "texture": "#wood" }, + "south": { "uv": [ 0, 0, 16, 1 ], "texture": "#wood" }, + "west": { "uv": [ 15, 0, 16, 1 ], "texture": "#wood" }, + "east": { "uv": [ 0, 0, 1, 1 ], "texture": "#wood" } + } + }, + { "from": [ 0, 1, 15.001 ], + "to": [ 1, 15, 16 ], + "faces": { + "north": { "uv": [ 15, 1, 16, 15 ], "texture": "#wood" }, + "south": { "uv": [ 0, 1, 1, 15 ], "texture": "#wood" }, + "west": { "uv": [ 15, 1, 16, 15 ], "texture": "#wood" }, + "east": { "uv": [ 0, 1, 1, 15 ], "texture": "#wood" } + } + }, + { "from": [ 15, 1, 15.001 ], + "to": [ 16, 15, 16 ], + "faces": { + "north": { "uv": [ 0, 1, 1, 15 ], "texture": "#wood" }, + "south": { "uv": [ 15, 1, 16, 15 ], "texture": "#wood" }, + "west": { "uv": [ 15, 1, 16, 15 ], "texture": "#wood" }, + "east": { "uv": [ 0, 1, 1, 15 ], "texture": "#wood" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_lantern.json b/assets/minecraft/models/block/template_lantern.json new file mode 100644 index 00000000..d54baf8d --- /dev/null +++ b/assets/minecraft/models/block/template_lantern.json @@ -0,0 +1,49 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#lantern" + }, + "elements": [ + { "from": [ 5, 0, 5 ], + "to": [ 11, 7, 11 ], + "faces": { + "down": { "uv": [ 0, 9, 6, 15 ], "texture": "#lantern", "cullface": "down" }, + "up": { "uv": [ 0, 9, 6, 15 ], "texture": "#lantern" }, + "north": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" }, + "south": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" }, + "west": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" }, + "east": { "uv": [ 0, 2, 6, 9 ], "texture": "#lantern" } + } + }, + { "from": [ 6, 7, 6 ], + "to": [ 10, 9, 10 ], + "faces": { + "up": { "uv": [ 1, 10, 5, 14 ], "texture": "#lantern" }, + "north": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" }, + "south": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" }, + "west": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" }, + "east": { "uv": [ 1, 0, 5, 2 ], "texture": "#lantern" } + } + }, + { + "from": [ 6.5, 9, 8 ], + "to": [ 9.5, 11, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45}, + "shade": false, + "faces": { + "north": { "uv": [ 14, 1, 11, 3 ], "texture": "#lantern" }, + "south": { "uv": [ 11, 1, 14, 3 ], "texture": "#lantern" } + } + }, + { + "from": [ 8, 9, 6.5 ], + "to": [ 8, 11, 9.5 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45}, + "shade": false, + "faces": { + "west": { "uv": [ 14, 10, 11, 12 ], "texture": "#lantern" }, + "east": { "uv": [ 11, 10, 14, 12 ], "texture": "#lantern" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_orientable_trapdoor_bottom.json b/assets/minecraft/models/block/template_orientable_trapdoor_bottom.json new file mode 100644 index 00000000..5f2ac5e4 --- /dev/null +++ b/assets/minecraft/models/block/template_orientable_trapdoor_bottom.json @@ -0,0 +1,18 @@ +{ "parent": "block/thin_block", + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 3, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_orientable_trapdoor_open.json b/assets/minecraft/models/block/template_orientable_trapdoor_open.json new file mode 100644 index 00000000..ce447b51 --- /dev/null +++ b/assets/minecraft/models/block/template_orientable_trapdoor_open.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 0, 13 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 3, 16, 0 ], "texture": "#texture", "cullface": "up" }, + "north": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture" }, + "south": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 3 ], "rotation": 90, "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 3, 16, 0 ], "rotation": 90, "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_orientable_trapdoor_top.json b/assets/minecraft/models/block/template_orientable_trapdoor_top.json new file mode 100644 index 00000000..a437e184 --- /dev/null +++ b/assets/minecraft/models/block/template_orientable_trapdoor_top.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 13, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_piston.json b/assets/minecraft/models/block/template_piston.json new file mode 100644 index 00000000..83b4e18a --- /dev/null +++ b/assets/minecraft/models/block/template_piston.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 180, "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#platform", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "south" }, + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 270, "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 90, "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_piston_head.json b/assets/minecraft/models/block/template_piston_head.json new file mode 100644 index 00000000..f4fcb910 --- /dev/null +++ b/assets/minecraft/models/block/template_piston_head.json @@ -0,0 +1,27 @@ +{ + "textures": { + "particle": "#platform" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 4 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "down", "rotation": 180 }, + "up": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#platform", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#unsticky" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 270, "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 90, "cullface": "east" } + } + }, + { "from": [ 6, 6, 4 ], + "to": [ 10, 10, 20 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 270 }, + "west": { "uv": [ 16, 4, 0, 0 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 4 ], "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_piston_head_short.json b/assets/minecraft/models/block/template_piston_head_short.json new file mode 100644 index 00000000..cdbe9e12 --- /dev/null +++ b/assets/minecraft/models/block/template_piston_head_short.json @@ -0,0 +1,27 @@ +{ + "textures": { + "particle": "#platform" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 4 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "down", "rotation": 180 }, + "up": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#platform", "cullface": "north" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#unsticky" }, + "west": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 270, "cullface": "west" }, + "east": { "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 90, "cullface": "east" } + } + }, + { "from": [ 6, 6, 4 ], + "to": [ 10, 10, 16 ], + "faces": { + "down": { "uv": [ 4, 0, 16, 4 ], "texture": "#side", "rotation": 90 }, + "up": { "uv": [ 4, 0, 16, 4 ], "texture": "#side", "rotation": 270 }, + "west": { "uv": [ 16, 4, 4, 0 ], "texture": "#side" }, + "east": { "uv": [ 4, 0, 16, 4 ], "texture": "#side" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_potted_azalea_bush.json b/assets/minecraft/models/block/template_potted_azalea_bush.json new file mode 100644 index 00000000..d3ce7c09 --- /dev/null +++ b/assets/minecraft/models/block/template_potted_azalea_bush.json @@ -0,0 +1,108 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/flower_pot", + "flowerpot": "block/flower_pot", + "dirt": "block/dirt" + }, + "elements": [ + { "from": [ 5, 0, 5 ], + "to": [ 6, 6, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 10, 0, 5 ], + "to": [ 11, 6, 11 ], + "faces": { + "down": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 5 ], + "to": [ 10, 6, 6 ], + "faces": { + "down": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 10 ], + "to": [ 10, 6, 11 ], + "faces": { + "down": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 6 ], + "to": [ 10, 4, 10 ], + "faces": { + "down": { "uv": [ 6, 12, 10, 16 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#dirt" } + } + }, + { "from": [ 4, 15.9, 4 ], + "to": [ 12, 16, 12 ], + "faces": { + "down": { "uv": [ 4, 12, 12, 4 ], "texture": "#top" }, + "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#top", "cullface": "up" } + } + }, + { "from": [ 4, 8, 4 ], + "to": [ 12, 16, 4 ], + "faces": { + "north": { "uv": [ 4, 5, 12, 13 ], "texture": "#side"}, + "south": { "uv": [ 12, 5, 4, 13 ], "texture": "#side" } + } + }, + { "from": [ 4, 8, 12 ], + "to": [ 12, 16, 12 ], + "faces": { + "north": { "uv": [ 12, 5, 4, 13 ], "texture": "#side" }, + "south": { "uv": [ 4, 5, 12, 13 ], "texture": "#side" } + } + }, + { "from": [ 4, 8, 4 ], + "to": [ 4, 16, 12 ], + "faces": { + "west": { "uv": [ 4, 5, 12, 13 ], "texture": "#side" }, + "east": { "uv": [ 12, 5, 4, 13 ], "texture": "#side" } + } + }, + { "from": [ 12, 8, 4 ], + "to": [ 12, 16, 12 ], + "faces": { + "west": { "uv": [ 12, 5, 4, 13 ], "texture": "#side" }, + "east": { "uv": [ 4, 5, 12, 13 ], "texture": "#side" } + } + }, + { "from": [ 2.6, 4, 8 ], + "to": [ 13.4, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#plant" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#plant" } + } + }, + { "from": [ 8, 4, 2.6 ], + "to": [ 8, 16, 13.4 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#plant" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#plant" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_rail_raised_ne.json b/assets/minecraft/models/block/template_rail_raised_ne.json new file mode 100644 index 00000000..a92e4603 --- /dev/null +++ b/assets/minecraft/models/block/template_rail_raised_ne.json @@ -0,0 +1,21 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#rail" + }, + "elements": [ + { "from": [ 0, 9, 0 ], + "to": [ 16, 9, 16 ], + "rotation": { + "origin": [ 8, 9, 8 ], + "axis": "x", + "angle": 45, + "rescale": true + }, + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#rail" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#rail" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_rail_raised_sw.json b/assets/minecraft/models/block/template_rail_raised_sw.json new file mode 100644 index 00000000..dddc3562 --- /dev/null +++ b/assets/minecraft/models/block/template_rail_raised_sw.json @@ -0,0 +1,21 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#rail" + }, + "elements": [ + { "from": [ 0, 9, 0 ], + "to": [ 16, 9, 16 ], + "rotation": { + "origin": [ 8, 9, 8 ], + "axis": "x", + "angle": -45, + "rescale": true + }, + "faces": { + "down": { "uv": [ 0, 16, 16, 0 ], "texture": "#rail" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#rail" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_sculk_shrieker.json b/assets/minecraft/models/block/template_sculk_shrieker.json new file mode 100644 index 00000000..f7dac613 --- /dev/null +++ b/assets/minecraft/models/block/template_sculk_shrieker.json @@ -0,0 +1,77 @@ +{ + "parent": "block/block", + "textures": { + "bottom": "block/sculk_shrieker_bottom", + "side": "block/sculk_shrieker_side", + "top": "block/sculk_shrieker_top", + "inner_top": "block/sculk_shrieker_inner_top", + "particle": "block/sculk_shrieker_bottom" + }, + "elements": [ + { + "name": "bottom_slab", + "from": [0, 0, 0], + "to": [16, 8, 16], + "faces": { + "north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"}, + "east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#inner_top"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom", "cullface": "down"} + } + }, + { + "name": "top_slab", + "from": [1, 8, 1], + "to": [15, 15, 15], + "faces": { + "north": {"uv": [1, 1, 15, 8], "texture": "#side"}, + "east": {"uv": [1, 1, 15, 8], "texture": "#side"}, + "south": {"uv": [1, 1, 15, 8], "texture": "#side"}, + "west": {"uv": [1, 1, 15, 8], "texture": "#side"}, + "up": {"uv": [1, 1, 15, 15], "texture": "#top"} + } + }, + { + "name": "up", + "from": [1, 14.98, 1], + "to": [15, 14.98, 15], + "faces": { + "down": {"uv": [1, 1, 15, 15], "texture": "#top"} + } + }, + { + "name": "south", + "from": [1, 8, 14.98], + "to": [15, 15, 14.98], + "faces": { + "north": {"uv": [1, 1, 15, 8], "texture": "#side"} + } + }, + { + "name": "north", + "from": [1, 8, 1.02], + "to": [15, 15, 1.02], + "faces": { + "south": {"uv": [1, 1, 15, 8], "texture": "#side"} + } + }, + { + "name": "east", + "from": [14.98, 8, 1], + "to": [14.98, 15, 15], + "faces": { + "west": {"uv": [1, 1, 15, 8], "texture": "#side"} + } + }, + { + "name": "west", + "from": [1.02, 8, 1], + "to": [1.02, 15, 15], + "faces": { + "east": {"uv": [1, 1, 15, 8], "texture": "#side"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_seagrass.json b/assets/minecraft/models/block/template_seagrass.json new file mode 100644 index 00000000..4324e3da --- /dev/null +++ b/assets/minecraft/models/block/template_seagrass.json @@ -0,0 +1,40 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 0, 4 ], + "to": [ 16, 16, 4 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { "from": [ 12, 0, 0 ], + "to": [ 12, 16, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { "from": [ 4, 0, 0 ], + "to": [ 4, 16, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { "from": [ 0, 0, 12 ], + "to": [ 16, 16, 12 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_single_face.json b/assets/minecraft/models/block/template_single_face.json new file mode 100644 index 00000000..d23e5f20 --- /dev/null +++ b/assets/minecraft/models/block/template_single_face.json @@ -0,0 +1,13 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 0 ], + "faces": { + "north": { "texture": "#texture", "cullface":"north" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_three_candles.json b/assets/minecraft/models/block/template_three_candles.json new file mode 100644 index 00000000..d9963dc7 --- /dev/null +++ b/assets/minecraft/models/block/template_three_candles.json @@ -0,0 +1,95 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [7, 0, 9], + "to": [9, 3, 11], + "faces": { + "north": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 11], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [7.5, 3, 10], + "to": [8.5, 4, 10], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 3, 10]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [7.5, 3, 10], + "to": [8.5, 4, 10], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 3, 10]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [5, 0, 7], + "to": [7, 5, 9], + "faces": { + "north": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [5.5, 5, 8], + "to": [6.5, 6, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [6, 5, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [5.5, 5, 8], + "to": [6.5, 6, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [6, 5, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [8, 0, 6], + "to": [10, 6, 8], + "faces": { + "north": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [8.5, 6, 7], + "to": [9.5, 7, 7], + "rotation": {"angle": 45, "axis": "y", "origin": [9, 6, 7]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + }, + { + "from": [8.5, 6, 7], + "to": [9.5, 7, 7], + "rotation": {"angle": -45, "axis": "y", "origin": [9, 6, 7]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_three_turtle_eggs.json b/assets/minecraft/models/block/template_three_turtle_eggs.json new file mode 100644 index 00000000..c6ce2d8a --- /dev/null +++ b/assets/minecraft/models/block/template_three_turtle_eggs.json @@ -0,0 +1,43 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#all" + }, + "elements": [ + { "from": [ 5, 0, 4 ], + "to": [ 9, 7, 8 ], + "faces": { + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 0, 0, 4, 4 ], "texture": "#all" }, + "north": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "south": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "west": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "east": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" } + } + }, + { + "from": [ 1, 0, 7 ], + "to": [ 5, 5, 11 ], + "faces": { + "down": { "uv": [ 6, 7, 10, 11 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 6, 7, 10, 11 ], "texture": "#all" }, + "north": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "south": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "west": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "east": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" } + } + }, + { + "from": [ 11, 0, 7 ], + "to": [ 14, 4, 10 ], + "faces": { + "down": { "uv": [ 5, 0, 8, 3 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 5, 0, 8, 3 ], "texture": "#all" }, + "north": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" }, + "south": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" }, + "west": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" }, + "east": { "uv": [ 8, 3, 11, 7 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_torch.json b/assets/minecraft/models/block/template_torch.json new file mode 100644 index 00000000..aef12fcf --- /dev/null +++ b/assets/minecraft/models/block/template_torch.json @@ -0,0 +1,32 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#torch" + }, + "elements": [ + { "from": [ 7, 0, 7 ], + "to": [ 9, 10, 9 ], + "shade": false, + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#torch" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#torch" } + } + }, + { "from": [ 7, 0, 0 ], + "to": [ 9, 16, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" } + } + }, + { "from": [ 0, 0, 7 ], + "to": [ 16, 16, 9 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_torch_wall.json b/assets/minecraft/models/block/template_torch_wall.json new file mode 100644 index 00000000..1a6d297e --- /dev/null +++ b/assets/minecraft/models/block/template_torch_wall.json @@ -0,0 +1,35 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#torch" + }, + "elements": [ + { "from": [ -1, 3.5, 7 ], + "to": [ 1, 13.5, 9 ], + "rotation": { "origin": [ 0, 3.5, 8 ], "axis": "z", "angle": -22.5 }, + "shade": false, + "faces": { + "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#torch" }, + "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#torch" } + } + }, + { "from": [ -1, 3.5, 0 ], + "to": [ 1, 19.5, 16 ], + "rotation": { "origin": [ 0, 3.5, 8 ], "axis": "z", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" } + } + }, + { "from": [ -8, 3.5, 7 ], + "to": [ 8, 19.5, 9 ], + "rotation": { "origin": [ 0, 3.5, 8 ], "axis": "z", "angle": -22.5 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_trapdoor_bottom.json b/assets/minecraft/models/block/template_trapdoor_bottom.json new file mode 100644 index 00000000..2b6c8daa --- /dev/null +++ b/assets/minecraft/models/block/template_trapdoor_bottom.json @@ -0,0 +1,18 @@ +{ "parent": "block/thin_block", + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 3, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "north": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_trapdoor_open.json b/assets/minecraft/models/block/template_trapdoor_open.json new file mode 100644 index 00000000..b301619c --- /dev/null +++ b/assets/minecraft/models/block/template_trapdoor_open.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 0, 13 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 13, 16, 16 ], "texture": "#texture", "cullface": "down" }, + "up": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "up" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 16, 0, 13, 16 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 13, 0, 16, 16 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_trapdoor_top.json b/assets/minecraft/models/block/template_trapdoor_top.json new file mode 100644 index 00000000..036aeb7b --- /dev/null +++ b/assets/minecraft/models/block/template_trapdoor_top.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#texture" + }, + "elements": [ + { "from": [ 0, 13, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "up" }, + "north": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "north" }, + "south": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "south" }, + "west": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "west" }, + "east": { "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "east" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_turtle_egg.json b/assets/minecraft/models/block/template_turtle_egg.json new file mode 100644 index 00000000..b42b49ea --- /dev/null +++ b/assets/minecraft/models/block/template_turtle_egg.json @@ -0,0 +1,19 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#all" + }, + "elements": [ + { "from": [ 5, 0, 4 ], + "to": [ 9, 7, 8 ], + "faces": { + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 0, 0, 4, 4 ], "texture": "#all" }, + "north": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "south": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "west": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "east": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_two_candles.json b/assets/minecraft/models/block/template_two_candles.json new file mode 100644 index 00000000..2abbb10c --- /dev/null +++ b/assets/minecraft/models/block/template_two_candles.json @@ -0,0 +1,65 @@ +{ + "parent": "block/block", + "elements": [ + { + "from": [5, 0, 7], + "to": [7, 5, 9], + "faces": { + "north": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 13], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [5.5, 5, 8], + "to": [6.5, 6, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [6, 5, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [5.5, 5, 8], + "to": [6.5, 6, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [6, 5, 8]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [1, 5, 0, 6], "texture": "#all"} + } + }, + { + "from": [9, 0, 6], + "to": [11, 6, 8], + "faces": { + "north": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "east": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "south": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "west": {"uv": [0, 8, 2, 14], "texture": "#all"}, + "up": {"uv": [0, 6, 2, 8], "texture": "#all"}, + "down": {"uv": [0, 14, 2, 16], "texture": "#all", "cullface": "down"} + } + }, + { + "from": [9.5, 6, 7], + "to": [10.5, 7, 7], + "rotation": {"angle": 45, "axis": "y", "origin": [10, 6, 7]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + }, + { + "from": [9.5, 6, 7], + "to": [10.5, 7, 7], + "rotation": {"angle": -45, "axis": "y", "origin": [10, 6, 7]}, + "faces": { + "north": {"uv": [0, 5, 1, 6], "texture": "#all"}, + "south": {"uv": [0, 5, 1, 6], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_two_turtle_eggs.json b/assets/minecraft/models/block/template_two_turtle_eggs.json new file mode 100644 index 00000000..a5faf35d --- /dev/null +++ b/assets/minecraft/models/block/template_two_turtle_eggs.json @@ -0,0 +1,31 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#all" + }, + "elements": [ + { "from": [ 5, 0, 4 ], + "to": [ 9, 7, 8 ], + "faces": { + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 0, 0, 4, 4 ], "texture": "#all" }, + "north": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "south": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "west": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" }, + "east": { "uv": [ 1, 4, 5, 11 ], "texture": "#all" } + } + }, + { + "from": [ 1, 0, 7 ], + "to": [ 5, 5, 11 ], + "faces": { + "down": { "uv": [ 6, 7, 10, 11 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 6, 7, 10, 11 ], "texture": "#all" }, + "north": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "south": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "west": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" }, + "east": { "uv": [ 10, 10, 14, 15 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/template_vault.json b/assets/minecraft/models/block/template_vault.json new file mode 100644 index 00000000..9f13248a --- /dev/null +++ b/assets/minecraft/models/block/template_vault.json @@ -0,0 +1,34 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#side" + }, + "elements": [ + { + "name": "cage", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#front", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom"} + } + }, + { + "name": "cage_inverted_faces", + "from": [15.998, 3.002, 0.002], + "to": [0.002, 15.998, 15.998], + "faces": { + "north": {"uv": [16, 0, 0, 13], "texture": "#front"}, + "east": {"uv": [16, 0, 0, 13], "texture": "#side"}, + "south": {"uv": [16, 0, 0, 13], "texture": "#side"}, + "west": {"uv": [16, 0, 0, 13], "texture": "#side"}, + "up": {"uv": [16, 0, 0, 16], "texture": "#top"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#bottom"} + } + } + ] +} diff --git a/assets/minecraft/models/block/template_wall_post.json b/assets/minecraft/models/block/template_wall_post.json new file mode 100644 index 00000000..c1c40e47 --- /dev/null +++ b/assets/minecraft/models/block/template_wall_post.json @@ -0,0 +1,19 @@ +{ + "textures": { + "particle": "#wall" + }, + "elements": [ + { "from": [ 4, 0, 4 ], + "to": [ 12, 16, 12 ], + "faces": { + "down": { "texture": "#wall", "cullface": "down" }, + "up": { "texture": "#wall", "cullface": "up" }, + "north": { "texture": "#wall" }, + "south": { "texture": "#wall" }, + "west": { "texture": "#wall" }, + "east": { "texture": "#wall" } + }, + "__comment": "Center post" + } + ] +} diff --git a/assets/minecraft/models/block/template_wall_side.json b/assets/minecraft/models/block/template_wall_side.json new file mode 100644 index 00000000..301854c8 --- /dev/null +++ b/assets/minecraft/models/block/template_wall_side.json @@ -0,0 +1,18 @@ +{ + "textures": { + "particle": "#wall" + }, + "elements": [ + { "from": [ 5, 0, 0 ], + "to": [ 11, 14, 8 ], + "faces": { + "down": { "texture": "#wall", "cullface": "down" }, + "up": { "texture": "#wall" }, + "north": { "texture": "#wall", "cullface": "north" }, + "west": { "texture": "#wall" }, + "east": { "texture": "#wall" } + }, + "__comment": "wall" + } + ] +} diff --git a/assets/minecraft/models/block/template_wall_side_tall.json b/assets/minecraft/models/block/template_wall_side_tall.json new file mode 100644 index 00000000..379a9e3c --- /dev/null +++ b/assets/minecraft/models/block/template_wall_side_tall.json @@ -0,0 +1,17 @@ +{ + "textures": { + "particle": "#wall" + }, + "elements": [ + { "from": [ 5, 0, 0 ], + "to": [ 11, 16, 8 ], + "faces": { + "down": { "texture": "#wall", "cullface": "down" }, + "up": { "texture": "#wall", "cullface": "up"}, + "north": { "texture": "#wall", "cullface": "north" }, + "west": { "texture": "#wall" }, + "east": { "texture": "#wall" } + } + } + ] +} diff --git a/assets/minecraft/models/block/terracotta.json b/assets/minecraft/models/block/terracotta.json new file mode 100644 index 00000000..abdc18d7 --- /dev/null +++ b/assets/minecraft/models/block/terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/thin_block.json b/assets/minecraft/models/block/thin_block.json new file mode 100644 index 00000000..1adb58ab --- /dev/null +++ b/assets/minecraft/models/block/thin_block.json @@ -0,0 +1,19 @@ +{ "parent": "block/block", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 2], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 4.2, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 225, 0 ], + "translation": [ 0, 4.2, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} diff --git a/assets/minecraft/models/block/three_dead_sea_pickles.json b/assets/minecraft/models/block/three_dead_sea_pickles.json new file mode 100644 index 00000000..8eff63de --- /dev/null +++ b/assets/minecraft/models/block/three_dead_sea_pickles.json @@ -0,0 +1,65 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 6, 0, 9 ], + "to": [ 10, 6, 13 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 6, 5.95, 9 ], + "to": [ 10, 5.95, 13 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 2, 0, 2 ], + "to": [ 6, 4, 6 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 9 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 9 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 9 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 9 ], "texture": "#all" } + } + }, + { + "from": [ 2, 3.95, 2 ], + "to": [ 6, 3.95, 6 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 8, 0, 4 ], + "to": [ 12, 6, 8 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 8, 5.95, 4 ], + "to": [ 12, 5.95, 8 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/three_sea_pickles.json b/assets/minecraft/models/block/three_sea_pickles.json new file mode 100644 index 00000000..aeb47500 --- /dev/null +++ b/assets/minecraft/models/block/three_sea_pickles.json @@ -0,0 +1,125 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 6, 0, 9 ], + "to": [ 10, 6, 13 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 6, 5.95, 9 ], + "to": [ 10, 5.95, 13 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 2, 0, 2 ], + "to": [ 6, 4, 6 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 9 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 9 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 9 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 9 ], "texture": "#all" } + } + }, + { + "from": [ 2, 3.95, 2 ], + "to": [ 6, 3.95, 6 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 8, 0, 4 ], + "to": [ 12, 6, 8 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 8, 5.95, 4 ], + "to": [ 12, 5.95, 8 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 7.5, 5.2, 11 ], + "to": [ 8.5, 8.7, 11 ], + "rotation": { "origin": [ 8, 8, 11 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 8, 5.2, 10.5 ], + "to": [ 8, 8.7, 11.5 ], + "rotation": { "origin": [ 8, 8, 11 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + }, + { + "from": [ 3.5, 3.2, 4 ], + "to": [ 4.5, 6.7, 4 ], + "rotation": { "origin": [ 4, 8, 4 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 4, 3.2, 3.5 ], + "to": [ 4, 6.7, 4.5 ], + "rotation": { "origin": [ 4, 8, 4 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + }, + { + "from": [ 9.5, 5.2, 6 ], + "to": [ 10.5, 8.7, 6 ], + "rotation": { "origin": [ 10, 8, 6 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 10, 5.2, 5.5 ], + "to": [ 10, 8.7, 6.5 ], + "rotation": { "origin": [ 10, 8, 6 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/three_slightly_cracked_turtle_eggs.json b/assets/minecraft/models/block/three_slightly_cracked_turtle_eggs.json new file mode 100644 index 00000000..a50fdeef --- /dev/null +++ b/assets/minecraft/models/block/three_slightly_cracked_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg_slightly_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/three_turtle_eggs.json b/assets/minecraft/models/block/three_turtle_eggs.json new file mode 100644 index 00000000..7f893795 --- /dev/null +++ b/assets/minecraft/models/block/three_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/three_very_cracked_turtle_eggs.json b/assets/minecraft/models/block/three_very_cracked_turtle_eggs.json new file mode 100644 index 00000000..7c8e2046 --- /dev/null +++ b/assets/minecraft/models/block/three_very_cracked_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg_very_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tinted_cross.json b/assets/minecraft/models/block/tinted_cross.json new file mode 100644 index 00000000..d3b5474e --- /dev/null +++ b/assets/minecraft/models/block/tinted_cross.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#cross" + }, + "elements": [ + { "from": [ 0.8, 0, 8 ], + "to": [ 15.2, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 } + } + }, + { "from": [ 8, 0, 0.8 ], + "to": [ 8, 16, 15.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/tinted_flower_pot_cross.json b/assets/minecraft/models/block/tinted_flower_pot_cross.json new file mode 100644 index 00000000..3bdc26c1 --- /dev/null +++ b/assets/minecraft/models/block/tinted_flower_pot_cross.json @@ -0,0 +1,73 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/flower_pot", + "flowerpot": "block/flower_pot", + "dirt": "block/dirt" + }, + "elements": [ + { "from": [ 5, 0, 5 ], + "to": [ 6, 6, 11 ], + "faces": { + "down": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 5, 5, 6, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 10, 0, 5 ], + "to": [ 11, 6, 11 ], + "faces": { + "down": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 10, 5, 11, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 5, 10, 6, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 10, 10, 11, 16 ], "texture": "#flowerpot" }, + "west": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" }, + "east": { "uv": [ 5, 10, 11, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 5 ], + "to": [ 10, 6, 6 ], + "faces": { + "down": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 10 ], + "to": [ 10, 6, 11 ], + "faces": { + "down": { "uv": [ 6, 5, 10, 6 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 10, 10, 11 ], "texture": "#flowerpot" }, + "north": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" }, + "south": { "uv": [ 6, 10, 10, 16 ], "texture": "#flowerpot" } + } + }, + { "from": [ 6, 0, 6 ], + "to": [ 10, 4, 10 ], + "faces": { + "down": { "uv": [ 6, 12, 10, 16 ], "texture": "#flowerpot", "cullface": "down" }, + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#dirt" } + } + }, + { "from": [ 2.6, 4, 8 ], + "to": [ 13.4, 16, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant", "tintindex": 0 }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant", "tintindex": 0 } + } + }, + { "from": [ 8, 4, 2.6 ], + "to": [ 8, 16, 13.4 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant", "tintindex": 0 }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#plant", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/tinted_glass.json b/assets/minecraft/models/block/tinted_glass.json new file mode 100644 index 00000000..7c6f495d --- /dev/null +++ b/assets/minecraft/models/block/tinted_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/tinted_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tnt.json b/assets/minecraft/models/block/tnt.json new file mode 100644 index 00000000..c4023fda --- /dev/null +++ b/assets/minecraft/models/block/tnt.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/tnt_bottom", + "side": "minecraft:block/tnt_side", + "top": "minecraft:block/tnt_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/torch.json b/assets/minecraft/models/block/torch.json new file mode 100644 index 00000000..7c6241d0 --- /dev/null +++ b/assets/minecraft/models/block/torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch", + "textures": { + "torch": "minecraft:block/torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/torchflower.json b/assets/minecraft/models/block/torchflower.json new file mode 100644 index 00000000..633e42e2 --- /dev/null +++ b/assets/minecraft/models/block/torchflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/torchflower" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/torchflower_crop_stage0.json b/assets/minecraft/models/block/torchflower_crop_stage0.json new file mode 100644 index 00000000..3f5a4896 --- /dev/null +++ b/assets/minecraft/models/block/torchflower_crop_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/torchflower_crop_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/torchflower_crop_stage1.json b/assets/minecraft/models/block/torchflower_crop_stage1.json new file mode 100644 index 00000000..cb14cf9e --- /dev/null +++ b/assets/minecraft/models/block/torchflower_crop_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/torchflower_crop_stage1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/trial_spawner.json b/assets/minecraft/models/block/trial_spawner.json new file mode 100644 index 00000000..3b99cb12 --- /dev/null +++ b/assets/minecraft/models/block/trial_spawner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top_inner_faces", + "textures": { + "bottom": "minecraft:block/trial_spawner_bottom", + "side": "minecraft:block/trial_spawner_side_inactive", + "top": "minecraft:block/trial_spawner_top_inactive" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/trial_spawner_active.json b/assets/minecraft/models/block/trial_spawner_active.json new file mode 100644 index 00000000..0ddc5ea9 --- /dev/null +++ b/assets/minecraft/models/block/trial_spawner_active.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top_inner_faces", + "textures": { + "bottom": "minecraft:block/trial_spawner_bottom", + "side": "minecraft:block/trial_spawner_side_active", + "top": "minecraft:block/trial_spawner_top_active" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/trial_spawner_active_ominous.json b/assets/minecraft/models/block/trial_spawner_active_ominous.json new file mode 100644 index 00000000..af201038 --- /dev/null +++ b/assets/minecraft/models/block/trial_spawner_active_ominous.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top_inner_faces", + "textures": { + "bottom": "minecraft:block/trial_spawner_bottom", + "side": "minecraft:block/trial_spawner_side_active_ominous", + "top": "minecraft:block/trial_spawner_top_active_ominous" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/trial_spawner_ejecting_reward.json b/assets/minecraft/models/block/trial_spawner_ejecting_reward.json new file mode 100644 index 00000000..8bbb2cd4 --- /dev/null +++ b/assets/minecraft/models/block/trial_spawner_ejecting_reward.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top_inner_faces", + "textures": { + "bottom": "minecraft:block/trial_spawner_bottom", + "side": "minecraft:block/trial_spawner_side_active", + "top": "minecraft:block/trial_spawner_top_ejecting_reward" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/trial_spawner_ejecting_reward_ominous.json b/assets/minecraft/models/block/trial_spawner_ejecting_reward_ominous.json new file mode 100644 index 00000000..d4575518 --- /dev/null +++ b/assets/minecraft/models/block/trial_spawner_ejecting_reward_ominous.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top_inner_faces", + "textures": { + "bottom": "minecraft:block/trial_spawner_bottom", + "side": "minecraft:block/trial_spawner_side_active_ominous", + "top": "minecraft:block/trial_spawner_top_ejecting_reward_ominous" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/trial_spawner_inactive_ominous.json b/assets/minecraft/models/block/trial_spawner_inactive_ominous.json new file mode 100644 index 00000000..badc28ce --- /dev/null +++ b/assets/minecraft/models/block/trial_spawner_inactive_ominous.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top_inner_faces", + "textures": { + "bottom": "minecraft:block/trial_spawner_bottom", + "side": "minecraft:block/trial_spawner_side_inactive_ominous", + "top": "minecraft:block/trial_spawner_top_inactive_ominous" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tripwire_attached_n.json b/assets/minecraft/models/block/tripwire_attached_n.json new file mode 100644 index 00000000..a0ecc5d7 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_attached_n.json @@ -0,0 +1,33 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_attached_ne.json b/assets/minecraft/models/block/tripwire_attached_ne.json new file mode 100644 index 00000000..7fa445fc --- /dev/null +++ b/assets/minecraft/models/block/tripwire_attached_ne.json @@ -0,0 +1,41 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 8, 1.5, 7.75 ], + "to": [ 12, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + }, + { "from": [ 12, 1.5, 7.75 ], + "to": [ 16, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_attached_ns.json b/assets/minecraft/models/block/tripwire_attached_ns.json new file mode 100644 index 00000000..e7d8d9cf --- /dev/null +++ b/assets/minecraft/models/block/tripwire_attached_ns.json @@ -0,0 +1,41 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 12 ], + "to": [ 8.25, 1.5, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_attached_nse.json b/assets/minecraft/models/block/tripwire_attached_nse.json new file mode 100644 index 00000000..745983f5 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_attached_nse.json @@ -0,0 +1,57 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 12 ], + "to": [ 8.25, 1.5, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 8, 1.5, 7.75 ], + "to": [ 12, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + }, + { "from": [ 12, 1.5, 7.75 ], + "to": [ 16, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_attached_nsew.json b/assets/minecraft/models/block/tripwire_attached_nsew.json new file mode 100644 index 00000000..b34593d4 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_attached_nsew.json @@ -0,0 +1,73 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 12 ], + "to": [ 8.25, 1.5, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 2, 0, 4 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 0, 1.5, 7.75 ], + "to": [ 4, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + }, + { "from": [ 4, 1.5, 7.75 ], + "to": [ 8, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + }, + { "from": [ 8, 1.5, 7.75 ], + "to": [ 12, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + }, + { "from": [ 12, 1.5, 7.75 ], + "to": [ 16, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 4, 16, 2 ], "texture": "#texture" }, + "up": { "uv": [ 0, 2, 16, 4 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_hook.json b/assets/minecraft/models/block/tripwire_hook.json new file mode 100644 index 00000000..95279bd3 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_hook.json @@ -0,0 +1,72 @@ +{ + "textures": { + "particle": "block/oak_planks", + "hook": "block/tripwire_hook", + "wood": "block/oak_planks" + }, + "elements": [ + { "from": [ 6.2, 3.8, 7.9 ], + "to": [ 9.8, 4.6, 11.5 ], + "rotation": { "origin": [ 8, 6, 5.2 ], "axis": "x", "angle": -45 }, + "faces": { + "down": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "up": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "north": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" }, + "south": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "west": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "east": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 3.8, 10.3 ], + "to": [ 8.6, 4.6, 10.3 ], + "rotation": { "origin": [ 8, 6, 5.2 ], "axis": "x", "angle": -45 }, + "faces": { + "north": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 3.8, 9.1 ], + "to": [ 8.6, 4.6, 9.1 ], + "rotation": { "origin": [ 8, 6, 5.2 ], "axis": "x", "angle": -45 }, + "faces": { + "south": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 3.8, 9.1 ], + "to": [ 7.4, 4.6, 10.3 ], + "rotation": { "origin": [ 8, 6, 5.2 ], "axis": "x", "angle": -45 }, + "faces": { + "east": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 8.6, 3.8, 9.1 ], + "to": [ 8.6, 4.6, 10.3 ], + "rotation": { "origin": [ 8, 6, 5.2 ], "axis": "x", "angle": -45 }, + "faces": { + "west": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 5.2, 10 ], + "to": [ 8.8, 6.8, 14 ], + "rotation": { "origin": [ 8, 6, 14 ], "axis": "x", "angle": 45 }, + "faces": { + "down": { "uv": [ 7, 9, 9, 14 ], "texture": "#wood" }, + "up": { "uv": [ 7, 2, 9, 7 ], "texture": "#wood" }, + "north": { "uv": [ 7, 9, 9, 11 ], "texture": "#wood" }, + "south": { "uv": [ 7, 9, 9, 11 ], "texture": "#wood" }, + "west": { "uv": [ 2, 9, 7, 11 ], "texture": "#wood" }, + "east": { "uv": [ 9, 9, 14, 11 ], "texture": "#wood" } + } + }, + { "from": [ 6, 1, 14 ], + "to": [ 10, 9, 16 ], + "faces": { + "down": { "uv": [ 6, 14, 10, 16 ], "texture": "#wood" }, + "up": { "uv": [ 6, 0, 10, 2 ], "texture": "#wood" }, + "north": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood" }, + "south": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood", "cullface": "south" }, + "west": { "uv": [ 0, 7, 2, 15 ], "texture": "#wood" }, + "east": { "uv": [ 14, 7, 16, 15 ], "texture": "#wood" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_hook_attached.json b/assets/minecraft/models/block/tripwire_hook_attached.json new file mode 100644 index 00000000..58228444 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_hook_attached.json @@ -0,0 +1,79 @@ +{ + "textures": { + "particle": "block/oak_planks", + "hook": "block/tripwire_hook", + "wood": "block/oak_planks", + "tripwire": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 6.7 ], + "rotation": { "origin": [ 8, 0, 0 ], "axis": "x", "angle": -22.5, "rescale": true }, + "faces": { + "down": { "uv": [ 16, 6, 0, 8 ], "texture": "#tripwire", "rotation": 90 }, + "up": { "uv": [ 0, 6, 16, 8 ], "texture": "#tripwire", "rotation": 90 } + } + }, + { "from": [ 6.2, 4.2, 6.7 ], + "to": [ 9.8, 5, 10.3 ], + "rotation": { "origin": [ 8, 4.2, 6.7 ], "axis": "x", "angle": -22.5, "rescale": false }, + "faces": { + "down": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "up": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "north": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" }, + "south": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "west": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "east": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 4.2, 9.1 ], + "to": [ 8.6, 5, 9.1 ], + "rotation": { "origin": [ 8, 4.2, 6.7 ], "axis": "x", "angle": -22.5, "rescale": false }, + "faces": { + "north": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 4.2, 7.9 ], + "to": [ 8.6, 5, 7.9 ], + "rotation": { "origin": [ 8, 4.2, 6.7 ], "axis": "x", "angle": -22.5, "rescale": false }, + "faces": { + "south": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 4.2, 7.9 ], + "to": [ 7.4, 5, 9.1 ], + "rotation": { "origin": [ 8, 4.2, 6.7 ], "axis": "x", "angle": -22.5, "rescale": false }, + "faces": { + "east": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 8.6, 4.2, 7.9 ], + "to": [ 8.6, 5, 9.1 ], + "rotation": { "origin": [ 8, 4.2, 6.7 ], "axis": "x", "angle": -22.5, "rescale": false }, + "faces": { + "west": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 5.2, 10 ], + "to": [ 8.8, 6.8, 14 ], + "faces": { + "down": { "uv": [ 7, 9, 9, 14 ], "texture": "#wood" }, + "up": { "uv": [ 7, 2, 9, 7 ], "texture": "#wood" }, + "north": { "uv": [ 7, 9, 9, 11 ], "texture": "#wood" }, + "west": { "uv": [ 2, 9, 7, 11 ], "texture": "#wood" }, + "east": { "uv": [ 9, 9, 14, 11 ], "texture": "#wood" } + } + }, + { "from": [ 6, 1, 14 ], + "to": [ 10, 9, 16 ], + "faces": { + "down": { "uv": [ 6, 14, 10, 16 ], "texture": "#wood" }, + "up": { "uv": [ 6, 0, 10, 2 ], "texture": "#wood" }, + "north": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood" }, + "south": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood", "cullface": "south" }, + "west": { "uv": [ 0, 7, 2, 15 ], "texture": "#wood" }, + "east": { "uv": [ 14, 7, 16, 15 ], "texture": "#wood" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_hook_attached_on.json b/assets/minecraft/models/block/tripwire_hook_attached_on.json new file mode 100644 index 00000000..c0e4d1ad --- /dev/null +++ b/assets/minecraft/models/block/tripwire_hook_attached_on.json @@ -0,0 +1,76 @@ +{ + "textures": { + "particle": "block/oak_planks", + "hook": "block/tripwire_hook", + "wood": "block/oak_planks", + "tripwire": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 0.5, 0 ], + "to": [ 8.25, 0.5, 6.7 ], + "rotation": { "origin": [ 8, 0, 0 ], "axis": "x", "angle": -22.5, "rescale": true }, + "faces": { + "down": { "uv": [ 16, 6, 0, 8 ], "texture": "#tripwire", "rotation": 90 }, + "up": { "uv": [ 0, 6, 16, 8 ], "texture": "#tripwire", "rotation": 90 } + } + }, + { "from": [ 6.2, 3.4, 6.7 ], + "to": [ 9.8, 4.2, 10.3 ], + "faces": { + "down": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "up": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "north": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" }, + "south": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "west": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "east": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 3.4, 9.1 ], + "to": [ 8.6, 4.2, 9.1 ], + "faces": { + "north": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 3.4, 7.9 ], + "to": [ 8.6, 4.2, 7.9 ], + "faces": { + "south": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 3.4, 7.9 ], + "to": [ 7.4, 4.2, 9.1 ], + "faces": { + "east": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 8.6, 3.4, 7.9 ], + "to": [ 8.6, 4.2, 9.1 ], + "faces": { + "west": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 5.2, 10 ], + "to": [ 8.8, 6.8, 14 ], + "rotation": { "origin": [ 8, 6, 14 ], "axis": "x", "angle": -22.5 }, + "faces": { + "down": { "uv": [ 7, 9, 9, 14 ], "texture": "#wood" }, + "up": { "uv": [ 7, 2, 9, 7 ], "texture": "#wood" }, + "north": { "uv": [ 7, 9, 9, 11 ], "texture": "#wood" }, + "south": { "uv": [ 7, 9, 9, 11 ], "texture": "#wood" }, + "west": { "uv": [ 2, 9, 7, 11 ], "texture": "#wood" }, + "east": { "uv": [ 9, 9, 14, 11 ], "texture": "#wood" } + } + }, + { "from": [ 6, 1, 14 ], + "to": [ 10, 9, 16 ], + "faces": { + "down": { "uv": [ 6, 14, 10, 16 ], "texture": "#wood" }, + "up": { "uv": [ 6, 0, 10, 2 ], "texture": "#wood" }, + "north": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood" }, + "south": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood", "cullface": "south" }, + "west": { "uv": [ 0, 7, 2, 15 ], "texture": "#wood" }, + "east": { "uv": [ 14, 7, 16, 15 ], "texture": "#wood" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_hook_on.json b/assets/minecraft/models/block/tripwire_hook_on.json new file mode 100644 index 00000000..5b2494b1 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_hook_on.json @@ -0,0 +1,67 @@ +{ + "textures": { + "particle": "block/oak_planks", + "hook": "block/tripwire_hook", + "wood": "block/oak_planks" + }, + "elements": [ + { "from": [ 6.2, 4.2, 6.7 ], + "to": [ 9.8, 5, 10.3 ], + "faces": { + "down": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "up": { "uv": [ 5, 3, 11, 9 ], "texture": "#hook" }, + "north": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" }, + "south": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "west": { "uv": [ 5, 8, 11, 9 ], "texture": "#hook" }, + "east": { "uv": [ 5, 3, 11, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 4.2, 9.1 ], + "to": [ 8.6, 5, 9.1 ], + "faces": { + "north": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 4.2, 7.9 ], + "to": [ 8.6, 5, 7.9 ], + "faces": { + "south": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 4.2, 7.9 ], + "to": [ 7.4, 5, 9.1 ], + "faces": { + "east": { "uv": [ 7, 8, 9, 9 ], "texture": "#hook" } + } + }, + { "from": [ 8.6, 4.2, 7.9 ], + "to": [ 8.6, 5, 9.1 ], + "faces": { + "west": { "uv": [ 7, 3, 9, 4 ], "texture": "#hook" } + } + }, + { "from": [ 7.4, 5.2, 10 ], + "to": [ 8.8, 6.8, 14 ], + "rotation": { "origin": [ 8, 6, 14 ], "axis": "x", "angle": -22.5 }, + "faces": { + "down": { "uv": [ 7, 9, 9, 14 ], "texture": "#wood" }, + "up": { "uv": [ 7, 2, 9, 7 ], "texture": "#wood" }, + "north": { "uv": [ 7, 9, 9, 11 ], "texture": "#wood" }, + "south": { "uv": [ 7, 9, 9, 11 ], "texture": "#wood" }, + "west": { "uv": [ 2, 9, 7, 11 ], "texture": "#wood" }, + "east": { "uv": [ 9, 9, 14, 11 ], "texture": "#wood" } + } + }, + { "from": [ 6, 1, 14 ], + "to": [ 10, 9, 16 ], + "faces": { + "down": { "uv": [ 6, 14, 10, 16 ], "texture": "#wood" }, + "up": { "uv": [ 6, 0, 10, 2 ], "texture": "#wood" }, + "north": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood" }, + "south": { "uv": [ 6, 7, 10, 15 ], "texture": "#wood", "cullface": "south" }, + "west": { "uv": [ 0, 7, 2, 15 ], "texture": "#wood" }, + "east": { "uv": [ 14, 7, 16, 15 ], "texture": "#wood" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_n.json b/assets/minecraft/models/block/tripwire_n.json new file mode 100644 index 00000000..fe858fec --- /dev/null +++ b/assets/minecraft/models/block/tripwire_n.json @@ -0,0 +1,33 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_ne.json b/assets/minecraft/models/block/tripwire_ne.json new file mode 100644 index 00000000..6ce78f4c --- /dev/null +++ b/assets/minecraft/models/block/tripwire_ne.json @@ -0,0 +1,41 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 8, 1.5, 7.75 ], + "to": [ 12, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + }, + { "from": [ 12, 1.5, 7.75 ], + "to": [ 16, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_ns.json b/assets/minecraft/models/block/tripwire_ns.json new file mode 100644 index 00000000..9c87db52 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_ns.json @@ -0,0 +1,41 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 12 ], + "to": [ 8.25, 1.5, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_nse.json b/assets/minecraft/models/block/tripwire_nse.json new file mode 100644 index 00000000..2ab3aa75 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_nse.json @@ -0,0 +1,57 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 12 ], + "to": [ 8.25, 1.5, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 8, 1.5, 7.75 ], + "to": [ 12, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + }, + { "from": [ 12, 1.5, 7.75 ], + "to": [ 16, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tripwire_nsew.json b/assets/minecraft/models/block/tripwire_nsew.json new file mode 100644 index 00000000..9f96d403 --- /dev/null +++ b/assets/minecraft/models/block/tripwire_nsew.json @@ -0,0 +1,73 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/tripwire", + "texture": "block/tripwire" + }, + "elements": [ + { "from": [ 7.75, 1.5, 0 ], + "to": [ 8.25, 1.5, 4 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 4 ], + "to": [ 8.25, 1.5, 8 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 8 ], + "to": [ 8.25, 1.5, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 7.75, 1.5, 12 ], + "to": [ 8.25, 1.5, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 2 ], "texture": "#texture", "rotation": 90 }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture", "rotation": 90 } + } + }, + { "from": [ 0, 1.5, 7.75 ], + "to": [ 4, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + }, + { "from": [ 4, 1.5, 7.75 ], + "to": [ 8, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + }, + { "from": [ 8, 1.5, 7.75 ], + "to": [ 12, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + }, + { "from": [ 12, 1.5, 7.75 ], + "to": [ 16, 1.5, 8.25 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 2, 16, 0 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 16, 2 ], "texture": "#texture" } + } + } + ] +} diff --git a/assets/minecraft/models/block/tube_coral.json b/assets/minecraft/models/block/tube_coral.json new file mode 100644 index 00000000..0a159709 --- /dev/null +++ b/assets/minecraft/models/block/tube_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/tube_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tube_coral_block.json b/assets/minecraft/models/block/tube_coral_block.json new file mode 100644 index 00000000..4de67c0b --- /dev/null +++ b/assets/minecraft/models/block/tube_coral_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/tube_coral_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tube_coral_fan.json b/assets/minecraft/models/block/tube_coral_fan.json new file mode 100644 index 00000000..6a5e968c --- /dev/null +++ b/assets/minecraft/models/block/tube_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_fan", + "textures": { + "fan": "minecraft:block/tube_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tube_coral_wall_fan.json b/assets/minecraft/models/block/tube_coral_wall_fan.json new file mode 100644 index 00000000..6a36d289 --- /dev/null +++ b/assets/minecraft/models/block/tube_coral_wall_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/coral_wall_fan", + "textures": { + "fan": "minecraft:block/tube_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff.json b/assets/minecraft/models/block/tuff.json new file mode 100644 index 00000000..80ca0934 --- /dev/null +++ b/assets/minecraft/models/block/tuff.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_slab.json b/assets/minecraft/models/block/tuff_brick_slab.json new file mode 100644 index 00000000..b0b0e379 --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/tuff_bricks", + "side": "minecraft:block/tuff_bricks", + "top": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_slab_top.json b/assets/minecraft/models/block/tuff_brick_slab_top.json new file mode 100644 index 00000000..092a7f5b --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/tuff_bricks", + "side": "minecraft:block/tuff_bricks", + "top": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_stairs.json b/assets/minecraft/models/block/tuff_brick_stairs.json new file mode 100644 index 00000000..a6dc2d35 --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/tuff_bricks", + "side": "minecraft:block/tuff_bricks", + "top": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_stairs_inner.json b/assets/minecraft/models/block/tuff_brick_stairs_inner.json new file mode 100644 index 00000000..537c7b59 --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/tuff_bricks", + "side": "minecraft:block/tuff_bricks", + "top": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_stairs_outer.json b/assets/minecraft/models/block/tuff_brick_stairs_outer.json new file mode 100644 index 00000000..f7ed13e9 --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/tuff_bricks", + "side": "minecraft:block/tuff_bricks", + "top": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_wall_inventory.json b/assets/minecraft/models/block/tuff_brick_wall_inventory.json new file mode 100644 index 00000000..05c36dae --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_wall_post.json b/assets/minecraft/models/block/tuff_brick_wall_post.json new file mode 100644 index 00000000..1c8723f5 --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_wall_side.json b/assets/minecraft/models/block/tuff_brick_wall_side.json new file mode 100644 index 00000000..72c095e3 --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_brick_wall_side_tall.json b/assets/minecraft/models/block/tuff_brick_wall_side_tall.json new file mode 100644 index 00000000..3ff51373 --- /dev/null +++ b/assets/minecraft/models/block/tuff_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_bricks.json b/assets/minecraft/models/block/tuff_bricks.json new file mode 100644 index 00000000..3ba4278b --- /dev/null +++ b/assets/minecraft/models/block/tuff_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/tuff_bricks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_slab.json b/assets/minecraft/models/block/tuff_slab.json new file mode 100644 index 00000000..b77e66fd --- /dev/null +++ b/assets/minecraft/models/block/tuff_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/tuff", + "side": "minecraft:block/tuff", + "top": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_slab_top.json b/assets/minecraft/models/block/tuff_slab_top.json new file mode 100644 index 00000000..c4bbe6e3 --- /dev/null +++ b/assets/minecraft/models/block/tuff_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/tuff", + "side": "minecraft:block/tuff", + "top": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_stairs.json b/assets/minecraft/models/block/tuff_stairs.json new file mode 100644 index 00000000..ba84f4e7 --- /dev/null +++ b/assets/minecraft/models/block/tuff_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/tuff", + "side": "minecraft:block/tuff", + "top": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_stairs_inner.json b/assets/minecraft/models/block/tuff_stairs_inner.json new file mode 100644 index 00000000..cb7a1db8 --- /dev/null +++ b/assets/minecraft/models/block/tuff_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/tuff", + "side": "minecraft:block/tuff", + "top": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_stairs_outer.json b/assets/minecraft/models/block/tuff_stairs_outer.json new file mode 100644 index 00000000..7b8b85a8 --- /dev/null +++ b/assets/minecraft/models/block/tuff_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/tuff", + "side": "minecraft:block/tuff", + "top": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_wall_inventory.json b/assets/minecraft/models/block/tuff_wall_inventory.json new file mode 100644 index 00000000..f0719502 --- /dev/null +++ b/assets/minecraft/models/block/tuff_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_wall_post.json b/assets/minecraft/models/block/tuff_wall_post.json new file mode 100644 index 00000000..66c47876 --- /dev/null +++ b/assets/minecraft/models/block/tuff_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_wall_side.json b/assets/minecraft/models/block/tuff_wall_side.json new file mode 100644 index 00000000..1590701c --- /dev/null +++ b/assets/minecraft/models/block/tuff_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/tuff_wall_side_tall.json b/assets/minecraft/models/block/tuff_wall_side_tall.json new file mode 100644 index 00000000..9b7e3338 --- /dev/null +++ b/assets/minecraft/models/block/tuff_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "minecraft:block/tuff" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/turtle_egg.json b/assets/minecraft/models/block/turtle_egg.json new file mode 100644 index 00000000..94ce75f7 --- /dev/null +++ b/assets/minecraft/models/block/turtle_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "minecraft:block/turtle_egg" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/twisting_vines.json b/assets/minecraft/models/block/twisting_vines.json new file mode 100644 index 00000000..1e077028 --- /dev/null +++ b/assets/minecraft/models/block/twisting_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/twisting_vines" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/twisting_vines_plant.json b/assets/minecraft/models/block/twisting_vines_plant.json new file mode 100644 index 00000000..20a056e0 --- /dev/null +++ b/assets/minecraft/models/block/twisting_vines_plant.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/twisting_vines_plant" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/two_dead_sea_pickles.json b/assets/minecraft/models/block/two_dead_sea_pickles.json new file mode 100644 index 00000000..0a618603 --- /dev/null +++ b/assets/minecraft/models/block/two_dead_sea_pickles.json @@ -0,0 +1,46 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 3, 0, 3 ], + "to": [ 7, 6, 7 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 3, 5.95, 3 ], + "to": [ 7, 5.95, 7 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 8, 0, 8 ], + "to": [ 12, 4, 12 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 9 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 9 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 9 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 9 ], "texture": "#all" } + } + }, + { + "from": [ 8, 3.95, 8 ], + "to": [ 12, 3.95, 12 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + } + ] +} diff --git a/assets/minecraft/models/block/two_sea_pickles.json b/assets/minecraft/models/block/two_sea_pickles.json new file mode 100644 index 00000000..612d0ff9 --- /dev/null +++ b/assets/minecraft/models/block/two_sea_pickles.json @@ -0,0 +1,86 @@ +{ + "parent": "block/block", + "textures": { + "particle": "block/sea_pickle", + "all": "block/sea_pickle" + }, + "elements": [ + { "from": [ 3, 0, 3 ], + "to": [ 7, 6, 7 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 11 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 11 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 11 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 11 ], "texture": "#all" } + } + }, + { + "from": [ 3, 5.95, 3 ], + "to": [ 7, 5.95, 7 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 8, 0, 8 ], + "to": [ 12, 4, 12 ], + "faces": { + "down": { "uv": [ 8, 1, 12, 5 ], "texture": "#all", "cullface": "down" }, + "up": { "uv": [ 4, 1, 8, 5 ], "texture": "#all" }, + "north": { "uv": [ 4, 5, 8, 9 ], "texture": "#all" }, + "south": { "uv": [ 0, 5, 4, 9 ], "texture": "#all" }, + "west": { "uv": [ 8, 5, 12, 9 ], "texture": "#all" }, + "east": { "uv": [ 12, 5, 16, 9 ], "texture": "#all" } + } + }, + { + "from": [ 8, 3.95, 8 ], + "to": [ 12, 3.95, 12 ], + "faces": { + "up": {"uv": [ 8, 1, 12, 5 ], "texture": "#all"} + } + }, + { + "from": [ 4.5, 5.2, 5 ], + "to": [ 5.5, 8.7, 5 ], + "rotation": { "origin": [ 5, 5.6, 5 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 5, 5.2, 4.5 ], + "to": [ 5, 8.7, 5.5 ], + "rotation": { "origin": [ 5, 5.6, 5 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + }, + { + "from": [ 9.5, 3.2, 10 ], + "to": [ 10.5, 6.7, 10 ], + "rotation": { "origin": [10, 8, 10 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 1, 0, 3, 5 ], "texture": "#all" }, + "south": { "uv": [ 3, 0, 1, 5 ], "texture": "#all" } + } + }, + { + "from": [ 10, 3.2, 9.5 ], + "to": [ 10, 6.7, 10.5 ], + "rotation": { "origin": [ 10, 8, 10 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 13, 0, 15, 5 ], "texture": "#all" }, + "east": { "uv": [ 15, 0, 13, 5 ], "texture": "#all" } + } + } + ] +} diff --git a/assets/minecraft/models/block/two_slightly_cracked_turtle_eggs.json b/assets/minecraft/models/block/two_slightly_cracked_turtle_eggs.json new file mode 100644 index 00000000..4d1a9503 --- /dev/null +++ b/assets/minecraft/models/block/two_slightly_cracked_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg_slightly_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/two_turtle_eggs.json b/assets/minecraft/models/block/two_turtle_eggs.json new file mode 100644 index 00000000..22209d56 --- /dev/null +++ b/assets/minecraft/models/block/two_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/two_very_cracked_turtle_eggs.json b/assets/minecraft/models/block/two_very_cracked_turtle_eggs.json new file mode 100644 index 00000000..1408a48f --- /dev/null +++ b/assets/minecraft/models/block/two_very_cracked_turtle_eggs.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "minecraft:block/turtle_egg_very_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault.json b/assets/minecraft/models/block/vault.json new file mode 100644 index 00000000..f9e887f4 --- /dev/null +++ b/assets/minecraft/models/block/vault.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom", + "front": "minecraft:block/vault_front_off", + "side": "minecraft:block/vault_side_off", + "top": "minecraft:block/vault_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault_active.json b/assets/minecraft/models/block/vault_active.json new file mode 100644 index 00000000..c7adf1dd --- /dev/null +++ b/assets/minecraft/models/block/vault_active.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom", + "front": "minecraft:block/vault_front_on", + "side": "minecraft:block/vault_side_on", + "top": "minecraft:block/vault_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault_active_ominous.json b/assets/minecraft/models/block/vault_active_ominous.json new file mode 100644 index 00000000..49441602 --- /dev/null +++ b/assets/minecraft/models/block/vault_active_ominous.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom_ominous", + "front": "minecraft:block/vault_front_on_ominous", + "side": "minecraft:block/vault_side_on_ominous", + "top": "minecraft:block/vault_top_ominous" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault_ejecting_reward.json b/assets/minecraft/models/block/vault_ejecting_reward.json new file mode 100644 index 00000000..f903d6ae --- /dev/null +++ b/assets/minecraft/models/block/vault_ejecting_reward.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom", + "front": "minecraft:block/vault_front_ejecting", + "side": "minecraft:block/vault_side_on", + "top": "minecraft:block/vault_top_ejecting" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault_ejecting_reward_ominous.json b/assets/minecraft/models/block/vault_ejecting_reward_ominous.json new file mode 100644 index 00000000..eb382fdc --- /dev/null +++ b/assets/minecraft/models/block/vault_ejecting_reward_ominous.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom_ominous", + "front": "minecraft:block/vault_front_ejecting_ominous", + "side": "minecraft:block/vault_side_on_ominous", + "top": "minecraft:block/vault_top_ejecting_ominous" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault_ominous.json b/assets/minecraft/models/block/vault_ominous.json new file mode 100644 index 00000000..8e40a6ea --- /dev/null +++ b/assets/minecraft/models/block/vault_ominous.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom_ominous", + "front": "minecraft:block/vault_front_off_ominous", + "side": "minecraft:block/vault_side_off_ominous", + "top": "minecraft:block/vault_top_ominous" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault_unlocking.json b/assets/minecraft/models/block/vault_unlocking.json new file mode 100644 index 00000000..a5d94da7 --- /dev/null +++ b/assets/minecraft/models/block/vault_unlocking.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom", + "front": "minecraft:block/vault_front_ejecting", + "side": "minecraft:block/vault_side_on", + "top": "minecraft:block/vault_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vault_unlocking_ominous.json b/assets/minecraft/models/block/vault_unlocking_ominous.json new file mode 100644 index 00000000..7b9f1ddf --- /dev/null +++ b/assets/minecraft/models/block/vault_unlocking_ominous.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/template_vault", + "textures": { + "bottom": "minecraft:block/vault_bottom_ominous", + "front": "minecraft:block/vault_front_ejecting_ominous", + "side": "minecraft:block/vault_side_on_ominous", + "top": "minecraft:block/vault_top_ominous" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/verdant_froglight.json b/assets/minecraft/models/block/verdant_froglight.json new file mode 100644 index 00000000..092d7455 --- /dev/null +++ b/assets/minecraft/models/block/verdant_froglight.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/verdant_froglight_top", + "side": "minecraft:block/verdant_froglight_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/verdant_froglight_horizontal.json b/assets/minecraft/models/block/verdant_froglight_horizontal.json new file mode 100644 index 00000000..83001ec8 --- /dev/null +++ b/assets/minecraft/models/block/verdant_froglight_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "minecraft:block/verdant_froglight_top", + "side": "minecraft:block/verdant_froglight_side" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/very_cracked_turtle_egg.json b/assets/minecraft/models/block/very_cracked_turtle_egg.json new file mode 100644 index 00000000..74ff1606 --- /dev/null +++ b/assets/minecraft/models/block/very_cracked_turtle_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "minecraft:block/turtle_egg_very_cracked" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/vine.json b/assets/minecraft/models/block/vine.json new file mode 100644 index 00000000..6a48a470 --- /dev/null +++ b/assets/minecraft/models/block/vine.json @@ -0,0 +1,17 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "block/vine", + "vine": "block/vine" + }, + "elements": [ + { "from": [ 0, 0, 0.8 ], + "to": [ 16, 16, 0.8 ], + "shade": false, + "faces": { + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#vine", "tintindex": 0 }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#vine", "tintindex": 0 } + } + } + ] +} diff --git a/assets/minecraft/models/block/wall_inventory.json b/assets/minecraft/models/block/wall_inventory.json new file mode 100644 index 00000000..943dbfc9 --- /dev/null +++ b/assets/minecraft/models/block/wall_inventory.json @@ -0,0 +1,43 @@ +{ "parent": "block/block", + "display": { + "gui": { + "rotation": [ 30, 135, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "fixed": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + }, + "textures": { + "particle": "#wall" + }, + "elements": [ + { "from": [ 4, 0, 4 ], + "to": [ 12, 16, 12 ], + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#wall", "cullface": "down" }, + "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#wall" }, + "north": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, + "south": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, + "west": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" }, + "east": { "uv": [ 4, 0, 12, 16 ], "texture": "#wall" } + }, + "__comment": "Center post" + }, + { "from": [ 5, 0, 0 ], + "to": [ 11, 13, 16 ], + "faces": { + "down": { "uv": [ 5, 0, 11, 16 ], "texture": "#wall", "cullface": "down" }, + "up": { "uv": [ 5, 0, 11, 16 ], "texture": "#wall" }, + "north": { "uv": [ 5, 3, 11, 16 ], "texture": "#wall", "cullface": "north" }, + "south": { "uv": [ 5, 3, 11, 16 ], "texture": "#wall", "cullface": "south" }, + "west": { "uv": [ 0, 3, 16, 16 ], "texture": "#wall" }, + "east": { "uv": [ 0, 3, 16, 16 ], "texture": "#wall" } + }, + "__comment": "Full wall" + } + ] +} diff --git a/assets/minecraft/models/block/wall_torch.json b/assets/minecraft/models/block/wall_torch.json new file mode 100644 index 00000000..e30eec7f --- /dev/null +++ b/assets/minecraft/models/block/wall_torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_torch_wall", + "textures": { + "torch": "minecraft:block/torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_button.json b/assets/minecraft/models/block/warped_button.json new file mode 100644 index 00000000..bdf5bc88 --- /dev/null +++ b/assets/minecraft/models/block/warped_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_button_inventory.json b/assets/minecraft/models/block/warped_button_inventory.json new file mode 100644 index 00000000..2332270f --- /dev/null +++ b/assets/minecraft/models/block/warped_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_button_pressed.json b/assets/minecraft/models/block/warped_button_pressed.json new file mode 100644 index 00000000..feb58b7a --- /dev/null +++ b/assets/minecraft/models/block/warped_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_bottom_left.json b/assets/minecraft/models/block/warped_door_bottom_left.json new file mode 100644 index 00000000..be46139a --- /dev/null +++ b/assets/minecraft/models/block/warped_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_bottom_left_open.json b/assets/minecraft/models/block/warped_door_bottom_left_open.json new file mode 100644 index 00000000..82a61008 --- /dev/null +++ b/assets/minecraft/models/block/warped_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_bottom_right.json b/assets/minecraft/models/block/warped_door_bottom_right.json new file mode 100644 index 00000000..a094977e --- /dev/null +++ b/assets/minecraft/models/block/warped_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_bottom_right_open.json b/assets/minecraft/models/block/warped_door_bottom_right_open.json new file mode 100644 index 00000000..844828eb --- /dev/null +++ b/assets/minecraft/models/block/warped_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_top_left.json b/assets/minecraft/models/block/warped_door_top_left.json new file mode 100644 index 00000000..0ad4e6ba --- /dev/null +++ b/assets/minecraft/models/block/warped_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_top_left_open.json b/assets/minecraft/models/block/warped_door_top_left_open.json new file mode 100644 index 00000000..350c4532 --- /dev/null +++ b/assets/minecraft/models/block/warped_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_top_right.json b/assets/minecraft/models/block/warped_door_top_right.json new file mode 100644 index 00000000..2340de27 --- /dev/null +++ b/assets/minecraft/models/block/warped_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_door_top_right_open.json b/assets/minecraft/models/block/warped_door_top_right_open.json new file mode 100644 index 00000000..892224d4 --- /dev/null +++ b/assets/minecraft/models/block/warped_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/warped_door_bottom", + "top": "minecraft:block/warped_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fence_gate.json b/assets/minecraft/models/block/warped_fence_gate.json new file mode 100644 index 00000000..11e873be --- /dev/null +++ b/assets/minecraft/models/block/warped_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fence_gate_open.json b/assets/minecraft/models/block/warped_fence_gate_open.json new file mode 100644 index 00000000..f4f3f82d --- /dev/null +++ b/assets/minecraft/models/block/warped_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fence_gate_wall.json b/assets/minecraft/models/block/warped_fence_gate_wall.json new file mode 100644 index 00000000..ad90d153 --- /dev/null +++ b/assets/minecraft/models/block/warped_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fence_gate_wall_open.json b/assets/minecraft/models/block/warped_fence_gate_wall_open.json new file mode 100644 index 00000000..af30e1e6 --- /dev/null +++ b/assets/minecraft/models/block/warped_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fence_inventory.json b/assets/minecraft/models/block/warped_fence_inventory.json new file mode 100644 index 00000000..296e99f9 --- /dev/null +++ b/assets/minecraft/models/block/warped_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fence_post.json b/assets/minecraft/models/block/warped_fence_post.json new file mode 100644 index 00000000..51ef01dd --- /dev/null +++ b/assets/minecraft/models/block/warped_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fence_side.json b/assets/minecraft/models/block/warped_fence_side.json new file mode 100644 index 00000000..6dba3fec --- /dev/null +++ b/assets/minecraft/models/block/warped_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_fungus.json b/assets/minecraft/models/block/warped_fungus.json new file mode 100644 index 00000000..c07b792a --- /dev/null +++ b/assets/minecraft/models/block/warped_fungus.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/warped_fungus" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_hanging_sign.json b/assets/minecraft/models/block/warped_hanging_sign.json new file mode 100644 index 00000000..8d0629a4 --- /dev/null +++ b/assets/minecraft/models/block/warped_hanging_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/stripped_warped_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_hyphae.json b/assets/minecraft/models/block/warped_hyphae.json new file mode 100644 index 00000000..eb9e767f --- /dev/null +++ b/assets/minecraft/models/block/warped_hyphae.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/warped_stem", + "side": "minecraft:block/warped_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_nylium.json b/assets/minecraft/models/block/warped_nylium.json new file mode 100644 index 00000000..2b283233 --- /dev/null +++ b/assets/minecraft/models/block/warped_nylium.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/netherrack", + "side": "minecraft:block/warped_nylium_side", + "top": "minecraft:block/warped_nylium" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_planks.json b/assets/minecraft/models/block/warped_planks.json new file mode 100644 index 00000000..993971b5 --- /dev/null +++ b/assets/minecraft/models/block/warped_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_pressure_plate.json b/assets/minecraft/models/block/warped_pressure_plate.json new file mode 100644 index 00000000..7cf3ebd7 --- /dev/null +++ b/assets/minecraft/models/block/warped_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_pressure_plate_down.json b/assets/minecraft/models/block/warped_pressure_plate_down.json new file mode 100644 index 00000000..1ec67ce3 --- /dev/null +++ b/assets/minecraft/models/block/warped_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_roots.json b/assets/minecraft/models/block/warped_roots.json new file mode 100644 index 00000000..85bc3316 --- /dev/null +++ b/assets/minecraft/models/block/warped_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/warped_roots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_sign.json b/assets/minecraft/models/block/warped_sign.json new file mode 100644 index 00000000..b7b47f67 --- /dev/null +++ b/assets/minecraft/models/block/warped_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_slab.json b/assets/minecraft/models/block/warped_slab.json new file mode 100644 index 00000000..fafb5015 --- /dev/null +++ b/assets/minecraft/models/block/warped_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/warped_planks", + "side": "minecraft:block/warped_planks", + "top": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_slab_top.json b/assets/minecraft/models/block/warped_slab_top.json new file mode 100644 index 00000000..712a48e5 --- /dev/null +++ b/assets/minecraft/models/block/warped_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/warped_planks", + "side": "minecraft:block/warped_planks", + "top": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_stairs.json b/assets/minecraft/models/block/warped_stairs.json new file mode 100644 index 00000000..b18eb1d3 --- /dev/null +++ b/assets/minecraft/models/block/warped_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/warped_planks", + "side": "minecraft:block/warped_planks", + "top": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_stairs_inner.json b/assets/minecraft/models/block/warped_stairs_inner.json new file mode 100644 index 00000000..6641754f --- /dev/null +++ b/assets/minecraft/models/block/warped_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/warped_planks", + "side": "minecraft:block/warped_planks", + "top": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_stairs_outer.json b/assets/minecraft/models/block/warped_stairs_outer.json new file mode 100644 index 00000000..22716e7b --- /dev/null +++ b/assets/minecraft/models/block/warped_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/warped_planks", + "side": "minecraft:block/warped_planks", + "top": "minecraft:block/warped_planks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_stem.json b/assets/minecraft/models/block/warped_stem.json new file mode 100644 index 00000000..2d1fcc34 --- /dev/null +++ b/assets/minecraft/models/block/warped_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "minecraft:block/warped_stem_top", + "side": "minecraft:block/warped_stem" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_trapdoor_bottom.json b/assets/minecraft/models/block/warped_trapdoor_bottom.json new file mode 100644 index 00000000..211b1add --- /dev/null +++ b/assets/minecraft/models/block/warped_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/warped_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_trapdoor_open.json b/assets/minecraft/models/block/warped_trapdoor_open.json new file mode 100644 index 00000000..cfcf7177 --- /dev/null +++ b/assets/minecraft/models/block/warped_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "minecraft:block/warped_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_trapdoor_top.json b/assets/minecraft/models/block/warped_trapdoor_top.json new file mode 100644 index 00000000..daac6db9 --- /dev/null +++ b/assets/minecraft/models/block/warped_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "minecraft:block/warped_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/warped_wart_block.json b/assets/minecraft/models/block/warped_wart_block.json new file mode 100644 index 00000000..7f41d1a5 --- /dev/null +++ b/assets/minecraft/models/block/warped_wart_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/warped_wart_block" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/water.json b/assets/minecraft/models/block/water.json new file mode 100644 index 00000000..75907472 --- /dev/null +++ b/assets/minecraft/models/block/water.json @@ -0,0 +1,6 @@ +{ + "textures": { + "particle": "block/water_still" + } +} + diff --git a/assets/minecraft/models/block/water_cauldron_full.json b/assets/minecraft/models/block/water_cauldron_full.json new file mode 100644 index 00000000..7e246053 --- /dev/null +++ b/assets/minecraft/models/block/water_cauldron_full.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_full", + "textures": { + "bottom": "minecraft:block/cauldron_bottom", + "content": "minecraft:block/water_still", + "inside": "minecraft:block/cauldron_inner", + "particle": "minecraft:block/cauldron_side", + "side": "minecraft:block/cauldron_side", + "top": "minecraft:block/cauldron_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/water_cauldron_level1.json b/assets/minecraft/models/block/water_cauldron_level1.json new file mode 100644 index 00000000..83648ba9 --- /dev/null +++ b/assets/minecraft/models/block/water_cauldron_level1.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_level1", + "textures": { + "bottom": "minecraft:block/cauldron_bottom", + "content": "minecraft:block/water_still", + "inside": "minecraft:block/cauldron_inner", + "particle": "minecraft:block/cauldron_side", + "side": "minecraft:block/cauldron_side", + "top": "minecraft:block/cauldron_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/water_cauldron_level2.json b/assets/minecraft/models/block/water_cauldron_level2.json new file mode 100644 index 00000000..0b19a816 --- /dev/null +++ b/assets/minecraft/models/block/water_cauldron_level2.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_level2", + "textures": { + "bottom": "minecraft:block/cauldron_bottom", + "content": "minecraft:block/water_still", + "inside": "minecraft:block/cauldron_inner", + "particle": "minecraft:block/cauldron_side", + "side": "minecraft:block/cauldron_side", + "top": "minecraft:block/cauldron_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_chiseled_copper.json b/assets/minecraft/models/block/weathered_chiseled_copper.json new file mode 100644 index 00000000..f11c331c --- /dev/null +++ b/assets/minecraft/models/block/weathered_chiseled_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper.json b/assets/minecraft/models/block/weathered_copper.json new file mode 100644 index 00000000..aa42be79 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_bulb.json b/assets/minecraft/models/block/weathered_copper_bulb.json new file mode 100644 index 00000000..442b89ff --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_bulb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_copper_bulb" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_bulb_lit.json b/assets/minecraft/models/block/weathered_copper_bulb_lit.json new file mode 100644 index 00000000..969c5c1d --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_bulb_lit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_copper_bulb_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_bulb_lit_powered.json b/assets/minecraft/models/block/weathered_copper_bulb_lit_powered.json new file mode 100644 index 00000000..1d21a1c6 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_bulb_lit_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_copper_bulb_lit_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_bulb_powered.json b/assets/minecraft/models/block/weathered_copper_bulb_powered.json new file mode 100644 index 00000000..e7068742 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_bulb_powered.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_copper_bulb_powered" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_bottom_left.json b/assets/minecraft/models/block/weathered_copper_door_bottom_left.json new file mode 100644 index 00000000..b833db92 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_bottom_left_open.json b/assets/minecraft/models/block/weathered_copper_door_bottom_left_open.json new file mode 100644 index 00000000..fc40f5cb --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_bottom_right.json b/assets/minecraft/models/block/weathered_copper_door_bottom_right.json new file mode 100644 index 00000000..a9c53139 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_bottom_right_open.json b/assets/minecraft/models/block/weathered_copper_door_bottom_right_open.json new file mode 100644 index 00000000..11845962 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_top_left.json b/assets/minecraft/models/block/weathered_copper_door_top_left.json new file mode 100644 index 00000000..893750c6 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_top_left_open.json b/assets/minecraft/models/block/weathered_copper_door_top_left_open.json new file mode 100644 index 00000000..13aac26a --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_top_right.json b/assets/minecraft/models/block/weathered_copper_door_top_right.json new file mode 100644 index 00000000..19ff9ae3 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_door_top_right_open.json b/assets/minecraft/models/block/weathered_copper_door_top_right_open.json new file mode 100644 index 00000000..4ee27508 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "minecraft:block/weathered_copper_door_bottom", + "top": "minecraft:block/weathered_copper_door_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_grate.json b/assets/minecraft/models/block/weathered_copper_grate.json new file mode 100644 index 00000000..2902a24b --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_grate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_copper_grate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_trapdoor_bottom.json b/assets/minecraft/models/block/weathered_copper_trapdoor_bottom.json new file mode 100644 index 00000000..6bc6f0d6 --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_bottom", + "textures": { + "texture": "minecraft:block/weathered_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_trapdoor_open.json b/assets/minecraft/models/block/weathered_copper_trapdoor_open.json new file mode 100644 index 00000000..a73f59ab --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_open", + "textures": { + "texture": "minecraft:block/weathered_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_copper_trapdoor_top.json b/assets/minecraft/models/block/weathered_copper_trapdoor_top.json new file mode 100644 index 00000000..ebb49ffd --- /dev/null +++ b/assets/minecraft/models/block/weathered_copper_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_trapdoor_top", + "textures": { + "texture": "minecraft:block/weathered_copper_trapdoor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_cut_copper.json b/assets/minecraft/models/block/weathered_cut_copper.json new file mode 100644 index 00000000..061c79cb --- /dev/null +++ b/assets/minecraft/models/block/weathered_cut_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/weathered_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_cut_copper_slab.json b/assets/minecraft/models/block/weathered_cut_copper_slab.json new file mode 100644 index 00000000..e5c0d887 --- /dev/null +++ b/assets/minecraft/models/block/weathered_cut_copper_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "minecraft:block/weathered_cut_copper", + "side": "minecraft:block/weathered_cut_copper", + "top": "minecraft:block/weathered_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_cut_copper_slab_top.json b/assets/minecraft/models/block/weathered_cut_copper_slab_top.json new file mode 100644 index 00000000..82dfb436 --- /dev/null +++ b/assets/minecraft/models/block/weathered_cut_copper_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "minecraft:block/weathered_cut_copper", + "side": "minecraft:block/weathered_cut_copper", + "top": "minecraft:block/weathered_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_cut_copper_stairs.json b/assets/minecraft/models/block/weathered_cut_copper_stairs.json new file mode 100644 index 00000000..db06d2ae --- /dev/null +++ b/assets/minecraft/models/block/weathered_cut_copper_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "minecraft:block/weathered_cut_copper", + "side": "minecraft:block/weathered_cut_copper", + "top": "minecraft:block/weathered_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_cut_copper_stairs_inner.json b/assets/minecraft/models/block/weathered_cut_copper_stairs_inner.json new file mode 100644 index 00000000..4850db43 --- /dev/null +++ b/assets/minecraft/models/block/weathered_cut_copper_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "minecraft:block/weathered_cut_copper", + "side": "minecraft:block/weathered_cut_copper", + "top": "minecraft:block/weathered_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weathered_cut_copper_stairs_outer.json b/assets/minecraft/models/block/weathered_cut_copper_stairs_outer.json new file mode 100644 index 00000000..7804f723 --- /dev/null +++ b/assets/minecraft/models/block/weathered_cut_copper_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "minecraft:block/weathered_cut_copper", + "side": "minecraft:block/weathered_cut_copper", + "top": "minecraft:block/weathered_cut_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weeping_vines.json b/assets/minecraft/models/block/weeping_vines.json new file mode 100644 index 00000000..a675fda1 --- /dev/null +++ b/assets/minecraft/models/block/weeping_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/weeping_vines" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/weeping_vines_plant.json b/assets/minecraft/models/block/weeping_vines_plant.json new file mode 100644 index 00000000..c7a9ae05 --- /dev/null +++ b/assets/minecraft/models/block/weeping_vines_plant.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/weeping_vines_plant" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wet_sponge.json b/assets/minecraft/models/block/wet_sponge.json new file mode 100644 index 00000000..1b0b8a97 --- /dev/null +++ b/assets/minecraft/models/block/wet_sponge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/wet_sponge" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage0.json b/assets/minecraft/models/block/wheat_stage0.json new file mode 100644 index 00000000..8343729c --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage0" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage1.json b/assets/minecraft/models/block/wheat_stage1.json new file mode 100644 index 00000000..1fa14ff8 --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage1" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage2.json b/assets/minecraft/models/block/wheat_stage2.json new file mode 100644 index 00000000..9c2e59a1 --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage2" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage3.json b/assets/minecraft/models/block/wheat_stage3.json new file mode 100644 index 00000000..75b167dd --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage3" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage4.json b/assets/minecraft/models/block/wheat_stage4.json new file mode 100644 index 00000000..3dae7e5e --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage4" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage5.json b/assets/minecraft/models/block/wheat_stage5.json new file mode 100644 index 00000000..1cd7d96b --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage5" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage6.json b/assets/minecraft/models/block/wheat_stage6.json new file mode 100644 index 00000000..7201c51a --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage6" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wheat_stage7.json b/assets/minecraft/models/block/wheat_stage7.json new file mode 100644 index 00000000..492b6715 --- /dev/null +++ b/assets/minecraft/models/block/wheat_stage7.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "minecraft:block/wheat_stage7" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_cake.json b/assets/minecraft/models/block/white_candle_cake.json new file mode 100644 index 00000000..568f818a --- /dev/null +++ b/assets/minecraft/models/block/white_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/white_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_cake_lit.json b/assets/minecraft/models/block/white_candle_cake_lit.json new file mode 100644 index 00000000..6bd9fca0 --- /dev/null +++ b/assets/minecraft/models/block/white_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/white_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_four_candles.json b/assets/minecraft/models/block/white_candle_four_candles.json new file mode 100644 index 00000000..64ad91d2 --- /dev/null +++ b/assets/minecraft/models/block/white_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/white_candle", + "particle": "minecraft:block/white_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_four_candles_lit.json b/assets/minecraft/models/block/white_candle_four_candles_lit.json new file mode 100644 index 00000000..0504735b --- /dev/null +++ b/assets/minecraft/models/block/white_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/white_candle_lit", + "particle": "minecraft:block/white_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_one_candle.json b/assets/minecraft/models/block/white_candle_one_candle.json new file mode 100644 index 00000000..61585d99 --- /dev/null +++ b/assets/minecraft/models/block/white_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/white_candle", + "particle": "minecraft:block/white_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_one_candle_lit.json b/assets/minecraft/models/block/white_candle_one_candle_lit.json new file mode 100644 index 00000000..3a375831 --- /dev/null +++ b/assets/minecraft/models/block/white_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/white_candle_lit", + "particle": "minecraft:block/white_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_three_candles.json b/assets/minecraft/models/block/white_candle_three_candles.json new file mode 100644 index 00000000..fd58e51c --- /dev/null +++ b/assets/minecraft/models/block/white_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/white_candle", + "particle": "minecraft:block/white_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_three_candles_lit.json b/assets/minecraft/models/block/white_candle_three_candles_lit.json new file mode 100644 index 00000000..3c4b7aa7 --- /dev/null +++ b/assets/minecraft/models/block/white_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/white_candle_lit", + "particle": "minecraft:block/white_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_two_candles.json b/assets/minecraft/models/block/white_candle_two_candles.json new file mode 100644 index 00000000..4aa5d640 --- /dev/null +++ b/assets/minecraft/models/block/white_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/white_candle", + "particle": "minecraft:block/white_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_candle_two_candles_lit.json b/assets/minecraft/models/block/white_candle_two_candles_lit.json new file mode 100644 index 00000000..cf27452f --- /dev/null +++ b/assets/minecraft/models/block/white_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/white_candle_lit", + "particle": "minecraft:block/white_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_carpet.json b/assets/minecraft/models/block/white_carpet.json new file mode 100644 index 00000000..08d5186e --- /dev/null +++ b/assets/minecraft/models/block/white_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/white_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_concrete.json b/assets/minecraft/models/block/white_concrete.json new file mode 100644 index 00000000..92188f47 --- /dev/null +++ b/assets/minecraft/models/block/white_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/white_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_concrete_powder.json b/assets/minecraft/models/block/white_concrete_powder.json new file mode 100644 index 00000000..2c8c16b1 --- /dev/null +++ b/assets/minecraft/models/block/white_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/white_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_glazed_terracotta.json b/assets/minecraft/models/block/white_glazed_terracotta.json new file mode 100644 index 00000000..e33fbedc --- /dev/null +++ b/assets/minecraft/models/block/white_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/white_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_shulker_box.json b/assets/minecraft/models/block/white_shulker_box.json new file mode 100644 index 00000000..3a9a58d3 --- /dev/null +++ b/assets/minecraft/models/block/white_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/white_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_stained_glass.json b/assets/minecraft/models/block/white_stained_glass.json new file mode 100644 index 00000000..4e135e3d --- /dev/null +++ b/assets/minecraft/models/block/white_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_stained_glass_pane_noside.json b/assets/minecraft/models/block/white_stained_glass_pane_noside.json new file mode 100644 index 00000000..b854d543 --- /dev/null +++ b/assets/minecraft/models/block/white_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/white_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..a4cf80c3 --- /dev/null +++ b/assets/minecraft/models/block/white_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_stained_glass_pane_post.json b/assets/minecraft/models/block/white_stained_glass_pane_post.json new file mode 100644 index 00000000..5762d3d7 --- /dev/null +++ b/assets/minecraft/models/block/white_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/white_stained_glass_pane_top", + "pane": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_stained_glass_pane_side.json b/assets/minecraft/models/block/white_stained_glass_pane_side.json new file mode 100644 index 00000000..5e5dabbc --- /dev/null +++ b/assets/minecraft/models/block/white_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/white_stained_glass_pane_top", + "pane": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/white_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..8f1f74be --- /dev/null +++ b/assets/minecraft/models/block/white_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/white_stained_glass_pane_top", + "pane": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_terracotta.json b/assets/minecraft/models/block/white_terracotta.json new file mode 100644 index 00000000..eb6bc006 --- /dev/null +++ b/assets/minecraft/models/block/white_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/white_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_tulip.json b/assets/minecraft/models/block/white_tulip.json new file mode 100644 index 00000000..d31ceab8 --- /dev/null +++ b/assets/minecraft/models/block/white_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/white_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/white_wool.json b/assets/minecraft/models/block/white_wool.json new file mode 100644 index 00000000..8af86fa1 --- /dev/null +++ b/assets/minecraft/models/block/white_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/white_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/wither_rose.json b/assets/minecraft/models/block/wither_rose.json new file mode 100644 index 00000000..47089458 --- /dev/null +++ b/assets/minecraft/models/block/wither_rose.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "minecraft:block/wither_rose" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_cake.json b/assets/minecraft/models/block/yellow_candle_cake.json new file mode 100644 index 00000000..f84e4f7c --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_cake.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/yellow_candle", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_cake_lit.json b/assets/minecraft/models/block/yellow_candle_cake_lit.json new file mode 100644 index 00000000..4a3388b0 --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_cake_lit.json @@ -0,0 +1,10 @@ +{ + "parent": "minecraft:block/template_cake_with_candle", + "textures": { + "bottom": "minecraft:block/cake_bottom", + "candle": "minecraft:block/yellow_candle_lit", + "particle": "minecraft:block/cake_side", + "side": "minecraft:block/cake_side", + "top": "minecraft:block/cake_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_four_candles.json b/assets/minecraft/models/block/yellow_candle_four_candles.json new file mode 100644 index 00000000..ee076d7e --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_four_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/yellow_candle", + "particle": "minecraft:block/yellow_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_four_candles_lit.json b/assets/minecraft/models/block/yellow_candle_four_candles_lit.json new file mode 100644 index 00000000..ce1d6844 --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_four_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_candles", + "textures": { + "all": "minecraft:block/yellow_candle_lit", + "particle": "minecraft:block/yellow_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_one_candle.json b/assets/minecraft/models/block/yellow_candle_one_candle.json new file mode 100644 index 00000000..187fb20f --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_one_candle.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/yellow_candle", + "particle": "minecraft:block/yellow_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_one_candle_lit.json b/assets/minecraft/models/block/yellow_candle_one_candle_lit.json new file mode 100644 index 00000000..d4019846 --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_one_candle_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_candle", + "textures": { + "all": "minecraft:block/yellow_candle_lit", + "particle": "minecraft:block/yellow_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_three_candles.json b/assets/minecraft/models/block/yellow_candle_three_candles.json new file mode 100644 index 00000000..69260bbe --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_three_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/yellow_candle", + "particle": "minecraft:block/yellow_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_three_candles_lit.json b/assets/minecraft/models/block/yellow_candle_three_candles_lit.json new file mode 100644 index 00000000..cdbf4fea --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_three_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_three_candles", + "textures": { + "all": "minecraft:block/yellow_candle_lit", + "particle": "minecraft:block/yellow_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_two_candles.json b/assets/minecraft/models/block/yellow_candle_two_candles.json new file mode 100644 index 00000000..1167ec7b --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_two_candles.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/yellow_candle", + "particle": "minecraft:block/yellow_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_candle_two_candles_lit.json b/assets/minecraft/models/block/yellow_candle_two_candles_lit.json new file mode 100644 index 00000000..d53b3866 --- /dev/null +++ b/assets/minecraft/models/block/yellow_candle_two_candles_lit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_two_candles", + "textures": { + "all": "minecraft:block/yellow_candle_lit", + "particle": "minecraft:block/yellow_candle_lit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_carpet.json b/assets/minecraft/models/block/yellow_carpet.json new file mode 100644 index 00000000..7d08c9e1 --- /dev/null +++ b/assets/minecraft/models/block/yellow_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "minecraft:block/yellow_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_concrete.json b/assets/minecraft/models/block/yellow_concrete.json new file mode 100644 index 00000000..b8981524 --- /dev/null +++ b/assets/minecraft/models/block/yellow_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/yellow_concrete" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_concrete_powder.json b/assets/minecraft/models/block/yellow_concrete_powder.json new file mode 100644 index 00000000..8882b67b --- /dev/null +++ b/assets/minecraft/models/block/yellow_concrete_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/yellow_concrete_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_glazed_terracotta.json b/assets/minecraft/models/block/yellow_glazed_terracotta.json new file mode 100644 index 00000000..fa60d0dc --- /dev/null +++ b/assets/minecraft/models/block/yellow_glazed_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glazed_terracotta", + "textures": { + "pattern": "minecraft:block/yellow_glazed_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_shulker_box.json b/assets/minecraft/models/block/yellow_shulker_box.json new file mode 100644 index 00000000..c54fe67c --- /dev/null +++ b/assets/minecraft/models/block/yellow_shulker_box.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/yellow_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_stained_glass.json b/assets/minecraft/models/block/yellow_stained_glass.json new file mode 100644 index 00000000..cd225fdc --- /dev/null +++ b/assets/minecraft/models/block/yellow_stained_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_stained_glass_pane_noside.json b/assets/minecraft/models/block/yellow_stained_glass_pane_noside.json new file mode 100644 index 00000000..d8c22613 --- /dev/null +++ b/assets/minecraft/models/block/yellow_stained_glass_pane_noside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside", + "textures": { + "pane": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_stained_glass_pane_noside_alt.json b/assets/minecraft/models/block/yellow_stained_glass_pane_noside_alt.json new file mode 100644 index 00000000..668a6ef2 --- /dev/null +++ b/assets/minecraft/models/block/yellow_stained_glass_pane_noside_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_glass_pane_noside_alt", + "textures": { + "pane": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_stained_glass_pane_post.json b/assets/minecraft/models/block/yellow_stained_glass_pane_post.json new file mode 100644 index 00000000..e2b57957 --- /dev/null +++ b/assets/minecraft/models/block/yellow_stained_glass_pane_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_post", + "textures": { + "edge": "minecraft:block/yellow_stained_glass_pane_top", + "pane": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_stained_glass_pane_side.json b/assets/minecraft/models/block/yellow_stained_glass_pane_side.json new file mode 100644 index 00000000..2f5a1c2b --- /dev/null +++ b/assets/minecraft/models/block/yellow_stained_glass_pane_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side", + "textures": { + "edge": "minecraft:block/yellow_stained_glass_pane_top", + "pane": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_stained_glass_pane_side_alt.json b/assets/minecraft/models/block/yellow_stained_glass_pane_side_alt.json new file mode 100644 index 00000000..acd867a1 --- /dev/null +++ b/assets/minecraft/models/block/yellow_stained_glass_pane_side_alt.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_glass_pane_side_alt", + "textures": { + "edge": "minecraft:block/yellow_stained_glass_pane_top", + "pane": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_terracotta.json b/assets/minecraft/models/block/yellow_terracotta.json new file mode 100644 index 00000000..8f3e76ee --- /dev/null +++ b/assets/minecraft/models/block/yellow_terracotta.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/yellow_terracotta" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/block/yellow_wool.json b/assets/minecraft/models/block/yellow_wool.json new file mode 100644 index 00000000..2f0dab36 --- /dev/null +++ b/assets/minecraft/models/block/yellow_wool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "minecraft:block/yellow_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_boat.json b/assets/minecraft/models/item/acacia_boat.json new file mode 100644 index 00000000..5b93e986 --- /dev/null +++ b/assets/minecraft/models/item/acacia_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/acacia_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_button.json b/assets/minecraft/models/item/acacia_button.json new file mode 100644 index 00000000..d5affffa --- /dev/null +++ b/assets/minecraft/models/item/acacia_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_chest_boat.json b/assets/minecraft/models/item/acacia_chest_boat.json new file mode 100644 index 00000000..fbac5cb8 --- /dev/null +++ b/assets/minecraft/models/item/acacia_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/acacia_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_door.json b/assets/minecraft/models/item/acacia_door.json new file mode 100644 index 00000000..7ecc5bbd --- /dev/null +++ b/assets/minecraft/models/item/acacia_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/acacia_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_fence.json b/assets/minecraft/models/item/acacia_fence.json new file mode 100644 index 00000000..4db3c891 --- /dev/null +++ b/assets/minecraft/models/item/acacia_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_fence_gate.json b/assets/minecraft/models/item/acacia_fence_gate.json new file mode 100644 index 00000000..f5875533 --- /dev/null +++ b/assets/minecraft/models/item/acacia_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_hanging_sign.json b/assets/minecraft/models/item/acacia_hanging_sign.json new file mode 100644 index 00000000..16c7c403 --- /dev/null +++ b/assets/minecraft/models/item/acacia_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/acacia_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_leaves.json b/assets/minecraft/models/item/acacia_leaves.json new file mode 100644 index 00000000..b1ef8fa9 --- /dev/null +++ b/assets/minecraft/models/item/acacia_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_log.json b/assets/minecraft/models/item/acacia_log.json new file mode 100644 index 00000000..0b9f607e --- /dev/null +++ b/assets/minecraft/models/item/acacia_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_planks.json b/assets/minecraft/models/item/acacia_planks.json new file mode 100644 index 00000000..3c90abef --- /dev/null +++ b/assets/minecraft/models/item/acacia_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_pressure_plate.json b/assets/minecraft/models/item/acacia_pressure_plate.json new file mode 100644 index 00000000..318e49ad --- /dev/null +++ b/assets/minecraft/models/item/acacia_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_sapling.json b/assets/minecraft/models/item/acacia_sapling.json new file mode 100644 index 00000000..89e55791 --- /dev/null +++ b/assets/minecraft/models/item/acacia_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/acacia_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_sign.json b/assets/minecraft/models/item/acacia_sign.json new file mode 100644 index 00000000..05032df9 --- /dev/null +++ b/assets/minecraft/models/item/acacia_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/acacia_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_slab.json b/assets/minecraft/models/item/acacia_slab.json new file mode 100644 index 00000000..bb3480c7 --- /dev/null +++ b/assets/minecraft/models/item/acacia_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_stairs.json b/assets/minecraft/models/item/acacia_stairs.json new file mode 100644 index 00000000..58ab5e2d --- /dev/null +++ b/assets/minecraft/models/item/acacia_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_trapdoor.json b/assets/minecraft/models/item/acacia_trapdoor.json new file mode 100644 index 00000000..701a6862 --- /dev/null +++ b/assets/minecraft/models/item/acacia_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/acacia_wood.json b/assets/minecraft/models/item/acacia_wood.json new file mode 100644 index 00000000..4a5086de --- /dev/null +++ b/assets/minecraft/models/item/acacia_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/acacia_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/activator_rail.json b/assets/minecraft/models/item/activator_rail.json new file mode 100644 index 00000000..9ae2bd07 --- /dev/null +++ b/assets/minecraft/models/item/activator_rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/activator_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/air.json b/assets/minecraft/models/item/air.json new file mode 100644 index 00000000..2c63c085 --- /dev/null +++ b/assets/minecraft/models/item/air.json @@ -0,0 +1,2 @@ +{ +} diff --git a/assets/minecraft/models/item/allay_spawn_egg.json b/assets/minecraft/models/item/allay_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/allay_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/allium.json b/assets/minecraft/models/item/allium.json new file mode 100644 index 00000000..cf132b4b --- /dev/null +++ b/assets/minecraft/models/item/allium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/allium" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/amethyst_block.json b/assets/minecraft/models/item/amethyst_block.json new file mode 100644 index 00000000..b4899515 --- /dev/null +++ b/assets/minecraft/models/item/amethyst_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/amethyst_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/amethyst_bud.json b/assets/minecraft/models/item/amethyst_bud.json new file mode 100644 index 00000000..d3bd6282 --- /dev/null +++ b/assets/minecraft/models/item/amethyst_bud.json @@ -0,0 +1,20 @@ +{ + "parent": "minecraft:item/generated", + "display": { + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 0, 5, 0 ], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "thirdperson_righthand": { + "translation": [ 0, 4, 1 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "head": { + "translation": [ 0, 14, -5 ] + }, + "gui": { + "translation": [ 0, 2, 0 ] + } + } +} diff --git a/assets/minecraft/models/item/amethyst_cluster.json b/assets/minecraft/models/item/amethyst_cluster.json new file mode 100644 index 00000000..abc8c7d3 --- /dev/null +++ b/assets/minecraft/models/item/amethyst_cluster.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/amethyst_cluster" + }, + "display": { + "head": { + "translation": [ 0, 14, -5 ] + } + } +} diff --git a/assets/minecraft/models/item/amethyst_shard.json b/assets/minecraft/models/item/amethyst_shard.json new file mode 100644 index 00000000..a0bab4ff --- /dev/null +++ b/assets/minecraft/models/item/amethyst_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/amethyst_shard" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ancient_debris.json b/assets/minecraft/models/item/ancient_debris.json new file mode 100644 index 00000000..f8c6c3d5 --- /dev/null +++ b/assets/minecraft/models/item/ancient_debris.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/ancient_debris" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/andesite.json b/assets/minecraft/models/item/andesite.json new file mode 100644 index 00000000..d6b76e17 --- /dev/null +++ b/assets/minecraft/models/item/andesite.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/andesite" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/andesite_slab.json b/assets/minecraft/models/item/andesite_slab.json new file mode 100644 index 00000000..4bd78770 --- /dev/null +++ b/assets/minecraft/models/item/andesite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/andesite_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/andesite_stairs.json b/assets/minecraft/models/item/andesite_stairs.json new file mode 100644 index 00000000..03e452df --- /dev/null +++ b/assets/minecraft/models/item/andesite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/andesite_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/andesite_wall.json b/assets/minecraft/models/item/andesite_wall.json new file mode 100644 index 00000000..f10f1ec3 --- /dev/null +++ b/assets/minecraft/models/item/andesite_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/andesite_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/angler_pottery_sherd.json b/assets/minecraft/models/item/angler_pottery_sherd.json new file mode 100644 index 00000000..b805ab21 --- /dev/null +++ b/assets/minecraft/models/item/angler_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/angler_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/anvil.json b/assets/minecraft/models/item/anvil.json new file mode 100644 index 00000000..9168b26b --- /dev/null +++ b/assets/minecraft/models/item/anvil.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/anvil" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/apple.json b/assets/minecraft/models/item/apple.json new file mode 100644 index 00000000..c314b058 --- /dev/null +++ b/assets/minecraft/models/item/apple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/apple" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/archer_pottery_sherd.json b/assets/minecraft/models/item/archer_pottery_sherd.json new file mode 100644 index 00000000..1b73b22d --- /dev/null +++ b/assets/minecraft/models/item/archer_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/archer_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/armadillo_scute.json b/assets/minecraft/models/item/armadillo_scute.json new file mode 100644 index 00000000..ca4d17d0 --- /dev/null +++ b/assets/minecraft/models/item/armadillo_scute.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/armadillo_scute" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/armadillo_spawn_egg.json b/assets/minecraft/models/item/armadillo_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/armadillo_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/armor_stand.json b/assets/minecraft/models/item/armor_stand.json new file mode 100644 index 00000000..f8f34a7b --- /dev/null +++ b/assets/minecraft/models/item/armor_stand.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/armor_stand" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/arms_up_pottery_sherd.json b/assets/minecraft/models/item/arms_up_pottery_sherd.json new file mode 100644 index 00000000..94339d52 --- /dev/null +++ b/assets/minecraft/models/item/arms_up_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/arms_up_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/arrow.json b/assets/minecraft/models/item/arrow.json new file mode 100644 index 00000000..37689ea0 --- /dev/null +++ b/assets/minecraft/models/item/arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/arrow" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/axolotl_bucket.json b/assets/minecraft/models/item/axolotl_bucket.json new file mode 100644 index 00000000..221f7fa6 --- /dev/null +++ b/assets/minecraft/models/item/axolotl_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/axolotl_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/axolotl_spawn_egg.json b/assets/minecraft/models/item/axolotl_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/axolotl_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/azalea.json b/assets/minecraft/models/item/azalea.json new file mode 100644 index 00000000..062330c7 --- /dev/null +++ b/assets/minecraft/models/item/azalea.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/azalea" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/azalea_leaves.json b/assets/minecraft/models/item/azalea_leaves.json new file mode 100644 index 00000000..6b26318b --- /dev/null +++ b/assets/minecraft/models/item/azalea_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/azalea_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/azure_bluet.json b/assets/minecraft/models/item/azure_bluet.json new file mode 100644 index 00000000..5d472515 --- /dev/null +++ b/assets/minecraft/models/item/azure_bluet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/azure_bluet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/baked_potato.json b/assets/minecraft/models/item/baked_potato.json new file mode 100644 index 00000000..b9324fe7 --- /dev/null +++ b/assets/minecraft/models/item/baked_potato.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/baked_potato" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo.json b/assets/minecraft/models/item/bamboo.json new file mode 100644 index 00000000..2a46e1c3 --- /dev/null +++ b/assets/minecraft/models/item/bamboo.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/bamboo" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_block.json b/assets/minecraft/models/item/bamboo_block.json new file mode 100644 index 00000000..f75fac0f --- /dev/null +++ b/assets/minecraft/models/item/bamboo_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_button.json b/assets/minecraft/models/item/bamboo_button.json new file mode 100644 index 00000000..c1152b50 --- /dev/null +++ b/assets/minecraft/models/item/bamboo_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_chest_raft.json b/assets/minecraft/models/item/bamboo_chest_raft.json new file mode 100644 index 00000000..93370902 --- /dev/null +++ b/assets/minecraft/models/item/bamboo_chest_raft.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bamboo_chest_raft" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_door.json b/assets/minecraft/models/item/bamboo_door.json new file mode 100644 index 00000000..ff7c997d --- /dev/null +++ b/assets/minecraft/models/item/bamboo_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bamboo_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_fence.json b/assets/minecraft/models/item/bamboo_fence.json new file mode 100644 index 00000000..2b11ca8c --- /dev/null +++ b/assets/minecraft/models/item/bamboo_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_fence_gate.json b/assets/minecraft/models/item/bamboo_fence_gate.json new file mode 100644 index 00000000..eba9a06e --- /dev/null +++ b/assets/minecraft/models/item/bamboo_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_hanging_sign.json b/assets/minecraft/models/item/bamboo_hanging_sign.json new file mode 100644 index 00000000..a634960a --- /dev/null +++ b/assets/minecraft/models/item/bamboo_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bamboo_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_mosaic.json b/assets/minecraft/models/item/bamboo_mosaic.json new file mode 100644 index 00000000..6892f31f --- /dev/null +++ b/assets/minecraft/models/item/bamboo_mosaic.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_mosaic" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_mosaic_slab.json b/assets/minecraft/models/item/bamboo_mosaic_slab.json new file mode 100644 index 00000000..d7b3e3e2 --- /dev/null +++ b/assets/minecraft/models/item/bamboo_mosaic_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_mosaic_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_mosaic_stairs.json b/assets/minecraft/models/item/bamboo_mosaic_stairs.json new file mode 100644 index 00000000..e6ae86d0 --- /dev/null +++ b/assets/minecraft/models/item/bamboo_mosaic_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_mosaic_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_planks.json b/assets/minecraft/models/item/bamboo_planks.json new file mode 100644 index 00000000..4e591abe --- /dev/null +++ b/assets/minecraft/models/item/bamboo_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_pressure_plate.json b/assets/minecraft/models/item/bamboo_pressure_plate.json new file mode 100644 index 00000000..8a7a0ff5 --- /dev/null +++ b/assets/minecraft/models/item/bamboo_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_raft.json b/assets/minecraft/models/item/bamboo_raft.json new file mode 100644 index 00000000..84ded131 --- /dev/null +++ b/assets/minecraft/models/item/bamboo_raft.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bamboo_raft" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_sign.json b/assets/minecraft/models/item/bamboo_sign.json new file mode 100644 index 00000000..2d6bb57c --- /dev/null +++ b/assets/minecraft/models/item/bamboo_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bamboo_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_slab.json b/assets/minecraft/models/item/bamboo_slab.json new file mode 100644 index 00000000..0d94c19f --- /dev/null +++ b/assets/minecraft/models/item/bamboo_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_stairs.json b/assets/minecraft/models/item/bamboo_stairs.json new file mode 100644 index 00000000..c96c6069 --- /dev/null +++ b/assets/minecraft/models/item/bamboo_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bamboo_trapdoor.json b/assets/minecraft/models/item/bamboo_trapdoor.json new file mode 100644 index 00000000..cd10b18e --- /dev/null +++ b/assets/minecraft/models/item/bamboo_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bamboo_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/barrel.json b/assets/minecraft/models/item/barrel.json new file mode 100644 index 00000000..553ec3e0 --- /dev/null +++ b/assets/minecraft/models/item/barrel.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/barrel" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/barrier.json b/assets/minecraft/models/item/barrier.json new file mode 100644 index 00000000..080cff20 --- /dev/null +++ b/assets/minecraft/models/item/barrier.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/barrier" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/basalt.json b/assets/minecraft/models/item/basalt.json new file mode 100644 index 00000000..eaa67e62 --- /dev/null +++ b/assets/minecraft/models/item/basalt.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/basalt" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bat_spawn_egg.json b/assets/minecraft/models/item/bat_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/bat_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/beacon.json b/assets/minecraft/models/item/beacon.json new file mode 100644 index 00000000..b6a014e6 --- /dev/null +++ b/assets/minecraft/models/item/beacon.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/beacon" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bedrock.json b/assets/minecraft/models/item/bedrock.json new file mode 100644 index 00000000..c1b8427e --- /dev/null +++ b/assets/minecraft/models/item/bedrock.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bedrock" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bee_nest.json b/assets/minecraft/models/item/bee_nest.json new file mode 100644 index 00000000..3298365a --- /dev/null +++ b/assets/minecraft/models/item/bee_nest.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bee_nest" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bee_spawn_egg.json b/assets/minecraft/models/item/bee_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/bee_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/beef.json b/assets/minecraft/models/item/beef.json new file mode 100644 index 00000000..5545b3c8 --- /dev/null +++ b/assets/minecraft/models/item/beef.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/beef" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/beehive.json b/assets/minecraft/models/item/beehive.json new file mode 100644 index 00000000..cf1475c3 --- /dev/null +++ b/assets/minecraft/models/item/beehive.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/beehive" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/beetroot.json b/assets/minecraft/models/item/beetroot.json new file mode 100644 index 00000000..dcc7276a --- /dev/null +++ b/assets/minecraft/models/item/beetroot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/beetroot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/beetroot_seeds.json b/assets/minecraft/models/item/beetroot_seeds.json new file mode 100644 index 00000000..d20b2cd4 --- /dev/null +++ b/assets/minecraft/models/item/beetroot_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/beetroot_seeds" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/beetroot_soup.json b/assets/minecraft/models/item/beetroot_soup.json new file mode 100644 index 00000000..3a0755d6 --- /dev/null +++ b/assets/minecraft/models/item/beetroot_soup.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/beetroot_soup" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bell.json b/assets/minecraft/models/item/bell.json new file mode 100644 index 00000000..fe24c1f4 --- /dev/null +++ b/assets/minecraft/models/item/bell.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bell" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/big_dripleaf.json b/assets/minecraft/models/item/big_dripleaf.json new file mode 100644 index 00000000..56cc7f0e --- /dev/null +++ b/assets/minecraft/models/item/big_dripleaf.json @@ -0,0 +1,25 @@ +{ + "parent": "minecraft:block/big_dripleaf", + "display": { + "gui": { + "rotation": [ 30, 225, 0 ], + "translation": [ 0, -2, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "fixed": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 0, -1 ], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 1, 0 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 1.13, 0, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + } + } +} diff --git a/assets/minecraft/models/item/birch_boat.json b/assets/minecraft/models/item/birch_boat.json new file mode 100644 index 00000000..20f68b32 --- /dev/null +++ b/assets/minecraft/models/item/birch_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/birch_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_button.json b/assets/minecraft/models/item/birch_button.json new file mode 100644 index 00000000..f0065c47 --- /dev/null +++ b/assets/minecraft/models/item/birch_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_chest_boat.json b/assets/minecraft/models/item/birch_chest_boat.json new file mode 100644 index 00000000..b7549aeb --- /dev/null +++ b/assets/minecraft/models/item/birch_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/birch_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_door.json b/assets/minecraft/models/item/birch_door.json new file mode 100644 index 00000000..2b0e4f91 --- /dev/null +++ b/assets/minecraft/models/item/birch_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/birch_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_fence.json b/assets/minecraft/models/item/birch_fence.json new file mode 100644 index 00000000..ca097fb1 --- /dev/null +++ b/assets/minecraft/models/item/birch_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_fence_gate.json b/assets/minecraft/models/item/birch_fence_gate.json new file mode 100644 index 00000000..732026b8 --- /dev/null +++ b/assets/minecraft/models/item/birch_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_hanging_sign.json b/assets/minecraft/models/item/birch_hanging_sign.json new file mode 100644 index 00000000..9d15f706 --- /dev/null +++ b/assets/minecraft/models/item/birch_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/birch_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_leaves.json b/assets/minecraft/models/item/birch_leaves.json new file mode 100644 index 00000000..4f543d46 --- /dev/null +++ b/assets/minecraft/models/item/birch_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_log.json b/assets/minecraft/models/item/birch_log.json new file mode 100644 index 00000000..cd42b0b7 --- /dev/null +++ b/assets/minecraft/models/item/birch_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_planks.json b/assets/minecraft/models/item/birch_planks.json new file mode 100644 index 00000000..06e3a6d3 --- /dev/null +++ b/assets/minecraft/models/item/birch_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_pressure_plate.json b/assets/minecraft/models/item/birch_pressure_plate.json new file mode 100644 index 00000000..e8dfb642 --- /dev/null +++ b/assets/minecraft/models/item/birch_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_sapling.json b/assets/minecraft/models/item/birch_sapling.json new file mode 100644 index 00000000..3c45f3b6 --- /dev/null +++ b/assets/minecraft/models/item/birch_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/birch_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_sign.json b/assets/minecraft/models/item/birch_sign.json new file mode 100644 index 00000000..d10beadc --- /dev/null +++ b/assets/minecraft/models/item/birch_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/birch_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_slab.json b/assets/minecraft/models/item/birch_slab.json new file mode 100644 index 00000000..c17a8e79 --- /dev/null +++ b/assets/minecraft/models/item/birch_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_stairs.json b/assets/minecraft/models/item/birch_stairs.json new file mode 100644 index 00000000..ec8fd2b9 --- /dev/null +++ b/assets/minecraft/models/item/birch_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_trapdoor.json b/assets/minecraft/models/item/birch_trapdoor.json new file mode 100644 index 00000000..7db49741 --- /dev/null +++ b/assets/minecraft/models/item/birch_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/birch_wood.json b/assets/minecraft/models/item/birch_wood.json new file mode 100644 index 00000000..cd1881b0 --- /dev/null +++ b/assets/minecraft/models/item/birch_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/birch_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_banner.json b/assets/minecraft/models/item/black_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/black_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_bed.json b/assets/minecraft/models/item/black_bed.json new file mode 100644 index 00000000..c8757a9a --- /dev/null +++ b/assets/minecraft/models/item/black_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/black_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_candle.json b/assets/minecraft/models/item/black_candle.json new file mode 100644 index 00000000..837c9349 --- /dev/null +++ b/assets/minecraft/models/item/black_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/black_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_carpet.json b/assets/minecraft/models/item/black_carpet.json new file mode 100644 index 00000000..618d2130 --- /dev/null +++ b/assets/minecraft/models/item/black_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/black_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_concrete.json b/assets/minecraft/models/item/black_concrete.json new file mode 100644 index 00000000..eb5aadc3 --- /dev/null +++ b/assets/minecraft/models/item/black_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/black_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_concrete_powder.json b/assets/minecraft/models/item/black_concrete_powder.json new file mode 100644 index 00000000..03af09ea --- /dev/null +++ b/assets/minecraft/models/item/black_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/black_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_dye.json b/assets/minecraft/models/item/black_dye.json new file mode 100644 index 00000000..0502b405 --- /dev/null +++ b/assets/minecraft/models/item/black_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/black_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_glazed_terracotta.json b/assets/minecraft/models/item/black_glazed_terracotta.json new file mode 100644 index 00000000..e1f73ff8 --- /dev/null +++ b/assets/minecraft/models/item/black_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/black_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_shulker_box.json b/assets/minecraft/models/item/black_shulker_box.json new file mode 100644 index 00000000..5f45328d --- /dev/null +++ b/assets/minecraft/models/item/black_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/black_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_stained_glass.json b/assets/minecraft/models/item/black_stained_glass.json new file mode 100644 index 00000000..dfc8fab3 --- /dev/null +++ b/assets/minecraft/models/item/black_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/black_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_stained_glass_pane.json b/assets/minecraft/models/item/black_stained_glass_pane.json new file mode 100644 index 00000000..75081749 --- /dev/null +++ b/assets/minecraft/models/item/black_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/black_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_terracotta.json b/assets/minecraft/models/item/black_terracotta.json new file mode 100644 index 00000000..eee57e8e --- /dev/null +++ b/assets/minecraft/models/item/black_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/black_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/black_wool.json b/assets/minecraft/models/item/black_wool.json new file mode 100644 index 00000000..a0e49abc --- /dev/null +++ b/assets/minecraft/models/item/black_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/black_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blackstone.json b/assets/minecraft/models/item/blackstone.json new file mode 100644 index 00000000..e4defbd6 --- /dev/null +++ b/assets/minecraft/models/item/blackstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blackstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blackstone_slab.json b/assets/minecraft/models/item/blackstone_slab.json new file mode 100644 index 00000000..481376f4 --- /dev/null +++ b/assets/minecraft/models/item/blackstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blackstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blackstone_stairs.json b/assets/minecraft/models/item/blackstone_stairs.json new file mode 100644 index 00000000..83a61e18 --- /dev/null +++ b/assets/minecraft/models/item/blackstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blackstone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blackstone_wall.json b/assets/minecraft/models/item/blackstone_wall.json new file mode 100644 index 00000000..8c2bc6d6 --- /dev/null +++ b/assets/minecraft/models/item/blackstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blackstone_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blade_pottery_sherd.json b/assets/minecraft/models/item/blade_pottery_sherd.json new file mode 100644 index 00000000..0795cc80 --- /dev/null +++ b/assets/minecraft/models/item/blade_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/blade_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blast_furnace.json b/assets/minecraft/models/item/blast_furnace.json new file mode 100644 index 00000000..5189a013 --- /dev/null +++ b/assets/minecraft/models/item/blast_furnace.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blast_furnace" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blaze_powder.json b/assets/minecraft/models/item/blaze_powder.json new file mode 100644 index 00000000..1e735c19 --- /dev/null +++ b/assets/minecraft/models/item/blaze_powder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/blaze_powder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blaze_rod.json b/assets/minecraft/models/item/blaze_rod.json new file mode 100644 index 00000000..2c8c052a --- /dev/null +++ b/assets/minecraft/models/item/blaze_rod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/blaze_rod" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blaze_spawn_egg.json b/assets/minecraft/models/item/blaze_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/blaze_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_banner.json b/assets/minecraft/models/item/blue_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/blue_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_bed.json b/assets/minecraft/models/item/blue_bed.json new file mode 100644 index 00000000..59f7f2ba --- /dev/null +++ b/assets/minecraft/models/item/blue_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/blue_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_candle.json b/assets/minecraft/models/item/blue_candle.json new file mode 100644 index 00000000..e561230f --- /dev/null +++ b/assets/minecraft/models/item/blue_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_carpet.json b/assets/minecraft/models/item/blue_carpet.json new file mode 100644 index 00000000..0ced6287 --- /dev/null +++ b/assets/minecraft/models/item/blue_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_concrete.json b/assets/minecraft/models/item/blue_concrete.json new file mode 100644 index 00000000..4c15897c --- /dev/null +++ b/assets/minecraft/models/item/blue_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_concrete_powder.json b/assets/minecraft/models/item/blue_concrete_powder.json new file mode 100644 index 00000000..e5f13d4a --- /dev/null +++ b/assets/minecraft/models/item/blue_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_dye.json b/assets/minecraft/models/item/blue_dye.json new file mode 100644 index 00000000..4235b598 --- /dev/null +++ b/assets/minecraft/models/item/blue_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/blue_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_glazed_terracotta.json b/assets/minecraft/models/item/blue_glazed_terracotta.json new file mode 100644 index 00000000..f7b0efbb --- /dev/null +++ b/assets/minecraft/models/item/blue_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_ice.json b/assets/minecraft/models/item/blue_ice.json new file mode 100644 index 00000000..86d267e5 --- /dev/null +++ b/assets/minecraft/models/item/blue_ice.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_ice" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_orchid.json b/assets/minecraft/models/item/blue_orchid.json new file mode 100644 index 00000000..13449dc1 --- /dev/null +++ b/assets/minecraft/models/item/blue_orchid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/blue_orchid" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_shulker_box.json b/assets/minecraft/models/item/blue_shulker_box.json new file mode 100644 index 00000000..62a9dfd8 --- /dev/null +++ b/assets/minecraft/models/item/blue_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/blue_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_stained_glass.json b/assets/minecraft/models/item/blue_stained_glass.json new file mode 100644 index 00000000..c3727cd8 --- /dev/null +++ b/assets/minecraft/models/item/blue_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_stained_glass_pane.json b/assets/minecraft/models/item/blue_stained_glass_pane.json new file mode 100644 index 00000000..c4890062 --- /dev/null +++ b/assets/minecraft/models/item/blue_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_terracotta.json b/assets/minecraft/models/item/blue_terracotta.json new file mode 100644 index 00000000..a89b057d --- /dev/null +++ b/assets/minecraft/models/item/blue_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/blue_wool.json b/assets/minecraft/models/item/blue_wool.json new file mode 100644 index 00000000..22458dbd --- /dev/null +++ b/assets/minecraft/models/item/blue_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/blue_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bogged_spawn_egg.json b/assets/minecraft/models/item/bogged_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/bogged_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bolt_armor_trim_smithing_template.json b/assets/minecraft/models/item/bolt_armor_trim_smithing_template.json new file mode 100644 index 00000000..dfaada50 --- /dev/null +++ b/assets/minecraft/models/item/bolt_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bolt_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bone.json b/assets/minecraft/models/item/bone.json new file mode 100644 index 00000000..3063401c --- /dev/null +++ b/assets/minecraft/models/item/bone.json @@ -0,0 +1,13 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "item/bone" + }, + "display": { + "head": { + "rotation": [ 0, 0, -45 ], + "translation": [ 0, -4.5, -6.5], + "scale":[ 1, 1, 1 ] + } + } +} diff --git a/assets/minecraft/models/item/bone_block.json b/assets/minecraft/models/item/bone_block.json new file mode 100644 index 00000000..1374ccda --- /dev/null +++ b/assets/minecraft/models/item/bone_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bone_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bone_meal.json b/assets/minecraft/models/item/bone_meal.json new file mode 100644 index 00000000..60f7c5f0 --- /dev/null +++ b/assets/minecraft/models/item/bone_meal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bone_meal" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/book.json b/assets/minecraft/models/item/book.json new file mode 100644 index 00000000..1ca201bf --- /dev/null +++ b/assets/minecraft/models/item/book.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/book" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bookshelf.json b/assets/minecraft/models/item/bookshelf.json new file mode 100644 index 00000000..57943d42 --- /dev/null +++ b/assets/minecraft/models/item/bookshelf.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bookshelf" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bow.json b/assets/minecraft/models/item/bow.json new file mode 100644 index 00000000..c2128757 --- /dev/null +++ b/assets/minecraft/models/item/bow.json @@ -0,0 +1,50 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/bow" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ -80, 260, -40 ], + "translation": [ -1, -2, 2.5 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "thirdperson_lefthand": { + "rotation": [ -80, -280, 40 ], + "translation": [ -1, -2, 2.5 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -25 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + } + }, + "overrides": [ + { + "predicate": { + "pulling": 1 + }, + "model": "item/bow_pulling_0" + }, + { + "predicate": { + "pulling": 1, + "pull": 0.65 + }, + "model": "item/bow_pulling_1" + }, + { + "predicate": { + "pulling": 1, + "pull": 0.9 + }, + "model": "item/bow_pulling_2" + } + ] +} diff --git a/assets/minecraft/models/item/bow_pulling_0.json b/assets/minecraft/models/item/bow_pulling_0.json new file mode 100644 index 00000000..8a44db20 --- /dev/null +++ b/assets/minecraft/models/item/bow_pulling_0.json @@ -0,0 +1,6 @@ +{ + "parent": "item/bow", + "textures": { + "layer0": "item/bow_pulling_0" + } +} diff --git a/assets/minecraft/models/item/bow_pulling_1.json b/assets/minecraft/models/item/bow_pulling_1.json new file mode 100644 index 00000000..5fd94893 --- /dev/null +++ b/assets/minecraft/models/item/bow_pulling_1.json @@ -0,0 +1,6 @@ +{ + "parent": "item/bow", + "textures": { + "layer0": "item/bow_pulling_1" + } +} diff --git a/assets/minecraft/models/item/bow_pulling_2.json b/assets/minecraft/models/item/bow_pulling_2.json new file mode 100644 index 00000000..8584d5b3 --- /dev/null +++ b/assets/minecraft/models/item/bow_pulling_2.json @@ -0,0 +1,6 @@ +{ + "parent": "item/bow", + "textures": { + "layer0": "item/bow_pulling_2" + } +} diff --git a/assets/minecraft/models/item/bowl.json b/assets/minecraft/models/item/bowl.json new file mode 100644 index 00000000..d6a579ca --- /dev/null +++ b/assets/minecraft/models/item/bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bowl" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brain_coral.json b/assets/minecraft/models/item/brain_coral.json new file mode 100644 index 00000000..68c13d9d --- /dev/null +++ b/assets/minecraft/models/item/brain_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/brain_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brain_coral_block.json b/assets/minecraft/models/item/brain_coral_block.json new file mode 100644 index 00000000..04d112ab --- /dev/null +++ b/assets/minecraft/models/item/brain_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brain_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brain_coral_fan.json b/assets/minecraft/models/item/brain_coral_fan.json new file mode 100644 index 00000000..9b00117a --- /dev/null +++ b/assets/minecraft/models/item/brain_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/brain_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bread.json b/assets/minecraft/models/item/bread.json new file mode 100644 index 00000000..9f62cd75 --- /dev/null +++ b/assets/minecraft/models/item/bread.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bread" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/breeze_rod.json b/assets/minecraft/models/item/breeze_rod.json new file mode 100644 index 00000000..c747ba41 --- /dev/null +++ b/assets/minecraft/models/item/breeze_rod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/breeze_rod" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/breeze_spawn_egg.json b/assets/minecraft/models/item/breeze_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/breeze_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brewer_pottery_sherd.json b/assets/minecraft/models/item/brewer_pottery_sherd.json new file mode 100644 index 00000000..88b36e17 --- /dev/null +++ b/assets/minecraft/models/item/brewer_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/brewer_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brewing_stand.json b/assets/minecraft/models/item/brewing_stand.json new file mode 100644 index 00000000..414f4ecc --- /dev/null +++ b/assets/minecraft/models/item/brewing_stand.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/brewing_stand" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brick.json b/assets/minecraft/models/item/brick.json new file mode 100644 index 00000000..4ba38e86 --- /dev/null +++ b/assets/minecraft/models/item/brick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/brick" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brick_slab.json b/assets/minecraft/models/item/brick_slab.json new file mode 100644 index 00000000..754deec6 --- /dev/null +++ b/assets/minecraft/models/item/brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brick_stairs.json b/assets/minecraft/models/item/brick_stairs.json new file mode 100644 index 00000000..2a2318dc --- /dev/null +++ b/assets/minecraft/models/item/brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brick_wall.json b/assets/minecraft/models/item/brick_wall.json new file mode 100644 index 00000000..52dcc04e --- /dev/null +++ b/assets/minecraft/models/item/brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bricks.json b/assets/minecraft/models/item/bricks.json new file mode 100644 index 00000000..dd257a86 --- /dev/null +++ b/assets/minecraft/models/item/bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/broken_elytra.json b/assets/minecraft/models/item/broken_elytra.json new file mode 100644 index 00000000..ca77df44 --- /dev/null +++ b/assets/minecraft/models/item/broken_elytra.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/broken_elytra" + } +} diff --git a/assets/minecraft/models/item/brown_banner.json b/assets/minecraft/models/item/brown_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/brown_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_bed.json b/assets/minecraft/models/item/brown_bed.json new file mode 100644 index 00000000..fd4abaa0 --- /dev/null +++ b/assets/minecraft/models/item/brown_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/brown_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_candle.json b/assets/minecraft/models/item/brown_candle.json new file mode 100644 index 00000000..0486b281 --- /dev/null +++ b/assets/minecraft/models/item/brown_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/brown_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_carpet.json b/assets/minecraft/models/item/brown_carpet.json new file mode 100644 index 00000000..144ce5ad --- /dev/null +++ b/assets/minecraft/models/item/brown_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_concrete.json b/assets/minecraft/models/item/brown_concrete.json new file mode 100644 index 00000000..7aec153e --- /dev/null +++ b/assets/minecraft/models/item/brown_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_concrete_powder.json b/assets/minecraft/models/item/brown_concrete_powder.json new file mode 100644 index 00000000..e228eaaa --- /dev/null +++ b/assets/minecraft/models/item/brown_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_dye.json b/assets/minecraft/models/item/brown_dye.json new file mode 100644 index 00000000..d9cb87fb --- /dev/null +++ b/assets/minecraft/models/item/brown_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/brown_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_glazed_terracotta.json b/assets/minecraft/models/item/brown_glazed_terracotta.json new file mode 100644 index 00000000..8ed9bac4 --- /dev/null +++ b/assets/minecraft/models/item/brown_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_mushroom.json b/assets/minecraft/models/item/brown_mushroom.json new file mode 100644 index 00000000..f1779d5c --- /dev/null +++ b/assets/minecraft/models/item/brown_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/brown_mushroom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_mushroom_block.json b/assets/minecraft/models/item/brown_mushroom_block.json new file mode 100644 index 00000000..c9d6b06e --- /dev/null +++ b/assets/minecraft/models/item/brown_mushroom_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_mushroom_block_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_shulker_box.json b/assets/minecraft/models/item/brown_shulker_box.json new file mode 100644 index 00000000..c28ee18a --- /dev/null +++ b/assets/minecraft/models/item/brown_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/brown_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_stained_glass.json b/assets/minecraft/models/item/brown_stained_glass.json new file mode 100644 index 00000000..a3aac572 --- /dev/null +++ b/assets/minecraft/models/item/brown_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_stained_glass_pane.json b/assets/minecraft/models/item/brown_stained_glass_pane.json new file mode 100644 index 00000000..0a40ae5f --- /dev/null +++ b/assets/minecraft/models/item/brown_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/brown_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_terracotta.json b/assets/minecraft/models/item/brown_terracotta.json new file mode 100644 index 00000000..17f524a7 --- /dev/null +++ b/assets/minecraft/models/item/brown_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brown_wool.json b/assets/minecraft/models/item/brown_wool.json new file mode 100644 index 00000000..85520a1b --- /dev/null +++ b/assets/minecraft/models/item/brown_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/brown_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/brush.json b/assets/minecraft/models/item/brush.json new file mode 100644 index 00000000..231aa70c --- /dev/null +++ b/assets/minecraft/models/item/brush.json @@ -0,0 +1,43 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/brush" + }, + "display": { + "firstperson_lefthand": { + "rotation": [ 55, -85, 0 ], + "translation": [ 8.0, 0.5, -5.5 ], + "scale": [ 1.0, 1.0, 1.0 ] + }, + "thirdperson_righthand": { + "rotation": [ 0, 0, 45 ], + "translation": [ 0, 4, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 0, -45 ], + "translation": [ 0, 4, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + } + }, + "overrides": [ + { + "predicate": { + "brushing": 0.25 + }, + "model": "item/brush_brushing_0" + }, + { + "predicate": { + "brushing": 0.5 + }, + "model": "item/brush_brushing_1" + }, + { + "predicate": { + "brushing": 0.75 + }, + "model": "item/brush_brushing_2" + } + ] +} diff --git a/assets/minecraft/models/item/brush_brushing_0.json b/assets/minecraft/models/item/brush_brushing_0.json new file mode 100644 index 00000000..67292157 --- /dev/null +++ b/assets/minecraft/models/item/brush_brushing_0.json @@ -0,0 +1,23 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/brush" + }, + "display": { + "firstperson_lefthand": { + "rotation": [ 55, -85, 0 ], + "translation": [ 8.0, 0.5, -5.5 ], + "scale": [ 1.0, 1.0, 1.0 ] + }, + "thirdperson_righthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 4, 2, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 0, 0], + "translation": [ -4, 2, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + } + } +} diff --git a/assets/minecraft/models/item/brush_brushing_1.json b/assets/minecraft/models/item/brush_brushing_1.json new file mode 100644 index 00000000..8973ac98 --- /dev/null +++ b/assets/minecraft/models/item/brush_brushing_1.json @@ -0,0 +1,23 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/brush" + }, + "display": { + "firstperson_lefthand": { + "rotation": [ 55, -85, 0 ], + "translation": [ 8.0, 0.5, -5.5 ], + "scale": [ 1.0, 1.0, 1.0 ] + }, + "thirdperson_righthand": { + "rotation": [ 0, 0, 45 ], + "translation": [ 0, 4, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 0, -45 ], + "translation": [ 0, 4, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + } + } +} diff --git a/assets/minecraft/models/item/brush_brushing_2.json b/assets/minecraft/models/item/brush_brushing_2.json new file mode 100644 index 00000000..729697be --- /dev/null +++ b/assets/minecraft/models/item/brush_brushing_2.json @@ -0,0 +1,23 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/brush" + }, + "display": { + "firstperson_lefthand": { + "rotation": [ 55, -85, 0 ], + "translation": [ 8.0, 0.5, -5.5 ], + "scale": [ 1.0, 1.0, 1.0 ] + }, + "thirdperson_righthand": { + "rotation": [ 0, 0, 90 ], + "translation": [ -4, 2, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 0, -90 ], + "translation": [ 4, 2, 0 ], + "scale": [ 0.9, 0.9, 0.9 ] + } + } +} diff --git a/assets/minecraft/models/item/bubble_coral.json b/assets/minecraft/models/item/bubble_coral.json new file mode 100644 index 00000000..8d8ea3f8 --- /dev/null +++ b/assets/minecraft/models/item/bubble_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/bubble_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bubble_coral_block.json b/assets/minecraft/models/item/bubble_coral_block.json new file mode 100644 index 00000000..05a1309f --- /dev/null +++ b/assets/minecraft/models/item/bubble_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/bubble_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bubble_coral_fan.json b/assets/minecraft/models/item/bubble_coral_fan.json new file mode 100644 index 00000000..40a14416 --- /dev/null +++ b/assets/minecraft/models/item/bubble_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/bubble_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bucket.json b/assets/minecraft/models/item/bucket.json new file mode 100644 index 00000000..727318a4 --- /dev/null +++ b/assets/minecraft/models/item/bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/budding_amethyst.json b/assets/minecraft/models/item/budding_amethyst.json new file mode 100644 index 00000000..c210bd6e --- /dev/null +++ b/assets/minecraft/models/item/budding_amethyst.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/budding_amethyst" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/bundle.json b/assets/minecraft/models/item/bundle.json new file mode 100644 index 00000000..8229ddbd --- /dev/null +++ b/assets/minecraft/models/item/bundle.json @@ -0,0 +1,9 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/bundle" + }, + "overrides": [ + { "predicate": { "filled": 0.0000001 }, "model": "item/bundle_filled" } + ] +} diff --git a/assets/minecraft/models/item/bundle_filled.json b/assets/minecraft/models/item/bundle_filled.json new file mode 100644 index 00000000..cf601f5a --- /dev/null +++ b/assets/minecraft/models/item/bundle_filled.json @@ -0,0 +1,6 @@ +{ + "parent": "item/bundle", + "textures": { + "layer0": "item/bundle_filled" + } +} diff --git a/assets/minecraft/models/item/burn_pottery_sherd.json b/assets/minecraft/models/item/burn_pottery_sherd.json new file mode 100644 index 00000000..1c81d466 --- /dev/null +++ b/assets/minecraft/models/item/burn_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/burn_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cactus.json b/assets/minecraft/models/item/cactus.json new file mode 100644 index 00000000..d1413ecf --- /dev/null +++ b/assets/minecraft/models/item/cactus.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cactus" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cake.json b/assets/minecraft/models/item/cake.json new file mode 100644 index 00000000..70a9bd0a --- /dev/null +++ b/assets/minecraft/models/item/cake.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cake" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/calcite.json b/assets/minecraft/models/item/calcite.json new file mode 100644 index 00000000..11a880b3 --- /dev/null +++ b/assets/minecraft/models/item/calcite.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/calcite" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/calibrated_sculk_sensor.json b/assets/minecraft/models/item/calibrated_sculk_sensor.json new file mode 100644 index 00000000..d99476e5 --- /dev/null +++ b/assets/minecraft/models/item/calibrated_sculk_sensor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/calibrated_sculk_sensor_inactive" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/camel_spawn_egg.json b/assets/minecraft/models/item/camel_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/camel_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/campfire.json b/assets/minecraft/models/item/campfire.json new file mode 100644 index 00000000..8042feb6 --- /dev/null +++ b/assets/minecraft/models/item/campfire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/campfire" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/candle.json b/assets/minecraft/models/item/candle.json new file mode 100644 index 00000000..9e4f4d11 --- /dev/null +++ b/assets/minecraft/models/item/candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/carrot.json b/assets/minecraft/models/item/carrot.json new file mode 100644 index 00000000..3fe4125e --- /dev/null +++ b/assets/minecraft/models/item/carrot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/carrot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/carrot_on_a_stick.json b/assets/minecraft/models/item/carrot_on_a_stick.json new file mode 100644 index 00000000..a768c1f2 --- /dev/null +++ b/assets/minecraft/models/item/carrot_on_a_stick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "minecraft:item/carrot_on_a_stick" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cartography_table.json b/assets/minecraft/models/item/cartography_table.json new file mode 100644 index 00000000..b7fe4e47 --- /dev/null +++ b/assets/minecraft/models/item/cartography_table.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cartography_table" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/carved_pumpkin.json b/assets/minecraft/models/item/carved_pumpkin.json new file mode 100644 index 00000000..54f009c0 --- /dev/null +++ b/assets/minecraft/models/item/carved_pumpkin.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/carved_pumpkin" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cat_spawn_egg.json b/assets/minecraft/models/item/cat_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/cat_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cauldron.json b/assets/minecraft/models/item/cauldron.json new file mode 100644 index 00000000..43b8a248 --- /dev/null +++ b/assets/minecraft/models/item/cauldron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cauldron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cave_spider_spawn_egg.json b/assets/minecraft/models/item/cave_spider_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/cave_spider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chain.json b/assets/minecraft/models/item/chain.json new file mode 100644 index 00000000..c6ed30bf --- /dev/null +++ b/assets/minecraft/models/item/chain.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chain" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chain_command_block.json b/assets/minecraft/models/item/chain_command_block.json new file mode 100644 index 00000000..44af865a --- /dev/null +++ b/assets/minecraft/models/item/chain_command_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chain_command_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots.json b/assets/minecraft/models/item/chainmail_boots.json new file mode 100644 index 00000000..1e54e8c6 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/chainmail_boots_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/chainmail_boots_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/chainmail_boots_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/chainmail_boots_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/chainmail_boots_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/chainmail_boots_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/chainmail_boots_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/chainmail_boots_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/chainmail_boots_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/chainmail_boots_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/chainmail_boots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_amethyst_trim.json b/assets/minecraft/models/item/chainmail_boots_amethyst_trim.json new file mode 100644 index 00000000..14ea3c2b --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_copper_trim.json b/assets/minecraft/models/item/chainmail_boots_copper_trim.json new file mode 100644 index 00000000..d05f56ae --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_diamond_trim.json b/assets/minecraft/models/item/chainmail_boots_diamond_trim.json new file mode 100644 index 00000000..c66f7f1c --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_emerald_trim.json b/assets/minecraft/models/item/chainmail_boots_emerald_trim.json new file mode 100644 index 00000000..748078fe --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_gold_trim.json b/assets/minecraft/models/item/chainmail_boots_gold_trim.json new file mode 100644 index 00000000..6be04b71 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_iron_trim.json b/assets/minecraft/models/item/chainmail_boots_iron_trim.json new file mode 100644 index 00000000..fc71c6d8 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_lapis_trim.json b/assets/minecraft/models/item/chainmail_boots_lapis_trim.json new file mode 100644 index 00000000..105d7c72 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_netherite_trim.json b/assets/minecraft/models/item/chainmail_boots_netherite_trim.json new file mode 100644 index 00000000..ecc9975e --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_quartz_trim.json b/assets/minecraft/models/item/chainmail_boots_quartz_trim.json new file mode 100644 index 00000000..2657964a --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_boots_redstone_trim.json b/assets/minecraft/models/item/chainmail_boots_redstone_trim.json new file mode 100644 index 00000000..48eee019 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_boots_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_boots", + "layer1": "minecraft:trims/items/boots_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate.json b/assets/minecraft/models/item/chainmail_chestplate.json new file mode 100644 index 00000000..0bdb24bb --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/chainmail_chestplate_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/chainmail_chestplate_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/chainmail_chestplate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_amethyst_trim.json b/assets/minecraft/models/item/chainmail_chestplate_amethyst_trim.json new file mode 100644 index 00000000..d3af5184 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_copper_trim.json b/assets/minecraft/models/item/chainmail_chestplate_copper_trim.json new file mode 100644 index 00000000..7c8c3c43 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_diamond_trim.json b/assets/minecraft/models/item/chainmail_chestplate_diamond_trim.json new file mode 100644 index 00000000..374ccdb9 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_emerald_trim.json b/assets/minecraft/models/item/chainmail_chestplate_emerald_trim.json new file mode 100644 index 00000000..3e871cda --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_gold_trim.json b/assets/minecraft/models/item/chainmail_chestplate_gold_trim.json new file mode 100644 index 00000000..cc80f46d --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_iron_trim.json b/assets/minecraft/models/item/chainmail_chestplate_iron_trim.json new file mode 100644 index 00000000..81a5242c --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_lapis_trim.json b/assets/minecraft/models/item/chainmail_chestplate_lapis_trim.json new file mode 100644 index 00000000..865560ab --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_netherite_trim.json b/assets/minecraft/models/item/chainmail_chestplate_netherite_trim.json new file mode 100644 index 00000000..4c9e2289 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_quartz_trim.json b/assets/minecraft/models/item/chainmail_chestplate_quartz_trim.json new file mode 100644 index 00000000..291441ae --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_chestplate_redstone_trim.json b/assets/minecraft/models/item/chainmail_chestplate_redstone_trim.json new file mode 100644 index 00000000..4ee21831 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_chestplate_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet.json b/assets/minecraft/models/item/chainmail_helmet.json new file mode 100644 index 00000000..dc35c600 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/chainmail_helmet_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/chainmail_helmet_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/chainmail_helmet_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/chainmail_helmet_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/chainmail_helmet_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/chainmail_helmet_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/chainmail_helmet_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/chainmail_helmet_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/chainmail_helmet_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/chainmail_helmet_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/chainmail_helmet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_amethyst_trim.json b/assets/minecraft/models/item/chainmail_helmet_amethyst_trim.json new file mode 100644 index 00000000..d1fdcc92 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_copper_trim.json b/assets/minecraft/models/item/chainmail_helmet_copper_trim.json new file mode 100644 index 00000000..ef16e96f --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_diamond_trim.json b/assets/minecraft/models/item/chainmail_helmet_diamond_trim.json new file mode 100644 index 00000000..e004f2d1 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_emerald_trim.json b/assets/minecraft/models/item/chainmail_helmet_emerald_trim.json new file mode 100644 index 00000000..cf1b7fb6 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_gold_trim.json b/assets/minecraft/models/item/chainmail_helmet_gold_trim.json new file mode 100644 index 00000000..c83e5343 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_iron_trim.json b/assets/minecraft/models/item/chainmail_helmet_iron_trim.json new file mode 100644 index 00000000..56b43947 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_lapis_trim.json b/assets/minecraft/models/item/chainmail_helmet_lapis_trim.json new file mode 100644 index 00000000..8cae5aea --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_netherite_trim.json b/assets/minecraft/models/item/chainmail_helmet_netherite_trim.json new file mode 100644 index 00000000..d7b20016 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_quartz_trim.json b/assets/minecraft/models/item/chainmail_helmet_quartz_trim.json new file mode 100644 index 00000000..83b8eba2 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_helmet_redstone_trim.json b/assets/minecraft/models/item/chainmail_helmet_redstone_trim.json new file mode 100644 index 00000000..03406139 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_helmet_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_helmet", + "layer1": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings.json b/assets/minecraft/models/item/chainmail_leggings.json new file mode 100644 index 00000000..23bebc65 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/chainmail_leggings_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/chainmail_leggings_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/chainmail_leggings_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/chainmail_leggings_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/chainmail_leggings_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/chainmail_leggings_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/chainmail_leggings_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/chainmail_leggings_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/chainmail_leggings_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/chainmail_leggings_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/chainmail_leggings" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_amethyst_trim.json b/assets/minecraft/models/item/chainmail_leggings_amethyst_trim.json new file mode 100644 index 00000000..7c1b0e8f --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_copper_trim.json b/assets/minecraft/models/item/chainmail_leggings_copper_trim.json new file mode 100644 index 00000000..51018983 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_diamond_trim.json b/assets/minecraft/models/item/chainmail_leggings_diamond_trim.json new file mode 100644 index 00000000..6344872e --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_emerald_trim.json b/assets/minecraft/models/item/chainmail_leggings_emerald_trim.json new file mode 100644 index 00000000..747b1f3a --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_gold_trim.json b/assets/minecraft/models/item/chainmail_leggings_gold_trim.json new file mode 100644 index 00000000..4d23f057 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_iron_trim.json b/assets/minecraft/models/item/chainmail_leggings_iron_trim.json new file mode 100644 index 00000000..71034c60 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_lapis_trim.json b/assets/minecraft/models/item/chainmail_leggings_lapis_trim.json new file mode 100644 index 00000000..d54897c6 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_netherite_trim.json b/assets/minecraft/models/item/chainmail_leggings_netherite_trim.json new file mode 100644 index 00000000..ff14a387 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_quartz_trim.json b/assets/minecraft/models/item/chainmail_leggings_quartz_trim.json new file mode 100644 index 00000000..97a0aa84 --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chainmail_leggings_redstone_trim.json b/assets/minecraft/models/item/chainmail_leggings_redstone_trim.json new file mode 100644 index 00000000..8117e44a --- /dev/null +++ b/assets/minecraft/models/item/chainmail_leggings_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chainmail_leggings", + "layer1": "minecraft:trims/items/leggings_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/charcoal.json b/assets/minecraft/models/item/charcoal.json new file mode 100644 index 00000000..d5022235 --- /dev/null +++ b/assets/minecraft/models/item/charcoal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/charcoal" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_boat.json b/assets/minecraft/models/item/cherry_boat.json new file mode 100644 index 00000000..dae18f87 --- /dev/null +++ b/assets/minecraft/models/item/cherry_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cherry_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_button.json b/assets/minecraft/models/item/cherry_button.json new file mode 100644 index 00000000..bec3bdc6 --- /dev/null +++ b/assets/minecraft/models/item/cherry_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_chest_boat.json b/assets/minecraft/models/item/cherry_chest_boat.json new file mode 100644 index 00000000..3be1e98f --- /dev/null +++ b/assets/minecraft/models/item/cherry_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cherry_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_door.json b/assets/minecraft/models/item/cherry_door.json new file mode 100644 index 00000000..bd650f60 --- /dev/null +++ b/assets/minecraft/models/item/cherry_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cherry_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_fence.json b/assets/minecraft/models/item/cherry_fence.json new file mode 100644 index 00000000..ffe1fb32 --- /dev/null +++ b/assets/minecraft/models/item/cherry_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_fence_gate.json b/assets/minecraft/models/item/cherry_fence_gate.json new file mode 100644 index 00000000..b4137071 --- /dev/null +++ b/assets/minecraft/models/item/cherry_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_hanging_sign.json b/assets/minecraft/models/item/cherry_hanging_sign.json new file mode 100644 index 00000000..0d513d12 --- /dev/null +++ b/assets/minecraft/models/item/cherry_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cherry_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_leaves.json b/assets/minecraft/models/item/cherry_leaves.json new file mode 100644 index 00000000..0b0683e9 --- /dev/null +++ b/assets/minecraft/models/item/cherry_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_log.json b/assets/minecraft/models/item/cherry_log.json new file mode 100644 index 00000000..7aceccbd --- /dev/null +++ b/assets/minecraft/models/item/cherry_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_planks.json b/assets/minecraft/models/item/cherry_planks.json new file mode 100644 index 00000000..d4f8dfef --- /dev/null +++ b/assets/minecraft/models/item/cherry_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_pressure_plate.json b/assets/minecraft/models/item/cherry_pressure_plate.json new file mode 100644 index 00000000..b207b042 --- /dev/null +++ b/assets/minecraft/models/item/cherry_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_sapling.json b/assets/minecraft/models/item/cherry_sapling.json new file mode 100644 index 00000000..44470b53 --- /dev/null +++ b/assets/minecraft/models/item/cherry_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/cherry_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_sign.json b/assets/minecraft/models/item/cherry_sign.json new file mode 100644 index 00000000..e82a317d --- /dev/null +++ b/assets/minecraft/models/item/cherry_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cherry_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_slab.json b/assets/minecraft/models/item/cherry_slab.json new file mode 100644 index 00000000..50774910 --- /dev/null +++ b/assets/minecraft/models/item/cherry_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_stairs.json b/assets/minecraft/models/item/cherry_stairs.json new file mode 100644 index 00000000..df08ac73 --- /dev/null +++ b/assets/minecraft/models/item/cherry_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_trapdoor.json b/assets/minecraft/models/item/cherry_trapdoor.json new file mode 100644 index 00000000..19daaafa --- /dev/null +++ b/assets/minecraft/models/item/cherry_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cherry_wood.json b/assets/minecraft/models/item/cherry_wood.json new file mode 100644 index 00000000..71e59d45 --- /dev/null +++ b/assets/minecraft/models/item/cherry_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cherry_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chest.json b/assets/minecraft/models/item/chest.json new file mode 100644 index 00000000..cdfd5488 --- /dev/null +++ b/assets/minecraft/models/item/chest.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "block/oak_planks" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/assets/minecraft/models/item/chest_minecart.json b/assets/minecraft/models/item/chest_minecart.json new file mode 100644 index 00000000..bacac30e --- /dev/null +++ b/assets/minecraft/models/item/chest_minecart.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chest_minecart" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chicken.json b/assets/minecraft/models/item/chicken.json new file mode 100644 index 00000000..661e00ac --- /dev/null +++ b/assets/minecraft/models/item/chicken.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chicken" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chicken_spawn_egg.json b/assets/minecraft/models/item/chicken_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/chicken_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chipped_anvil.json b/assets/minecraft/models/item/chipped_anvil.json new file mode 100644 index 00000000..46804e59 --- /dev/null +++ b/assets/minecraft/models/item/chipped_anvil.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chipped_anvil" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_bookshelf.json b/assets/minecraft/models/item/chiseled_bookshelf.json new file mode 100644 index 00000000..90befea8 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_bookshelf.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_bookshelf_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_copper.json b/assets/minecraft/models/item/chiseled_copper.json new file mode 100644 index 00000000..b88e810b --- /dev/null +++ b/assets/minecraft/models/item/chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_deepslate.json b/assets/minecraft/models/item/chiseled_deepslate.json new file mode 100644 index 00000000..811f62f9 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_deepslate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_nether_bricks.json b/assets/minecraft/models/item/chiseled_nether_bricks.json new file mode 100644 index 00000000..fb134fe3 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_nether_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_nether_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_polished_blackstone.json b/assets/minecraft/models/item/chiseled_polished_blackstone.json new file mode 100644 index 00000000..a2615345 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_polished_blackstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_polished_blackstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_quartz_block.json b/assets/minecraft/models/item/chiseled_quartz_block.json new file mode 100644 index 00000000..f8b20616 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_quartz_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_quartz_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_red_sandstone.json b/assets/minecraft/models/item/chiseled_red_sandstone.json new file mode 100644 index 00000000..e3ded796 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_red_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_red_sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_sandstone.json b/assets/minecraft/models/item/chiseled_sandstone.json new file mode 100644 index 00000000..f6261725 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_stone_bricks.json b/assets/minecraft/models/item/chiseled_stone_bricks.json new file mode 100644 index 00000000..ac7e5e66 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_tuff.json b/assets/minecraft/models/item/chiseled_tuff.json new file mode 100644 index 00000000..845bc289 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_tuff.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_tuff" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chiseled_tuff_bricks.json b/assets/minecraft/models/item/chiseled_tuff_bricks.json new file mode 100644 index 00000000..6bea9351 --- /dev/null +++ b/assets/minecraft/models/item/chiseled_tuff_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_tuff_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chorus_flower.json b/assets/minecraft/models/item/chorus_flower.json new file mode 100644 index 00000000..dc807298 --- /dev/null +++ b/assets/minecraft/models/item/chorus_flower.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chorus_flower" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chorus_fruit.json b/assets/minecraft/models/item/chorus_fruit.json new file mode 100644 index 00000000..8c84c4f3 --- /dev/null +++ b/assets/minecraft/models/item/chorus_fruit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/chorus_fruit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/chorus_plant.json b/assets/minecraft/models/item/chorus_plant.json new file mode 100644 index 00000000..b0741a69 --- /dev/null +++ b/assets/minecraft/models/item/chorus_plant.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chorus_plant" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clay.json b/assets/minecraft/models/item/clay.json new file mode 100644 index 00000000..2510d78a --- /dev/null +++ b/assets/minecraft/models/item/clay.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/clay" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clay_ball.json b/assets/minecraft/models/item/clay_ball.json new file mode 100644 index 00000000..1cfb12b5 --- /dev/null +++ b/assets/minecraft/models/item/clay_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clay_ball" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock.json b/assets/minecraft/models/item/clock.json new file mode 100644 index 00000000..407b8aa7 --- /dev/null +++ b/assets/minecraft/models/item/clock.json @@ -0,0 +1,73 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/clock_00" + }, + "overrides": [ + { "predicate": { "time": 0.0000000 }, "model": "item/clock" }, + { "predicate": { "time": 0.0078125 }, "model": "item/clock_01" }, + { "predicate": { "time": 0.0234375 }, "model": "item/clock_02" }, + { "predicate": { "time": 0.0390625 }, "model": "item/clock_03" }, + { "predicate": { "time": 0.0546875 }, "model": "item/clock_04" }, + { "predicate": { "time": 0.0703125 }, "model": "item/clock_05" }, + { "predicate": { "time": 0.0859375 }, "model": "item/clock_06" }, + { "predicate": { "time": 0.1015625 }, "model": "item/clock_07" }, + { "predicate": { "time": 0.1171875 }, "model": "item/clock_08" }, + { "predicate": { "time": 0.1328125 }, "model": "item/clock_09" }, + { "predicate": { "time": 0.1484375 }, "model": "item/clock_10" }, + { "predicate": { "time": 0.1640625 }, "model": "item/clock_11" }, + { "predicate": { "time": 0.1796875 }, "model": "item/clock_12" }, + { "predicate": { "time": 0.1953125 }, "model": "item/clock_13" }, + { "predicate": { "time": 0.2109375 }, "model": "item/clock_14" }, + { "predicate": { "time": 0.2265625 }, "model": "item/clock_15" }, + { "predicate": { "time": 0.2421875 }, "model": "item/clock_16" }, + { "predicate": { "time": 0.2578125 }, "model": "item/clock_17" }, + { "predicate": { "time": 0.2734375 }, "model": "item/clock_18" }, + { "predicate": { "time": 0.2890625 }, "model": "item/clock_19" }, + { "predicate": { "time": 0.3046875 }, "model": "item/clock_20" }, + { "predicate": { "time": 0.3203125 }, "model": "item/clock_21" }, + { "predicate": { "time": 0.3359375 }, "model": "item/clock_22" }, + { "predicate": { "time": 0.3515625 }, "model": "item/clock_23" }, + { "predicate": { "time": 0.3671875 }, "model": "item/clock_24" }, + { "predicate": { "time": 0.3828125 }, "model": "item/clock_25" }, + { "predicate": { "time": 0.3984375 }, "model": "item/clock_26" }, + { "predicate": { "time": 0.4140625 }, "model": "item/clock_27" }, + { "predicate": { "time": 0.4296875 }, "model": "item/clock_28" }, + { "predicate": { "time": 0.4453125 }, "model": "item/clock_29" }, + { "predicate": { "time": 0.4609375 }, "model": "item/clock_30" }, + { "predicate": { "time": 0.4765625 }, "model": "item/clock_31" }, + { "predicate": { "time": 0.4921875 }, "model": "item/clock_32" }, + { "predicate": { "time": 0.5078125 }, "model": "item/clock_33" }, + { "predicate": { "time": 0.5234375 }, "model": "item/clock_34" }, + { "predicate": { "time": 0.5390625 }, "model": "item/clock_35" }, + { "predicate": { "time": 0.5546875 }, "model": "item/clock_36" }, + { "predicate": { "time": 0.5703125 }, "model": "item/clock_37" }, + { "predicate": { "time": 0.5859375 }, "model": "item/clock_38" }, + { "predicate": { "time": 0.6015625 }, "model": "item/clock_39" }, + { "predicate": { "time": 0.6171875 }, "model": "item/clock_40" }, + { "predicate": { "time": 0.6328125 }, "model": "item/clock_41" }, + { "predicate": { "time": 0.6484375 }, "model": "item/clock_42" }, + { "predicate": { "time": 0.6640625 }, "model": "item/clock_43" }, + { "predicate": { "time": 0.6796875 }, "model": "item/clock_44" }, + { "predicate": { "time": 0.6953125 }, "model": "item/clock_45" }, + { "predicate": { "time": 0.7109375 }, "model": "item/clock_46" }, + { "predicate": { "time": 0.7265625 }, "model": "item/clock_47" }, + { "predicate": { "time": 0.7421875 }, "model": "item/clock_48" }, + { "predicate": { "time": 0.7578125 }, "model": "item/clock_49" }, + { "predicate": { "time": 0.7734375 }, "model": "item/clock_50" }, + { "predicate": { "time": 0.7890625 }, "model": "item/clock_51" }, + { "predicate": { "time": 0.8046875 }, "model": "item/clock_52" }, + { "predicate": { "time": 0.8203125 }, "model": "item/clock_53" }, + { "predicate": { "time": 0.8359375 }, "model": "item/clock_54" }, + { "predicate": { "time": 0.8515625 }, "model": "item/clock_55" }, + { "predicate": { "time": 0.8671875 }, "model": "item/clock_56" }, + { "predicate": { "time": 0.8828125 }, "model": "item/clock_57" }, + { "predicate": { "time": 0.8984375 }, "model": "item/clock_58" }, + { "predicate": { "time": 0.9140625 }, "model": "item/clock_59" }, + { "predicate": { "time": 0.9296875 }, "model": "item/clock_60" }, + { "predicate": { "time": 0.9453125 }, "model": "item/clock_61" }, + { "predicate": { "time": 0.9609375 }, "model": "item/clock_62" }, + { "predicate": { "time": 0.9765625 }, "model": "item/clock_63" }, + { "predicate": { "time": 0.9921875 }, "model": "item/clock" } + ] +} diff --git a/assets/minecraft/models/item/clock_01.json b/assets/minecraft/models/item/clock_01.json new file mode 100644 index 00000000..fc6b6293 --- /dev/null +++ b/assets/minecraft/models/item/clock_01.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_01" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_02.json b/assets/minecraft/models/item/clock_02.json new file mode 100644 index 00000000..329f07c4 --- /dev/null +++ b/assets/minecraft/models/item/clock_02.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_02" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_03.json b/assets/minecraft/models/item/clock_03.json new file mode 100644 index 00000000..2f727967 --- /dev/null +++ b/assets/minecraft/models/item/clock_03.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_03" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_04.json b/assets/minecraft/models/item/clock_04.json new file mode 100644 index 00000000..a29f6293 --- /dev/null +++ b/assets/minecraft/models/item/clock_04.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_04" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_05.json b/assets/minecraft/models/item/clock_05.json new file mode 100644 index 00000000..c054a610 --- /dev/null +++ b/assets/minecraft/models/item/clock_05.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_05" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_06.json b/assets/minecraft/models/item/clock_06.json new file mode 100644 index 00000000..45d346d6 --- /dev/null +++ b/assets/minecraft/models/item/clock_06.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_06" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_07.json b/assets/minecraft/models/item/clock_07.json new file mode 100644 index 00000000..6e218b17 --- /dev/null +++ b/assets/minecraft/models/item/clock_07.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_07" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_08.json b/assets/minecraft/models/item/clock_08.json new file mode 100644 index 00000000..5bacb1d1 --- /dev/null +++ b/assets/minecraft/models/item/clock_08.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_08" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_09.json b/assets/minecraft/models/item/clock_09.json new file mode 100644 index 00000000..af1b9d9e --- /dev/null +++ b/assets/minecraft/models/item/clock_09.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_09" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_10.json b/assets/minecraft/models/item/clock_10.json new file mode 100644 index 00000000..f4c66214 --- /dev/null +++ b/assets/minecraft/models/item/clock_10.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_10" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_11.json b/assets/minecraft/models/item/clock_11.json new file mode 100644 index 00000000..9ddde2ec --- /dev/null +++ b/assets/minecraft/models/item/clock_11.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_11" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_12.json b/assets/minecraft/models/item/clock_12.json new file mode 100644 index 00000000..42cdfdde --- /dev/null +++ b/assets/minecraft/models/item/clock_12.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_12" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_13.json b/assets/minecraft/models/item/clock_13.json new file mode 100644 index 00000000..a81db14b --- /dev/null +++ b/assets/minecraft/models/item/clock_13.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_13" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_14.json b/assets/minecraft/models/item/clock_14.json new file mode 100644 index 00000000..5eb2e365 --- /dev/null +++ b/assets/minecraft/models/item/clock_14.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_14" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_15.json b/assets/minecraft/models/item/clock_15.json new file mode 100644 index 00000000..34b71c53 --- /dev/null +++ b/assets/minecraft/models/item/clock_15.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_15" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_16.json b/assets/minecraft/models/item/clock_16.json new file mode 100644 index 00000000..6ad0e2c4 --- /dev/null +++ b/assets/minecraft/models/item/clock_16.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_16" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_17.json b/assets/minecraft/models/item/clock_17.json new file mode 100644 index 00000000..ce468808 --- /dev/null +++ b/assets/minecraft/models/item/clock_17.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_17" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_18.json b/assets/minecraft/models/item/clock_18.json new file mode 100644 index 00000000..ecda55f2 --- /dev/null +++ b/assets/minecraft/models/item/clock_18.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_18" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_19.json b/assets/minecraft/models/item/clock_19.json new file mode 100644 index 00000000..750bf76e --- /dev/null +++ b/assets/minecraft/models/item/clock_19.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_19" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_20.json b/assets/minecraft/models/item/clock_20.json new file mode 100644 index 00000000..aa1136d5 --- /dev/null +++ b/assets/minecraft/models/item/clock_20.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_20" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_21.json b/assets/minecraft/models/item/clock_21.json new file mode 100644 index 00000000..aabcd130 --- /dev/null +++ b/assets/minecraft/models/item/clock_21.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_21" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_22.json b/assets/minecraft/models/item/clock_22.json new file mode 100644 index 00000000..0c9cfe8e --- /dev/null +++ b/assets/minecraft/models/item/clock_22.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_22" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_23.json b/assets/minecraft/models/item/clock_23.json new file mode 100644 index 00000000..18752a4c --- /dev/null +++ b/assets/minecraft/models/item/clock_23.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_23" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_24.json b/assets/minecraft/models/item/clock_24.json new file mode 100644 index 00000000..7e875df9 --- /dev/null +++ b/assets/minecraft/models/item/clock_24.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_24" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_25.json b/assets/minecraft/models/item/clock_25.json new file mode 100644 index 00000000..4c939e6a --- /dev/null +++ b/assets/minecraft/models/item/clock_25.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_25" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_26.json b/assets/minecraft/models/item/clock_26.json new file mode 100644 index 00000000..8039bdef --- /dev/null +++ b/assets/minecraft/models/item/clock_26.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_26" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_27.json b/assets/minecraft/models/item/clock_27.json new file mode 100644 index 00000000..76fd7d6e --- /dev/null +++ b/assets/minecraft/models/item/clock_27.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_27" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_28.json b/assets/minecraft/models/item/clock_28.json new file mode 100644 index 00000000..ef5c699b --- /dev/null +++ b/assets/minecraft/models/item/clock_28.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_28" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_29.json b/assets/minecraft/models/item/clock_29.json new file mode 100644 index 00000000..f95d697f --- /dev/null +++ b/assets/minecraft/models/item/clock_29.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_29" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_30.json b/assets/minecraft/models/item/clock_30.json new file mode 100644 index 00000000..328a5161 --- /dev/null +++ b/assets/minecraft/models/item/clock_30.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_30" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_31.json b/assets/minecraft/models/item/clock_31.json new file mode 100644 index 00000000..28b91d10 --- /dev/null +++ b/assets/minecraft/models/item/clock_31.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_31" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_32.json b/assets/minecraft/models/item/clock_32.json new file mode 100644 index 00000000..c6d18099 --- /dev/null +++ b/assets/minecraft/models/item/clock_32.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_32" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_33.json b/assets/minecraft/models/item/clock_33.json new file mode 100644 index 00000000..c5a1932f --- /dev/null +++ b/assets/minecraft/models/item/clock_33.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_33" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_34.json b/assets/minecraft/models/item/clock_34.json new file mode 100644 index 00000000..584f10d3 --- /dev/null +++ b/assets/minecraft/models/item/clock_34.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_34" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_35.json b/assets/minecraft/models/item/clock_35.json new file mode 100644 index 00000000..aad78040 --- /dev/null +++ b/assets/minecraft/models/item/clock_35.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_35" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_36.json b/assets/minecraft/models/item/clock_36.json new file mode 100644 index 00000000..d1a8c92b --- /dev/null +++ b/assets/minecraft/models/item/clock_36.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_36" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_37.json b/assets/minecraft/models/item/clock_37.json new file mode 100644 index 00000000..ef30c823 --- /dev/null +++ b/assets/minecraft/models/item/clock_37.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_37" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_38.json b/assets/minecraft/models/item/clock_38.json new file mode 100644 index 00000000..243825ac --- /dev/null +++ b/assets/minecraft/models/item/clock_38.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_38" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_39.json b/assets/minecraft/models/item/clock_39.json new file mode 100644 index 00000000..59de1c0a --- /dev/null +++ b/assets/minecraft/models/item/clock_39.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_39" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_40.json b/assets/minecraft/models/item/clock_40.json new file mode 100644 index 00000000..1c629d8f --- /dev/null +++ b/assets/minecraft/models/item/clock_40.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_40" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_41.json b/assets/minecraft/models/item/clock_41.json new file mode 100644 index 00000000..646d162e --- /dev/null +++ b/assets/minecraft/models/item/clock_41.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_41" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_42.json b/assets/minecraft/models/item/clock_42.json new file mode 100644 index 00000000..8f3f38d1 --- /dev/null +++ b/assets/minecraft/models/item/clock_42.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_42" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_43.json b/assets/minecraft/models/item/clock_43.json new file mode 100644 index 00000000..4930ee49 --- /dev/null +++ b/assets/minecraft/models/item/clock_43.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_43" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_44.json b/assets/minecraft/models/item/clock_44.json new file mode 100644 index 00000000..e98964da --- /dev/null +++ b/assets/minecraft/models/item/clock_44.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_44" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_45.json b/assets/minecraft/models/item/clock_45.json new file mode 100644 index 00000000..dd8a50ea --- /dev/null +++ b/assets/minecraft/models/item/clock_45.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_45" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_46.json b/assets/minecraft/models/item/clock_46.json new file mode 100644 index 00000000..7bc0f9be --- /dev/null +++ b/assets/minecraft/models/item/clock_46.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_46" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_47.json b/assets/minecraft/models/item/clock_47.json new file mode 100644 index 00000000..97835fac --- /dev/null +++ b/assets/minecraft/models/item/clock_47.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_47" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_48.json b/assets/minecraft/models/item/clock_48.json new file mode 100644 index 00000000..61740813 --- /dev/null +++ b/assets/minecraft/models/item/clock_48.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_48" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_49.json b/assets/minecraft/models/item/clock_49.json new file mode 100644 index 00000000..3c6067e6 --- /dev/null +++ b/assets/minecraft/models/item/clock_49.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_49" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_50.json b/assets/minecraft/models/item/clock_50.json new file mode 100644 index 00000000..3e30e1d8 --- /dev/null +++ b/assets/minecraft/models/item/clock_50.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_50" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_51.json b/assets/minecraft/models/item/clock_51.json new file mode 100644 index 00000000..45af5151 --- /dev/null +++ b/assets/minecraft/models/item/clock_51.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_51" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_52.json b/assets/minecraft/models/item/clock_52.json new file mode 100644 index 00000000..9a28ead0 --- /dev/null +++ b/assets/minecraft/models/item/clock_52.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_52" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_53.json b/assets/minecraft/models/item/clock_53.json new file mode 100644 index 00000000..85176573 --- /dev/null +++ b/assets/minecraft/models/item/clock_53.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_53" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_54.json b/assets/minecraft/models/item/clock_54.json new file mode 100644 index 00000000..096b67a5 --- /dev/null +++ b/assets/minecraft/models/item/clock_54.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_54" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_55.json b/assets/minecraft/models/item/clock_55.json new file mode 100644 index 00000000..730b22c0 --- /dev/null +++ b/assets/minecraft/models/item/clock_55.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_55" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_56.json b/assets/minecraft/models/item/clock_56.json new file mode 100644 index 00000000..ad087180 --- /dev/null +++ b/assets/minecraft/models/item/clock_56.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_56" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_57.json b/assets/minecraft/models/item/clock_57.json new file mode 100644 index 00000000..47711b17 --- /dev/null +++ b/assets/minecraft/models/item/clock_57.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_57" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_58.json b/assets/minecraft/models/item/clock_58.json new file mode 100644 index 00000000..420370ea --- /dev/null +++ b/assets/minecraft/models/item/clock_58.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_58" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_59.json b/assets/minecraft/models/item/clock_59.json new file mode 100644 index 00000000..d8ca2ed3 --- /dev/null +++ b/assets/minecraft/models/item/clock_59.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_59" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_60.json b/assets/minecraft/models/item/clock_60.json new file mode 100644 index 00000000..2b50d056 --- /dev/null +++ b/assets/minecraft/models/item/clock_60.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_60" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_61.json b/assets/minecraft/models/item/clock_61.json new file mode 100644 index 00000000..c0cba965 --- /dev/null +++ b/assets/minecraft/models/item/clock_61.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_61" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_62.json b/assets/minecraft/models/item/clock_62.json new file mode 100644 index 00000000..cb92524b --- /dev/null +++ b/assets/minecraft/models/item/clock_62.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_62" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/clock_63.json b/assets/minecraft/models/item/clock_63.json new file mode 100644 index 00000000..db6691c9 --- /dev/null +++ b/assets/minecraft/models/item/clock_63.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/clock_63" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/coal.json b/assets/minecraft/models/item/coal.json new file mode 100644 index 00000000..551d462e --- /dev/null +++ b/assets/minecraft/models/item/coal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/coal" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/coal_block.json b/assets/minecraft/models/item/coal_block.json new file mode 100644 index 00000000..ee242673 --- /dev/null +++ b/assets/minecraft/models/item/coal_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/coal_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/coal_ore.json b/assets/minecraft/models/item/coal_ore.json new file mode 100644 index 00000000..d6971d35 --- /dev/null +++ b/assets/minecraft/models/item/coal_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/coal_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/coarse_dirt.json b/assets/minecraft/models/item/coarse_dirt.json new file mode 100644 index 00000000..797b7cc7 --- /dev/null +++ b/assets/minecraft/models/item/coarse_dirt.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/coarse_dirt" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/coast_armor_trim_smithing_template.json b/assets/minecraft/models/item/coast_armor_trim_smithing_template.json new file mode 100644 index 00000000..598b27c8 --- /dev/null +++ b/assets/minecraft/models/item/coast_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/coast_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobbled_deepslate.json b/assets/minecraft/models/item/cobbled_deepslate.json new file mode 100644 index 00000000..aceda4d8 --- /dev/null +++ b/assets/minecraft/models/item/cobbled_deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobbled_deepslate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobbled_deepslate_slab.json b/assets/minecraft/models/item/cobbled_deepslate_slab.json new file mode 100644 index 00000000..a4ea4d2d --- /dev/null +++ b/assets/minecraft/models/item/cobbled_deepslate_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobbled_deepslate_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobbled_deepslate_stairs.json b/assets/minecraft/models/item/cobbled_deepslate_stairs.json new file mode 100644 index 00000000..054c8e6c --- /dev/null +++ b/assets/minecraft/models/item/cobbled_deepslate_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobbled_deepslate_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobbled_deepslate_wall.json b/assets/minecraft/models/item/cobbled_deepslate_wall.json new file mode 100644 index 00000000..25b44645 --- /dev/null +++ b/assets/minecraft/models/item/cobbled_deepslate_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobbled_deepslate_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobblestone.json b/assets/minecraft/models/item/cobblestone.json new file mode 100644 index 00000000..35e828df --- /dev/null +++ b/assets/minecraft/models/item/cobblestone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobblestone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobblestone_slab.json b/assets/minecraft/models/item/cobblestone_slab.json new file mode 100644 index 00000000..701123f0 --- /dev/null +++ b/assets/minecraft/models/item/cobblestone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobblestone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobblestone_stairs.json b/assets/minecraft/models/item/cobblestone_stairs.json new file mode 100644 index 00000000..48910bcc --- /dev/null +++ b/assets/minecraft/models/item/cobblestone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobblestone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobblestone_wall.json b/assets/minecraft/models/item/cobblestone_wall.json new file mode 100644 index 00000000..5c603a85 --- /dev/null +++ b/assets/minecraft/models/item/cobblestone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobblestone_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cobweb.json b/assets/minecraft/models/item/cobweb.json new file mode 100644 index 00000000..64ebc0bd --- /dev/null +++ b/assets/minecraft/models/item/cobweb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/cobweb" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cocoa_beans.json b/assets/minecraft/models/item/cocoa_beans.json new file mode 100644 index 00000000..cb83b5d4 --- /dev/null +++ b/assets/minecraft/models/item/cocoa_beans.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cocoa_beans" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cod.json b/assets/minecraft/models/item/cod.json new file mode 100644 index 00000000..a36ba0c8 --- /dev/null +++ b/assets/minecraft/models/item/cod.json @@ -0,0 +1,13 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/cod" + }, + "display": { + "head": { + "rotation": [ 0, 90, -60 ], + "translation": [ -7, -4, -7], + "scale":[ 0.8, 0.8, 0.8] + } + } +} diff --git a/assets/minecraft/models/item/cod_bucket.json b/assets/minecraft/models/item/cod_bucket.json new file mode 100644 index 00000000..35c4ca0f --- /dev/null +++ b/assets/minecraft/models/item/cod_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cod_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cod_spawn_egg.json b/assets/minecraft/models/item/cod_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/cod_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/command_block.json b/assets/minecraft/models/item/command_block.json new file mode 100644 index 00000000..43605276 --- /dev/null +++ b/assets/minecraft/models/item/command_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/command_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/command_block_minecart.json b/assets/minecraft/models/item/command_block_minecart.json new file mode 100644 index 00000000..7a3cf69b --- /dev/null +++ b/assets/minecraft/models/item/command_block_minecart.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/command_block_minecart" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/comparator.json b/assets/minecraft/models/item/comparator.json new file mode 100644 index 00000000..6aa4fbe2 --- /dev/null +++ b/assets/minecraft/models/item/comparator.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/comparator" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass.json b/assets/minecraft/models/item/compass.json new file mode 100644 index 00000000..ec66bb16 --- /dev/null +++ b/assets/minecraft/models/item/compass.json @@ -0,0 +1,41 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/compass_16" + }, + "overrides": [ + { "predicate": { "angle": 0.000000 }, "model": "item/compass" }, + { "predicate": { "angle": 0.015625 }, "model": "item/compass_17" }, + { "predicate": { "angle": 0.046875 }, "model": "item/compass_18" }, + { "predicate": { "angle": 0.078125 }, "model": "item/compass_19" }, + { "predicate": { "angle": 0.109375 }, "model": "item/compass_20" }, + { "predicate": { "angle": 0.140625 }, "model": "item/compass_21" }, + { "predicate": { "angle": 0.171875 }, "model": "item/compass_22" }, + { "predicate": { "angle": 0.203125 }, "model": "item/compass_23" }, + { "predicate": { "angle": 0.234375 }, "model": "item/compass_24" }, + { "predicate": { "angle": 0.265625 }, "model": "item/compass_25" }, + { "predicate": { "angle": 0.296875 }, "model": "item/compass_26" }, + { "predicate": { "angle": 0.328125 }, "model": "item/compass_27" }, + { "predicate": { "angle": 0.359375 }, "model": "item/compass_28" }, + { "predicate": { "angle": 0.390625 }, "model": "item/compass_29" }, + { "predicate": { "angle": 0.421875 }, "model": "item/compass_30" }, + { "predicate": { "angle": 0.453125 }, "model": "item/compass_31" }, + { "predicate": { "angle": 0.484375 }, "model": "item/compass_00" }, + { "predicate": { "angle": 0.515625 }, "model": "item/compass_01" }, + { "predicate": { "angle": 0.546875 }, "model": "item/compass_02" }, + { "predicate": { "angle": 0.578125 }, "model": "item/compass_03" }, + { "predicate": { "angle": 0.609375 }, "model": "item/compass_04" }, + { "predicate": { "angle": 0.640625 }, "model": "item/compass_05" }, + { "predicate": { "angle": 0.671875 }, "model": "item/compass_06" }, + { "predicate": { "angle": 0.703125 }, "model": "item/compass_07" }, + { "predicate": { "angle": 0.734375 }, "model": "item/compass_08" }, + { "predicate": { "angle": 0.765625 }, "model": "item/compass_09" }, + { "predicate": { "angle": 0.796875 }, "model": "item/compass_10" }, + { "predicate": { "angle": 0.828125 }, "model": "item/compass_11" }, + { "predicate": { "angle": 0.859375 }, "model": "item/compass_12" }, + { "predicate": { "angle": 0.890625 }, "model": "item/compass_13" }, + { "predicate": { "angle": 0.921875 }, "model": "item/compass_14" }, + { "predicate": { "angle": 0.953125 }, "model": "item/compass_15" }, + { "predicate": { "angle": 0.984375 }, "model": "item/compass" } + ] +} diff --git a/assets/minecraft/models/item/compass_00.json b/assets/minecraft/models/item/compass_00.json new file mode 100644 index 00000000..dc856843 --- /dev/null +++ b/assets/minecraft/models/item/compass_00.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_00" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_01.json b/assets/minecraft/models/item/compass_01.json new file mode 100644 index 00000000..75d4178d --- /dev/null +++ b/assets/minecraft/models/item/compass_01.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_01" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_02.json b/assets/minecraft/models/item/compass_02.json new file mode 100644 index 00000000..b91b4ba8 --- /dev/null +++ b/assets/minecraft/models/item/compass_02.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_02" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_03.json b/assets/minecraft/models/item/compass_03.json new file mode 100644 index 00000000..10bf34a6 --- /dev/null +++ b/assets/minecraft/models/item/compass_03.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_03" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_04.json b/assets/minecraft/models/item/compass_04.json new file mode 100644 index 00000000..cf2e7eb7 --- /dev/null +++ b/assets/minecraft/models/item/compass_04.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_04" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_05.json b/assets/minecraft/models/item/compass_05.json new file mode 100644 index 00000000..e78ede9c --- /dev/null +++ b/assets/minecraft/models/item/compass_05.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_05" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_06.json b/assets/minecraft/models/item/compass_06.json new file mode 100644 index 00000000..3679f229 --- /dev/null +++ b/assets/minecraft/models/item/compass_06.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_06" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_07.json b/assets/minecraft/models/item/compass_07.json new file mode 100644 index 00000000..37c1d310 --- /dev/null +++ b/assets/minecraft/models/item/compass_07.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_07" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_08.json b/assets/minecraft/models/item/compass_08.json new file mode 100644 index 00000000..706d7fb8 --- /dev/null +++ b/assets/minecraft/models/item/compass_08.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_08" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_09.json b/assets/minecraft/models/item/compass_09.json new file mode 100644 index 00000000..1a0dd1a3 --- /dev/null +++ b/assets/minecraft/models/item/compass_09.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_09" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_10.json b/assets/minecraft/models/item/compass_10.json new file mode 100644 index 00000000..965ec560 --- /dev/null +++ b/assets/minecraft/models/item/compass_10.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_10" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_11.json b/assets/minecraft/models/item/compass_11.json new file mode 100644 index 00000000..dde2e559 --- /dev/null +++ b/assets/minecraft/models/item/compass_11.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_11" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_12.json b/assets/minecraft/models/item/compass_12.json new file mode 100644 index 00000000..ffe3aa7d --- /dev/null +++ b/assets/minecraft/models/item/compass_12.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_12" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_13.json b/assets/minecraft/models/item/compass_13.json new file mode 100644 index 00000000..985d2d38 --- /dev/null +++ b/assets/minecraft/models/item/compass_13.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_13" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_14.json b/assets/minecraft/models/item/compass_14.json new file mode 100644 index 00000000..27fc108b --- /dev/null +++ b/assets/minecraft/models/item/compass_14.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_14" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_15.json b/assets/minecraft/models/item/compass_15.json new file mode 100644 index 00000000..0b72926e --- /dev/null +++ b/assets/minecraft/models/item/compass_15.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_15" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_17.json b/assets/minecraft/models/item/compass_17.json new file mode 100644 index 00000000..ddcb506f --- /dev/null +++ b/assets/minecraft/models/item/compass_17.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_17" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_18.json b/assets/minecraft/models/item/compass_18.json new file mode 100644 index 00000000..5f47bcdb --- /dev/null +++ b/assets/minecraft/models/item/compass_18.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_18" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_19.json b/assets/minecraft/models/item/compass_19.json new file mode 100644 index 00000000..25689471 --- /dev/null +++ b/assets/minecraft/models/item/compass_19.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_19" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_20.json b/assets/minecraft/models/item/compass_20.json new file mode 100644 index 00000000..26b95b33 --- /dev/null +++ b/assets/minecraft/models/item/compass_20.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_20" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_21.json b/assets/minecraft/models/item/compass_21.json new file mode 100644 index 00000000..0948b81a --- /dev/null +++ b/assets/minecraft/models/item/compass_21.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_21" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_22.json b/assets/minecraft/models/item/compass_22.json new file mode 100644 index 00000000..a594efd2 --- /dev/null +++ b/assets/minecraft/models/item/compass_22.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_22" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_23.json b/assets/minecraft/models/item/compass_23.json new file mode 100644 index 00000000..8e7b9c00 --- /dev/null +++ b/assets/minecraft/models/item/compass_23.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_23" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_24.json b/assets/minecraft/models/item/compass_24.json new file mode 100644 index 00000000..b9bba903 --- /dev/null +++ b/assets/minecraft/models/item/compass_24.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_24" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_25.json b/assets/minecraft/models/item/compass_25.json new file mode 100644 index 00000000..b896c210 --- /dev/null +++ b/assets/minecraft/models/item/compass_25.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_25" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_26.json b/assets/minecraft/models/item/compass_26.json new file mode 100644 index 00000000..8c6c7aac --- /dev/null +++ b/assets/minecraft/models/item/compass_26.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_26" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_27.json b/assets/minecraft/models/item/compass_27.json new file mode 100644 index 00000000..f5e26c56 --- /dev/null +++ b/assets/minecraft/models/item/compass_27.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_27" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_28.json b/assets/minecraft/models/item/compass_28.json new file mode 100644 index 00000000..7a766cfd --- /dev/null +++ b/assets/minecraft/models/item/compass_28.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_28" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_29.json b/assets/minecraft/models/item/compass_29.json new file mode 100644 index 00000000..990c9054 --- /dev/null +++ b/assets/minecraft/models/item/compass_29.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_29" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_30.json b/assets/minecraft/models/item/compass_30.json new file mode 100644 index 00000000..725443ad --- /dev/null +++ b/assets/minecraft/models/item/compass_30.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_30" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/compass_31.json b/assets/minecraft/models/item/compass_31.json new file mode 100644 index 00000000..bbbd539f --- /dev/null +++ b/assets/minecraft/models/item/compass_31.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/compass_31" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/composter.json b/assets/minecraft/models/item/composter.json new file mode 100644 index 00000000..a8a9be3b --- /dev/null +++ b/assets/minecraft/models/item/composter.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/composter" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/conduit.json b/assets/minecraft/models/item/conduit.json new file mode 100644 index 00000000..f5785cdf --- /dev/null +++ b/assets/minecraft/models/item/conduit.json @@ -0,0 +1,38 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "block/conduit" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1.0, 1.0, 1.0 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.5, 0.5, 0.5 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.8, 0.8, 0.8 ] + } + } +} diff --git a/assets/minecraft/models/item/cooked_beef.json b/assets/minecraft/models/item/cooked_beef.json new file mode 100644 index 00000000..2360514a --- /dev/null +++ b/assets/minecraft/models/item/cooked_beef.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cooked_beef" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cooked_chicken.json b/assets/minecraft/models/item/cooked_chicken.json new file mode 100644 index 00000000..6608b49c --- /dev/null +++ b/assets/minecraft/models/item/cooked_chicken.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cooked_chicken" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cooked_cod.json b/assets/minecraft/models/item/cooked_cod.json new file mode 100644 index 00000000..ed4d2392 --- /dev/null +++ b/assets/minecraft/models/item/cooked_cod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cooked_cod" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cooked_mutton.json b/assets/minecraft/models/item/cooked_mutton.json new file mode 100644 index 00000000..41455e0e --- /dev/null +++ b/assets/minecraft/models/item/cooked_mutton.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cooked_mutton" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cooked_porkchop.json b/assets/minecraft/models/item/cooked_porkchop.json new file mode 100644 index 00000000..85a6bb4f --- /dev/null +++ b/assets/minecraft/models/item/cooked_porkchop.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cooked_porkchop" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cooked_rabbit.json b/assets/minecraft/models/item/cooked_rabbit.json new file mode 100644 index 00000000..7217b8a8 --- /dev/null +++ b/assets/minecraft/models/item/cooked_rabbit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cooked_rabbit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cooked_salmon.json b/assets/minecraft/models/item/cooked_salmon.json new file mode 100644 index 00000000..d4be30a7 --- /dev/null +++ b/assets/minecraft/models/item/cooked_salmon.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cooked_salmon" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cookie.json b/assets/minecraft/models/item/cookie.json new file mode 100644 index 00000000..c1addfd8 --- /dev/null +++ b/assets/minecraft/models/item/cookie.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cookie" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/copper_block.json b/assets/minecraft/models/item/copper_block.json new file mode 100644 index 00000000..7bc2c018 --- /dev/null +++ b/assets/minecraft/models/item/copper_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/copper_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/copper_bulb.json b/assets/minecraft/models/item/copper_bulb.json new file mode 100644 index 00000000..bdf2e175 --- /dev/null +++ b/assets/minecraft/models/item/copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/copper_door.json b/assets/minecraft/models/item/copper_door.json new file mode 100644 index 00000000..88468c6b --- /dev/null +++ b/assets/minecraft/models/item/copper_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/copper_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/copper_grate.json b/assets/minecraft/models/item/copper_grate.json new file mode 100644 index 00000000..f4cff513 --- /dev/null +++ b/assets/minecraft/models/item/copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/copper_ingot.json b/assets/minecraft/models/item/copper_ingot.json new file mode 100644 index 00000000..c8feae64 --- /dev/null +++ b/assets/minecraft/models/item/copper_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/copper_ingot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/copper_ore.json b/assets/minecraft/models/item/copper_ore.json new file mode 100644 index 00000000..773d4593 --- /dev/null +++ b/assets/minecraft/models/item/copper_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/copper_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/copper_trapdoor.json b/assets/minecraft/models/item/copper_trapdoor.json new file mode 100644 index 00000000..77db2f8d --- /dev/null +++ b/assets/minecraft/models/item/copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/copper_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cornflower.json b/assets/minecraft/models/item/cornflower.json new file mode 100644 index 00000000..ca317c8b --- /dev/null +++ b/assets/minecraft/models/item/cornflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/cornflower" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cow_spawn_egg.json b/assets/minecraft/models/item/cow_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/cow_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cracked_deepslate_bricks.json b/assets/minecraft/models/item/cracked_deepslate_bricks.json new file mode 100644 index 00000000..5edc2399 --- /dev/null +++ b/assets/minecraft/models/item/cracked_deepslate_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cracked_deepslate_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cracked_deepslate_tiles.json b/assets/minecraft/models/item/cracked_deepslate_tiles.json new file mode 100644 index 00000000..9fc7a8c0 --- /dev/null +++ b/assets/minecraft/models/item/cracked_deepslate_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cracked_deepslate_tiles" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cracked_nether_bricks.json b/assets/minecraft/models/item/cracked_nether_bricks.json new file mode 100644 index 00000000..09da8a18 --- /dev/null +++ b/assets/minecraft/models/item/cracked_nether_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cracked_nether_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cracked_polished_blackstone_bricks.json b/assets/minecraft/models/item/cracked_polished_blackstone_bricks.json new file mode 100644 index 00000000..87b9f26e --- /dev/null +++ b/assets/minecraft/models/item/cracked_polished_blackstone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cracked_polished_blackstone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cracked_stone_bricks.json b/assets/minecraft/models/item/cracked_stone_bricks.json new file mode 100644 index 00000000..46802074 --- /dev/null +++ b/assets/minecraft/models/item/cracked_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cracked_stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crafter.json b/assets/minecraft/models/item/crafter.json new file mode 100644 index 00000000..65fda300 --- /dev/null +++ b/assets/minecraft/models/item/crafter.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crafter" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crafting_table.json b/assets/minecraft/models/item/crafting_table.json new file mode 100644 index 00000000..323e84b6 --- /dev/null +++ b/assets/minecraft/models/item/crafting_table.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crafting_table" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/creeper_banner_pattern.json b/assets/minecraft/models/item/creeper_banner_pattern.json new file mode 100644 index 00000000..d626b731 --- /dev/null +++ b/assets/minecraft/models/item/creeper_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/creeper_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/creeper_head.json b/assets/minecraft/models/item/creeper_head.json new file mode 100644 index 00000000..364b6e65 --- /dev/null +++ b/assets/minecraft/models/item/creeper_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/creeper_spawn_egg.json b/assets/minecraft/models/item/creeper_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/creeper_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_button.json b/assets/minecraft/models/item/crimson_button.json new file mode 100644 index 00000000..f58c71fc --- /dev/null +++ b/assets/minecraft/models/item/crimson_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_door.json b/assets/minecraft/models/item/crimson_door.json new file mode 100644 index 00000000..ef94c1cc --- /dev/null +++ b/assets/minecraft/models/item/crimson_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/crimson_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_fence.json b/assets/minecraft/models/item/crimson_fence.json new file mode 100644 index 00000000..3bdd71d1 --- /dev/null +++ b/assets/minecraft/models/item/crimson_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_fence_gate.json b/assets/minecraft/models/item/crimson_fence_gate.json new file mode 100644 index 00000000..36ef1c8c --- /dev/null +++ b/assets/minecraft/models/item/crimson_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_fungus.json b/assets/minecraft/models/item/crimson_fungus.json new file mode 100644 index 00000000..6fdfd2fa --- /dev/null +++ b/assets/minecraft/models/item/crimson_fungus.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/crimson_fungus" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_hanging_sign.json b/assets/minecraft/models/item/crimson_hanging_sign.json new file mode 100644 index 00000000..47d3729d --- /dev/null +++ b/assets/minecraft/models/item/crimson_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/crimson_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_hyphae.json b/assets/minecraft/models/item/crimson_hyphae.json new file mode 100644 index 00000000..6efe4610 --- /dev/null +++ b/assets/minecraft/models/item/crimson_hyphae.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_hyphae" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_nylium.json b/assets/minecraft/models/item/crimson_nylium.json new file mode 100644 index 00000000..74f93924 --- /dev/null +++ b/assets/minecraft/models/item/crimson_nylium.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_nylium" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_planks.json b/assets/minecraft/models/item/crimson_planks.json new file mode 100644 index 00000000..759128e1 --- /dev/null +++ b/assets/minecraft/models/item/crimson_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_pressure_plate.json b/assets/minecraft/models/item/crimson_pressure_plate.json new file mode 100644 index 00000000..436b0ba9 --- /dev/null +++ b/assets/minecraft/models/item/crimson_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_roots.json b/assets/minecraft/models/item/crimson_roots.json new file mode 100644 index 00000000..19ea0092 --- /dev/null +++ b/assets/minecraft/models/item/crimson_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/crimson_roots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_sign.json b/assets/minecraft/models/item/crimson_sign.json new file mode 100644 index 00000000..3d2a86b7 --- /dev/null +++ b/assets/minecraft/models/item/crimson_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/crimson_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_slab.json b/assets/minecraft/models/item/crimson_slab.json new file mode 100644 index 00000000..63ad2927 --- /dev/null +++ b/assets/minecraft/models/item/crimson_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_stairs.json b/assets/minecraft/models/item/crimson_stairs.json new file mode 100644 index 00000000..9cefb2d2 --- /dev/null +++ b/assets/minecraft/models/item/crimson_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_stem.json b/assets/minecraft/models/item/crimson_stem.json new file mode 100644 index 00000000..56d2001d --- /dev/null +++ b/assets/minecraft/models/item/crimson_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_stem" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crimson_trapdoor.json b/assets/minecraft/models/item/crimson_trapdoor.json new file mode 100644 index 00000000..b1cba031 --- /dev/null +++ b/assets/minecraft/models/item/crimson_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crimson_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/crossbow.json b/assets/minecraft/models/item/crossbow.json new file mode 100644 index 00000000..0cddcac4 --- /dev/null +++ b/assets/minecraft/models/item/crossbow.json @@ -0,0 +1,63 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/crossbow_standby" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ -90, 0, -60 ], + "translation": [ 2, 0.1, -3 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "thirdperson_lefthand": { + "rotation": [ -90, 0, 30 ], + "translation": [ 2, 0.1, -3 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "firstperson_righthand": { + "rotation": [ -90, 0, -55 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "firstperson_lefthand": { + "rotation": [ -90, 0, 35 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + } + }, + "overrides": [ + { + "predicate": { + "pulling": 1 + }, + "model": "item/crossbow_pulling_0" + }, + { + "predicate": { + "pulling": 1, + "pull": 0.58 + }, + "model": "item/crossbow_pulling_1" + }, + { + "predicate": { + "pulling": 1, + "pull": 1.0 + }, + "model": "item/crossbow_pulling_2" + }, + { + "predicate": { + "charged": 1 + }, + "model": "item/crossbow_arrow" + }, + { + "predicate": { + "charged": 1, + "firework": 1 + }, + "model": "item/crossbow_firework" + } + ] +} diff --git a/assets/minecraft/models/item/crossbow_arrow.json b/assets/minecraft/models/item/crossbow_arrow.json new file mode 100644 index 00000000..bc3e3543 --- /dev/null +++ b/assets/minecraft/models/item/crossbow_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "item/crossbow", + "textures": { + "layer0": "item/crossbow_arrow" + } +} diff --git a/assets/minecraft/models/item/crossbow_firework.json b/assets/minecraft/models/item/crossbow_firework.json new file mode 100644 index 00000000..1ebe175a --- /dev/null +++ b/assets/minecraft/models/item/crossbow_firework.json @@ -0,0 +1,6 @@ +{ + "parent": "item/crossbow", + "textures": { + "layer0": "item/crossbow_firework" + } +} diff --git a/assets/minecraft/models/item/crossbow_pulling_0.json b/assets/minecraft/models/item/crossbow_pulling_0.json new file mode 100644 index 00000000..afd73b86 --- /dev/null +++ b/assets/minecraft/models/item/crossbow_pulling_0.json @@ -0,0 +1,6 @@ +{ + "parent": "item/crossbow", + "textures": { + "layer0": "item/crossbow_pulling_0" + } +} diff --git a/assets/minecraft/models/item/crossbow_pulling_1.json b/assets/minecraft/models/item/crossbow_pulling_1.json new file mode 100644 index 00000000..1c48a748 --- /dev/null +++ b/assets/minecraft/models/item/crossbow_pulling_1.json @@ -0,0 +1,6 @@ +{ + "parent": "item/crossbow", + "textures": { + "layer0": "item/crossbow_pulling_1" + } +} diff --git a/assets/minecraft/models/item/crossbow_pulling_2.json b/assets/minecraft/models/item/crossbow_pulling_2.json new file mode 100644 index 00000000..3c2df500 --- /dev/null +++ b/assets/minecraft/models/item/crossbow_pulling_2.json @@ -0,0 +1,6 @@ +{ + "parent": "item/crossbow", + "textures": { + "layer0": "item/crossbow_pulling_2" + } +} diff --git a/assets/minecraft/models/item/crying_obsidian.json b/assets/minecraft/models/item/crying_obsidian.json new file mode 100644 index 00000000..0d94bfb8 --- /dev/null +++ b/assets/minecraft/models/item/crying_obsidian.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/crying_obsidian" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cut_copper.json b/assets/minecraft/models/item/cut_copper.json new file mode 100644 index 00000000..ce1ec597 --- /dev/null +++ b/assets/minecraft/models/item/cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cut_copper_slab.json b/assets/minecraft/models/item/cut_copper_slab.json new file mode 100644 index 00000000..b6b05101 --- /dev/null +++ b/assets/minecraft/models/item/cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cut_copper_stairs.json b/assets/minecraft/models/item/cut_copper_stairs.json new file mode 100644 index 00000000..7376f52c --- /dev/null +++ b/assets/minecraft/models/item/cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cut_red_sandstone.json b/assets/minecraft/models/item/cut_red_sandstone.json new file mode 100644 index 00000000..665df158 --- /dev/null +++ b/assets/minecraft/models/item/cut_red_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_red_sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cut_red_sandstone_slab.json b/assets/minecraft/models/item/cut_red_sandstone_slab.json new file mode 100644 index 00000000..7767595c --- /dev/null +++ b/assets/minecraft/models/item/cut_red_sandstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_red_sandstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cut_sandstone.json b/assets/minecraft/models/item/cut_sandstone.json new file mode 100644 index 00000000..865262dc --- /dev/null +++ b/assets/minecraft/models/item/cut_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cut_sandstone_slab.json b/assets/minecraft/models/item/cut_sandstone_slab.json new file mode 100644 index 00000000..cccc0035 --- /dev/null +++ b/assets/minecraft/models/item/cut_sandstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_sandstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_banner.json b/assets/minecraft/models/item/cyan_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/cyan_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_bed.json b/assets/minecraft/models/item/cyan_bed.json new file mode 100644 index 00000000..046fa811 --- /dev/null +++ b/assets/minecraft/models/item/cyan_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/cyan_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_candle.json b/assets/minecraft/models/item/cyan_candle.json new file mode 100644 index 00000000..4b565936 --- /dev/null +++ b/assets/minecraft/models/item/cyan_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cyan_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_carpet.json b/assets/minecraft/models/item/cyan_carpet.json new file mode 100644 index 00000000..f67e7062 --- /dev/null +++ b/assets/minecraft/models/item/cyan_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cyan_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_concrete.json b/assets/minecraft/models/item/cyan_concrete.json new file mode 100644 index 00000000..210de101 --- /dev/null +++ b/assets/minecraft/models/item/cyan_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cyan_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_concrete_powder.json b/assets/minecraft/models/item/cyan_concrete_powder.json new file mode 100644 index 00000000..8fe4c546 --- /dev/null +++ b/assets/minecraft/models/item/cyan_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cyan_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_dye.json b/assets/minecraft/models/item/cyan_dye.json new file mode 100644 index 00000000..634aa6ec --- /dev/null +++ b/assets/minecraft/models/item/cyan_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/cyan_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_glazed_terracotta.json b/assets/minecraft/models/item/cyan_glazed_terracotta.json new file mode 100644 index 00000000..c98c2ac8 --- /dev/null +++ b/assets/minecraft/models/item/cyan_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cyan_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_shulker_box.json b/assets/minecraft/models/item/cyan_shulker_box.json new file mode 100644 index 00000000..e06a479c --- /dev/null +++ b/assets/minecraft/models/item/cyan_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/cyan_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_stained_glass.json b/assets/minecraft/models/item/cyan_stained_glass.json new file mode 100644 index 00000000..8cdd4b93 --- /dev/null +++ b/assets/minecraft/models/item/cyan_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cyan_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_stained_glass_pane.json b/assets/minecraft/models/item/cyan_stained_glass_pane.json new file mode 100644 index 00000000..61db9a4d --- /dev/null +++ b/assets/minecraft/models/item/cyan_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/cyan_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_terracotta.json b/assets/minecraft/models/item/cyan_terracotta.json new file mode 100644 index 00000000..4053734c --- /dev/null +++ b/assets/minecraft/models/item/cyan_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cyan_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/cyan_wool.json b/assets/minecraft/models/item/cyan_wool.json new file mode 100644 index 00000000..30c92e7a --- /dev/null +++ b/assets/minecraft/models/item/cyan_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cyan_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/damaged_anvil.json b/assets/minecraft/models/item/damaged_anvil.json new file mode 100644 index 00000000..657cbd68 --- /dev/null +++ b/assets/minecraft/models/item/damaged_anvil.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/damaged_anvil" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dandelion.json b/assets/minecraft/models/item/dandelion.json new file mode 100644 index 00000000..1628250e --- /dev/null +++ b/assets/minecraft/models/item/dandelion.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dandelion" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/danger_pottery_sherd.json b/assets/minecraft/models/item/danger_pottery_sherd.json new file mode 100644 index 00000000..136b5d96 --- /dev/null +++ b/assets/minecraft/models/item/danger_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/danger_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_boat.json b/assets/minecraft/models/item/dark_oak_boat.json new file mode 100644 index 00000000..66ced796 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dark_oak_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_button.json b/assets/minecraft/models/item/dark_oak_button.json new file mode 100644 index 00000000..f2ff59ba --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_chest_boat.json b/assets/minecraft/models/item/dark_oak_chest_boat.json new file mode 100644 index 00000000..bc981607 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dark_oak_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_door.json b/assets/minecraft/models/item/dark_oak_door.json new file mode 100644 index 00000000..89ad212f --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dark_oak_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_fence.json b/assets/minecraft/models/item/dark_oak_fence.json new file mode 100644 index 00000000..c624d9c9 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_fence_gate.json b/assets/minecraft/models/item/dark_oak_fence_gate.json new file mode 100644 index 00000000..25cbe805 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_hanging_sign.json b/assets/minecraft/models/item/dark_oak_hanging_sign.json new file mode 100644 index 00000000..5d095e98 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dark_oak_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_leaves.json b/assets/minecraft/models/item/dark_oak_leaves.json new file mode 100644 index 00000000..395882a7 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_log.json b/assets/minecraft/models/item/dark_oak_log.json new file mode 100644 index 00000000..6304aefb --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_planks.json b/assets/minecraft/models/item/dark_oak_planks.json new file mode 100644 index 00000000..a3adda1d --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_pressure_plate.json b/assets/minecraft/models/item/dark_oak_pressure_plate.json new file mode 100644 index 00000000..7cd16b9d --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_sapling.json b/assets/minecraft/models/item/dark_oak_sapling.json new file mode 100644 index 00000000..1a02b324 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dark_oak_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_sign.json b/assets/minecraft/models/item/dark_oak_sign.json new file mode 100644 index 00000000..962a237a --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dark_oak_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_slab.json b/assets/minecraft/models/item/dark_oak_slab.json new file mode 100644 index 00000000..c66e4e43 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_stairs.json b/assets/minecraft/models/item/dark_oak_stairs.json new file mode 100644 index 00000000..1d7b821b --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_trapdoor.json b/assets/minecraft/models/item/dark_oak_trapdoor.json new file mode 100644 index 00000000..a91f3c8f --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_oak_wood.json b/assets/minecraft/models/item/dark_oak_wood.json new file mode 100644 index 00000000..3a285ba3 --- /dev/null +++ b/assets/minecraft/models/item/dark_oak_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_oak_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_prismarine.json b/assets/minecraft/models/item/dark_prismarine.json new file mode 100644 index 00000000..461468df --- /dev/null +++ b/assets/minecraft/models/item/dark_prismarine.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_prismarine" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_prismarine_slab.json b/assets/minecraft/models/item/dark_prismarine_slab.json new file mode 100644 index 00000000..a9605d9f --- /dev/null +++ b/assets/minecraft/models/item/dark_prismarine_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_prismarine_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dark_prismarine_stairs.json b/assets/minecraft/models/item/dark_prismarine_stairs.json new file mode 100644 index 00000000..2a11dead --- /dev/null +++ b/assets/minecraft/models/item/dark_prismarine_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dark_prismarine_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/daylight_detector.json b/assets/minecraft/models/item/daylight_detector.json new file mode 100644 index 00000000..f52d6d9a --- /dev/null +++ b/assets/minecraft/models/item/daylight_detector.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/daylight_detector" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_brain_coral.json b/assets/minecraft/models/item/dead_brain_coral.json new file mode 100644 index 00000000..8e243912 --- /dev/null +++ b/assets/minecraft/models/item/dead_brain_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_brain_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_brain_coral_block.json b/assets/minecraft/models/item/dead_brain_coral_block.json new file mode 100644 index 00000000..3134d2b7 --- /dev/null +++ b/assets/minecraft/models/item/dead_brain_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dead_brain_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_brain_coral_fan.json b/assets/minecraft/models/item/dead_brain_coral_fan.json new file mode 100644 index 00000000..a6488a83 --- /dev/null +++ b/assets/minecraft/models/item/dead_brain_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_brain_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_bubble_coral.json b/assets/minecraft/models/item/dead_bubble_coral.json new file mode 100644 index 00000000..7802938b --- /dev/null +++ b/assets/minecraft/models/item/dead_bubble_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_bubble_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_bubble_coral_block.json b/assets/minecraft/models/item/dead_bubble_coral_block.json new file mode 100644 index 00000000..ba3411da --- /dev/null +++ b/assets/minecraft/models/item/dead_bubble_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dead_bubble_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_bubble_coral_fan.json b/assets/minecraft/models/item/dead_bubble_coral_fan.json new file mode 100644 index 00000000..e06ea5f9 --- /dev/null +++ b/assets/minecraft/models/item/dead_bubble_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_bubble_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_bush.json b/assets/minecraft/models/item/dead_bush.json new file mode 100644 index 00000000..cb8a5f08 --- /dev/null +++ b/assets/minecraft/models/item/dead_bush.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_bush" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_fire_coral.json b/assets/minecraft/models/item/dead_fire_coral.json new file mode 100644 index 00000000..7795cff3 --- /dev/null +++ b/assets/minecraft/models/item/dead_fire_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_fire_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_fire_coral_block.json b/assets/minecraft/models/item/dead_fire_coral_block.json new file mode 100644 index 00000000..f169720a --- /dev/null +++ b/assets/minecraft/models/item/dead_fire_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dead_fire_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_fire_coral_fan.json b/assets/minecraft/models/item/dead_fire_coral_fan.json new file mode 100644 index 00000000..7d33a6e7 --- /dev/null +++ b/assets/minecraft/models/item/dead_fire_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_fire_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_horn_coral.json b/assets/minecraft/models/item/dead_horn_coral.json new file mode 100644 index 00000000..8dc414ad --- /dev/null +++ b/assets/minecraft/models/item/dead_horn_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_horn_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_horn_coral_block.json b/assets/minecraft/models/item/dead_horn_coral_block.json new file mode 100644 index 00000000..a7ed136d --- /dev/null +++ b/assets/minecraft/models/item/dead_horn_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dead_horn_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_horn_coral_fan.json b/assets/minecraft/models/item/dead_horn_coral_fan.json new file mode 100644 index 00000000..4e2715a9 --- /dev/null +++ b/assets/minecraft/models/item/dead_horn_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_horn_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_tube_coral.json b/assets/minecraft/models/item/dead_tube_coral.json new file mode 100644 index 00000000..1d08eff6 --- /dev/null +++ b/assets/minecraft/models/item/dead_tube_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_tube_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_tube_coral_block.json b/assets/minecraft/models/item/dead_tube_coral_block.json new file mode 100644 index 00000000..a16902f9 --- /dev/null +++ b/assets/minecraft/models/item/dead_tube_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dead_tube_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dead_tube_coral_fan.json b/assets/minecraft/models/item/dead_tube_coral_fan.json new file mode 100644 index 00000000..86ad4fd4 --- /dev/null +++ b/assets/minecraft/models/item/dead_tube_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/dead_tube_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/debug_stick.json b/assets/minecraft/models/item/debug_stick.json new file mode 100644 index 00000000..f0dc3b97 --- /dev/null +++ b/assets/minecraft/models/item/debug_stick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/stick" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/decorated_pot.json b/assets/minecraft/models/item/decorated_pot.json new file mode 100644 index 00000000..70c96e0f --- /dev/null +++ b/assets/minecraft/models/item/decorated_pot.json @@ -0,0 +1,39 @@ +{ + "parent": "builtin/entity", + "gui_light": "front", + "textures": { + "particle": "entity/decorated_pot/decorated_pot_side" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 2, 0.5], + "scale":[ 0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.375, 0.375, 0.375] + }, + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.60, 0.60, 0.60] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 1, 0], + "scale":[ 0.25, 0.25, 0.25] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 16, 0], + "scale":[ 1.5, 1.5, 1.5 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5] + } + } +} diff --git a/assets/minecraft/models/item/deepslate.json b/assets/minecraft/models/item/deepslate.json new file mode 100644 index 00000000..13980a84 --- /dev/null +++ b/assets/minecraft/models/item/deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_brick_slab.json b/assets/minecraft/models/item/deepslate_brick_slab.json new file mode 100644 index 00000000..7e35175d --- /dev/null +++ b/assets/minecraft/models/item/deepslate_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_brick_stairs.json b/assets/minecraft/models/item/deepslate_brick_stairs.json new file mode 100644 index 00000000..38c5e3f9 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_brick_wall.json b/assets/minecraft/models/item/deepslate_brick_wall.json new file mode 100644 index 00000000..d13b4d42 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_bricks.json b/assets/minecraft/models/item/deepslate_bricks.json new file mode 100644 index 00000000..5c152588 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_coal_ore.json b/assets/minecraft/models/item/deepslate_coal_ore.json new file mode 100644 index 00000000..f94aeada --- /dev/null +++ b/assets/minecraft/models/item/deepslate_coal_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_coal_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_copper_ore.json b/assets/minecraft/models/item/deepslate_copper_ore.json new file mode 100644 index 00000000..b5425550 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_copper_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_copper_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_diamond_ore.json b/assets/minecraft/models/item/deepslate_diamond_ore.json new file mode 100644 index 00000000..24eb2e5a --- /dev/null +++ b/assets/minecraft/models/item/deepslate_diamond_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_diamond_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_emerald_ore.json b/assets/minecraft/models/item/deepslate_emerald_ore.json new file mode 100644 index 00000000..a5354b18 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_emerald_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_emerald_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_gold_ore.json b/assets/minecraft/models/item/deepslate_gold_ore.json new file mode 100644 index 00000000..910ff2f7 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_gold_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_gold_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_iron_ore.json b/assets/minecraft/models/item/deepslate_iron_ore.json new file mode 100644 index 00000000..0b10edea --- /dev/null +++ b/assets/minecraft/models/item/deepslate_iron_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_iron_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_lapis_ore.json b/assets/minecraft/models/item/deepslate_lapis_ore.json new file mode 100644 index 00000000..d829cea2 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_lapis_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_lapis_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_redstone_ore.json b/assets/minecraft/models/item/deepslate_redstone_ore.json new file mode 100644 index 00000000..c9832e9a --- /dev/null +++ b/assets/minecraft/models/item/deepslate_redstone_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_redstone_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_tile_slab.json b/assets/minecraft/models/item/deepslate_tile_slab.json new file mode 100644 index 00000000..f0979640 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_tile_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_tile_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_tile_stairs.json b/assets/minecraft/models/item/deepslate_tile_stairs.json new file mode 100644 index 00000000..2a7ec05e --- /dev/null +++ b/assets/minecraft/models/item/deepslate_tile_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_tile_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_tile_wall.json b/assets/minecraft/models/item/deepslate_tile_wall.json new file mode 100644 index 00000000..226fa452 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_tile_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_tile_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/deepslate_tiles.json b/assets/minecraft/models/item/deepslate_tiles.json new file mode 100644 index 00000000..bdaaaec5 --- /dev/null +++ b/assets/minecraft/models/item/deepslate_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate_tiles" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/detector_rail.json b/assets/minecraft/models/item/detector_rail.json new file mode 100644 index 00000000..707b2492 --- /dev/null +++ b/assets/minecraft/models/item/detector_rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/detector_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond.json b/assets/minecraft/models/item/diamond.json new file mode 100644 index 00000000..dacde7f1 --- /dev/null +++ b/assets/minecraft/models/item/diamond.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_axe.json b/assets/minecraft/models/item/diamond_axe.json new file mode 100644 index 00000000..9ab04997 --- /dev/null +++ b/assets/minecraft/models/item/diamond_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/diamond_axe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_block.json b/assets/minecraft/models/item/diamond_block.json new file mode 100644 index 00000000..48d351c4 --- /dev/null +++ b/assets/minecraft/models/item/diamond_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/diamond_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots.json b/assets/minecraft/models/item/diamond_boots.json new file mode 100644 index 00000000..2badf8fd --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/diamond_boots_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/diamond_boots_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/diamond_boots_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/diamond_boots_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/diamond_boots_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/diamond_boots_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/diamond_boots_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/diamond_boots_diamond_darker_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/diamond_boots_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/diamond_boots_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/diamond_boots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_amethyst_trim.json b/assets/minecraft/models/item/diamond_boots_amethyst_trim.json new file mode 100644 index 00000000..a193a70c --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_copper_trim.json b/assets/minecraft/models/item/diamond_boots_copper_trim.json new file mode 100644 index 00000000..5ad8de50 --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_diamond_darker_trim.json b/assets/minecraft/models/item/diamond_boots_diamond_darker_trim.json new file mode 100644 index 00000000..9dd940a2 --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_diamond_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_diamond_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_emerald_trim.json b/assets/minecraft/models/item/diamond_boots_emerald_trim.json new file mode 100644 index 00000000..039509d0 --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_gold_trim.json b/assets/minecraft/models/item/diamond_boots_gold_trim.json new file mode 100644 index 00000000..99c5a53b --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_iron_trim.json b/assets/minecraft/models/item/diamond_boots_iron_trim.json new file mode 100644 index 00000000..f692720f --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_lapis_trim.json b/assets/minecraft/models/item/diamond_boots_lapis_trim.json new file mode 100644 index 00000000..411b1310 --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_netherite_trim.json b/assets/minecraft/models/item/diamond_boots_netherite_trim.json new file mode 100644 index 00000000..55b29ae2 --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_quartz_trim.json b/assets/minecraft/models/item/diamond_boots_quartz_trim.json new file mode 100644 index 00000000..fdecfc8b --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_boots_redstone_trim.json b/assets/minecraft/models/item/diamond_boots_redstone_trim.json new file mode 100644 index 00000000..5661c521 --- /dev/null +++ b/assets/minecraft/models/item/diamond_boots_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_boots", + "layer1": "minecraft:trims/items/boots_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate.json b/assets/minecraft/models/item/diamond_chestplate.json new file mode 100644 index 00000000..b87eb4b5 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/diamond_chestplate_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/diamond_chestplate_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/diamond_chestplate_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/diamond_chestplate_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/diamond_chestplate_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/diamond_chestplate_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/diamond_chestplate_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/diamond_chestplate_diamond_darker_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/diamond_chestplate_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/diamond_chestplate_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/diamond_chestplate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_amethyst_trim.json b/assets/minecraft/models/item/diamond_chestplate_amethyst_trim.json new file mode 100644 index 00000000..34901619 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_copper_trim.json b/assets/minecraft/models/item/diamond_chestplate_copper_trim.json new file mode 100644 index 00000000..9a1c4521 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_diamond_darker_trim.json b/assets/minecraft/models/item/diamond_chestplate_diamond_darker_trim.json new file mode 100644 index 00000000..73123672 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_diamond_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_diamond_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_emerald_trim.json b/assets/minecraft/models/item/diamond_chestplate_emerald_trim.json new file mode 100644 index 00000000..7656f0b9 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_gold_trim.json b/assets/minecraft/models/item/diamond_chestplate_gold_trim.json new file mode 100644 index 00000000..b3b7c991 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_iron_trim.json b/assets/minecraft/models/item/diamond_chestplate_iron_trim.json new file mode 100644 index 00000000..6eeae07f --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_lapis_trim.json b/assets/minecraft/models/item/diamond_chestplate_lapis_trim.json new file mode 100644 index 00000000..a973c512 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_netherite_trim.json b/assets/minecraft/models/item/diamond_chestplate_netherite_trim.json new file mode 100644 index 00000000..bb5a1007 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_quartz_trim.json b/assets/minecraft/models/item/diamond_chestplate_quartz_trim.json new file mode 100644 index 00000000..937d5ee3 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_chestplate_redstone_trim.json b/assets/minecraft/models/item/diamond_chestplate_redstone_trim.json new file mode 100644 index 00000000..63d77607 --- /dev/null +++ b/assets/minecraft/models/item/diamond_chestplate_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet.json b/assets/minecraft/models/item/diamond_helmet.json new file mode 100644 index 00000000..982a1110 --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/diamond_helmet_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/diamond_helmet_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/diamond_helmet_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/diamond_helmet_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/diamond_helmet_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/diamond_helmet_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/diamond_helmet_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/diamond_helmet_diamond_darker_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/diamond_helmet_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/diamond_helmet_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/diamond_helmet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_amethyst_trim.json b/assets/minecraft/models/item/diamond_helmet_amethyst_trim.json new file mode 100644 index 00000000..623a571e --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_copper_trim.json b/assets/minecraft/models/item/diamond_helmet_copper_trim.json new file mode 100644 index 00000000..c0a1d882 --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_diamond_darker_trim.json b/assets/minecraft/models/item/diamond_helmet_diamond_darker_trim.json new file mode 100644 index 00000000..0d82b9c0 --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_diamond_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_diamond_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_emerald_trim.json b/assets/minecraft/models/item/diamond_helmet_emerald_trim.json new file mode 100644 index 00000000..d23a9a6e --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_gold_trim.json b/assets/minecraft/models/item/diamond_helmet_gold_trim.json new file mode 100644 index 00000000..cd80cebe --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_iron_trim.json b/assets/minecraft/models/item/diamond_helmet_iron_trim.json new file mode 100644 index 00000000..694acc9b --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_lapis_trim.json b/assets/minecraft/models/item/diamond_helmet_lapis_trim.json new file mode 100644 index 00000000..014fe735 --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_netherite_trim.json b/assets/minecraft/models/item/diamond_helmet_netherite_trim.json new file mode 100644 index 00000000..35098eb0 --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_quartz_trim.json b/assets/minecraft/models/item/diamond_helmet_quartz_trim.json new file mode 100644 index 00000000..104fb171 --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_helmet_redstone_trim.json b/assets/minecraft/models/item/diamond_helmet_redstone_trim.json new file mode 100644 index 00000000..f520dae2 --- /dev/null +++ b/assets/minecraft/models/item/diamond_helmet_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_helmet", + "layer1": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_hoe.json b/assets/minecraft/models/item/diamond_hoe.json new file mode 100644 index 00000000..c777b6d3 --- /dev/null +++ b/assets/minecraft/models/item/diamond_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/diamond_hoe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_horse_armor.json b/assets/minecraft/models/item/diamond_horse_armor.json new file mode 100644 index 00000000..017194b7 --- /dev/null +++ b/assets/minecraft/models/item/diamond_horse_armor.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_horse_armor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings.json b/assets/minecraft/models/item/diamond_leggings.json new file mode 100644 index 00000000..fdc94914 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/diamond_leggings_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/diamond_leggings_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/diamond_leggings_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/diamond_leggings_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/diamond_leggings_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/diamond_leggings_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/diamond_leggings_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/diamond_leggings_diamond_darker_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/diamond_leggings_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/diamond_leggings_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/diamond_leggings" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_amethyst_trim.json b/assets/minecraft/models/item/diamond_leggings_amethyst_trim.json new file mode 100644 index 00000000..355ce966 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_copper_trim.json b/assets/minecraft/models/item/diamond_leggings_copper_trim.json new file mode 100644 index 00000000..882c7199 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_diamond_darker_trim.json b/assets/minecraft/models/item/diamond_leggings_diamond_darker_trim.json new file mode 100644 index 00000000..2d636739 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_diamond_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_diamond_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_emerald_trim.json b/assets/minecraft/models/item/diamond_leggings_emerald_trim.json new file mode 100644 index 00000000..4bacdd8b --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_gold_trim.json b/assets/minecraft/models/item/diamond_leggings_gold_trim.json new file mode 100644 index 00000000..90655d48 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_iron_trim.json b/assets/minecraft/models/item/diamond_leggings_iron_trim.json new file mode 100644 index 00000000..7503db5e --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_lapis_trim.json b/assets/minecraft/models/item/diamond_leggings_lapis_trim.json new file mode 100644 index 00000000..8f0a3f84 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_netherite_trim.json b/assets/minecraft/models/item/diamond_leggings_netherite_trim.json new file mode 100644 index 00000000..9d8085c8 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_quartz_trim.json b/assets/minecraft/models/item/diamond_leggings_quartz_trim.json new file mode 100644 index 00000000..85edee56 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_leggings_redstone_trim.json b/assets/minecraft/models/item/diamond_leggings_redstone_trim.json new file mode 100644 index 00000000..2232f1a3 --- /dev/null +++ b/assets/minecraft/models/item/diamond_leggings_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/diamond_leggings", + "layer1": "minecraft:trims/items/leggings_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_ore.json b/assets/minecraft/models/item/diamond_ore.json new file mode 100644 index 00000000..da18313d --- /dev/null +++ b/assets/minecraft/models/item/diamond_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/diamond_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_pickaxe.json b/assets/minecraft/models/item/diamond_pickaxe.json new file mode 100644 index 00000000..88301e5c --- /dev/null +++ b/assets/minecraft/models/item/diamond_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/diamond_pickaxe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_shovel.json b/assets/minecraft/models/item/diamond_shovel.json new file mode 100644 index 00000000..dc4e6c84 --- /dev/null +++ b/assets/minecraft/models/item/diamond_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/diamond_shovel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diamond_sword.json b/assets/minecraft/models/item/diamond_sword.json new file mode 100644 index 00000000..26f4a2e0 --- /dev/null +++ b/assets/minecraft/models/item/diamond_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/diamond_sword" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diorite.json b/assets/minecraft/models/item/diorite.json new file mode 100644 index 00000000..f9d3f6b4 --- /dev/null +++ b/assets/minecraft/models/item/diorite.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/diorite" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diorite_slab.json b/assets/minecraft/models/item/diorite_slab.json new file mode 100644 index 00000000..fbfbc7a6 --- /dev/null +++ b/assets/minecraft/models/item/diorite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/diorite_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diorite_stairs.json b/assets/minecraft/models/item/diorite_stairs.json new file mode 100644 index 00000000..fdfa11ab --- /dev/null +++ b/assets/minecraft/models/item/diorite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/diorite_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/diorite_wall.json b/assets/minecraft/models/item/diorite_wall.json new file mode 100644 index 00000000..192d7282 --- /dev/null +++ b/assets/minecraft/models/item/diorite_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/diorite_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dirt.json b/assets/minecraft/models/item/dirt.json new file mode 100644 index 00000000..8f9dbab5 --- /dev/null +++ b/assets/minecraft/models/item/dirt.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dirt" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dirt_path.json b/assets/minecraft/models/item/dirt_path.json new file mode 100644 index 00000000..e60515e4 --- /dev/null +++ b/assets/minecraft/models/item/dirt_path.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dirt_path" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/disc_fragment_5.json b/assets/minecraft/models/item/disc_fragment_5.json new file mode 100644 index 00000000..806624c7 --- /dev/null +++ b/assets/minecraft/models/item/disc_fragment_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/disc_fragment_5" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dispenser.json b/assets/minecraft/models/item/dispenser.json new file mode 100644 index 00000000..b88156bc --- /dev/null +++ b/assets/minecraft/models/item/dispenser.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dispenser" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dolphin_spawn_egg.json b/assets/minecraft/models/item/dolphin_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/dolphin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/donkey_spawn_egg.json b/assets/minecraft/models/item/donkey_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/donkey_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dragon_breath.json b/assets/minecraft/models/item/dragon_breath.json new file mode 100644 index 00000000..424980b1 --- /dev/null +++ b/assets/minecraft/models/item/dragon_breath.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dragon_breath" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dragon_egg.json b/assets/minecraft/models/item/dragon_egg.json new file mode 100644 index 00000000..1570a78a --- /dev/null +++ b/assets/minecraft/models/item/dragon_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dragon_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dragon_head.json b/assets/minecraft/models/item/dragon_head.json new file mode 100644 index 00000000..86264762 --- /dev/null +++ b/assets/minecraft/models/item/dragon_head.json @@ -0,0 +1,15 @@ +{ + "parent": "item/template_skull", + "display": { + "gui": { + "translation": [ -2, 2, 0 ], + "rotation": [ 30, 45, 0 ], + "scale": [ 0.6, 0.6, 0.6 ] + }, + "thirdperson_righthand": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, -1, 2 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + } +} diff --git a/assets/minecraft/models/item/dried_kelp.json b/assets/minecraft/models/item/dried_kelp.json new file mode 100644 index 00000000..a4e4efff --- /dev/null +++ b/assets/minecraft/models/item/dried_kelp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dried_kelp" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dried_kelp_block.json b/assets/minecraft/models/item/dried_kelp_block.json new file mode 100644 index 00000000..2f3f1c32 --- /dev/null +++ b/assets/minecraft/models/item/dried_kelp_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dried_kelp_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dripstone_block.json b/assets/minecraft/models/item/dripstone_block.json new file mode 100644 index 00000000..d6d9c09d --- /dev/null +++ b/assets/minecraft/models/item/dripstone_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dripstone_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dropper.json b/assets/minecraft/models/item/dropper.json new file mode 100644 index 00000000..a8b40e59 --- /dev/null +++ b/assets/minecraft/models/item/dropper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/dropper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/drowned_spawn_egg.json b/assets/minecraft/models/item/drowned_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/drowned_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/dune_armor_trim_smithing_template.json b/assets/minecraft/models/item/dune_armor_trim_smithing_template.json new file mode 100644 index 00000000..eaf0f46c --- /dev/null +++ b/assets/minecraft/models/item/dune_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/dune_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/echo_shard.json b/assets/minecraft/models/item/echo_shard.json new file mode 100644 index 00000000..a6f71e73 --- /dev/null +++ b/assets/minecraft/models/item/echo_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/echo_shard" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/egg.json b/assets/minecraft/models/item/egg.json new file mode 100644 index 00000000..86ec3cae --- /dev/null +++ b/assets/minecraft/models/item/egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/egg" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/elder_guardian_spawn_egg.json b/assets/minecraft/models/item/elder_guardian_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/elder_guardian_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/elytra.json b/assets/minecraft/models/item/elytra.json new file mode 100644 index 00000000..3909ded5 --- /dev/null +++ b/assets/minecraft/models/item/elytra.json @@ -0,0 +1,14 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/elytra" + }, + "overrides": [ + { + "predicate": { + "broken": 1 + }, + "model": "item/broken_elytra" + } + ] +} diff --git a/assets/minecraft/models/item/emerald.json b/assets/minecraft/models/item/emerald.json new file mode 100644 index 00000000..4f19c1d9 --- /dev/null +++ b/assets/minecraft/models/item/emerald.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/emerald_block.json b/assets/minecraft/models/item/emerald_block.json new file mode 100644 index 00000000..27c3713a --- /dev/null +++ b/assets/minecraft/models/item/emerald_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/emerald_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/emerald_ore.json b/assets/minecraft/models/item/emerald_ore.json new file mode 100644 index 00000000..3569bde1 --- /dev/null +++ b/assets/minecraft/models/item/emerald_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/emerald_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/enchanted_book.json b/assets/minecraft/models/item/enchanted_book.json new file mode 100644 index 00000000..b6a35e57 --- /dev/null +++ b/assets/minecraft/models/item/enchanted_book.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/enchanted_book" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/enchanted_golden_apple.json b/assets/minecraft/models/item/enchanted_golden_apple.json new file mode 100644 index 00000000..868c9219 --- /dev/null +++ b/assets/minecraft/models/item/enchanted_golden_apple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_apple" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/enchanting_table.json b/assets/minecraft/models/item/enchanting_table.json new file mode 100644 index 00000000..9f76fca2 --- /dev/null +++ b/assets/minecraft/models/item/enchanting_table.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/enchanting_table" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_crystal.json b/assets/minecraft/models/item/end_crystal.json new file mode 100644 index 00000000..15aa5897 --- /dev/null +++ b/assets/minecraft/models/item/end_crystal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/end_crystal" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_portal_frame.json b/assets/minecraft/models/item/end_portal_frame.json new file mode 100644 index 00000000..718814c2 --- /dev/null +++ b/assets/minecraft/models/item/end_portal_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/end_portal_frame" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_rod.json b/assets/minecraft/models/item/end_rod.json new file mode 100644 index 00000000..809dec3f --- /dev/null +++ b/assets/minecraft/models/item/end_rod.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/end_rod" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_stone.json b/assets/minecraft/models/item/end_stone.json new file mode 100644 index 00000000..fc4cf92a --- /dev/null +++ b/assets/minecraft/models/item/end_stone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/end_stone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_stone_brick_slab.json b/assets/minecraft/models/item/end_stone_brick_slab.json new file mode 100644 index 00000000..3daf7072 --- /dev/null +++ b/assets/minecraft/models/item/end_stone_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/end_stone_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_stone_brick_stairs.json b/assets/minecraft/models/item/end_stone_brick_stairs.json new file mode 100644 index 00000000..b43fdfe6 --- /dev/null +++ b/assets/minecraft/models/item/end_stone_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/end_stone_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_stone_brick_wall.json b/assets/minecraft/models/item/end_stone_brick_wall.json new file mode 100644 index 00000000..a0a4f843 --- /dev/null +++ b/assets/minecraft/models/item/end_stone_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/end_stone_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/end_stone_bricks.json b/assets/minecraft/models/item/end_stone_bricks.json new file mode 100644 index 00000000..a0bb1b98 --- /dev/null +++ b/assets/minecraft/models/item/end_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/end_stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ender_chest.json b/assets/minecraft/models/item/ender_chest.json new file mode 100644 index 00000000..58aba338 --- /dev/null +++ b/assets/minecraft/models/item/ender_chest.json @@ -0,0 +1,6 @@ +{ + "parent": "item/chest", + "textures": { + "particle": "block/obsidian" + } +} diff --git a/assets/minecraft/models/item/ender_dragon_spawn_egg.json b/assets/minecraft/models/item/ender_dragon_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/ender_dragon_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ender_eye.json b/assets/minecraft/models/item/ender_eye.json new file mode 100644 index 00000000..d29cc4e0 --- /dev/null +++ b/assets/minecraft/models/item/ender_eye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/ender_eye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ender_pearl.json b/assets/minecraft/models/item/ender_pearl.json new file mode 100644 index 00000000..e6ccd02f --- /dev/null +++ b/assets/minecraft/models/item/ender_pearl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/ender_pearl" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/enderman_spawn_egg.json b/assets/minecraft/models/item/enderman_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/enderman_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/endermite_spawn_egg.json b/assets/minecraft/models/item/endermite_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/endermite_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/evoker_spawn_egg.json b/assets/minecraft/models/item/evoker_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/evoker_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/experience_bottle.json b/assets/minecraft/models/item/experience_bottle.json new file mode 100644 index 00000000..22a77fe7 --- /dev/null +++ b/assets/minecraft/models/item/experience_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/experience_bottle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/explorer_pottery_sherd.json b/assets/minecraft/models/item/explorer_pottery_sherd.json new file mode 100644 index 00000000..affa6dd2 --- /dev/null +++ b/assets/minecraft/models/item/explorer_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/explorer_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_chiseled_copper.json b/assets/minecraft/models/item/exposed_chiseled_copper.json new file mode 100644 index 00000000..11278b6a --- /dev/null +++ b/assets/minecraft/models/item/exposed_chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_copper.json b/assets/minecraft/models/item/exposed_copper.json new file mode 100644 index 00000000..5881fd7b --- /dev/null +++ b/assets/minecraft/models/item/exposed_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_copper_bulb.json b/assets/minecraft/models/item/exposed_copper_bulb.json new file mode 100644 index 00000000..6ddcba9a --- /dev/null +++ b/assets/minecraft/models/item/exposed_copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_copper_door.json b/assets/minecraft/models/item/exposed_copper_door.json new file mode 100644 index 00000000..78a9d4d8 --- /dev/null +++ b/assets/minecraft/models/item/exposed_copper_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/exposed_copper_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_copper_grate.json b/assets/minecraft/models/item/exposed_copper_grate.json new file mode 100644 index 00000000..b7a3c78e --- /dev/null +++ b/assets/minecraft/models/item/exposed_copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_copper_trapdoor.json b/assets/minecraft/models/item/exposed_copper_trapdoor.json new file mode 100644 index 00000000..7546ce3c --- /dev/null +++ b/assets/minecraft/models/item/exposed_copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_copper_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_cut_copper.json b/assets/minecraft/models/item/exposed_cut_copper.json new file mode 100644 index 00000000..b5c7d8f0 --- /dev/null +++ b/assets/minecraft/models/item/exposed_cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_cut_copper_slab.json b/assets/minecraft/models/item/exposed_cut_copper_slab.json new file mode 100644 index 00000000..29ce4723 --- /dev/null +++ b/assets/minecraft/models/item/exposed_cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/exposed_cut_copper_stairs.json b/assets/minecraft/models/item/exposed_cut_copper_stairs.json new file mode 100644 index 00000000..24bdd285 --- /dev/null +++ b/assets/minecraft/models/item/exposed_cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/eye_armor_trim_smithing_template.json b/assets/minecraft/models/item/eye_armor_trim_smithing_template.json new file mode 100644 index 00000000..d629fc1b --- /dev/null +++ b/assets/minecraft/models/item/eye_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/eye_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/farmland.json b/assets/minecraft/models/item/farmland.json new file mode 100644 index 00000000..1c5eceae --- /dev/null +++ b/assets/minecraft/models/item/farmland.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/farmland" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/feather.json b/assets/minecraft/models/item/feather.json new file mode 100644 index 00000000..1b88f92d --- /dev/null +++ b/assets/minecraft/models/item/feather.json @@ -0,0 +1,13 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/feather" + }, + "display": { + "head": { + "rotation": [ 0, 0, 45 ], + "translation": [ -1, 13, 7], + "scale":[ 1, 1, 1] + } + } +} diff --git a/assets/minecraft/models/item/fermented_spider_eye.json b/assets/minecraft/models/item/fermented_spider_eye.json new file mode 100644 index 00000000..06bbefce --- /dev/null +++ b/assets/minecraft/models/item/fermented_spider_eye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/fermented_spider_eye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/fern.json b/assets/minecraft/models/item/fern.json new file mode 100644 index 00000000..851ce5d3 --- /dev/null +++ b/assets/minecraft/models/item/fern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/fern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/filled_map.json b/assets/minecraft/models/item/filled_map.json new file mode 100644 index 00000000..077d2530 --- /dev/null +++ b/assets/minecraft/models/item/filled_map.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/filled_map", + "layer1": "item/filled_map_markings" + } +} diff --git a/assets/minecraft/models/item/fire_charge.json b/assets/minecraft/models/item/fire_charge.json new file mode 100644 index 00000000..27d3f0d8 --- /dev/null +++ b/assets/minecraft/models/item/fire_charge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/fire_charge" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/fire_coral.json b/assets/minecraft/models/item/fire_coral.json new file mode 100644 index 00000000..8585f4c8 --- /dev/null +++ b/assets/minecraft/models/item/fire_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/fire_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/fire_coral_block.json b/assets/minecraft/models/item/fire_coral_block.json new file mode 100644 index 00000000..eebe05e1 --- /dev/null +++ b/assets/minecraft/models/item/fire_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/fire_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/fire_coral_fan.json b/assets/minecraft/models/item/fire_coral_fan.json new file mode 100644 index 00000000..c27e2d3a --- /dev/null +++ b/assets/minecraft/models/item/fire_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/fire_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/firework_rocket.json b/assets/minecraft/models/item/firework_rocket.json new file mode 100644 index 00000000..cb7cf197 --- /dev/null +++ b/assets/minecraft/models/item/firework_rocket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/firework_rocket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/firework_star.json b/assets/minecraft/models/item/firework_star.json new file mode 100644 index 00000000..4e2e9fe8 --- /dev/null +++ b/assets/minecraft/models/item/firework_star.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/firework_star", + "layer1": "item/firework_star_overlay" + } +} diff --git a/assets/minecraft/models/item/fishing_rod.json b/assets/minecraft/models/item/fishing_rod.json new file mode 100644 index 00000000..6d52bb97 --- /dev/null +++ b/assets/minecraft/models/item/fishing_rod.json @@ -0,0 +1,14 @@ +{ + "parent": "item/handheld_rod", + "textures": { + "layer0": "item/fishing_rod" + }, + "overrides": [ + { + "predicate": { + "cast": 1 + }, + "model": "item/fishing_rod_cast" + } + ] +} diff --git a/assets/minecraft/models/item/fishing_rod_cast.json b/assets/minecraft/models/item/fishing_rod_cast.json new file mode 100644 index 00000000..55c2a525 --- /dev/null +++ b/assets/minecraft/models/item/fishing_rod_cast.json @@ -0,0 +1,6 @@ +{ + "parent": "item/fishing_rod", + "textures": { + "layer0": "item/fishing_rod_cast" + } +} diff --git a/assets/minecraft/models/item/fletching_table.json b/assets/minecraft/models/item/fletching_table.json new file mode 100644 index 00000000..bc2b1bdc --- /dev/null +++ b/assets/minecraft/models/item/fletching_table.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/fletching_table" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flint.json b/assets/minecraft/models/item/flint.json new file mode 100644 index 00000000..3a557295 --- /dev/null +++ b/assets/minecraft/models/item/flint.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/flint" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flint_and_steel.json b/assets/minecraft/models/item/flint_and_steel.json new file mode 100644 index 00000000..d11a12a9 --- /dev/null +++ b/assets/minecraft/models/item/flint_and_steel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/flint_and_steel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flow_armor_trim_smithing_template.json b/assets/minecraft/models/item/flow_armor_trim_smithing_template.json new file mode 100644 index 00000000..0aec5a44 --- /dev/null +++ b/assets/minecraft/models/item/flow_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/flow_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flow_banner_pattern.json b/assets/minecraft/models/item/flow_banner_pattern.json new file mode 100644 index 00000000..82c9af4b --- /dev/null +++ b/assets/minecraft/models/item/flow_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/flow_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flow_pottery_sherd.json b/assets/minecraft/models/item/flow_pottery_sherd.json new file mode 100644 index 00000000..ad6dac5d --- /dev/null +++ b/assets/minecraft/models/item/flow_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/flow_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flower_banner_pattern.json b/assets/minecraft/models/item/flower_banner_pattern.json new file mode 100644 index 00000000..ea8b8215 --- /dev/null +++ b/assets/minecraft/models/item/flower_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/flower_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flower_pot.json b/assets/minecraft/models/item/flower_pot.json new file mode 100644 index 00000000..e50e0fa1 --- /dev/null +++ b/assets/minecraft/models/item/flower_pot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/flower_pot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flowering_azalea.json b/assets/minecraft/models/item/flowering_azalea.json new file mode 100644 index 00000000..e5f437e8 --- /dev/null +++ b/assets/minecraft/models/item/flowering_azalea.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/flowering_azalea" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/flowering_azalea_leaves.json b/assets/minecraft/models/item/flowering_azalea_leaves.json new file mode 100644 index 00000000..c3ecf6e7 --- /dev/null +++ b/assets/minecraft/models/item/flowering_azalea_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/flowering_azalea_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/fox_spawn_egg.json b/assets/minecraft/models/item/fox_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/fox_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/friend_pottery_sherd.json b/assets/minecraft/models/item/friend_pottery_sherd.json new file mode 100644 index 00000000..b618f305 --- /dev/null +++ b/assets/minecraft/models/item/friend_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/friend_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/frog_spawn_egg.json b/assets/minecraft/models/item/frog_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/frog_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/frogspawn.json b/assets/minecraft/models/item/frogspawn.json new file mode 100644 index 00000000..6fd44430 --- /dev/null +++ b/assets/minecraft/models/item/frogspawn.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/frogspawn" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/furnace.json b/assets/minecraft/models/item/furnace.json new file mode 100644 index 00000000..593027e9 --- /dev/null +++ b/assets/minecraft/models/item/furnace.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/furnace" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/furnace_minecart.json b/assets/minecraft/models/item/furnace_minecart.json new file mode 100644 index 00000000..e3e6f222 --- /dev/null +++ b/assets/minecraft/models/item/furnace_minecart.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/furnace_minecart" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/generated.json b/assets/minecraft/models/item/generated.json new file mode 100644 index 00000000..89aa79e9 --- /dev/null +++ b/assets/minecraft/models/item/generated.json @@ -0,0 +1,30 @@ +{ + "parent": "builtin/generated", + "gui_light": "front", + "display": { + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 2, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 13, 7], + "scale":[ 1, 1, 1] + }, + "thirdperson_righthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 1 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "scale": [ 1, 1, 1 ] + } + } +} diff --git a/assets/minecraft/models/item/ghast_spawn_egg.json b/assets/minecraft/models/item/ghast_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/ghast_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ghast_tear.json b/assets/minecraft/models/item/ghast_tear.json new file mode 100644 index 00000000..d7d6e6f3 --- /dev/null +++ b/assets/minecraft/models/item/ghast_tear.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/ghast_tear" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gilded_blackstone.json b/assets/minecraft/models/item/gilded_blackstone.json new file mode 100644 index 00000000..a0779ccd --- /dev/null +++ b/assets/minecraft/models/item/gilded_blackstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gilded_blackstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glass.json b/assets/minecraft/models/item/glass.json new file mode 100644 index 00000000..65825434 --- /dev/null +++ b/assets/minecraft/models/item/glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glass_bottle.json b/assets/minecraft/models/item/glass_bottle.json new file mode 100644 index 00000000..9b4ab510 --- /dev/null +++ b/assets/minecraft/models/item/glass_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/glass_bottle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glass_pane.json b/assets/minecraft/models/item/glass_pane.json new file mode 100644 index 00000000..de799dcf --- /dev/null +++ b/assets/minecraft/models/item/glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glistering_melon_slice.json b/assets/minecraft/models/item/glistering_melon_slice.json new file mode 100644 index 00000000..90c290a0 --- /dev/null +++ b/assets/minecraft/models/item/glistering_melon_slice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/glistering_melon_slice" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/globe_banner_pattern.json b/assets/minecraft/models/item/globe_banner_pattern.json new file mode 100644 index 00000000..3948f16f --- /dev/null +++ b/assets/minecraft/models/item/globe_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/globe_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glow_berries.json b/assets/minecraft/models/item/glow_berries.json new file mode 100644 index 00000000..b77ea725 --- /dev/null +++ b/assets/minecraft/models/item/glow_berries.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/glow_berries" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glow_ink_sac.json b/assets/minecraft/models/item/glow_ink_sac.json new file mode 100644 index 00000000..fc21cec4 --- /dev/null +++ b/assets/minecraft/models/item/glow_ink_sac.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/glow_ink_sac" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glow_item_frame.json b/assets/minecraft/models/item/glow_item_frame.json new file mode 100644 index 00000000..a2323a19 --- /dev/null +++ b/assets/minecraft/models/item/glow_item_frame.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/glow_item_frame" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glow_lichen.json b/assets/minecraft/models/item/glow_lichen.json new file mode 100644 index 00000000..7b796f83 --- /dev/null +++ b/assets/minecraft/models/item/glow_lichen.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/glow_lichen" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glow_squid_spawn_egg.json b/assets/minecraft/models/item/glow_squid_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/glow_squid_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glowstone.json b/assets/minecraft/models/item/glowstone.json new file mode 100644 index 00000000..5567a887 --- /dev/null +++ b/assets/minecraft/models/item/glowstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/glowstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/glowstone_dust.json b/assets/minecraft/models/item/glowstone_dust.json new file mode 100644 index 00000000..4b78f60b --- /dev/null +++ b/assets/minecraft/models/item/glowstone_dust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/glowstone_dust" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/goat_horn.json b/assets/minecraft/models/item/goat_horn.json new file mode 100644 index 00000000..eb549504 --- /dev/null +++ b/assets/minecraft/models/item/goat_horn.json @@ -0,0 +1,36 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/goat_horn" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 3, 1 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 1 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 1.13, 3.2, 1.13 ], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -25 ], + "translation": [ 1.13, 3.2, 1.13 ], + "scale": [ 0.68, 0.68, 0.68 ] + } + }, + "overrides": [ + { + "predicate": { + "tooting": 1 + }, + "model": "item/tooting_goat_horn" + } + ] +} diff --git a/assets/minecraft/models/item/goat_spawn_egg.json b/assets/minecraft/models/item/goat_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/goat_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gold_block.json b/assets/minecraft/models/item/gold_block.json new file mode 100644 index 00000000..f9cefd04 --- /dev/null +++ b/assets/minecraft/models/item/gold_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gold_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gold_ingot.json b/assets/minecraft/models/item/gold_ingot.json new file mode 100644 index 00000000..230e3111 --- /dev/null +++ b/assets/minecraft/models/item/gold_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/gold_ingot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gold_nugget.json b/assets/minecraft/models/item/gold_nugget.json new file mode 100644 index 00000000..3da43c93 --- /dev/null +++ b/assets/minecraft/models/item/gold_nugget.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/gold_nugget" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gold_ore.json b/assets/minecraft/models/item/gold_ore.json new file mode 100644 index 00000000..64c16453 --- /dev/null +++ b/assets/minecraft/models/item/gold_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gold_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_apple.json b/assets/minecraft/models/item/golden_apple.json new file mode 100644 index 00000000..868c9219 --- /dev/null +++ b/assets/minecraft/models/item/golden_apple.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_apple" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_axe.json b/assets/minecraft/models/item/golden_axe.json new file mode 100644 index 00000000..42008eea --- /dev/null +++ b/assets/minecraft/models/item/golden_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/golden_axe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots.json b/assets/minecraft/models/item/golden_boots.json new file mode 100644 index 00000000..427896c3 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/golden_boots_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/golden_boots_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/golden_boots_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/golden_boots_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/golden_boots_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/golden_boots_gold_darker_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/golden_boots_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/golden_boots_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/golden_boots_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/golden_boots_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/golden_boots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_amethyst_trim.json b/assets/minecraft/models/item/golden_boots_amethyst_trim.json new file mode 100644 index 00000000..da31bd58 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_copper_trim.json b/assets/minecraft/models/item/golden_boots_copper_trim.json new file mode 100644 index 00000000..e79eb60a --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_diamond_trim.json b/assets/minecraft/models/item/golden_boots_diamond_trim.json new file mode 100644 index 00000000..2ced80f9 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_emerald_trim.json b/assets/minecraft/models/item/golden_boots_emerald_trim.json new file mode 100644 index 00000000..78154d77 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_gold_darker_trim.json b/assets/minecraft/models/item/golden_boots_gold_darker_trim.json new file mode 100644 index 00000000..35454458 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_gold_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_gold_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_iron_trim.json b/assets/minecraft/models/item/golden_boots_iron_trim.json new file mode 100644 index 00000000..b63010f0 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_lapis_trim.json b/assets/minecraft/models/item/golden_boots_lapis_trim.json new file mode 100644 index 00000000..268ab549 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_netherite_trim.json b/assets/minecraft/models/item/golden_boots_netherite_trim.json new file mode 100644 index 00000000..e329b9cb --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_quartz_trim.json b/assets/minecraft/models/item/golden_boots_quartz_trim.json new file mode 100644 index 00000000..4e8cc2d3 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_boots_redstone_trim.json b/assets/minecraft/models/item/golden_boots_redstone_trim.json new file mode 100644 index 00000000..bda608e0 --- /dev/null +++ b/assets/minecraft/models/item/golden_boots_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_boots", + "layer1": "minecraft:trims/items/boots_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_carrot.json b/assets/minecraft/models/item/golden_carrot.json new file mode 100644 index 00000000..8d36365f --- /dev/null +++ b/assets/minecraft/models/item/golden_carrot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_carrot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate.json b/assets/minecraft/models/item/golden_chestplate.json new file mode 100644 index 00000000..b828f032 --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/golden_chestplate_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/golden_chestplate_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/golden_chestplate_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/golden_chestplate_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/golden_chestplate_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/golden_chestplate_gold_darker_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/golden_chestplate_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/golden_chestplate_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/golden_chestplate_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/golden_chestplate_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/golden_chestplate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_amethyst_trim.json b/assets/minecraft/models/item/golden_chestplate_amethyst_trim.json new file mode 100644 index 00000000..d0b4b181 --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_copper_trim.json b/assets/minecraft/models/item/golden_chestplate_copper_trim.json new file mode 100644 index 00000000..f9b9f938 --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_diamond_trim.json b/assets/minecraft/models/item/golden_chestplate_diamond_trim.json new file mode 100644 index 00000000..adf1bc6f --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_emerald_trim.json b/assets/minecraft/models/item/golden_chestplate_emerald_trim.json new file mode 100644 index 00000000..af97428b --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_gold_darker_trim.json b/assets/minecraft/models/item/golden_chestplate_gold_darker_trim.json new file mode 100644 index 00000000..3328597c --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_gold_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_gold_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_iron_trim.json b/assets/minecraft/models/item/golden_chestplate_iron_trim.json new file mode 100644 index 00000000..ed2aa0ed --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_lapis_trim.json b/assets/minecraft/models/item/golden_chestplate_lapis_trim.json new file mode 100644 index 00000000..4c748a10 --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_netherite_trim.json b/assets/minecraft/models/item/golden_chestplate_netherite_trim.json new file mode 100644 index 00000000..aab4dfb3 --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_quartz_trim.json b/assets/minecraft/models/item/golden_chestplate_quartz_trim.json new file mode 100644 index 00000000..1632e6ce --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_chestplate_redstone_trim.json b/assets/minecraft/models/item/golden_chestplate_redstone_trim.json new file mode 100644 index 00000000..2f24fa90 --- /dev/null +++ b/assets/minecraft/models/item/golden_chestplate_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet.json b/assets/minecraft/models/item/golden_helmet.json new file mode 100644 index 00000000..114e5693 --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/golden_helmet_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/golden_helmet_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/golden_helmet_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/golden_helmet_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/golden_helmet_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/golden_helmet_gold_darker_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/golden_helmet_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/golden_helmet_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/golden_helmet_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/golden_helmet_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/golden_helmet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_amethyst_trim.json b/assets/minecraft/models/item/golden_helmet_amethyst_trim.json new file mode 100644 index 00000000..47ccae21 --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_copper_trim.json b/assets/minecraft/models/item/golden_helmet_copper_trim.json new file mode 100644 index 00000000..4a3ee8e4 --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_diamond_trim.json b/assets/minecraft/models/item/golden_helmet_diamond_trim.json new file mode 100644 index 00000000..2ad2462a --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_emerald_trim.json b/assets/minecraft/models/item/golden_helmet_emerald_trim.json new file mode 100644 index 00000000..f9623b16 --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_gold_darker_trim.json b/assets/minecraft/models/item/golden_helmet_gold_darker_trim.json new file mode 100644 index 00000000..2276b5ad --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_gold_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_gold_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_iron_trim.json b/assets/minecraft/models/item/golden_helmet_iron_trim.json new file mode 100644 index 00000000..81f10c4d --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_lapis_trim.json b/assets/minecraft/models/item/golden_helmet_lapis_trim.json new file mode 100644 index 00000000..ff7d2b4d --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_netherite_trim.json b/assets/minecraft/models/item/golden_helmet_netherite_trim.json new file mode 100644 index 00000000..bbbb7291 --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_quartz_trim.json b/assets/minecraft/models/item/golden_helmet_quartz_trim.json new file mode 100644 index 00000000..583d8cda --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_helmet_redstone_trim.json b/assets/minecraft/models/item/golden_helmet_redstone_trim.json new file mode 100644 index 00000000..3a85360b --- /dev/null +++ b/assets/minecraft/models/item/golden_helmet_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_helmet", + "layer1": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_hoe.json b/assets/minecraft/models/item/golden_hoe.json new file mode 100644 index 00000000..7d2a2e5d --- /dev/null +++ b/assets/minecraft/models/item/golden_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/golden_hoe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_horse_armor.json b/assets/minecraft/models/item/golden_horse_armor.json new file mode 100644 index 00000000..9fbc0e90 --- /dev/null +++ b/assets/minecraft/models/item/golden_horse_armor.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_horse_armor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings.json b/assets/minecraft/models/item/golden_leggings.json new file mode 100644 index 00000000..285ffb0d --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/golden_leggings_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/golden_leggings_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/golden_leggings_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/golden_leggings_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/golden_leggings_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/golden_leggings_gold_darker_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/golden_leggings_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/golden_leggings_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/golden_leggings_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/golden_leggings_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/golden_leggings" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_amethyst_trim.json b/assets/minecraft/models/item/golden_leggings_amethyst_trim.json new file mode 100644 index 00000000..3d4bb850 --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_copper_trim.json b/assets/minecraft/models/item/golden_leggings_copper_trim.json new file mode 100644 index 00000000..41e999ed --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_diamond_trim.json b/assets/minecraft/models/item/golden_leggings_diamond_trim.json new file mode 100644 index 00000000..d85fda9b --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_emerald_trim.json b/assets/minecraft/models/item/golden_leggings_emerald_trim.json new file mode 100644 index 00000000..544b209f --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_gold_darker_trim.json b/assets/minecraft/models/item/golden_leggings_gold_darker_trim.json new file mode 100644 index 00000000..23eae507 --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_gold_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_gold_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_iron_trim.json b/assets/minecraft/models/item/golden_leggings_iron_trim.json new file mode 100644 index 00000000..877cb174 --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_lapis_trim.json b/assets/minecraft/models/item/golden_leggings_lapis_trim.json new file mode 100644 index 00000000..bb2fca2b --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_netherite_trim.json b/assets/minecraft/models/item/golden_leggings_netherite_trim.json new file mode 100644 index 00000000..0a41f244 --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_quartz_trim.json b/assets/minecraft/models/item/golden_leggings_quartz_trim.json new file mode 100644 index 00000000..c966b6d5 --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_leggings_redstone_trim.json b/assets/minecraft/models/item/golden_leggings_redstone_trim.json new file mode 100644 index 00000000..ec9e671f --- /dev/null +++ b/assets/minecraft/models/item/golden_leggings_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/golden_leggings", + "layer1": "minecraft:trims/items/leggings_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_pickaxe.json b/assets/minecraft/models/item/golden_pickaxe.json new file mode 100644 index 00000000..185c855b --- /dev/null +++ b/assets/minecraft/models/item/golden_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/golden_pickaxe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_shovel.json b/assets/minecraft/models/item/golden_shovel.json new file mode 100644 index 00000000..c2d1dc00 --- /dev/null +++ b/assets/minecraft/models/item/golden_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/golden_shovel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/golden_sword.json b/assets/minecraft/models/item/golden_sword.json new file mode 100644 index 00000000..02e54097 --- /dev/null +++ b/assets/minecraft/models/item/golden_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/golden_sword" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/granite.json b/assets/minecraft/models/item/granite.json new file mode 100644 index 00000000..4dd54d02 --- /dev/null +++ b/assets/minecraft/models/item/granite.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/granite" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/granite_slab.json b/assets/minecraft/models/item/granite_slab.json new file mode 100644 index 00000000..95ee6109 --- /dev/null +++ b/assets/minecraft/models/item/granite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/granite_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/granite_stairs.json b/assets/minecraft/models/item/granite_stairs.json new file mode 100644 index 00000000..68b4e669 --- /dev/null +++ b/assets/minecraft/models/item/granite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/granite_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/granite_wall.json b/assets/minecraft/models/item/granite_wall.json new file mode 100644 index 00000000..de494270 --- /dev/null +++ b/assets/minecraft/models/item/granite_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/granite_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/grass_block.json b/assets/minecraft/models/item/grass_block.json new file mode 100644 index 00000000..f54d345a --- /dev/null +++ b/assets/minecraft/models/item/grass_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/grass_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gravel.json b/assets/minecraft/models/item/gravel.json new file mode 100644 index 00000000..ee8cbc03 --- /dev/null +++ b/assets/minecraft/models/item/gravel.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gravel" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_banner.json b/assets/minecraft/models/item/gray_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/gray_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_bed.json b/assets/minecraft/models/item/gray_bed.json new file mode 100644 index 00000000..30667054 --- /dev/null +++ b/assets/minecraft/models/item/gray_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/gray_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_candle.json b/assets/minecraft/models/item/gray_candle.json new file mode 100644 index 00000000..176cf59f --- /dev/null +++ b/assets/minecraft/models/item/gray_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_carpet.json b/assets/minecraft/models/item/gray_carpet.json new file mode 100644 index 00000000..5fe85f09 --- /dev/null +++ b/assets/minecraft/models/item/gray_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gray_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_concrete.json b/assets/minecraft/models/item/gray_concrete.json new file mode 100644 index 00000000..9b89dd7b --- /dev/null +++ b/assets/minecraft/models/item/gray_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gray_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_concrete_powder.json b/assets/minecraft/models/item/gray_concrete_powder.json new file mode 100644 index 00000000..47d3dd50 --- /dev/null +++ b/assets/minecraft/models/item/gray_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gray_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_dye.json b/assets/minecraft/models/item/gray_dye.json new file mode 100644 index 00000000..f3c30106 --- /dev/null +++ b/assets/minecraft/models/item/gray_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/gray_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_glazed_terracotta.json b/assets/minecraft/models/item/gray_glazed_terracotta.json new file mode 100644 index 00000000..d58bce8a --- /dev/null +++ b/assets/minecraft/models/item/gray_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gray_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_shulker_box.json b/assets/minecraft/models/item/gray_shulker_box.json new file mode 100644 index 00000000..c7043493 --- /dev/null +++ b/assets/minecraft/models/item/gray_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/gray_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_stained_glass.json b/assets/minecraft/models/item/gray_stained_glass.json new file mode 100644 index 00000000..34c0fa6c --- /dev/null +++ b/assets/minecraft/models/item/gray_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gray_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_stained_glass_pane.json b/assets/minecraft/models/item/gray_stained_glass_pane.json new file mode 100644 index 00000000..e2b88aa7 --- /dev/null +++ b/assets/minecraft/models/item/gray_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_terracotta.json b/assets/minecraft/models/item/gray_terracotta.json new file mode 100644 index 00000000..6c415c03 --- /dev/null +++ b/assets/minecraft/models/item/gray_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gray_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gray_wool.json b/assets/minecraft/models/item/gray_wool.json new file mode 100644 index 00000000..88c930a6 --- /dev/null +++ b/assets/minecraft/models/item/gray_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/gray_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_banner.json b/assets/minecraft/models/item/green_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/green_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_bed.json b/assets/minecraft/models/item/green_bed.json new file mode 100644 index 00000000..d7c7154a --- /dev/null +++ b/assets/minecraft/models/item/green_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/green_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_candle.json b/assets/minecraft/models/item/green_candle.json new file mode 100644 index 00000000..494c6ed4 --- /dev/null +++ b/assets/minecraft/models/item/green_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/green_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_carpet.json b/assets/minecraft/models/item/green_carpet.json new file mode 100644 index 00000000..772c294f --- /dev/null +++ b/assets/minecraft/models/item/green_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/green_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_concrete.json b/assets/minecraft/models/item/green_concrete.json new file mode 100644 index 00000000..0e3b0f95 --- /dev/null +++ b/assets/minecraft/models/item/green_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/green_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_concrete_powder.json b/assets/minecraft/models/item/green_concrete_powder.json new file mode 100644 index 00000000..4c9c70f0 --- /dev/null +++ b/assets/minecraft/models/item/green_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/green_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_dye.json b/assets/minecraft/models/item/green_dye.json new file mode 100644 index 00000000..2ded932e --- /dev/null +++ b/assets/minecraft/models/item/green_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/green_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_glazed_terracotta.json b/assets/minecraft/models/item/green_glazed_terracotta.json new file mode 100644 index 00000000..68333f84 --- /dev/null +++ b/assets/minecraft/models/item/green_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/green_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_shulker_box.json b/assets/minecraft/models/item/green_shulker_box.json new file mode 100644 index 00000000..6e8e01e7 --- /dev/null +++ b/assets/minecraft/models/item/green_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/green_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_stained_glass.json b/assets/minecraft/models/item/green_stained_glass.json new file mode 100644 index 00000000..e10e37a8 --- /dev/null +++ b/assets/minecraft/models/item/green_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/green_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_stained_glass_pane.json b/assets/minecraft/models/item/green_stained_glass_pane.json new file mode 100644 index 00000000..ff4a30f7 --- /dev/null +++ b/assets/minecraft/models/item/green_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/green_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_terracotta.json b/assets/minecraft/models/item/green_terracotta.json new file mode 100644 index 00000000..bf20f272 --- /dev/null +++ b/assets/minecraft/models/item/green_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/green_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/green_wool.json b/assets/minecraft/models/item/green_wool.json new file mode 100644 index 00000000..a8cfdf47 --- /dev/null +++ b/assets/minecraft/models/item/green_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/green_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/grindstone.json b/assets/minecraft/models/item/grindstone.json new file mode 100644 index 00000000..2faa8ae8 --- /dev/null +++ b/assets/minecraft/models/item/grindstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/grindstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/guardian_spawn_egg.json b/assets/minecraft/models/item/guardian_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/guardian_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/gunpowder.json b/assets/minecraft/models/item/gunpowder.json new file mode 100644 index 00000000..82faa64c --- /dev/null +++ b/assets/minecraft/models/item/gunpowder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/gunpowder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/guster_banner_pattern.json b/assets/minecraft/models/item/guster_banner_pattern.json new file mode 100644 index 00000000..c24b83c7 --- /dev/null +++ b/assets/minecraft/models/item/guster_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/guster_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/guster_pottery_sherd.json b/assets/minecraft/models/item/guster_pottery_sherd.json new file mode 100644 index 00000000..f1bda3e1 --- /dev/null +++ b/assets/minecraft/models/item/guster_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/guster_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/handheld.json b/assets/minecraft/models/item/handheld.json new file mode 100644 index 00000000..51ea90fc --- /dev/null +++ b/assets/minecraft/models/item/handheld.json @@ -0,0 +1,25 @@ +{ + "parent": "item/generated", + "display": { + "thirdperson_righthand": { + "rotation": [ 0, -90, 55 ], + "translation": [ 0, 4.0, 0.5 ], + "scale": [ 0.85, 0.85, 0.85 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 90, -55 ], + "translation": [ 0, 4.0, 0.5 ], + "scale": [ 0.85, 0.85, 0.85 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 1.13, 3.2, 1.13 ], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -25 ], + "translation": [ 1.13, 3.2, 1.13 ], + "scale": [ 0.68, 0.68, 0.68 ] + } + } +} diff --git a/assets/minecraft/models/item/handheld_mace.json b/assets/minecraft/models/item/handheld_mace.json new file mode 100644 index 00000000..928ce0d2 --- /dev/null +++ b/assets/minecraft/models/item/handheld_mace.json @@ -0,0 +1,25 @@ +{ + "parent": "item/handheld", + "display": { + "thirdperson_righthand": { + "rotation": [ 0, -90, 55 ], + "translation": [ 0, 4.0, 1 ], + "scale": [ 1, 1, 1 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 90, -55 ], + "translation": [ 0, 4.0, 1 ], + "scale": [ 1, 1, 1 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 0, 3, 0.8 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -25 ], + "translation": [ 0, 3, 0.8 ], + "scale": [ 0.9, 0.9, 0.9 ] + } + } +} diff --git a/assets/minecraft/models/item/handheld_rod.json b/assets/minecraft/models/item/handheld_rod.json new file mode 100644 index 00000000..de794a4a --- /dev/null +++ b/assets/minecraft/models/item/handheld_rod.json @@ -0,0 +1,25 @@ +{ + "parent": "item/handheld", + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 90, 55 ], + "translation": [ 0, 4.0, 2.5 ], + "scale": [ 0.85, 0.85, 0.85 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, -90, -55 ], + "translation": [ 0, 4.0, 2.5 ], + "scale": [ 0.85, 0.85, 0.85 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 90, 25 ], + "translation": [ 0, 1.6, 0.8 ], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, -90, -25 ], + "translation": [ 0, 1.6, 0.8 ], + "scale": [ 0.68, 0.68, 0.68 ] + } + } +} diff --git a/assets/minecraft/models/item/hanging_roots.json b/assets/minecraft/models/item/hanging_roots.json new file mode 100644 index 00000000..05320edb --- /dev/null +++ b/assets/minecraft/models/item/hanging_roots.json @@ -0,0 +1,18 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "minecraft:block/hanging_roots" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 0, 1 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 1.13, 0, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + } + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/hay_block.json b/assets/minecraft/models/item/hay_block.json new file mode 100644 index 00000000..6c92e25d --- /dev/null +++ b/assets/minecraft/models/item/hay_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/hay_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/heart_of_the_sea.json b/assets/minecraft/models/item/heart_of_the_sea.json new file mode 100644 index 00000000..eb299204 --- /dev/null +++ b/assets/minecraft/models/item/heart_of_the_sea.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/heart_of_the_sea" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/heart_pottery_sherd.json b/assets/minecraft/models/item/heart_pottery_sherd.json new file mode 100644 index 00000000..e5c45741 --- /dev/null +++ b/assets/minecraft/models/item/heart_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/heart_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/heartbreak_pottery_sherd.json b/assets/minecraft/models/item/heartbreak_pottery_sherd.json new file mode 100644 index 00000000..48c49fa4 --- /dev/null +++ b/assets/minecraft/models/item/heartbreak_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/heartbreak_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/heavy_core.json b/assets/minecraft/models/item/heavy_core.json new file mode 100644 index 00000000..aed92e07 --- /dev/null +++ b/assets/minecraft/models/item/heavy_core.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/heavy_core" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/heavy_weighted_pressure_plate.json b/assets/minecraft/models/item/heavy_weighted_pressure_plate.json new file mode 100644 index 00000000..ef384772 --- /dev/null +++ b/assets/minecraft/models/item/heavy_weighted_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/heavy_weighted_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/hoglin_spawn_egg.json b/assets/minecraft/models/item/hoglin_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/hoglin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/honey_block.json b/assets/minecraft/models/item/honey_block.json new file mode 100644 index 00000000..29818ade --- /dev/null +++ b/assets/minecraft/models/item/honey_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/honey_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/honey_bottle.json b/assets/minecraft/models/item/honey_bottle.json new file mode 100644 index 00000000..2a69e5f9 --- /dev/null +++ b/assets/minecraft/models/item/honey_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/honey_bottle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/honeycomb.json b/assets/minecraft/models/item/honeycomb.json new file mode 100644 index 00000000..b183a8ec --- /dev/null +++ b/assets/minecraft/models/item/honeycomb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/honeycomb" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/honeycomb_block.json b/assets/minecraft/models/item/honeycomb_block.json new file mode 100644 index 00000000..0a2c9541 --- /dev/null +++ b/assets/minecraft/models/item/honeycomb_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/honeycomb_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/hopper.json b/assets/minecraft/models/item/hopper.json new file mode 100644 index 00000000..b9e54880 --- /dev/null +++ b/assets/minecraft/models/item/hopper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/hopper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/hopper_minecart.json b/assets/minecraft/models/item/hopper_minecart.json new file mode 100644 index 00000000..8bf45607 --- /dev/null +++ b/assets/minecraft/models/item/hopper_minecart.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/hopper_minecart" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/horn_coral.json b/assets/minecraft/models/item/horn_coral.json new file mode 100644 index 00000000..5994465f --- /dev/null +++ b/assets/minecraft/models/item/horn_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/horn_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/horn_coral_block.json b/assets/minecraft/models/item/horn_coral_block.json new file mode 100644 index 00000000..ba702d24 --- /dev/null +++ b/assets/minecraft/models/item/horn_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/horn_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/horn_coral_fan.json b/assets/minecraft/models/item/horn_coral_fan.json new file mode 100644 index 00000000..e2078bf4 --- /dev/null +++ b/assets/minecraft/models/item/horn_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/horn_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/horse_spawn_egg.json b/assets/minecraft/models/item/horse_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/horse_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/host_armor_trim_smithing_template.json b/assets/minecraft/models/item/host_armor_trim_smithing_template.json new file mode 100644 index 00000000..cff91b21 --- /dev/null +++ b/assets/minecraft/models/item/host_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/host_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/howl_pottery_sherd.json b/assets/minecraft/models/item/howl_pottery_sherd.json new file mode 100644 index 00000000..37703199 --- /dev/null +++ b/assets/minecraft/models/item/howl_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/howl_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/husk_spawn_egg.json b/assets/minecraft/models/item/husk_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/husk_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ice.json b/assets/minecraft/models/item/ice.json new file mode 100644 index 00000000..1ec90d77 --- /dev/null +++ b/assets/minecraft/models/item/ice.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/ice" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/infested_chiseled_stone_bricks.json b/assets/minecraft/models/item/infested_chiseled_stone_bricks.json new file mode 100644 index 00000000..ac7e5e66 --- /dev/null +++ b/assets/minecraft/models/item/infested_chiseled_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/infested_cobblestone.json b/assets/minecraft/models/item/infested_cobblestone.json new file mode 100644 index 00000000..35e828df --- /dev/null +++ b/assets/minecraft/models/item/infested_cobblestone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cobblestone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/infested_cracked_stone_bricks.json b/assets/minecraft/models/item/infested_cracked_stone_bricks.json new file mode 100644 index 00000000..46802074 --- /dev/null +++ b/assets/minecraft/models/item/infested_cracked_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cracked_stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/infested_deepslate.json b/assets/minecraft/models/item/infested_deepslate.json new file mode 100644 index 00000000..13980a84 --- /dev/null +++ b/assets/minecraft/models/item/infested_deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/deepslate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/infested_mossy_stone_bricks.json b/assets/minecraft/models/item/infested_mossy_stone_bricks.json new file mode 100644 index 00000000..a9fe750f --- /dev/null +++ b/assets/minecraft/models/item/infested_mossy_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/infested_stone.json b/assets/minecraft/models/item/infested_stone.json new file mode 100644 index 00000000..37f27f10 --- /dev/null +++ b/assets/minecraft/models/item/infested_stone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/infested_stone_bricks.json b/assets/minecraft/models/item/infested_stone_bricks.json new file mode 100644 index 00000000..51de871c --- /dev/null +++ b/assets/minecraft/models/item/infested_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ink_sac.json b/assets/minecraft/models/item/ink_sac.json new file mode 100644 index 00000000..4e528dcd --- /dev/null +++ b/assets/minecraft/models/item/ink_sac.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/ink_sac" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_axe.json b/assets/minecraft/models/item/iron_axe.json new file mode 100644 index 00000000..6ddc5491 --- /dev/null +++ b/assets/minecraft/models/item/iron_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/iron_axe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_bars.json b/assets/minecraft/models/item/iron_bars.json new file mode 100644 index 00000000..97aa41fc --- /dev/null +++ b/assets/minecraft/models/item/iron_bars.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/iron_bars" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_block.json b/assets/minecraft/models/item/iron_block.json new file mode 100644 index 00000000..acac52ca --- /dev/null +++ b/assets/minecraft/models/item/iron_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/iron_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots.json b/assets/minecraft/models/item/iron_boots.json new file mode 100644 index 00000000..a1f2a4fc --- /dev/null +++ b/assets/minecraft/models/item/iron_boots.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/iron_boots_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/iron_boots_iron_darker_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/iron_boots_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/iron_boots_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/iron_boots_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/iron_boots_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/iron_boots_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/iron_boots_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/iron_boots_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/iron_boots_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/iron_boots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_amethyst_trim.json b/assets/minecraft/models/item/iron_boots_amethyst_trim.json new file mode 100644 index 00000000..c520b66a --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_copper_trim.json b/assets/minecraft/models/item/iron_boots_copper_trim.json new file mode 100644 index 00000000..f4321a79 --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_diamond_trim.json b/assets/minecraft/models/item/iron_boots_diamond_trim.json new file mode 100644 index 00000000..58dfbd8a --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_emerald_trim.json b/assets/minecraft/models/item/iron_boots_emerald_trim.json new file mode 100644 index 00000000..ebba4116 --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_gold_trim.json b/assets/minecraft/models/item/iron_boots_gold_trim.json new file mode 100644 index 00000000..b1601c91 --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_iron_darker_trim.json b/assets/minecraft/models/item/iron_boots_iron_darker_trim.json new file mode 100644 index 00000000..65b96082 --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_iron_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_iron_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_lapis_trim.json b/assets/minecraft/models/item/iron_boots_lapis_trim.json new file mode 100644 index 00000000..1aefdf66 --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_netherite_trim.json b/assets/minecraft/models/item/iron_boots_netherite_trim.json new file mode 100644 index 00000000..f6a2d102 --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_quartz_trim.json b/assets/minecraft/models/item/iron_boots_quartz_trim.json new file mode 100644 index 00000000..52af0ee7 --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_boots_redstone_trim.json b/assets/minecraft/models/item/iron_boots_redstone_trim.json new file mode 100644 index 00000000..a838412c --- /dev/null +++ b/assets/minecraft/models/item/iron_boots_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_boots", + "layer1": "minecraft:trims/items/boots_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate.json b/assets/minecraft/models/item/iron_chestplate.json new file mode 100644 index 00000000..a0385c25 --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/iron_chestplate_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/iron_chestplate_iron_darker_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/iron_chestplate_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/iron_chestplate_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/iron_chestplate_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/iron_chestplate_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/iron_chestplate_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/iron_chestplate_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/iron_chestplate_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/iron_chestplate_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/iron_chestplate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_amethyst_trim.json b/assets/minecraft/models/item/iron_chestplate_amethyst_trim.json new file mode 100644 index 00000000..ab82095d --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_copper_trim.json b/assets/minecraft/models/item/iron_chestplate_copper_trim.json new file mode 100644 index 00000000..956ba484 --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_diamond_trim.json b/assets/minecraft/models/item/iron_chestplate_diamond_trim.json new file mode 100644 index 00000000..e559d7cc --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_emerald_trim.json b/assets/minecraft/models/item/iron_chestplate_emerald_trim.json new file mode 100644 index 00000000..e143c99d --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_gold_trim.json b/assets/minecraft/models/item/iron_chestplate_gold_trim.json new file mode 100644 index 00000000..f5dfee4c --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_iron_darker_trim.json b/assets/minecraft/models/item/iron_chestplate_iron_darker_trim.json new file mode 100644 index 00000000..38ba7c1b --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_iron_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_iron_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_lapis_trim.json b/assets/minecraft/models/item/iron_chestplate_lapis_trim.json new file mode 100644 index 00000000..03ae6fbd --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_netherite_trim.json b/assets/minecraft/models/item/iron_chestplate_netherite_trim.json new file mode 100644 index 00000000..ccb15245 --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_quartz_trim.json b/assets/minecraft/models/item/iron_chestplate_quartz_trim.json new file mode 100644 index 00000000..981e14a3 --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_chestplate_redstone_trim.json b/assets/minecraft/models/item/iron_chestplate_redstone_trim.json new file mode 100644 index 00000000..208a2524 --- /dev/null +++ b/assets/minecraft/models/item/iron_chestplate_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_door.json b/assets/minecraft/models/item/iron_door.json new file mode 100644 index 00000000..a057f8f8 --- /dev/null +++ b/assets/minecraft/models/item/iron_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_golem_spawn_egg.json b/assets/minecraft/models/item/iron_golem_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/iron_golem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet.json b/assets/minecraft/models/item/iron_helmet.json new file mode 100644 index 00000000..a2e575f9 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/iron_helmet_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/iron_helmet_iron_darker_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/iron_helmet_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/iron_helmet_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/iron_helmet_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/iron_helmet_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/iron_helmet_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/iron_helmet_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/iron_helmet_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/iron_helmet_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/iron_helmet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_amethyst_trim.json b/assets/minecraft/models/item/iron_helmet_amethyst_trim.json new file mode 100644 index 00000000..53b64e68 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_copper_trim.json b/assets/minecraft/models/item/iron_helmet_copper_trim.json new file mode 100644 index 00000000..61314f95 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_diamond_trim.json b/assets/minecraft/models/item/iron_helmet_diamond_trim.json new file mode 100644 index 00000000..d469b22f --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_emerald_trim.json b/assets/minecraft/models/item/iron_helmet_emerald_trim.json new file mode 100644 index 00000000..bc596c65 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_gold_trim.json b/assets/minecraft/models/item/iron_helmet_gold_trim.json new file mode 100644 index 00000000..f68de78d --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_iron_darker_trim.json b/assets/minecraft/models/item/iron_helmet_iron_darker_trim.json new file mode 100644 index 00000000..b471361f --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_iron_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_iron_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_lapis_trim.json b/assets/minecraft/models/item/iron_helmet_lapis_trim.json new file mode 100644 index 00000000..ef272104 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_netherite_trim.json b/assets/minecraft/models/item/iron_helmet_netherite_trim.json new file mode 100644 index 00000000..9f6c5f52 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_quartz_trim.json b/assets/minecraft/models/item/iron_helmet_quartz_trim.json new file mode 100644 index 00000000..c34faf47 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_helmet_redstone_trim.json b/assets/minecraft/models/item/iron_helmet_redstone_trim.json new file mode 100644 index 00000000..9ad0a7b5 --- /dev/null +++ b/assets/minecraft/models/item/iron_helmet_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_helmet", + "layer1": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_hoe.json b/assets/minecraft/models/item/iron_hoe.json new file mode 100644 index 00000000..889dd3a3 --- /dev/null +++ b/assets/minecraft/models/item/iron_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/iron_hoe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_horse_armor.json b/assets/minecraft/models/item/iron_horse_armor.json new file mode 100644 index 00000000..3a560516 --- /dev/null +++ b/assets/minecraft/models/item/iron_horse_armor.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_horse_armor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_ingot.json b/assets/minecraft/models/item/iron_ingot.json new file mode 100644 index 00000000..1fc74dfc --- /dev/null +++ b/assets/minecraft/models/item/iron_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_ingot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings.json b/assets/minecraft/models/item/iron_leggings.json new file mode 100644 index 00000000..826c4f73 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/iron_leggings_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/iron_leggings_iron_darker_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/iron_leggings_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/iron_leggings_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/iron_leggings_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/iron_leggings_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/iron_leggings_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/iron_leggings_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/iron_leggings_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/iron_leggings_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/iron_leggings" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_amethyst_trim.json b/assets/minecraft/models/item/iron_leggings_amethyst_trim.json new file mode 100644 index 00000000..e64f52a6 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_copper_trim.json b/assets/minecraft/models/item/iron_leggings_copper_trim.json new file mode 100644 index 00000000..48a46fe8 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_diamond_trim.json b/assets/minecraft/models/item/iron_leggings_diamond_trim.json new file mode 100644 index 00000000..a706ce34 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_emerald_trim.json b/assets/minecraft/models/item/iron_leggings_emerald_trim.json new file mode 100644 index 00000000..88c61375 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_gold_trim.json b/assets/minecraft/models/item/iron_leggings_gold_trim.json new file mode 100644 index 00000000..90ca5a6a --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_iron_darker_trim.json b/assets/minecraft/models/item/iron_leggings_iron_darker_trim.json new file mode 100644 index 00000000..e85d215e --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_iron_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_iron_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_lapis_trim.json b/assets/minecraft/models/item/iron_leggings_lapis_trim.json new file mode 100644 index 00000000..063137c1 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_netherite_trim.json b/assets/minecraft/models/item/iron_leggings_netherite_trim.json new file mode 100644 index 00000000..5afcdf92 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_quartz_trim.json b/assets/minecraft/models/item/iron_leggings_quartz_trim.json new file mode 100644 index 00000000..5ce4703c --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_leggings_redstone_trim.json b/assets/minecraft/models/item/iron_leggings_redstone_trim.json new file mode 100644 index 00000000..c907c7a1 --- /dev/null +++ b/assets/minecraft/models/item/iron_leggings_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_leggings", + "layer1": "minecraft:trims/items/leggings_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_nugget.json b/assets/minecraft/models/item/iron_nugget.json new file mode 100644 index 00000000..3873a52a --- /dev/null +++ b/assets/minecraft/models/item/iron_nugget.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/iron_nugget" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_ore.json b/assets/minecraft/models/item/iron_ore.json new file mode 100644 index 00000000..5a356139 --- /dev/null +++ b/assets/minecraft/models/item/iron_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/iron_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_pickaxe.json b/assets/minecraft/models/item/iron_pickaxe.json new file mode 100644 index 00000000..8a5f4079 --- /dev/null +++ b/assets/minecraft/models/item/iron_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/iron_pickaxe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_shovel.json b/assets/minecraft/models/item/iron_shovel.json new file mode 100644 index 00000000..26674cfb --- /dev/null +++ b/assets/minecraft/models/item/iron_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/iron_shovel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_sword.json b/assets/minecraft/models/item/iron_sword.json new file mode 100644 index 00000000..ebbcd411 --- /dev/null +++ b/assets/minecraft/models/item/iron_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/iron_sword" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/iron_trapdoor.json b/assets/minecraft/models/item/iron_trapdoor.json new file mode 100644 index 00000000..b3a30b76 --- /dev/null +++ b/assets/minecraft/models/item/iron_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/iron_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/item_frame.json b/assets/minecraft/models/item/item_frame.json new file mode 100644 index 00000000..09797547 --- /dev/null +++ b/assets/minecraft/models/item/item_frame.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/item_frame" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jack_o_lantern.json b/assets/minecraft/models/item/jack_o_lantern.json new file mode 100644 index 00000000..d2307203 --- /dev/null +++ b/assets/minecraft/models/item/jack_o_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jack_o_lantern" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jigsaw.json b/assets/minecraft/models/item/jigsaw.json new file mode 100644 index 00000000..b0c47630 --- /dev/null +++ b/assets/minecraft/models/item/jigsaw.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jigsaw" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jukebox.json b/assets/minecraft/models/item/jukebox.json new file mode 100644 index 00000000..4d2923ac --- /dev/null +++ b/assets/minecraft/models/item/jukebox.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jukebox" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_boat.json b/assets/minecraft/models/item/jungle_boat.json new file mode 100644 index 00000000..4cc14d5c --- /dev/null +++ b/assets/minecraft/models/item/jungle_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/jungle_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_button.json b/assets/minecraft/models/item/jungle_button.json new file mode 100644 index 00000000..360738a3 --- /dev/null +++ b/assets/minecraft/models/item/jungle_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_chest_boat.json b/assets/minecraft/models/item/jungle_chest_boat.json new file mode 100644 index 00000000..e2b2e3bb --- /dev/null +++ b/assets/minecraft/models/item/jungle_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/jungle_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_door.json b/assets/minecraft/models/item/jungle_door.json new file mode 100644 index 00000000..2fbc71f5 --- /dev/null +++ b/assets/minecraft/models/item/jungle_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/jungle_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_fence.json b/assets/minecraft/models/item/jungle_fence.json new file mode 100644 index 00000000..c5e6b2aa --- /dev/null +++ b/assets/minecraft/models/item/jungle_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_fence_gate.json b/assets/minecraft/models/item/jungle_fence_gate.json new file mode 100644 index 00000000..8612c91d --- /dev/null +++ b/assets/minecraft/models/item/jungle_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_hanging_sign.json b/assets/minecraft/models/item/jungle_hanging_sign.json new file mode 100644 index 00000000..19222949 --- /dev/null +++ b/assets/minecraft/models/item/jungle_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/jungle_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_leaves.json b/assets/minecraft/models/item/jungle_leaves.json new file mode 100644 index 00000000..4be7c1ad --- /dev/null +++ b/assets/minecraft/models/item/jungle_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_log.json b/assets/minecraft/models/item/jungle_log.json new file mode 100644 index 00000000..2e6c371b --- /dev/null +++ b/assets/minecraft/models/item/jungle_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_planks.json b/assets/minecraft/models/item/jungle_planks.json new file mode 100644 index 00000000..03f6926a --- /dev/null +++ b/assets/minecraft/models/item/jungle_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_pressure_plate.json b/assets/minecraft/models/item/jungle_pressure_plate.json new file mode 100644 index 00000000..18a6d0f5 --- /dev/null +++ b/assets/minecraft/models/item/jungle_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_sapling.json b/assets/minecraft/models/item/jungle_sapling.json new file mode 100644 index 00000000..4dd71de2 --- /dev/null +++ b/assets/minecraft/models/item/jungle_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/jungle_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_sign.json b/assets/minecraft/models/item/jungle_sign.json new file mode 100644 index 00000000..2ee2828e --- /dev/null +++ b/assets/minecraft/models/item/jungle_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/jungle_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_slab.json b/assets/minecraft/models/item/jungle_slab.json new file mode 100644 index 00000000..ed5a4321 --- /dev/null +++ b/assets/minecraft/models/item/jungle_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_stairs.json b/assets/minecraft/models/item/jungle_stairs.json new file mode 100644 index 00000000..87e9264c --- /dev/null +++ b/assets/minecraft/models/item/jungle_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_trapdoor.json b/assets/minecraft/models/item/jungle_trapdoor.json new file mode 100644 index 00000000..996f2808 --- /dev/null +++ b/assets/minecraft/models/item/jungle_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/jungle_wood.json b/assets/minecraft/models/item/jungle_wood.json new file mode 100644 index 00000000..c993caea --- /dev/null +++ b/assets/minecraft/models/item/jungle_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/jungle_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/kelp.json b/assets/minecraft/models/item/kelp.json new file mode 100644 index 00000000..b701d7b5 --- /dev/null +++ b/assets/minecraft/models/item/kelp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/kelp" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/knowledge_book.json b/assets/minecraft/models/item/knowledge_book.json new file mode 100644 index 00000000..bc355f72 --- /dev/null +++ b/assets/minecraft/models/item/knowledge_book.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/knowledge_book" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ladder.json b/assets/minecraft/models/item/ladder.json new file mode 100644 index 00000000..b4fd6267 --- /dev/null +++ b/assets/minecraft/models/item/ladder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/ladder" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lantern.json b/assets/minecraft/models/item/lantern.json new file mode 100644 index 00000000..ce9e5c10 --- /dev/null +++ b/assets/minecraft/models/item/lantern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/lantern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lapis_block.json b/assets/minecraft/models/item/lapis_block.json new file mode 100644 index 00000000..1dcdaf6e --- /dev/null +++ b/assets/minecraft/models/item/lapis_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lapis_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lapis_lazuli.json b/assets/minecraft/models/item/lapis_lazuli.json new file mode 100644 index 00000000..ee8bdea5 --- /dev/null +++ b/assets/minecraft/models/item/lapis_lazuli.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/lapis_lazuli" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lapis_ore.json b/assets/minecraft/models/item/lapis_ore.json new file mode 100644 index 00000000..87cec1e4 --- /dev/null +++ b/assets/minecraft/models/item/lapis_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lapis_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/large_amethyst_bud.json b/assets/minecraft/models/item/large_amethyst_bud.json new file mode 100644 index 00000000..0e601416 --- /dev/null +++ b/assets/minecraft/models/item/large_amethyst_bud.json @@ -0,0 +1,11 @@ + { + "parent": "item/amethyst_bud", + "textures": { + "layer0": "minecraft:block/large_amethyst_bud" + }, + "display": { + "fixed": { + "translation": [ 0, 4, 0 ] + } + } +} diff --git a/assets/minecraft/models/item/large_fern.json b/assets/minecraft/models/item/large_fern.json new file mode 100644 index 00000000..1072e940 --- /dev/null +++ b/assets/minecraft/models/item/large_fern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/large_fern_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lava_bucket.json b/assets/minecraft/models/item/lava_bucket.json new file mode 100644 index 00000000..4052c615 --- /dev/null +++ b/assets/minecraft/models/item/lava_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/lava_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lead.json b/assets/minecraft/models/item/lead.json new file mode 100644 index 00000000..df628d66 --- /dev/null +++ b/assets/minecraft/models/item/lead.json @@ -0,0 +1,13 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/lead" + }, + "display": { + "head": { + "rotation": [ 0, 0, 0 ], + "translation": [ 2.75, -2.75, -6.5], + "scale":[ 0.8, 0.8, 0.8] + } + } +} diff --git a/assets/minecraft/models/item/leather.json b/assets/minecraft/models/item/leather.json new file mode 100644 index 00000000..2b48d1f8 --- /dev/null +++ b/assets/minecraft/models/item/leather.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots.json b/assets/minecraft/models/item/leather_boots.json new file mode 100644 index 00000000..fcba9da9 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots.json @@ -0,0 +1,69 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/leather_boots_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/leather_boots_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/leather_boots_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/leather_boots_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/leather_boots_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/leather_boots_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/leather_boots_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/leather_boots_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/leather_boots_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/leather_boots_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_amethyst_trim.json b/assets/minecraft/models/item/leather_boots_amethyst_trim.json new file mode 100644 index 00000000..2b6f4a7e --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_amethyst_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_copper_trim.json b/assets/minecraft/models/item/leather_boots_copper_trim.json new file mode 100644 index 00000000..e6a7f7c8 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_copper_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_diamond_trim.json b/assets/minecraft/models/item/leather_boots_diamond_trim.json new file mode 100644 index 00000000..07dc69b0 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_diamond_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_emerald_trim.json b/assets/minecraft/models/item/leather_boots_emerald_trim.json new file mode 100644 index 00000000..9ebfe59e --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_emerald_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_gold_trim.json b/assets/minecraft/models/item/leather_boots_gold_trim.json new file mode 100644 index 00000000..e17c9a74 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_gold_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_iron_trim.json b/assets/minecraft/models/item/leather_boots_iron_trim.json new file mode 100644 index 00000000..196913b6 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_iron_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_lapis_trim.json b/assets/minecraft/models/item/leather_boots_lapis_trim.json new file mode 100644 index 00000000..8c5b3bdd --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_lapis_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_netherite_trim.json b/assets/minecraft/models/item/leather_boots_netherite_trim.json new file mode 100644 index 00000000..254a5636 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_netherite_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_quartz_trim.json b/assets/minecraft/models/item/leather_boots_quartz_trim.json new file mode 100644 index 00000000..5d056ad7 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_quartz_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_boots_redstone_trim.json b/assets/minecraft/models/item/leather_boots_redstone_trim.json new file mode 100644 index 00000000..c85de7a4 --- /dev/null +++ b/assets/minecraft/models/item/leather_boots_redstone_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_boots", + "layer1": "minecraft:item/leather_boots_overlay", + "layer2": "minecraft:trims/items/boots_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate.json b/assets/minecraft/models/item/leather_chestplate.json new file mode 100644 index 00000000..93976e78 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate.json @@ -0,0 +1,69 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/leather_chestplate_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/leather_chestplate_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/leather_chestplate_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/leather_chestplate_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/leather_chestplate_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/leather_chestplate_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/leather_chestplate_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/leather_chestplate_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/leather_chestplate_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/leather_chestplate_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_amethyst_trim.json b/assets/minecraft/models/item/leather_chestplate_amethyst_trim.json new file mode 100644 index 00000000..b615e947 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_amethyst_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_copper_trim.json b/assets/minecraft/models/item/leather_chestplate_copper_trim.json new file mode 100644 index 00000000..cccfd3c0 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_copper_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_diamond_trim.json b/assets/minecraft/models/item/leather_chestplate_diamond_trim.json new file mode 100644 index 00000000..660d6665 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_diamond_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_emerald_trim.json b/assets/minecraft/models/item/leather_chestplate_emerald_trim.json new file mode 100644 index 00000000..38ab18ae --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_emerald_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_gold_trim.json b/assets/minecraft/models/item/leather_chestplate_gold_trim.json new file mode 100644 index 00000000..7dd88493 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_gold_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_iron_trim.json b/assets/minecraft/models/item/leather_chestplate_iron_trim.json new file mode 100644 index 00000000..9b6fcf49 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_iron_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_lapis_trim.json b/assets/minecraft/models/item/leather_chestplate_lapis_trim.json new file mode 100644 index 00000000..343d6828 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_lapis_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_netherite_trim.json b/assets/minecraft/models/item/leather_chestplate_netherite_trim.json new file mode 100644 index 00000000..a95532ca --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_netherite_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_quartz_trim.json b/assets/minecraft/models/item/leather_chestplate_quartz_trim.json new file mode 100644 index 00000000..319aa447 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_quartz_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_chestplate_redstone_trim.json b/assets/minecraft/models/item/leather_chestplate_redstone_trim.json new file mode 100644 index 00000000..cb2008c1 --- /dev/null +++ b/assets/minecraft/models/item/leather_chestplate_redstone_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_chestplate", + "layer1": "minecraft:item/leather_chestplate_overlay", + "layer2": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet.json b/assets/minecraft/models/item/leather_helmet.json new file mode 100644 index 00000000..616e6ebd --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet.json @@ -0,0 +1,69 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/leather_helmet_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/leather_helmet_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/leather_helmet_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/leather_helmet_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/leather_helmet_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/leather_helmet_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/leather_helmet_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/leather_helmet_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/leather_helmet_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/leather_helmet_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_amethyst_trim.json b/assets/minecraft/models/item/leather_helmet_amethyst_trim.json new file mode 100644 index 00000000..6f4df1bb --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_amethyst_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_copper_trim.json b/assets/minecraft/models/item/leather_helmet_copper_trim.json new file mode 100644 index 00000000..2c1275a8 --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_copper_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_diamond_trim.json b/assets/minecraft/models/item/leather_helmet_diamond_trim.json new file mode 100644 index 00000000..315eb0de --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_diamond_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_emerald_trim.json b/assets/minecraft/models/item/leather_helmet_emerald_trim.json new file mode 100644 index 00000000..0167efb8 --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_emerald_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_gold_trim.json b/assets/minecraft/models/item/leather_helmet_gold_trim.json new file mode 100644 index 00000000..0e8c4560 --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_gold_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_iron_trim.json b/assets/minecraft/models/item/leather_helmet_iron_trim.json new file mode 100644 index 00000000..7b1b8b85 --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_iron_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_lapis_trim.json b/assets/minecraft/models/item/leather_helmet_lapis_trim.json new file mode 100644 index 00000000..555c2828 --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_lapis_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_netherite_trim.json b/assets/minecraft/models/item/leather_helmet_netherite_trim.json new file mode 100644 index 00000000..9e3ddb7d --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_netherite_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_quartz_trim.json b/assets/minecraft/models/item/leather_helmet_quartz_trim.json new file mode 100644 index 00000000..63fe5bc1 --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_quartz_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_helmet_redstone_trim.json b/assets/minecraft/models/item/leather_helmet_redstone_trim.json new file mode 100644 index 00000000..df044830 --- /dev/null +++ b/assets/minecraft/models/item/leather_helmet_redstone_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_helmet", + "layer1": "minecraft:item/leather_helmet_overlay", + "layer2": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_horse_armor.json b/assets/minecraft/models/item/leather_horse_armor.json new file mode 100644 index 00000000..f96eae75 --- /dev/null +++ b/assets/minecraft/models/item/leather_horse_armor.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_horse_armor" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings.json b/assets/minecraft/models/item/leather_leggings.json new file mode 100644 index 00000000..dcf68e17 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings.json @@ -0,0 +1,69 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/leather_leggings_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/leather_leggings_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/leather_leggings_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/leather_leggings_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/leather_leggings_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/leather_leggings_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/leather_leggings_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/leather_leggings_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/leather_leggings_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/leather_leggings_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_amethyst_trim.json b/assets/minecraft/models/item/leather_leggings_amethyst_trim.json new file mode 100644 index 00000000..331e2096 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_amethyst_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_copper_trim.json b/assets/minecraft/models/item/leather_leggings_copper_trim.json new file mode 100644 index 00000000..cc6a3945 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_copper_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_diamond_trim.json b/assets/minecraft/models/item/leather_leggings_diamond_trim.json new file mode 100644 index 00000000..9a5313ea --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_diamond_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_emerald_trim.json b/assets/minecraft/models/item/leather_leggings_emerald_trim.json new file mode 100644 index 00000000..71156943 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_emerald_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_gold_trim.json b/assets/minecraft/models/item/leather_leggings_gold_trim.json new file mode 100644 index 00000000..528c94e7 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_gold_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_iron_trim.json b/assets/minecraft/models/item/leather_leggings_iron_trim.json new file mode 100644 index 00000000..3e9d6634 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_iron_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_lapis_trim.json b/assets/minecraft/models/item/leather_leggings_lapis_trim.json new file mode 100644 index 00000000..6858077c --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_lapis_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_netherite_trim.json b/assets/minecraft/models/item/leather_leggings_netherite_trim.json new file mode 100644 index 00000000..abf3b615 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_netherite_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_quartz_trim.json b/assets/minecraft/models/item/leather_leggings_quartz_trim.json new file mode 100644 index 00000000..29b21d50 --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_quartz_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/leather_leggings_redstone_trim.json b/assets/minecraft/models/item/leather_leggings_redstone_trim.json new file mode 100644 index 00000000..9b35d59f --- /dev/null +++ b/assets/minecraft/models/item/leather_leggings_redstone_trim.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/leather_leggings", + "layer1": "minecraft:item/leather_leggings_overlay", + "layer2": "minecraft:trims/items/leggings_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lectern.json b/assets/minecraft/models/item/lectern.json new file mode 100644 index 00000000..4f2c887a --- /dev/null +++ b/assets/minecraft/models/item/lectern.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lectern" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lever.json b/assets/minecraft/models/item/lever.json new file mode 100644 index 00000000..d5a62d47 --- /dev/null +++ b/assets/minecraft/models/item/lever.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/lever" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light.json b/assets/minecraft/models/item/light.json new file mode 100644 index 00000000..f53de1b5 --- /dev/null +++ b/assets/minecraft/models/item/light.json @@ -0,0 +1,24 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light" + }, + "overrides": [ + { "predicate": { "level": 0.0000 }, "model": "item/light_00" }, + { "predicate": { "level": 0.0625 }, "model": "item/light_01" }, + { "predicate": { "level": 0.1250 }, "model": "item/light_02" }, + { "predicate": { "level": 0.1875 }, "model": "item/light_03" }, + { "predicate": { "level": 0.2500 }, "model": "item/light_04" }, + { "predicate": { "level": 0.3125 }, "model": "item/light_05" }, + { "predicate": { "level": 0.3750 }, "model": "item/light_06" }, + { "predicate": { "level": 0.4375 }, "model": "item/light_07" }, + { "predicate": { "level": 0.5000 }, "model": "item/light_08" }, + { "predicate": { "level": 0.5625 }, "model": "item/light_09" }, + { "predicate": { "level": 0.6250 }, "model": "item/light_10" }, + { "predicate": { "level": 0.6875 }, "model": "item/light_11" }, + { "predicate": { "level": 0.7500 }, "model": "item/light_12" }, + { "predicate": { "level": 0.8125 }, "model": "item/light_13" }, + { "predicate": { "level": 0.8750 }, "model": "item/light_14" }, + { "predicate": { "level": 0.9375 }, "model": "item/light_15" } + ] +} diff --git a/assets/minecraft/models/item/light_00.json b/assets/minecraft/models/item/light_00.json new file mode 100644 index 00000000..f6029196 --- /dev/null +++ b/assets/minecraft/models/item/light_00.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_00" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_01.json b/assets/minecraft/models/item/light_01.json new file mode 100644 index 00000000..50fe9d52 --- /dev/null +++ b/assets/minecraft/models/item/light_01.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_01" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_02.json b/assets/minecraft/models/item/light_02.json new file mode 100644 index 00000000..3112e828 --- /dev/null +++ b/assets/minecraft/models/item/light_02.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_02" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_03.json b/assets/minecraft/models/item/light_03.json new file mode 100644 index 00000000..7b7d1304 --- /dev/null +++ b/assets/minecraft/models/item/light_03.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_03" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_04.json b/assets/minecraft/models/item/light_04.json new file mode 100644 index 00000000..eeca8b9c --- /dev/null +++ b/assets/minecraft/models/item/light_04.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_04" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_05.json b/assets/minecraft/models/item/light_05.json new file mode 100644 index 00000000..920f2957 --- /dev/null +++ b/assets/minecraft/models/item/light_05.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_05" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_06.json b/assets/minecraft/models/item/light_06.json new file mode 100644 index 00000000..f60f6bf7 --- /dev/null +++ b/assets/minecraft/models/item/light_06.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_06" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_07.json b/assets/minecraft/models/item/light_07.json new file mode 100644 index 00000000..b795ac71 --- /dev/null +++ b/assets/minecraft/models/item/light_07.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_07" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_08.json b/assets/minecraft/models/item/light_08.json new file mode 100644 index 00000000..d34ca3a1 --- /dev/null +++ b/assets/minecraft/models/item/light_08.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_08" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_09.json b/assets/minecraft/models/item/light_09.json new file mode 100644 index 00000000..861002fe --- /dev/null +++ b/assets/minecraft/models/item/light_09.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_09" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_10.json b/assets/minecraft/models/item/light_10.json new file mode 100644 index 00000000..3bda0d19 --- /dev/null +++ b/assets/minecraft/models/item/light_10.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_10" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_11.json b/assets/minecraft/models/item/light_11.json new file mode 100644 index 00000000..582b6183 --- /dev/null +++ b/assets/minecraft/models/item/light_11.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_11" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_12.json b/assets/minecraft/models/item/light_12.json new file mode 100644 index 00000000..f9dc8d10 --- /dev/null +++ b/assets/minecraft/models/item/light_12.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_12" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_13.json b/assets/minecraft/models/item/light_13.json new file mode 100644 index 00000000..2f9d3815 --- /dev/null +++ b/assets/minecraft/models/item/light_13.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_13" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_14.json b/assets/minecraft/models/item/light_14.json new file mode 100644 index 00000000..263b45fe --- /dev/null +++ b/assets/minecraft/models/item/light_14.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_14" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_15.json b/assets/minecraft/models/item/light_15.json new file mode 100644 index 00000000..6f39d142 --- /dev/null +++ b/assets/minecraft/models/item/light_15.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_15" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_banner.json b/assets/minecraft/models/item/light_blue_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/light_blue_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_bed.json b/assets/minecraft/models/item/light_blue_bed.json new file mode 100644 index 00000000..fac4cda7 --- /dev/null +++ b/assets/minecraft/models/item/light_blue_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/light_blue_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_candle.json b/assets/minecraft/models/item/light_blue_candle.json new file mode 100644 index 00000000..e445d4ad --- /dev/null +++ b/assets/minecraft/models/item/light_blue_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_blue_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_carpet.json b/assets/minecraft/models/item/light_blue_carpet.json new file mode 100644 index 00000000..9f199e5c --- /dev/null +++ b/assets/minecraft/models/item/light_blue_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_blue_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_concrete.json b/assets/minecraft/models/item/light_blue_concrete.json new file mode 100644 index 00000000..68a0890f --- /dev/null +++ b/assets/minecraft/models/item/light_blue_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_blue_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_concrete_powder.json b/assets/minecraft/models/item/light_blue_concrete_powder.json new file mode 100644 index 00000000..22ec71d5 --- /dev/null +++ b/assets/minecraft/models/item/light_blue_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_blue_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_dye.json b/assets/minecraft/models/item/light_blue_dye.json new file mode 100644 index 00000000..297407da --- /dev/null +++ b/assets/minecraft/models/item/light_blue_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_blue_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_glazed_terracotta.json b/assets/minecraft/models/item/light_blue_glazed_terracotta.json new file mode 100644 index 00000000..3d2b3bd7 --- /dev/null +++ b/assets/minecraft/models/item/light_blue_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_blue_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_shulker_box.json b/assets/minecraft/models/item/light_blue_shulker_box.json new file mode 100644 index 00000000..d17a7729 --- /dev/null +++ b/assets/minecraft/models/item/light_blue_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/light_blue_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_stained_glass.json b/assets/minecraft/models/item/light_blue_stained_glass.json new file mode 100644 index 00000000..0aef7a92 --- /dev/null +++ b/assets/minecraft/models/item/light_blue_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_blue_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_stained_glass_pane.json b/assets/minecraft/models/item/light_blue_stained_glass_pane.json new file mode 100644 index 00000000..d810047f --- /dev/null +++ b/assets/minecraft/models/item/light_blue_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_terracotta.json b/assets/minecraft/models/item/light_blue_terracotta.json new file mode 100644 index 00000000..06294ea2 --- /dev/null +++ b/assets/minecraft/models/item/light_blue_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_blue_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_blue_wool.json b/assets/minecraft/models/item/light_blue_wool.json new file mode 100644 index 00000000..4f7bd4de --- /dev/null +++ b/assets/minecraft/models/item/light_blue_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_blue_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_banner.json b/assets/minecraft/models/item/light_gray_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/light_gray_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_bed.json b/assets/minecraft/models/item/light_gray_bed.json new file mode 100644 index 00000000..67c2af9e --- /dev/null +++ b/assets/minecraft/models/item/light_gray_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/light_gray_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_candle.json b/assets/minecraft/models/item/light_gray_candle.json new file mode 100644 index 00000000..332e87c6 --- /dev/null +++ b/assets/minecraft/models/item/light_gray_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_gray_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_carpet.json b/assets/minecraft/models/item/light_gray_carpet.json new file mode 100644 index 00000000..f603263e --- /dev/null +++ b/assets/minecraft/models/item/light_gray_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_gray_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_concrete.json b/assets/minecraft/models/item/light_gray_concrete.json new file mode 100644 index 00000000..9a4e67de --- /dev/null +++ b/assets/minecraft/models/item/light_gray_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_gray_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_concrete_powder.json b/assets/minecraft/models/item/light_gray_concrete_powder.json new file mode 100644 index 00000000..6726d569 --- /dev/null +++ b/assets/minecraft/models/item/light_gray_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_gray_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_dye.json b/assets/minecraft/models/item/light_gray_dye.json new file mode 100644 index 00000000..40a44acc --- /dev/null +++ b/assets/minecraft/models/item/light_gray_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/light_gray_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_glazed_terracotta.json b/assets/minecraft/models/item/light_gray_glazed_terracotta.json new file mode 100644 index 00000000..46b9f176 --- /dev/null +++ b/assets/minecraft/models/item/light_gray_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_gray_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_shulker_box.json b/assets/minecraft/models/item/light_gray_shulker_box.json new file mode 100644 index 00000000..0efe127a --- /dev/null +++ b/assets/minecraft/models/item/light_gray_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/light_gray_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_stained_glass.json b/assets/minecraft/models/item/light_gray_stained_glass.json new file mode 100644 index 00000000..e05c7e8d --- /dev/null +++ b/assets/minecraft/models/item/light_gray_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_gray_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_stained_glass_pane.json b/assets/minecraft/models/item/light_gray_stained_glass_pane.json new file mode 100644 index 00000000..50284743 --- /dev/null +++ b/assets/minecraft/models/item/light_gray_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_terracotta.json b/assets/minecraft/models/item/light_gray_terracotta.json new file mode 100644 index 00000000..a6cbc241 --- /dev/null +++ b/assets/minecraft/models/item/light_gray_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_gray_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_gray_wool.json b/assets/minecraft/models/item/light_gray_wool.json new file mode 100644 index 00000000..0bdc80f4 --- /dev/null +++ b/assets/minecraft/models/item/light_gray_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_gray_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/light_weighted_pressure_plate.json b/assets/minecraft/models/item/light_weighted_pressure_plate.json new file mode 100644 index 00000000..0922c670 --- /dev/null +++ b/assets/minecraft/models/item/light_weighted_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/light_weighted_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lightning_rod.json b/assets/minecraft/models/item/lightning_rod.json new file mode 100644 index 00000000..d701601a --- /dev/null +++ b/assets/minecraft/models/item/lightning_rod.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lightning_rod" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lilac.json b/assets/minecraft/models/item/lilac.json new file mode 100644 index 00000000..7e062c92 --- /dev/null +++ b/assets/minecraft/models/item/lilac.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/lilac_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lily_of_the_valley.json b/assets/minecraft/models/item/lily_of_the_valley.json new file mode 100644 index 00000000..2cd5a1cd --- /dev/null +++ b/assets/minecraft/models/item/lily_of_the_valley.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/lily_of_the_valley" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lily_pad.json b/assets/minecraft/models/item/lily_pad.json new file mode 100644 index 00000000..e3aaf7f9 --- /dev/null +++ b/assets/minecraft/models/item/lily_pad.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/lily_pad" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_banner.json b/assets/minecraft/models/item/lime_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/lime_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_bed.json b/assets/minecraft/models/item/lime_bed.json new file mode 100644 index 00000000..3efda22b --- /dev/null +++ b/assets/minecraft/models/item/lime_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/lime_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_candle.json b/assets/minecraft/models/item/lime_candle.json new file mode 100644 index 00000000..84617ccf --- /dev/null +++ b/assets/minecraft/models/item/lime_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/lime_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_carpet.json b/assets/minecraft/models/item/lime_carpet.json new file mode 100644 index 00000000..b6f18c0a --- /dev/null +++ b/assets/minecraft/models/item/lime_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lime_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_concrete.json b/assets/minecraft/models/item/lime_concrete.json new file mode 100644 index 00000000..6becad9d --- /dev/null +++ b/assets/minecraft/models/item/lime_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lime_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_concrete_powder.json b/assets/minecraft/models/item/lime_concrete_powder.json new file mode 100644 index 00000000..a74380d0 --- /dev/null +++ b/assets/minecraft/models/item/lime_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lime_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_dye.json b/assets/minecraft/models/item/lime_dye.json new file mode 100644 index 00000000..36ae6c82 --- /dev/null +++ b/assets/minecraft/models/item/lime_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/lime_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_glazed_terracotta.json b/assets/minecraft/models/item/lime_glazed_terracotta.json new file mode 100644 index 00000000..14b5723d --- /dev/null +++ b/assets/minecraft/models/item/lime_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lime_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_shulker_box.json b/assets/minecraft/models/item/lime_shulker_box.json new file mode 100644 index 00000000..5e0062e2 --- /dev/null +++ b/assets/minecraft/models/item/lime_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/lime_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_stained_glass.json b/assets/minecraft/models/item/lime_stained_glass.json new file mode 100644 index 00000000..becc3296 --- /dev/null +++ b/assets/minecraft/models/item/lime_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lime_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_stained_glass_pane.json b/assets/minecraft/models/item/lime_stained_glass_pane.json new file mode 100644 index 00000000..7f15356d --- /dev/null +++ b/assets/minecraft/models/item/lime_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/lime_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_terracotta.json b/assets/minecraft/models/item/lime_terracotta.json new file mode 100644 index 00000000..e6123030 --- /dev/null +++ b/assets/minecraft/models/item/lime_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lime_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lime_wool.json b/assets/minecraft/models/item/lime_wool.json new file mode 100644 index 00000000..e6600fa8 --- /dev/null +++ b/assets/minecraft/models/item/lime_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lime_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lingering_potion.json b/assets/minecraft/models/item/lingering_potion.json new file mode 100644 index 00000000..35ce5d79 --- /dev/null +++ b/assets/minecraft/models/item/lingering_potion.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/potion_overlay", + "layer1": "item/lingering_potion" + } +} diff --git a/assets/minecraft/models/item/llama_spawn_egg.json b/assets/minecraft/models/item/llama_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/llama_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/lodestone.json b/assets/minecraft/models/item/lodestone.json new file mode 100644 index 00000000..f926ec2e --- /dev/null +++ b/assets/minecraft/models/item/lodestone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/lodestone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/loom.json b/assets/minecraft/models/item/loom.json new file mode 100644 index 00000000..0fe6a7fa --- /dev/null +++ b/assets/minecraft/models/item/loom.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/loom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mace.json b/assets/minecraft/models/item/mace.json new file mode 100644 index 00000000..b62af83d --- /dev/null +++ b/assets/minecraft/models/item/mace.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_mace", + "textures": { + "layer0": "minecraft:item/mace" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_banner.json b/assets/minecraft/models/item/magenta_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/magenta_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_bed.json b/assets/minecraft/models/item/magenta_bed.json new file mode 100644 index 00000000..19af87b6 --- /dev/null +++ b/assets/minecraft/models/item/magenta_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/magenta_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_candle.json b/assets/minecraft/models/item/magenta_candle.json new file mode 100644 index 00000000..b4b75620 --- /dev/null +++ b/assets/minecraft/models/item/magenta_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/magenta_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_carpet.json b/assets/minecraft/models/item/magenta_carpet.json new file mode 100644 index 00000000..386f8fcc --- /dev/null +++ b/assets/minecraft/models/item/magenta_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magenta_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_concrete.json b/assets/minecraft/models/item/magenta_concrete.json new file mode 100644 index 00000000..8dce5e8f --- /dev/null +++ b/assets/minecraft/models/item/magenta_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magenta_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_concrete_powder.json b/assets/minecraft/models/item/magenta_concrete_powder.json new file mode 100644 index 00000000..e221911b --- /dev/null +++ b/assets/minecraft/models/item/magenta_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magenta_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_dye.json b/assets/minecraft/models/item/magenta_dye.json new file mode 100644 index 00000000..f1ebae5b --- /dev/null +++ b/assets/minecraft/models/item/magenta_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/magenta_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_glazed_terracotta.json b/assets/minecraft/models/item/magenta_glazed_terracotta.json new file mode 100644 index 00000000..45b94ea3 --- /dev/null +++ b/assets/minecraft/models/item/magenta_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magenta_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_shulker_box.json b/assets/minecraft/models/item/magenta_shulker_box.json new file mode 100644 index 00000000..f21cad42 --- /dev/null +++ b/assets/minecraft/models/item/magenta_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/magenta_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_stained_glass.json b/assets/minecraft/models/item/magenta_stained_glass.json new file mode 100644 index 00000000..62ff86a5 --- /dev/null +++ b/assets/minecraft/models/item/magenta_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magenta_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_stained_glass_pane.json b/assets/minecraft/models/item/magenta_stained_glass_pane.json new file mode 100644 index 00000000..ad9621d1 --- /dev/null +++ b/assets/minecraft/models/item/magenta_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/magenta_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_terracotta.json b/assets/minecraft/models/item/magenta_terracotta.json new file mode 100644 index 00000000..07d44199 --- /dev/null +++ b/assets/minecraft/models/item/magenta_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magenta_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magenta_wool.json b/assets/minecraft/models/item/magenta_wool.json new file mode 100644 index 00000000..e3ef178b --- /dev/null +++ b/assets/minecraft/models/item/magenta_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magenta_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magma_block.json b/assets/minecraft/models/item/magma_block.json new file mode 100644 index 00000000..ac1aa2f4 --- /dev/null +++ b/assets/minecraft/models/item/magma_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/magma_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magma_cream.json b/assets/minecraft/models/item/magma_cream.json new file mode 100644 index 00000000..f9d7a14d --- /dev/null +++ b/assets/minecraft/models/item/magma_cream.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/magma_cream" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/magma_cube_spawn_egg.json b/assets/minecraft/models/item/magma_cube_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/magma_cube_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_boat.json b/assets/minecraft/models/item/mangrove_boat.json new file mode 100644 index 00000000..6816d9e0 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mangrove_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_button.json b/assets/minecraft/models/item/mangrove_button.json new file mode 100644 index 00000000..4bab5228 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_chest_boat.json b/assets/minecraft/models/item/mangrove_chest_boat.json new file mode 100644 index 00000000..006def69 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mangrove_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_door.json b/assets/minecraft/models/item/mangrove_door.json new file mode 100644 index 00000000..c67a120c --- /dev/null +++ b/assets/minecraft/models/item/mangrove_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mangrove_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_fence.json b/assets/minecraft/models/item/mangrove_fence.json new file mode 100644 index 00000000..b0d4d8c4 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_fence_gate.json b/assets/minecraft/models/item/mangrove_fence_gate.json new file mode 100644 index 00000000..7eddb339 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_hanging_sign.json b/assets/minecraft/models/item/mangrove_hanging_sign.json new file mode 100644 index 00000000..43186361 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mangrove_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_leaves.json b/assets/minecraft/models/item/mangrove_leaves.json new file mode 100644 index 00000000..be1fca78 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_log.json b/assets/minecraft/models/item/mangrove_log.json new file mode 100644 index 00000000..9dbddf08 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_planks.json b/assets/minecraft/models/item/mangrove_planks.json new file mode 100644 index 00000000..4c4f23bc --- /dev/null +++ b/assets/minecraft/models/item/mangrove_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_pressure_plate.json b/assets/minecraft/models/item/mangrove_pressure_plate.json new file mode 100644 index 00000000..90b728fe --- /dev/null +++ b/assets/minecraft/models/item/mangrove_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_propagule.json b/assets/minecraft/models/item/mangrove_propagule.json new file mode 100644 index 00000000..38a689e6 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_propagule.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mangrove_propagule" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_roots.json b/assets/minecraft/models/item/mangrove_roots.json new file mode 100644 index 00000000..39131b24 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_roots.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_roots" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_sign.json b/assets/minecraft/models/item/mangrove_sign.json new file mode 100644 index 00000000..867584b1 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mangrove_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_slab.json b/assets/minecraft/models/item/mangrove_slab.json new file mode 100644 index 00000000..036a10f7 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_stairs.json b/assets/minecraft/models/item/mangrove_stairs.json new file mode 100644 index 00000000..281b61b5 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_trapdoor.json b/assets/minecraft/models/item/mangrove_trapdoor.json new file mode 100644 index 00000000..dec13fde --- /dev/null +++ b/assets/minecraft/models/item/mangrove_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mangrove_wood.json b/assets/minecraft/models/item/mangrove_wood.json new file mode 100644 index 00000000..99e25bc7 --- /dev/null +++ b/assets/minecraft/models/item/mangrove_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mangrove_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/map.json b/assets/minecraft/models/item/map.json new file mode 100644 index 00000000..282650e2 --- /dev/null +++ b/assets/minecraft/models/item/map.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/map" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/medium_amethyst_bud.json b/assets/minecraft/models/item/medium_amethyst_bud.json new file mode 100644 index 00000000..686d48f4 --- /dev/null +++ b/assets/minecraft/models/item/medium_amethyst_bud.json @@ -0,0 +1,11 @@ + { + "parent": "item/amethyst_bud", + "textures": { + "layer0": "minecraft:block/medium_amethyst_bud" + }, + "display": { + "fixed": { + "translation": [ 0, 6, 0 ] + } + } +} diff --git a/assets/minecraft/models/item/melon.json b/assets/minecraft/models/item/melon.json new file mode 100644 index 00000000..f0bcf44e --- /dev/null +++ b/assets/minecraft/models/item/melon.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/melon" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/melon_seeds.json b/assets/minecraft/models/item/melon_seeds.json new file mode 100644 index 00000000..71e34075 --- /dev/null +++ b/assets/minecraft/models/item/melon_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/melon_seeds" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/melon_slice.json b/assets/minecraft/models/item/melon_slice.json new file mode 100644 index 00000000..70a587eb --- /dev/null +++ b/assets/minecraft/models/item/melon_slice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/melon_slice" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/milk_bucket.json b/assets/minecraft/models/item/milk_bucket.json new file mode 100644 index 00000000..4f4a252f --- /dev/null +++ b/assets/minecraft/models/item/milk_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/milk_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/minecart.json b/assets/minecraft/models/item/minecart.json new file mode 100644 index 00000000..f478d37c --- /dev/null +++ b/assets/minecraft/models/item/minecart.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/minecart" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/miner_pottery_sherd.json b/assets/minecraft/models/item/miner_pottery_sherd.json new file mode 100644 index 00000000..c31761d1 --- /dev/null +++ b/assets/minecraft/models/item/miner_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/miner_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mojang_banner_pattern.json b/assets/minecraft/models/item/mojang_banner_pattern.json new file mode 100644 index 00000000..bfac8a9e --- /dev/null +++ b/assets/minecraft/models/item/mojang_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mojang_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mooshroom_spawn_egg.json b/assets/minecraft/models/item/mooshroom_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/mooshroom_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/moss_block.json b/assets/minecraft/models/item/moss_block.json new file mode 100644 index 00000000..14bf2a81 --- /dev/null +++ b/assets/minecraft/models/item/moss_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/moss_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/moss_carpet.json b/assets/minecraft/models/item/moss_carpet.json new file mode 100644 index 00000000..86a4dfd8 --- /dev/null +++ b/assets/minecraft/models/item/moss_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/moss_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_cobblestone.json b/assets/minecraft/models/item/mossy_cobblestone.json new file mode 100644 index 00000000..e865e8fc --- /dev/null +++ b/assets/minecraft/models/item/mossy_cobblestone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_cobblestone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_cobblestone_slab.json b/assets/minecraft/models/item/mossy_cobblestone_slab.json new file mode 100644 index 00000000..814e6a7a --- /dev/null +++ b/assets/minecraft/models/item/mossy_cobblestone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_cobblestone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_cobblestone_stairs.json b/assets/minecraft/models/item/mossy_cobblestone_stairs.json new file mode 100644 index 00000000..bc2712d2 --- /dev/null +++ b/assets/minecraft/models/item/mossy_cobblestone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_cobblestone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_cobblestone_wall.json b/assets/minecraft/models/item/mossy_cobblestone_wall.json new file mode 100644 index 00000000..8baaff2b --- /dev/null +++ b/assets/minecraft/models/item/mossy_cobblestone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_cobblestone_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_stone_brick_slab.json b/assets/minecraft/models/item/mossy_stone_brick_slab.json new file mode 100644 index 00000000..539b7424 --- /dev/null +++ b/assets/minecraft/models/item/mossy_stone_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_stone_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_stone_brick_stairs.json b/assets/minecraft/models/item/mossy_stone_brick_stairs.json new file mode 100644 index 00000000..2366348b --- /dev/null +++ b/assets/minecraft/models/item/mossy_stone_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_stone_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_stone_brick_wall.json b/assets/minecraft/models/item/mossy_stone_brick_wall.json new file mode 100644 index 00000000..185b158a --- /dev/null +++ b/assets/minecraft/models/item/mossy_stone_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_stone_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mossy_stone_bricks.json b/assets/minecraft/models/item/mossy_stone_bricks.json new file mode 100644 index 00000000..a9fe750f --- /dev/null +++ b/assets/minecraft/models/item/mossy_stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mossy_stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mourner_pottery_sherd.json b/assets/minecraft/models/item/mourner_pottery_sherd.json new file mode 100644 index 00000000..08950424 --- /dev/null +++ b/assets/minecraft/models/item/mourner_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mourner_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mud.json b/assets/minecraft/models/item/mud.json new file mode 100644 index 00000000..bee0b1b0 --- /dev/null +++ b/assets/minecraft/models/item/mud.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mud" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mud_brick_slab.json b/assets/minecraft/models/item/mud_brick_slab.json new file mode 100644 index 00000000..06e29291 --- /dev/null +++ b/assets/minecraft/models/item/mud_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mud_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mud_brick_stairs.json b/assets/minecraft/models/item/mud_brick_stairs.json new file mode 100644 index 00000000..f6d908dd --- /dev/null +++ b/assets/minecraft/models/item/mud_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mud_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mud_brick_wall.json b/assets/minecraft/models/item/mud_brick_wall.json new file mode 100644 index 00000000..1679aa63 --- /dev/null +++ b/assets/minecraft/models/item/mud_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mud_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mud_bricks.json b/assets/minecraft/models/item/mud_bricks.json new file mode 100644 index 00000000..4ff42f1c --- /dev/null +++ b/assets/minecraft/models/item/mud_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mud_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/muddy_mangrove_roots.json b/assets/minecraft/models/item/muddy_mangrove_roots.json new file mode 100644 index 00000000..a23b27d1 --- /dev/null +++ b/assets/minecraft/models/item/muddy_mangrove_roots.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/muddy_mangrove_roots" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mule_spawn_egg.json b/assets/minecraft/models/item/mule_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/mule_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mushroom_stem.json b/assets/minecraft/models/item/mushroom_stem.json new file mode 100644 index 00000000..b791415f --- /dev/null +++ b/assets/minecraft/models/item/mushroom_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mushroom_stem_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mushroom_stew.json b/assets/minecraft/models/item/mushroom_stew.json new file mode 100644 index 00000000..70e31deb --- /dev/null +++ b/assets/minecraft/models/item/mushroom_stew.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mushroom_stew" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_11.json b/assets/minecraft/models/item/music_disc_11.json new file mode 100644 index 00000000..aa9afb6f --- /dev/null +++ b/assets/minecraft/models/item/music_disc_11.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_11" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_13.json b/assets/minecraft/models/item/music_disc_13.json new file mode 100644 index 00000000..eb7eee8b --- /dev/null +++ b/assets/minecraft/models/item/music_disc_13.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_13" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_5.json b/assets/minecraft/models/item/music_disc_5.json new file mode 100644 index 00000000..c431c670 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_5" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_blocks.json b/assets/minecraft/models/item/music_disc_blocks.json new file mode 100644 index 00000000..fa70fbc5 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_blocks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_blocks" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_cat.json b/assets/minecraft/models/item/music_disc_cat.json new file mode 100644 index 00000000..86c9ff55 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_cat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_cat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_chirp.json b/assets/minecraft/models/item/music_disc_chirp.json new file mode 100644 index 00000000..b89464c2 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_chirp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_chirp" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_creator.json b/assets/minecraft/models/item/music_disc_creator.json new file mode 100644 index 00000000..cd8e281c --- /dev/null +++ b/assets/minecraft/models/item/music_disc_creator.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_creator" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_creator_music_box.json b/assets/minecraft/models/item/music_disc_creator_music_box.json new file mode 100644 index 00000000..eeece182 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_creator_music_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_creator_music_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_far.json b/assets/minecraft/models/item/music_disc_far.json new file mode 100644 index 00000000..3fe31285 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_far.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_far" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_mall.json b/assets/minecraft/models/item/music_disc_mall.json new file mode 100644 index 00000000..41eea367 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_mall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_mall" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_mellohi.json b/assets/minecraft/models/item/music_disc_mellohi.json new file mode 100644 index 00000000..8b6fc61c --- /dev/null +++ b/assets/minecraft/models/item/music_disc_mellohi.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_mellohi" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_otherside.json b/assets/minecraft/models/item/music_disc_otherside.json new file mode 100644 index 00000000..3cfc540e --- /dev/null +++ b/assets/minecraft/models/item/music_disc_otherside.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_otherside" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_pigstep.json b/assets/minecraft/models/item/music_disc_pigstep.json new file mode 100644 index 00000000..241ffa8e --- /dev/null +++ b/assets/minecraft/models/item/music_disc_pigstep.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_pigstep" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_precipice.json b/assets/minecraft/models/item/music_disc_precipice.json new file mode 100644 index 00000000..051ae5e8 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_precipice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_precipice" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_relic.json b/assets/minecraft/models/item/music_disc_relic.json new file mode 100644 index 00000000..d225ce68 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_relic.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_relic" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_stal.json b/assets/minecraft/models/item/music_disc_stal.json new file mode 100644 index 00000000..b9b96821 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_stal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_stal" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_strad.json b/assets/minecraft/models/item/music_disc_strad.json new file mode 100644 index 00000000..add37ea1 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_strad.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_strad" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_wait.json b/assets/minecraft/models/item/music_disc_wait.json new file mode 100644 index 00000000..215e160d --- /dev/null +++ b/assets/minecraft/models/item/music_disc_wait.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_wait" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/music_disc_ward.json b/assets/minecraft/models/item/music_disc_ward.json new file mode 100644 index 00000000..24bb7ee9 --- /dev/null +++ b/assets/minecraft/models/item/music_disc_ward.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_music_disc", + "textures": { + "layer0": "minecraft:item/music_disc_ward" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mutton.json b/assets/minecraft/models/item/mutton.json new file mode 100644 index 00000000..56c070d4 --- /dev/null +++ b/assets/minecraft/models/item/mutton.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/mutton" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/mycelium.json b/assets/minecraft/models/item/mycelium.json new file mode 100644 index 00000000..c97f2ec0 --- /dev/null +++ b/assets/minecraft/models/item/mycelium.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/mycelium" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/name_tag.json b/assets/minecraft/models/item/name_tag.json new file mode 100644 index 00000000..ee668ff5 --- /dev/null +++ b/assets/minecraft/models/item/name_tag.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/name_tag" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nautilus_shell.json b/assets/minecraft/models/item/nautilus_shell.json new file mode 100644 index 00000000..35a8e509 --- /dev/null +++ b/assets/minecraft/models/item/nautilus_shell.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/nautilus_shell" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_brick.json b/assets/minecraft/models/item/nether_brick.json new file mode 100644 index 00000000..b7260584 --- /dev/null +++ b/assets/minecraft/models/item/nether_brick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/nether_brick" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_brick_fence.json b/assets/minecraft/models/item/nether_brick_fence.json new file mode 100644 index 00000000..5a72d31a --- /dev/null +++ b/assets/minecraft/models/item/nether_brick_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_brick_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_brick_slab.json b/assets/minecraft/models/item/nether_brick_slab.json new file mode 100644 index 00000000..dc7b2097 --- /dev/null +++ b/assets/minecraft/models/item/nether_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_brick_stairs.json b/assets/minecraft/models/item/nether_brick_stairs.json new file mode 100644 index 00000000..c0669dfe --- /dev/null +++ b/assets/minecraft/models/item/nether_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_brick_wall.json b/assets/minecraft/models/item/nether_brick_wall.json new file mode 100644 index 00000000..e01270d4 --- /dev/null +++ b/assets/minecraft/models/item/nether_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_bricks.json b/assets/minecraft/models/item/nether_bricks.json new file mode 100644 index 00000000..ada571f6 --- /dev/null +++ b/assets/minecraft/models/item/nether_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_gold_ore.json b/assets/minecraft/models/item/nether_gold_ore.json new file mode 100644 index 00000000..ca989c79 --- /dev/null +++ b/assets/minecraft/models/item/nether_gold_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_gold_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_quartz_ore.json b/assets/minecraft/models/item/nether_quartz_ore.json new file mode 100644 index 00000000..4c6d1bf7 --- /dev/null +++ b/assets/minecraft/models/item/nether_quartz_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_quartz_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_sprouts.json b/assets/minecraft/models/item/nether_sprouts.json new file mode 100644 index 00000000..847698f8 --- /dev/null +++ b/assets/minecraft/models/item/nether_sprouts.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/nether_sprouts" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_star.json b/assets/minecraft/models/item/nether_star.json new file mode 100644 index 00000000..b2874c28 --- /dev/null +++ b/assets/minecraft/models/item/nether_star.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/nether_star" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_wart.json b/assets/minecraft/models/item/nether_wart.json new file mode 100644 index 00000000..de82d450 --- /dev/null +++ b/assets/minecraft/models/item/nether_wart.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/nether_wart" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/nether_wart_block.json b/assets/minecraft/models/item/nether_wart_block.json new file mode 100644 index 00000000..a66f9a27 --- /dev/null +++ b/assets/minecraft/models/item/nether_wart_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/nether_wart_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_axe.json b/assets/minecraft/models/item/netherite_axe.json new file mode 100644 index 00000000..50d50009 --- /dev/null +++ b/assets/minecraft/models/item/netherite_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/netherite_axe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_block.json b/assets/minecraft/models/item/netherite_block.json new file mode 100644 index 00000000..828da634 --- /dev/null +++ b/assets/minecraft/models/item/netherite_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/netherite_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots.json b/assets/minecraft/models/item/netherite_boots.json new file mode 100644 index 00000000..6aa46fb3 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/netherite_boots_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/netherite_boots_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/netherite_boots_netherite_darker_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/netherite_boots_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/netherite_boots_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/netherite_boots_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/netherite_boots_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/netherite_boots_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/netherite_boots_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/netherite_boots_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/netherite_boots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_amethyst_trim.json b/assets/minecraft/models/item/netherite_boots_amethyst_trim.json new file mode 100644 index 00000000..e2049a22 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_copper_trim.json b/assets/minecraft/models/item/netherite_boots_copper_trim.json new file mode 100644 index 00000000..f0b92c01 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_diamond_trim.json b/assets/minecraft/models/item/netherite_boots_diamond_trim.json new file mode 100644 index 00000000..8be51aca --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_emerald_trim.json b/assets/minecraft/models/item/netherite_boots_emerald_trim.json new file mode 100644 index 00000000..65a08e50 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_gold_trim.json b/assets/minecraft/models/item/netherite_boots_gold_trim.json new file mode 100644 index 00000000..806f861b --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_iron_trim.json b/assets/minecraft/models/item/netherite_boots_iron_trim.json new file mode 100644 index 00000000..2bffc349 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_lapis_trim.json b/assets/minecraft/models/item/netherite_boots_lapis_trim.json new file mode 100644 index 00000000..5d68abb3 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_netherite_darker_trim.json b/assets/minecraft/models/item/netherite_boots_netherite_darker_trim.json new file mode 100644 index 00000000..b5c31415 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_netherite_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_netherite_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_quartz_trim.json b/assets/minecraft/models/item/netherite_boots_quartz_trim.json new file mode 100644 index 00000000..23ff1d64 --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_boots_redstone_trim.json b/assets/minecraft/models/item/netherite_boots_redstone_trim.json new file mode 100644 index 00000000..1c68b81f --- /dev/null +++ b/assets/minecraft/models/item/netherite_boots_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_boots", + "layer1": "minecraft:trims/items/boots_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate.json b/assets/minecraft/models/item/netherite_chestplate.json new file mode 100644 index 00000000..64e84e2a --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/netherite_chestplate_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/netherite_chestplate_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/netherite_chestplate_netherite_darker_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/netherite_chestplate_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/netherite_chestplate_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/netherite_chestplate_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/netherite_chestplate_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/netherite_chestplate_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/netherite_chestplate_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/netherite_chestplate_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/netherite_chestplate" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_amethyst_trim.json b/assets/minecraft/models/item/netherite_chestplate_amethyst_trim.json new file mode 100644 index 00000000..945363a3 --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_copper_trim.json b/assets/minecraft/models/item/netherite_chestplate_copper_trim.json new file mode 100644 index 00000000..51c30e49 --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_diamond_trim.json b/assets/minecraft/models/item/netherite_chestplate_diamond_trim.json new file mode 100644 index 00000000..3a38051a --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_emerald_trim.json b/assets/minecraft/models/item/netherite_chestplate_emerald_trim.json new file mode 100644 index 00000000..e774df9d --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_gold_trim.json b/assets/minecraft/models/item/netherite_chestplate_gold_trim.json new file mode 100644 index 00000000..fcd52da7 --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_iron_trim.json b/assets/minecraft/models/item/netherite_chestplate_iron_trim.json new file mode 100644 index 00000000..09d65529 --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_lapis_trim.json b/assets/minecraft/models/item/netherite_chestplate_lapis_trim.json new file mode 100644 index 00000000..ee2a9d3e --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_netherite_darker_trim.json b/assets/minecraft/models/item/netherite_chestplate_netherite_darker_trim.json new file mode 100644 index 00000000..b80d9cff --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_netherite_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_netherite_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_quartz_trim.json b/assets/minecraft/models/item/netherite_chestplate_quartz_trim.json new file mode 100644 index 00000000..51af51b8 --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_chestplate_redstone_trim.json b/assets/minecraft/models/item/netherite_chestplate_redstone_trim.json new file mode 100644 index 00000000..a1979f26 --- /dev/null +++ b/assets/minecraft/models/item/netherite_chestplate_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_chestplate", + "layer1": "minecraft:trims/items/chestplate_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet.json b/assets/minecraft/models/item/netherite_helmet.json new file mode 100644 index 00000000..a39c9484 --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/netherite_helmet_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/netherite_helmet_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/netherite_helmet_netherite_darker_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/netherite_helmet_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/netherite_helmet_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/netherite_helmet_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/netherite_helmet_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/netherite_helmet_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/netherite_helmet_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/netherite_helmet_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/netherite_helmet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_amethyst_trim.json b/assets/minecraft/models/item/netherite_helmet_amethyst_trim.json new file mode 100644 index 00000000..534ef695 --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_copper_trim.json b/assets/minecraft/models/item/netherite_helmet_copper_trim.json new file mode 100644 index 00000000..d435422b --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_diamond_trim.json b/assets/minecraft/models/item/netherite_helmet_diamond_trim.json new file mode 100644 index 00000000..e50ce756 --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_emerald_trim.json b/assets/minecraft/models/item/netherite_helmet_emerald_trim.json new file mode 100644 index 00000000..22876e11 --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_gold_trim.json b/assets/minecraft/models/item/netherite_helmet_gold_trim.json new file mode 100644 index 00000000..405e6bbc --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_iron_trim.json b/assets/minecraft/models/item/netherite_helmet_iron_trim.json new file mode 100644 index 00000000..c7afe68c --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_lapis_trim.json b/assets/minecraft/models/item/netherite_helmet_lapis_trim.json new file mode 100644 index 00000000..3bc06d40 --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_netherite_darker_trim.json b/assets/minecraft/models/item/netherite_helmet_netherite_darker_trim.json new file mode 100644 index 00000000..63006166 --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_netherite_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_netherite_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_quartz_trim.json b/assets/minecraft/models/item/netherite_helmet_quartz_trim.json new file mode 100644 index 00000000..3b614408 --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_helmet_redstone_trim.json b/assets/minecraft/models/item/netherite_helmet_redstone_trim.json new file mode 100644 index 00000000..533466cb --- /dev/null +++ b/assets/minecraft/models/item/netherite_helmet_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_helmet", + "layer1": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_hoe.json b/assets/minecraft/models/item/netherite_hoe.json new file mode 100644 index 00000000..d9c185dc --- /dev/null +++ b/assets/minecraft/models/item/netherite_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/netherite_hoe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_ingot.json b/assets/minecraft/models/item/netherite_ingot.json new file mode 100644 index 00000000..0ef436c0 --- /dev/null +++ b/assets/minecraft/models/item/netherite_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_ingot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings.json b/assets/minecraft/models/item/netherite_leggings.json new file mode 100644 index 00000000..eb732807 --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/netherite_leggings_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/netherite_leggings_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/netherite_leggings_netherite_darker_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/netherite_leggings_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/netherite_leggings_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/netherite_leggings_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/netherite_leggings_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/netherite_leggings_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/netherite_leggings_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/netherite_leggings_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/netherite_leggings" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_amethyst_trim.json b/assets/minecraft/models/item/netherite_leggings_amethyst_trim.json new file mode 100644 index 00000000..7a254f28 --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_copper_trim.json b/assets/minecraft/models/item/netherite_leggings_copper_trim.json new file mode 100644 index 00000000..3c2f5f3f --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_diamond_trim.json b/assets/minecraft/models/item/netherite_leggings_diamond_trim.json new file mode 100644 index 00000000..ac71f9ee --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_emerald_trim.json b/assets/minecraft/models/item/netherite_leggings_emerald_trim.json new file mode 100644 index 00000000..a3034033 --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_gold_trim.json b/assets/minecraft/models/item/netherite_leggings_gold_trim.json new file mode 100644 index 00000000..1e49fde4 --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_iron_trim.json b/assets/minecraft/models/item/netherite_leggings_iron_trim.json new file mode 100644 index 00000000..09d1dbb9 --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_lapis_trim.json b/assets/minecraft/models/item/netherite_leggings_lapis_trim.json new file mode 100644 index 00000000..62a4e71d --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_netherite_darker_trim.json b/assets/minecraft/models/item/netherite_leggings_netherite_darker_trim.json new file mode 100644 index 00000000..734ea70e --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_netherite_darker_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_netherite_darker" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_quartz_trim.json b/assets/minecraft/models/item/netherite_leggings_quartz_trim.json new file mode 100644 index 00000000..55e5445e --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_leggings_redstone_trim.json b/assets/minecraft/models/item/netherite_leggings_redstone_trim.json new file mode 100644 index 00000000..e6bafbe7 --- /dev/null +++ b/assets/minecraft/models/item/netherite_leggings_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_leggings", + "layer1": "minecraft:trims/items/leggings_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_pickaxe.json b/assets/minecraft/models/item/netherite_pickaxe.json new file mode 100644 index 00000000..663d5162 --- /dev/null +++ b/assets/minecraft/models/item/netherite_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/netherite_pickaxe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_scrap.json b/assets/minecraft/models/item/netherite_scrap.json new file mode 100644 index 00000000..8465c678 --- /dev/null +++ b/assets/minecraft/models/item/netherite_scrap.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_scrap" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_shovel.json b/assets/minecraft/models/item/netherite_shovel.json new file mode 100644 index 00000000..88e93948 --- /dev/null +++ b/assets/minecraft/models/item/netherite_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/netherite_shovel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_sword.json b/assets/minecraft/models/item/netherite_sword.json new file mode 100644 index 00000000..a2d7ef42 --- /dev/null +++ b/assets/minecraft/models/item/netherite_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/netherite_sword" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherite_upgrade_smithing_template.json b/assets/minecraft/models/item/netherite_upgrade_smithing_template.json new file mode 100644 index 00000000..17012d1b --- /dev/null +++ b/assets/minecraft/models/item/netherite_upgrade_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/netherrack.json b/assets/minecraft/models/item/netherrack.json new file mode 100644 index 00000000..39d75ee8 --- /dev/null +++ b/assets/minecraft/models/item/netherrack.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/netherrack" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/note_block.json b/assets/minecraft/models/item/note_block.json new file mode 100644 index 00000000..dd873344 --- /dev/null +++ b/assets/minecraft/models/item/note_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/note_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_boat.json b/assets/minecraft/models/item/oak_boat.json new file mode 100644 index 00000000..793cf520 --- /dev/null +++ b/assets/minecraft/models/item/oak_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/oak_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_button.json b/assets/minecraft/models/item/oak_button.json new file mode 100644 index 00000000..7e99608e --- /dev/null +++ b/assets/minecraft/models/item/oak_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_chest_boat.json b/assets/minecraft/models/item/oak_chest_boat.json new file mode 100644 index 00000000..0d6c1c49 --- /dev/null +++ b/assets/minecraft/models/item/oak_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/oak_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_door.json b/assets/minecraft/models/item/oak_door.json new file mode 100644 index 00000000..93f7e735 --- /dev/null +++ b/assets/minecraft/models/item/oak_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/oak_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_fence.json b/assets/minecraft/models/item/oak_fence.json new file mode 100644 index 00000000..039fd914 --- /dev/null +++ b/assets/minecraft/models/item/oak_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_fence_gate.json b/assets/minecraft/models/item/oak_fence_gate.json new file mode 100644 index 00000000..04dee087 --- /dev/null +++ b/assets/minecraft/models/item/oak_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_hanging_sign.json b/assets/minecraft/models/item/oak_hanging_sign.json new file mode 100644 index 00000000..400c727f --- /dev/null +++ b/assets/minecraft/models/item/oak_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/oak_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_leaves.json b/assets/minecraft/models/item/oak_leaves.json new file mode 100644 index 00000000..a54fc8a7 --- /dev/null +++ b/assets/minecraft/models/item/oak_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_log.json b/assets/minecraft/models/item/oak_log.json new file mode 100644 index 00000000..b450f38f --- /dev/null +++ b/assets/minecraft/models/item/oak_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_planks.json b/assets/minecraft/models/item/oak_planks.json new file mode 100644 index 00000000..a0351753 --- /dev/null +++ b/assets/minecraft/models/item/oak_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_pressure_plate.json b/assets/minecraft/models/item/oak_pressure_plate.json new file mode 100644 index 00000000..ec3f4456 --- /dev/null +++ b/assets/minecraft/models/item/oak_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_sapling.json b/assets/minecraft/models/item/oak_sapling.json new file mode 100644 index 00000000..93a96b44 --- /dev/null +++ b/assets/minecraft/models/item/oak_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/oak_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_sign.json b/assets/minecraft/models/item/oak_sign.json new file mode 100644 index 00000000..0f6a0f05 --- /dev/null +++ b/assets/minecraft/models/item/oak_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/oak_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_slab.json b/assets/minecraft/models/item/oak_slab.json new file mode 100644 index 00000000..263d7d00 --- /dev/null +++ b/assets/minecraft/models/item/oak_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_stairs.json b/assets/minecraft/models/item/oak_stairs.json new file mode 100644 index 00000000..282b4310 --- /dev/null +++ b/assets/minecraft/models/item/oak_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_trapdoor.json b/assets/minecraft/models/item/oak_trapdoor.json new file mode 100644 index 00000000..a041a5b4 --- /dev/null +++ b/assets/minecraft/models/item/oak_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oak_wood.json b/assets/minecraft/models/item/oak_wood.json new file mode 100644 index 00000000..a51270ef --- /dev/null +++ b/assets/minecraft/models/item/oak_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oak_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/observer.json b/assets/minecraft/models/item/observer.json new file mode 100644 index 00000000..c1e1ddfe --- /dev/null +++ b/assets/minecraft/models/item/observer.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/observer" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/obsidian.json b/assets/minecraft/models/item/obsidian.json new file mode 100644 index 00000000..0c124ed6 --- /dev/null +++ b/assets/minecraft/models/item/obsidian.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/obsidian" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ocelot_spawn_egg.json b/assets/minecraft/models/item/ocelot_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/ocelot_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ochre_froglight.json b/assets/minecraft/models/item/ochre_froglight.json new file mode 100644 index 00000000..d5bf2ba4 --- /dev/null +++ b/assets/minecraft/models/item/ochre_froglight.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/ochre_froglight" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ominous_bottle.json b/assets/minecraft/models/item/ominous_bottle.json new file mode 100644 index 00000000..de2d68f7 --- /dev/null +++ b/assets/minecraft/models/item/ominous_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/ominous_bottle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ominous_trial_key.json b/assets/minecraft/models/item/ominous_trial_key.json new file mode 100644 index 00000000..32057a58 --- /dev/null +++ b/assets/minecraft/models/item/ominous_trial_key.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/ominous_trial_key" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_banner.json b/assets/minecraft/models/item/orange_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/orange_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_bed.json b/assets/minecraft/models/item/orange_bed.json new file mode 100644 index 00000000..c014375a --- /dev/null +++ b/assets/minecraft/models/item/orange_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/orange_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_candle.json b/assets/minecraft/models/item/orange_candle.json new file mode 100644 index 00000000..9f35bc60 --- /dev/null +++ b/assets/minecraft/models/item/orange_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/orange_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_carpet.json b/assets/minecraft/models/item/orange_carpet.json new file mode 100644 index 00000000..f1421e23 --- /dev/null +++ b/assets/minecraft/models/item/orange_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/orange_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_concrete.json b/assets/minecraft/models/item/orange_concrete.json new file mode 100644 index 00000000..6238369f --- /dev/null +++ b/assets/minecraft/models/item/orange_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/orange_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_concrete_powder.json b/assets/minecraft/models/item/orange_concrete_powder.json new file mode 100644 index 00000000..3c854fe1 --- /dev/null +++ b/assets/minecraft/models/item/orange_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/orange_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_dye.json b/assets/minecraft/models/item/orange_dye.json new file mode 100644 index 00000000..4c5e5e9b --- /dev/null +++ b/assets/minecraft/models/item/orange_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/orange_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_glazed_terracotta.json b/assets/minecraft/models/item/orange_glazed_terracotta.json new file mode 100644 index 00000000..9a67ff62 --- /dev/null +++ b/assets/minecraft/models/item/orange_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/orange_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_shulker_box.json b/assets/minecraft/models/item/orange_shulker_box.json new file mode 100644 index 00000000..e8a725a2 --- /dev/null +++ b/assets/minecraft/models/item/orange_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/orange_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_stained_glass.json b/assets/minecraft/models/item/orange_stained_glass.json new file mode 100644 index 00000000..b00fed28 --- /dev/null +++ b/assets/minecraft/models/item/orange_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/orange_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_stained_glass_pane.json b/assets/minecraft/models/item/orange_stained_glass_pane.json new file mode 100644 index 00000000..756f767a --- /dev/null +++ b/assets/minecraft/models/item/orange_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/orange_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_terracotta.json b/assets/minecraft/models/item/orange_terracotta.json new file mode 100644 index 00000000..6d399783 --- /dev/null +++ b/assets/minecraft/models/item/orange_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/orange_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_tulip.json b/assets/minecraft/models/item/orange_tulip.json new file mode 100644 index 00000000..70ba2d3a --- /dev/null +++ b/assets/minecraft/models/item/orange_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/orange_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/orange_wool.json b/assets/minecraft/models/item/orange_wool.json new file mode 100644 index 00000000..e7c54f33 --- /dev/null +++ b/assets/minecraft/models/item/orange_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/orange_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxeye_daisy.json b/assets/minecraft/models/item/oxeye_daisy.json new file mode 100644 index 00000000..dc6eaab3 --- /dev/null +++ b/assets/minecraft/models/item/oxeye_daisy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/oxeye_daisy" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_chiseled_copper.json b/assets/minecraft/models/item/oxidized_chiseled_copper.json new file mode 100644 index 00000000..72020427 --- /dev/null +++ b/assets/minecraft/models/item/oxidized_chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_copper.json b/assets/minecraft/models/item/oxidized_copper.json new file mode 100644 index 00000000..63a0dabe --- /dev/null +++ b/assets/minecraft/models/item/oxidized_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_copper_bulb.json b/assets/minecraft/models/item/oxidized_copper_bulb.json new file mode 100644 index 00000000..1624fe6e --- /dev/null +++ b/assets/minecraft/models/item/oxidized_copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_copper_door.json b/assets/minecraft/models/item/oxidized_copper_door.json new file mode 100644 index 00000000..cd2edca3 --- /dev/null +++ b/assets/minecraft/models/item/oxidized_copper_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/oxidized_copper_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_copper_grate.json b/assets/minecraft/models/item/oxidized_copper_grate.json new file mode 100644 index 00000000..e2521c38 --- /dev/null +++ b/assets/minecraft/models/item/oxidized_copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_copper_trapdoor.json b/assets/minecraft/models/item/oxidized_copper_trapdoor.json new file mode 100644 index 00000000..3685e9b2 --- /dev/null +++ b/assets/minecraft/models/item/oxidized_copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_copper_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_cut_copper.json b/assets/minecraft/models/item/oxidized_cut_copper.json new file mode 100644 index 00000000..36dfa030 --- /dev/null +++ b/assets/minecraft/models/item/oxidized_cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_cut_copper_slab.json b/assets/minecraft/models/item/oxidized_cut_copper_slab.json new file mode 100644 index 00000000..a3d02242 --- /dev/null +++ b/assets/minecraft/models/item/oxidized_cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/oxidized_cut_copper_stairs.json b/assets/minecraft/models/item/oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..fd8af1aa --- /dev/null +++ b/assets/minecraft/models/item/oxidized_cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/packed_ice.json b/assets/minecraft/models/item/packed_ice.json new file mode 100644 index 00000000..bada5d8e --- /dev/null +++ b/assets/minecraft/models/item/packed_ice.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/packed_ice" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/packed_mud.json b/assets/minecraft/models/item/packed_mud.json new file mode 100644 index 00000000..8ac65758 --- /dev/null +++ b/assets/minecraft/models/item/packed_mud.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/packed_mud" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/painting.json b/assets/minecraft/models/item/painting.json new file mode 100644 index 00000000..0222609b --- /dev/null +++ b/assets/minecraft/models/item/painting.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/painting" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/panda_spawn_egg.json b/assets/minecraft/models/item/panda_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/panda_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/paper.json b/assets/minecraft/models/item/paper.json new file mode 100644 index 00000000..5cfa9dd8 --- /dev/null +++ b/assets/minecraft/models/item/paper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/paper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/parrot_spawn_egg.json b/assets/minecraft/models/item/parrot_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/parrot_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pearlescent_froglight.json b/assets/minecraft/models/item/pearlescent_froglight.json new file mode 100644 index 00000000..3a9d87f4 --- /dev/null +++ b/assets/minecraft/models/item/pearlescent_froglight.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pearlescent_froglight" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/peony.json b/assets/minecraft/models/item/peony.json new file mode 100644 index 00000000..b87b076e --- /dev/null +++ b/assets/minecraft/models/item/peony.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/peony_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/petrified_oak_slab.json b/assets/minecraft/models/item/petrified_oak_slab.json new file mode 100644 index 00000000..36ecfd7c --- /dev/null +++ b/assets/minecraft/models/item/petrified_oak_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/petrified_oak_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/phantom_membrane.json b/assets/minecraft/models/item/phantom_membrane.json new file mode 100644 index 00000000..aa7891ce --- /dev/null +++ b/assets/minecraft/models/item/phantom_membrane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/phantom_membrane" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/phantom_spawn_egg.json b/assets/minecraft/models/item/phantom_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/phantom_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pig_spawn_egg.json b/assets/minecraft/models/item/pig_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/pig_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/piglin_banner_pattern.json b/assets/minecraft/models/item/piglin_banner_pattern.json new file mode 100644 index 00000000..e19d96c8 --- /dev/null +++ b/assets/minecraft/models/item/piglin_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/piglin_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/piglin_brute_spawn_egg.json b/assets/minecraft/models/item/piglin_brute_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/piglin_brute_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/piglin_head.json b/assets/minecraft/models/item/piglin_head.json new file mode 100644 index 00000000..364b6e65 --- /dev/null +++ b/assets/minecraft/models/item/piglin_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/piglin_spawn_egg.json b/assets/minecraft/models/item/piglin_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/piglin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pillager_spawn_egg.json b/assets/minecraft/models/item/pillager_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/pillager_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_banner.json b/assets/minecraft/models/item/pink_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/pink_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_bed.json b/assets/minecraft/models/item/pink_bed.json new file mode 100644 index 00000000..7565d98f --- /dev/null +++ b/assets/minecraft/models/item/pink_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/pink_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_candle.json b/assets/minecraft/models/item/pink_candle.json new file mode 100644 index 00000000..0d64b1ca --- /dev/null +++ b/assets/minecraft/models/item/pink_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pink_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_carpet.json b/assets/minecraft/models/item/pink_carpet.json new file mode 100644 index 00000000..b2709108 --- /dev/null +++ b/assets/minecraft/models/item/pink_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pink_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_concrete.json b/assets/minecraft/models/item/pink_concrete.json new file mode 100644 index 00000000..770e1feb --- /dev/null +++ b/assets/minecraft/models/item/pink_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pink_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_concrete_powder.json b/assets/minecraft/models/item/pink_concrete_powder.json new file mode 100644 index 00000000..29803f66 --- /dev/null +++ b/assets/minecraft/models/item/pink_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pink_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_dye.json b/assets/minecraft/models/item/pink_dye.json new file mode 100644 index 00000000..bf230ebc --- /dev/null +++ b/assets/minecraft/models/item/pink_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pink_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_glazed_terracotta.json b/assets/minecraft/models/item/pink_glazed_terracotta.json new file mode 100644 index 00000000..c8ea2b25 --- /dev/null +++ b/assets/minecraft/models/item/pink_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pink_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_petals.json b/assets/minecraft/models/item/pink_petals.json new file mode 100644 index 00000000..ce099c8a --- /dev/null +++ b/assets/minecraft/models/item/pink_petals.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pink_petals" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_shulker_box.json b/assets/minecraft/models/item/pink_shulker_box.json new file mode 100644 index 00000000..e71465fe --- /dev/null +++ b/assets/minecraft/models/item/pink_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/pink_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_stained_glass.json b/assets/minecraft/models/item/pink_stained_glass.json new file mode 100644 index 00000000..b0bc8968 --- /dev/null +++ b/assets/minecraft/models/item/pink_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pink_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_stained_glass_pane.json b/assets/minecraft/models/item/pink_stained_glass_pane.json new file mode 100644 index 00000000..13681586 --- /dev/null +++ b/assets/minecraft/models/item/pink_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/pink_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_terracotta.json b/assets/minecraft/models/item/pink_terracotta.json new file mode 100644 index 00000000..2e558749 --- /dev/null +++ b/assets/minecraft/models/item/pink_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pink_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_tulip.json b/assets/minecraft/models/item/pink_tulip.json new file mode 100644 index 00000000..9d76762d --- /dev/null +++ b/assets/minecraft/models/item/pink_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/pink_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pink_wool.json b/assets/minecraft/models/item/pink_wool.json new file mode 100644 index 00000000..9f1e510f --- /dev/null +++ b/assets/minecraft/models/item/pink_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pink_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/piston.json b/assets/minecraft/models/item/piston.json new file mode 100644 index 00000000..669d1c40 --- /dev/null +++ b/assets/minecraft/models/item/piston.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/piston_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pitcher_plant.json b/assets/minecraft/models/item/pitcher_plant.json new file mode 100644 index 00000000..e5898a0f --- /dev/null +++ b/assets/minecraft/models/item/pitcher_plant.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pitcher_plant" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pitcher_pod.json b/assets/minecraft/models/item/pitcher_pod.json new file mode 100644 index 00000000..b5f561ac --- /dev/null +++ b/assets/minecraft/models/item/pitcher_pod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pitcher_pod" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/player_head.json b/assets/minecraft/models/item/player_head.json new file mode 100644 index 00000000..364b6e65 --- /dev/null +++ b/assets/minecraft/models/item/player_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/plenty_pottery_sherd.json b/assets/minecraft/models/item/plenty_pottery_sherd.json new file mode 100644 index 00000000..c3fd2321 --- /dev/null +++ b/assets/minecraft/models/item/plenty_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/plenty_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/podzol.json b/assets/minecraft/models/item/podzol.json new file mode 100644 index 00000000..ec047498 --- /dev/null +++ b/assets/minecraft/models/item/podzol.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/podzol" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pointed_dripstone.json b/assets/minecraft/models/item/pointed_dripstone.json new file mode 100644 index 00000000..f30f9594 --- /dev/null +++ b/assets/minecraft/models/item/pointed_dripstone.json @@ -0,0 +1,18 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pointed_dripstone" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 100, 0 ], + "translation": [ -1, -1, 0], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 100, 0 ], + "translation": [ 0, -2, 0], + "scale": [ 0.9, 0.9, 0.9 ] + } + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/poisonous_potato.json b/assets/minecraft/models/item/poisonous_potato.json new file mode 100644 index 00000000..f3577795 --- /dev/null +++ b/assets/minecraft/models/item/poisonous_potato.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/poisonous_potato" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polar_bear_spawn_egg.json b/assets/minecraft/models/item/polar_bear_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/polar_bear_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_andesite.json b/assets/minecraft/models/item/polished_andesite.json new file mode 100644 index 00000000..4968aa47 --- /dev/null +++ b/assets/minecraft/models/item/polished_andesite.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_andesite" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_andesite_slab.json b/assets/minecraft/models/item/polished_andesite_slab.json new file mode 100644 index 00000000..dbaf20ca --- /dev/null +++ b/assets/minecraft/models/item/polished_andesite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_andesite_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_andesite_stairs.json b/assets/minecraft/models/item/polished_andesite_stairs.json new file mode 100644 index 00000000..0695848c --- /dev/null +++ b/assets/minecraft/models/item/polished_andesite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_andesite_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_basalt.json b/assets/minecraft/models/item/polished_basalt.json new file mode 100644 index 00000000..00d0a8ab --- /dev/null +++ b/assets/minecraft/models/item/polished_basalt.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_basalt" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone.json b/assets/minecraft/models/item/polished_blackstone.json new file mode 100644 index 00000000..b60255af --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_brick_slab.json b/assets/minecraft/models/item/polished_blackstone_brick_slab.json new file mode 100644 index 00000000..35a5786c --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_brick_stairs.json b/assets/minecraft/models/item/polished_blackstone_brick_stairs.json new file mode 100644 index 00000000..bfdf49c1 --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_brick_wall.json b/assets/minecraft/models/item/polished_blackstone_brick_wall.json new file mode 100644 index 00000000..58262eed --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_bricks.json b/assets/minecraft/models/item/polished_blackstone_bricks.json new file mode 100644 index 00000000..2c7c6530 --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_button.json b/assets/minecraft/models/item/polished_blackstone_button.json new file mode 100644 index 00000000..e815336b --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_pressure_plate.json b/assets/minecraft/models/item/polished_blackstone_pressure_plate.json new file mode 100644 index 00000000..766e8c66 --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_slab.json b/assets/minecraft/models/item/polished_blackstone_slab.json new file mode 100644 index 00000000..ab598bb6 --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_stairs.json b/assets/minecraft/models/item/polished_blackstone_stairs.json new file mode 100644 index 00000000..a21c5771 --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_blackstone_wall.json b/assets/minecraft/models/item/polished_blackstone_wall.json new file mode 100644 index 00000000..23e2c0d4 --- /dev/null +++ b/assets/minecraft/models/item/polished_blackstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_blackstone_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_deepslate.json b/assets/minecraft/models/item/polished_deepslate.json new file mode 100644 index 00000000..a2e3fde1 --- /dev/null +++ b/assets/minecraft/models/item/polished_deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_deepslate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_deepslate_slab.json b/assets/minecraft/models/item/polished_deepslate_slab.json new file mode 100644 index 00000000..0bb03241 --- /dev/null +++ b/assets/minecraft/models/item/polished_deepslate_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_deepslate_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_deepslate_stairs.json b/assets/minecraft/models/item/polished_deepslate_stairs.json new file mode 100644 index 00000000..06f41f9f --- /dev/null +++ b/assets/minecraft/models/item/polished_deepslate_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_deepslate_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_deepslate_wall.json b/assets/minecraft/models/item/polished_deepslate_wall.json new file mode 100644 index 00000000..1d05cf88 --- /dev/null +++ b/assets/minecraft/models/item/polished_deepslate_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_deepslate_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_diorite.json b/assets/minecraft/models/item/polished_diorite.json new file mode 100644 index 00000000..aed47750 --- /dev/null +++ b/assets/minecraft/models/item/polished_diorite.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_diorite" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_diorite_slab.json b/assets/minecraft/models/item/polished_diorite_slab.json new file mode 100644 index 00000000..2fd79e18 --- /dev/null +++ b/assets/minecraft/models/item/polished_diorite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_diorite_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_diorite_stairs.json b/assets/minecraft/models/item/polished_diorite_stairs.json new file mode 100644 index 00000000..0ec5d5a6 --- /dev/null +++ b/assets/minecraft/models/item/polished_diorite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_diorite_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_granite.json b/assets/minecraft/models/item/polished_granite.json new file mode 100644 index 00000000..11ee51c4 --- /dev/null +++ b/assets/minecraft/models/item/polished_granite.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_granite" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_granite_slab.json b/assets/minecraft/models/item/polished_granite_slab.json new file mode 100644 index 00000000..add758b6 --- /dev/null +++ b/assets/minecraft/models/item/polished_granite_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_granite_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_granite_stairs.json b/assets/minecraft/models/item/polished_granite_stairs.json new file mode 100644 index 00000000..083d71c8 --- /dev/null +++ b/assets/minecraft/models/item/polished_granite_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_granite_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_tuff.json b/assets/minecraft/models/item/polished_tuff.json new file mode 100644 index 00000000..a34c7b0a --- /dev/null +++ b/assets/minecraft/models/item/polished_tuff.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_tuff" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_tuff_slab.json b/assets/minecraft/models/item/polished_tuff_slab.json new file mode 100644 index 00000000..948607bf --- /dev/null +++ b/assets/minecraft/models/item/polished_tuff_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_tuff_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_tuff_stairs.json b/assets/minecraft/models/item/polished_tuff_stairs.json new file mode 100644 index 00000000..98b91c00 --- /dev/null +++ b/assets/minecraft/models/item/polished_tuff_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_tuff_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/polished_tuff_wall.json b/assets/minecraft/models/item/polished_tuff_wall.json new file mode 100644 index 00000000..c0a8bed6 --- /dev/null +++ b/assets/minecraft/models/item/polished_tuff_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/polished_tuff_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/popped_chorus_fruit.json b/assets/minecraft/models/item/popped_chorus_fruit.json new file mode 100644 index 00000000..b5357bde --- /dev/null +++ b/assets/minecraft/models/item/popped_chorus_fruit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/popped_chorus_fruit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/poppy.json b/assets/minecraft/models/item/poppy.json new file mode 100644 index 00000000..089cf3ed --- /dev/null +++ b/assets/minecraft/models/item/poppy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/poppy" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/porkchop.json b/assets/minecraft/models/item/porkchop.json new file mode 100644 index 00000000..7de45731 --- /dev/null +++ b/assets/minecraft/models/item/porkchop.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/porkchop" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/potato.json b/assets/minecraft/models/item/potato.json new file mode 100644 index 00000000..3ba92381 --- /dev/null +++ b/assets/minecraft/models/item/potato.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/potato" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/potion.json b/assets/minecraft/models/item/potion.json new file mode 100644 index 00000000..73c2a578 --- /dev/null +++ b/assets/minecraft/models/item/potion.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/potion_overlay", + "layer1": "item/potion" + } +} diff --git a/assets/minecraft/models/item/powder_snow_bucket.json b/assets/minecraft/models/item/powder_snow_bucket.json new file mode 100644 index 00000000..e99a5f9f --- /dev/null +++ b/assets/minecraft/models/item/powder_snow_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/powder_snow_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/powered_rail.json b/assets/minecraft/models/item/powered_rail.json new file mode 100644 index 00000000..ecaf13bf --- /dev/null +++ b/assets/minecraft/models/item/powered_rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/powered_rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine.json b/assets/minecraft/models/item/prismarine.json new file mode 100644 index 00000000..052a4159 --- /dev/null +++ b/assets/minecraft/models/item/prismarine.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/prismarine" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_brick_slab.json b/assets/minecraft/models/item/prismarine_brick_slab.json new file mode 100644 index 00000000..905e4429 --- /dev/null +++ b/assets/minecraft/models/item/prismarine_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/prismarine_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_brick_stairs.json b/assets/minecraft/models/item/prismarine_brick_stairs.json new file mode 100644 index 00000000..e5f6c0f4 --- /dev/null +++ b/assets/minecraft/models/item/prismarine_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/prismarine_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_bricks.json b/assets/minecraft/models/item/prismarine_bricks.json new file mode 100644 index 00000000..dfe1634f --- /dev/null +++ b/assets/minecraft/models/item/prismarine_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/prismarine_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_crystals.json b/assets/minecraft/models/item/prismarine_crystals.json new file mode 100644 index 00000000..6883eebe --- /dev/null +++ b/assets/minecraft/models/item/prismarine_crystals.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/prismarine_crystals" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_shard.json b/assets/minecraft/models/item/prismarine_shard.json new file mode 100644 index 00000000..7b533d3f --- /dev/null +++ b/assets/minecraft/models/item/prismarine_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/prismarine_shard" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_slab.json b/assets/minecraft/models/item/prismarine_slab.json new file mode 100644 index 00000000..9894ef18 --- /dev/null +++ b/assets/minecraft/models/item/prismarine_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/prismarine_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_stairs.json b/assets/minecraft/models/item/prismarine_stairs.json new file mode 100644 index 00000000..356abf59 --- /dev/null +++ b/assets/minecraft/models/item/prismarine_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/prismarine_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prismarine_wall.json b/assets/minecraft/models/item/prismarine_wall.json new file mode 100644 index 00000000..16dec992 --- /dev/null +++ b/assets/minecraft/models/item/prismarine_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/prismarine_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/prize_pottery_sherd.json b/assets/minecraft/models/item/prize_pottery_sherd.json new file mode 100644 index 00000000..f73490ab --- /dev/null +++ b/assets/minecraft/models/item/prize_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/prize_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pufferfish.json b/assets/minecraft/models/item/pufferfish.json new file mode 100644 index 00000000..11ebd219 --- /dev/null +++ b/assets/minecraft/models/item/pufferfish.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pufferfish" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pufferfish_bucket.json b/assets/minecraft/models/item/pufferfish_bucket.json new file mode 100644 index 00000000..b5abbd8f --- /dev/null +++ b/assets/minecraft/models/item/pufferfish_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pufferfish_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pufferfish_spawn_egg.json b/assets/minecraft/models/item/pufferfish_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/pufferfish_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pumpkin.json b/assets/minecraft/models/item/pumpkin.json new file mode 100644 index 00000000..f725b476 --- /dev/null +++ b/assets/minecraft/models/item/pumpkin.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/pumpkin" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pumpkin_pie.json b/assets/minecraft/models/item/pumpkin_pie.json new file mode 100644 index 00000000..72ba77d5 --- /dev/null +++ b/assets/minecraft/models/item/pumpkin_pie.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pumpkin_pie" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/pumpkin_seeds.json b/assets/minecraft/models/item/pumpkin_seeds.json new file mode 100644 index 00000000..bd203f06 --- /dev/null +++ b/assets/minecraft/models/item/pumpkin_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/pumpkin_seeds" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_banner.json b/assets/minecraft/models/item/purple_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/purple_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_bed.json b/assets/minecraft/models/item/purple_bed.json new file mode 100644 index 00000000..606fae8c --- /dev/null +++ b/assets/minecraft/models/item/purple_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/purple_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_candle.json b/assets/minecraft/models/item/purple_candle.json new file mode 100644 index 00000000..9a0d2020 --- /dev/null +++ b/assets/minecraft/models/item/purple_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/purple_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_carpet.json b/assets/minecraft/models/item/purple_carpet.json new file mode 100644 index 00000000..94ffd9f4 --- /dev/null +++ b/assets/minecraft/models/item/purple_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purple_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_concrete.json b/assets/minecraft/models/item/purple_concrete.json new file mode 100644 index 00000000..437f58fc --- /dev/null +++ b/assets/minecraft/models/item/purple_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purple_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_concrete_powder.json b/assets/minecraft/models/item/purple_concrete_powder.json new file mode 100644 index 00000000..77dba432 --- /dev/null +++ b/assets/minecraft/models/item/purple_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purple_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_dye.json b/assets/minecraft/models/item/purple_dye.json new file mode 100644 index 00000000..a4082d10 --- /dev/null +++ b/assets/minecraft/models/item/purple_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/purple_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_glazed_terracotta.json b/assets/minecraft/models/item/purple_glazed_terracotta.json new file mode 100644 index 00000000..be42ab1a --- /dev/null +++ b/assets/minecraft/models/item/purple_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purple_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_shulker_box.json b/assets/minecraft/models/item/purple_shulker_box.json new file mode 100644 index 00000000..8521d10f --- /dev/null +++ b/assets/minecraft/models/item/purple_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/purple_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_stained_glass.json b/assets/minecraft/models/item/purple_stained_glass.json new file mode 100644 index 00000000..cf2ee673 --- /dev/null +++ b/assets/minecraft/models/item/purple_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purple_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_stained_glass_pane.json b/assets/minecraft/models/item/purple_stained_glass_pane.json new file mode 100644 index 00000000..646a69b9 --- /dev/null +++ b/assets/minecraft/models/item/purple_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/purple_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_terracotta.json b/assets/minecraft/models/item/purple_terracotta.json new file mode 100644 index 00000000..a69670d8 --- /dev/null +++ b/assets/minecraft/models/item/purple_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purple_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purple_wool.json b/assets/minecraft/models/item/purple_wool.json new file mode 100644 index 00000000..71160d26 --- /dev/null +++ b/assets/minecraft/models/item/purple_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purple_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purpur_block.json b/assets/minecraft/models/item/purpur_block.json new file mode 100644 index 00000000..3e7dfa5a --- /dev/null +++ b/assets/minecraft/models/item/purpur_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purpur_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purpur_pillar.json b/assets/minecraft/models/item/purpur_pillar.json new file mode 100644 index 00000000..2cb1ab30 --- /dev/null +++ b/assets/minecraft/models/item/purpur_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purpur_pillar" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purpur_slab.json b/assets/minecraft/models/item/purpur_slab.json new file mode 100644 index 00000000..385a03be --- /dev/null +++ b/assets/minecraft/models/item/purpur_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purpur_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/purpur_stairs.json b/assets/minecraft/models/item/purpur_stairs.json new file mode 100644 index 00000000..4f881026 --- /dev/null +++ b/assets/minecraft/models/item/purpur_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/purpur_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/quartz.json b/assets/minecraft/models/item/quartz.json new file mode 100644 index 00000000..6da4a860 --- /dev/null +++ b/assets/minecraft/models/item/quartz.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/quartz_block.json b/assets/minecraft/models/item/quartz_block.json new file mode 100644 index 00000000..f0966126 --- /dev/null +++ b/assets/minecraft/models/item/quartz_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/quartz_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/quartz_bricks.json b/assets/minecraft/models/item/quartz_bricks.json new file mode 100644 index 00000000..d2d45cf7 --- /dev/null +++ b/assets/minecraft/models/item/quartz_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/quartz_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/quartz_pillar.json b/assets/minecraft/models/item/quartz_pillar.json new file mode 100644 index 00000000..52905d11 --- /dev/null +++ b/assets/minecraft/models/item/quartz_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/quartz_pillar" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/quartz_slab.json b/assets/minecraft/models/item/quartz_slab.json new file mode 100644 index 00000000..9cd0ebe7 --- /dev/null +++ b/assets/minecraft/models/item/quartz_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/quartz_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/quartz_stairs.json b/assets/minecraft/models/item/quartz_stairs.json new file mode 100644 index 00000000..4126d6e4 --- /dev/null +++ b/assets/minecraft/models/item/quartz_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/quartz_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rabbit.json b/assets/minecraft/models/item/rabbit.json new file mode 100644 index 00000000..0c0294ff --- /dev/null +++ b/assets/minecraft/models/item/rabbit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/rabbit" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rabbit_foot.json b/assets/minecraft/models/item/rabbit_foot.json new file mode 100644 index 00000000..dc68690a --- /dev/null +++ b/assets/minecraft/models/item/rabbit_foot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/rabbit_foot" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rabbit_hide.json b/assets/minecraft/models/item/rabbit_hide.json new file mode 100644 index 00000000..b6327793 --- /dev/null +++ b/assets/minecraft/models/item/rabbit_hide.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/rabbit_hide" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rabbit_spawn_egg.json b/assets/minecraft/models/item/rabbit_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/rabbit_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rabbit_stew.json b/assets/minecraft/models/item/rabbit_stew.json new file mode 100644 index 00000000..311dfe99 --- /dev/null +++ b/assets/minecraft/models/item/rabbit_stew.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/rabbit_stew" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rail.json b/assets/minecraft/models/item/rail.json new file mode 100644 index 00000000..4e07db10 --- /dev/null +++ b/assets/minecraft/models/item/rail.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/rail" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/raiser_armor_trim_smithing_template.json b/assets/minecraft/models/item/raiser_armor_trim_smithing_template.json new file mode 100644 index 00000000..b80f4a01 --- /dev/null +++ b/assets/minecraft/models/item/raiser_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/raiser_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ravager_spawn_egg.json b/assets/minecraft/models/item/ravager_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/ravager_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/raw_copper.json b/assets/minecraft/models/item/raw_copper.json new file mode 100644 index 00000000..94712fde --- /dev/null +++ b/assets/minecraft/models/item/raw_copper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/raw_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/raw_copper_block.json b/assets/minecraft/models/item/raw_copper_block.json new file mode 100644 index 00000000..d24df466 --- /dev/null +++ b/assets/minecraft/models/item/raw_copper_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/raw_copper_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/raw_gold.json b/assets/minecraft/models/item/raw_gold.json new file mode 100644 index 00000000..df31aa71 --- /dev/null +++ b/assets/minecraft/models/item/raw_gold.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/raw_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/raw_gold_block.json b/assets/minecraft/models/item/raw_gold_block.json new file mode 100644 index 00000000..915e94b9 --- /dev/null +++ b/assets/minecraft/models/item/raw_gold_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/raw_gold_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/raw_iron.json b/assets/minecraft/models/item/raw_iron.json new file mode 100644 index 00000000..57ba6272 --- /dev/null +++ b/assets/minecraft/models/item/raw_iron.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/raw_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/raw_iron_block.json b/assets/minecraft/models/item/raw_iron_block.json new file mode 100644 index 00000000..b6e6e032 --- /dev/null +++ b/assets/minecraft/models/item/raw_iron_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/raw_iron_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass.json b/assets/minecraft/models/item/recovery_compass.json new file mode 100644 index 00000000..91fb13b8 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass.json @@ -0,0 +1,41 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/recovery_compass_16" + }, + "overrides": [ + { "predicate": { "angle": 0.000000 }, "model": "item/recovery_compass" }, + { "predicate": { "angle": 0.015625 }, "model": "item/recovery_compass_17" }, + { "predicate": { "angle": 0.046875 }, "model": "item/recovery_compass_18" }, + { "predicate": { "angle": 0.078125 }, "model": "item/recovery_compass_19" }, + { "predicate": { "angle": 0.109375 }, "model": "item/recovery_compass_20" }, + { "predicate": { "angle": 0.140625 }, "model": "item/recovery_compass_21" }, + { "predicate": { "angle": 0.171875 }, "model": "item/recovery_compass_22" }, + { "predicate": { "angle": 0.203125 }, "model": "item/recovery_compass_23" }, + { "predicate": { "angle": 0.234375 }, "model": "item/recovery_compass_24" }, + { "predicate": { "angle": 0.265625 }, "model": "item/recovery_compass_25" }, + { "predicate": { "angle": 0.296875 }, "model": "item/recovery_compass_26" }, + { "predicate": { "angle": 0.328125 }, "model": "item/recovery_compass_27" }, + { "predicate": { "angle": 0.359375 }, "model": "item/recovery_compass_28" }, + { "predicate": { "angle": 0.390625 }, "model": "item/recovery_compass_29" }, + { "predicate": { "angle": 0.421875 }, "model": "item/recovery_compass_30" }, + { "predicate": { "angle": 0.453125 }, "model": "item/recovery_compass_31" }, + { "predicate": { "angle": 0.484375 }, "model": "item/recovery_compass_00" }, + { "predicate": { "angle": 0.515625 }, "model": "item/recovery_compass_01" }, + { "predicate": { "angle": 0.546875 }, "model": "item/recovery_compass_02" }, + { "predicate": { "angle": 0.578125 }, "model": "item/recovery_compass_03" }, + { "predicate": { "angle": 0.609375 }, "model": "item/recovery_compass_04" }, + { "predicate": { "angle": 0.640625 }, "model": "item/recovery_compass_05" }, + { "predicate": { "angle": 0.671875 }, "model": "item/recovery_compass_06" }, + { "predicate": { "angle": 0.703125 }, "model": "item/recovery_compass_07" }, + { "predicate": { "angle": 0.734375 }, "model": "item/recovery_compass_08" }, + { "predicate": { "angle": 0.765625 }, "model": "item/recovery_compass_09" }, + { "predicate": { "angle": 0.796875 }, "model": "item/recovery_compass_10" }, + { "predicate": { "angle": 0.828125 }, "model": "item/recovery_compass_11" }, + { "predicate": { "angle": 0.859375 }, "model": "item/recovery_compass_12" }, + { "predicate": { "angle": 0.890625 }, "model": "item/recovery_compass_13" }, + { "predicate": { "angle": 0.921875 }, "model": "item/recovery_compass_14" }, + { "predicate": { "angle": 0.953125 }, "model": "item/recovery_compass_15" }, + { "predicate": { "angle": 0.984375 }, "model": "item/recovery_compass" } + ] +} diff --git a/assets/minecraft/models/item/recovery_compass_00.json b/assets/minecraft/models/item/recovery_compass_00.json new file mode 100644 index 00000000..753be1b2 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_00.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_00" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_01.json b/assets/minecraft/models/item/recovery_compass_01.json new file mode 100644 index 00000000..3e063088 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_01.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_01" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_02.json b/assets/minecraft/models/item/recovery_compass_02.json new file mode 100644 index 00000000..c6bfef5d --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_02.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_02" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_03.json b/assets/minecraft/models/item/recovery_compass_03.json new file mode 100644 index 00000000..874a349e --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_03.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_03" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_04.json b/assets/minecraft/models/item/recovery_compass_04.json new file mode 100644 index 00000000..d1fb39c2 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_04.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_04" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_05.json b/assets/minecraft/models/item/recovery_compass_05.json new file mode 100644 index 00000000..c1958b51 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_05.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_05" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_06.json b/assets/minecraft/models/item/recovery_compass_06.json new file mode 100644 index 00000000..7ebdd8c8 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_06.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_06" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_07.json b/assets/minecraft/models/item/recovery_compass_07.json new file mode 100644 index 00000000..eabb1f03 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_07.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_07" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_08.json b/assets/minecraft/models/item/recovery_compass_08.json new file mode 100644 index 00000000..d59f4c13 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_08.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_08" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_09.json b/assets/minecraft/models/item/recovery_compass_09.json new file mode 100644 index 00000000..cb2ddbc9 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_09.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_09" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_10.json b/assets/minecraft/models/item/recovery_compass_10.json new file mode 100644 index 00000000..30618a33 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_10.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_10" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_11.json b/assets/minecraft/models/item/recovery_compass_11.json new file mode 100644 index 00000000..6d29eae1 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_11.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_11" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_12.json b/assets/minecraft/models/item/recovery_compass_12.json new file mode 100644 index 00000000..c455ce86 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_12.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_12" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_13.json b/assets/minecraft/models/item/recovery_compass_13.json new file mode 100644 index 00000000..9982cc53 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_13.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_13" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_14.json b/assets/minecraft/models/item/recovery_compass_14.json new file mode 100644 index 00000000..0ba7e45b --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_14.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_14" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_15.json b/assets/minecraft/models/item/recovery_compass_15.json new file mode 100644 index 00000000..adb5c129 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_15.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_15" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_17.json b/assets/minecraft/models/item/recovery_compass_17.json new file mode 100644 index 00000000..5a906f0b --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_17.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_17" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_18.json b/assets/minecraft/models/item/recovery_compass_18.json new file mode 100644 index 00000000..d2665866 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_18.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_18" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_19.json b/assets/minecraft/models/item/recovery_compass_19.json new file mode 100644 index 00000000..fe36dcac --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_19.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_19" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_20.json b/assets/minecraft/models/item/recovery_compass_20.json new file mode 100644 index 00000000..1632015e --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_20.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_20" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_21.json b/assets/minecraft/models/item/recovery_compass_21.json new file mode 100644 index 00000000..1f52a2cf --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_21.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_21" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_22.json b/assets/minecraft/models/item/recovery_compass_22.json new file mode 100644 index 00000000..bae9ef11 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_22.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_22" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_23.json b/assets/minecraft/models/item/recovery_compass_23.json new file mode 100644 index 00000000..f46180c5 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_23.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_23" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_24.json b/assets/minecraft/models/item/recovery_compass_24.json new file mode 100644 index 00000000..c7acb6b8 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_24.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_24" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_25.json b/assets/minecraft/models/item/recovery_compass_25.json new file mode 100644 index 00000000..234b7ab9 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_25.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_25" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_26.json b/assets/minecraft/models/item/recovery_compass_26.json new file mode 100644 index 00000000..0f988f3b --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_26.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_26" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_27.json b/assets/minecraft/models/item/recovery_compass_27.json new file mode 100644 index 00000000..1587617b --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_27.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_27" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_28.json b/assets/minecraft/models/item/recovery_compass_28.json new file mode 100644 index 00000000..4153fb07 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_28.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_28" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_29.json b/assets/minecraft/models/item/recovery_compass_29.json new file mode 100644 index 00000000..47e3fff1 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_29.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_29" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_30.json b/assets/minecraft/models/item/recovery_compass_30.json new file mode 100644 index 00000000..6a39baad --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_30.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_30" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/recovery_compass_31.json b/assets/minecraft/models/item/recovery_compass_31.json new file mode 100644 index 00000000..e1bb4c13 --- /dev/null +++ b/assets/minecraft/models/item/recovery_compass_31.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/recovery_compass_31" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_banner.json b/assets/minecraft/models/item/red_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/red_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_bed.json b/assets/minecraft/models/item/red_bed.json new file mode 100644 index 00000000..7a15f551 --- /dev/null +++ b/assets/minecraft/models/item/red_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/red_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_candle.json b/assets/minecraft/models/item/red_candle.json new file mode 100644 index 00000000..54fbba02 --- /dev/null +++ b/assets/minecraft/models/item/red_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/red_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_carpet.json b/assets/minecraft/models/item/red_carpet.json new file mode 100644 index 00000000..18e4d52e --- /dev/null +++ b/assets/minecraft/models/item/red_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_concrete.json b/assets/minecraft/models/item/red_concrete.json new file mode 100644 index 00000000..34a0630b --- /dev/null +++ b/assets/minecraft/models/item/red_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_concrete_powder.json b/assets/minecraft/models/item/red_concrete_powder.json new file mode 100644 index 00000000..36e0ede7 --- /dev/null +++ b/assets/minecraft/models/item/red_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_dye.json b/assets/minecraft/models/item/red_dye.json new file mode 100644 index 00000000..77765d36 --- /dev/null +++ b/assets/minecraft/models/item/red_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/red_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_glazed_terracotta.json b/assets/minecraft/models/item/red_glazed_terracotta.json new file mode 100644 index 00000000..3870bc2c --- /dev/null +++ b/assets/minecraft/models/item/red_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_mushroom.json b/assets/minecraft/models/item/red_mushroom.json new file mode 100644 index 00000000..3be0c03f --- /dev/null +++ b/assets/minecraft/models/item/red_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/red_mushroom" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_mushroom_block.json b/assets/minecraft/models/item/red_mushroom_block.json new file mode 100644 index 00000000..5ed44fb4 --- /dev/null +++ b/assets/minecraft/models/item/red_mushroom_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_mushroom_block_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_nether_brick_slab.json b/assets/minecraft/models/item/red_nether_brick_slab.json new file mode 100644 index 00000000..73ba1684 --- /dev/null +++ b/assets/minecraft/models/item/red_nether_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_nether_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_nether_brick_stairs.json b/assets/minecraft/models/item/red_nether_brick_stairs.json new file mode 100644 index 00000000..98d716be --- /dev/null +++ b/assets/minecraft/models/item/red_nether_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_nether_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_nether_brick_wall.json b/assets/minecraft/models/item/red_nether_brick_wall.json new file mode 100644 index 00000000..48f50a64 --- /dev/null +++ b/assets/minecraft/models/item/red_nether_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_nether_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_nether_bricks.json b/assets/minecraft/models/item/red_nether_bricks.json new file mode 100644 index 00000000..51d3d11c --- /dev/null +++ b/assets/minecraft/models/item/red_nether_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_nether_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_sand.json b/assets/minecraft/models/item/red_sand.json new file mode 100644 index 00000000..f3459a82 --- /dev/null +++ b/assets/minecraft/models/item/red_sand.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_sand" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_sandstone.json b/assets/minecraft/models/item/red_sandstone.json new file mode 100644 index 00000000..305751fa --- /dev/null +++ b/assets/minecraft/models/item/red_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_sandstone_slab.json b/assets/minecraft/models/item/red_sandstone_slab.json new file mode 100644 index 00000000..c7473565 --- /dev/null +++ b/assets/minecraft/models/item/red_sandstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_sandstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_sandstone_stairs.json b/assets/minecraft/models/item/red_sandstone_stairs.json new file mode 100644 index 00000000..6c0f1c52 --- /dev/null +++ b/assets/minecraft/models/item/red_sandstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_sandstone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_sandstone_wall.json b/assets/minecraft/models/item/red_sandstone_wall.json new file mode 100644 index 00000000..7dc10d93 --- /dev/null +++ b/assets/minecraft/models/item/red_sandstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_sandstone_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_shulker_box.json b/assets/minecraft/models/item/red_shulker_box.json new file mode 100644 index 00000000..618ccff6 --- /dev/null +++ b/assets/minecraft/models/item/red_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/red_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_stained_glass.json b/assets/minecraft/models/item/red_stained_glass.json new file mode 100644 index 00000000..235d35da --- /dev/null +++ b/assets/minecraft/models/item/red_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_stained_glass_pane.json b/assets/minecraft/models/item/red_stained_glass_pane.json new file mode 100644 index 00000000..699b006f --- /dev/null +++ b/assets/minecraft/models/item/red_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/red_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_terracotta.json b/assets/minecraft/models/item/red_terracotta.json new file mode 100644 index 00000000..2ded3a9d --- /dev/null +++ b/assets/minecraft/models/item/red_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_tulip.json b/assets/minecraft/models/item/red_tulip.json new file mode 100644 index 00000000..406b1ece --- /dev/null +++ b/assets/minecraft/models/item/red_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/red_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/red_wool.json b/assets/minecraft/models/item/red_wool.json new file mode 100644 index 00000000..b0dd8dd6 --- /dev/null +++ b/assets/minecraft/models/item/red_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/red_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/redstone.json b/assets/minecraft/models/item/redstone.json new file mode 100644 index 00000000..d273009e --- /dev/null +++ b/assets/minecraft/models/item/redstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/redstone_block.json b/assets/minecraft/models/item/redstone_block.json new file mode 100644 index 00000000..71d9d176 --- /dev/null +++ b/assets/minecraft/models/item/redstone_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/redstone_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/redstone_lamp.json b/assets/minecraft/models/item/redstone_lamp.json new file mode 100644 index 00000000..47f36c43 --- /dev/null +++ b/assets/minecraft/models/item/redstone_lamp.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/redstone_lamp" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/redstone_ore.json b/assets/minecraft/models/item/redstone_ore.json new file mode 100644 index 00000000..503fed06 --- /dev/null +++ b/assets/minecraft/models/item/redstone_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/redstone_ore" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/redstone_torch.json b/assets/minecraft/models/item/redstone_torch.json new file mode 100644 index 00000000..ba2060bb --- /dev/null +++ b/assets/minecraft/models/item/redstone_torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/redstone_torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/reinforced_deepslate.json b/assets/minecraft/models/item/reinforced_deepslate.json new file mode 100644 index 00000000..624fd3c4 --- /dev/null +++ b/assets/minecraft/models/item/reinforced_deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/reinforced_deepslate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/repeater.json b/assets/minecraft/models/item/repeater.json new file mode 100644 index 00000000..7a8b05fb --- /dev/null +++ b/assets/minecraft/models/item/repeater.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/repeater" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/repeating_command_block.json b/assets/minecraft/models/item/repeating_command_block.json new file mode 100644 index 00000000..75492a4b --- /dev/null +++ b/assets/minecraft/models/item/repeating_command_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/repeating_command_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/respawn_anchor.json b/assets/minecraft/models/item/respawn_anchor.json new file mode 100644 index 00000000..7fa102a3 --- /dev/null +++ b/assets/minecraft/models/item/respawn_anchor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/respawn_anchor_0" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rib_armor_trim_smithing_template.json b/assets/minecraft/models/item/rib_armor_trim_smithing_template.json new file mode 100644 index 00000000..dce77171 --- /dev/null +++ b/assets/minecraft/models/item/rib_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/rib_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rooted_dirt.json b/assets/minecraft/models/item/rooted_dirt.json new file mode 100644 index 00000000..3d6a9cda --- /dev/null +++ b/assets/minecraft/models/item/rooted_dirt.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/rooted_dirt" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rose_bush.json b/assets/minecraft/models/item/rose_bush.json new file mode 100644 index 00000000..4a71ea35 --- /dev/null +++ b/assets/minecraft/models/item/rose_bush.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/rose_bush_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/rotten_flesh.json b/assets/minecraft/models/item/rotten_flesh.json new file mode 100644 index 00000000..6d789952 --- /dev/null +++ b/assets/minecraft/models/item/rotten_flesh.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/rotten_flesh" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/saddle.json b/assets/minecraft/models/item/saddle.json new file mode 100644 index 00000000..91895cb4 --- /dev/null +++ b/assets/minecraft/models/item/saddle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/saddle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/salmon.json b/assets/minecraft/models/item/salmon.json new file mode 100644 index 00000000..dcac1db7 --- /dev/null +++ b/assets/minecraft/models/item/salmon.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/salmon" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/salmon_bucket.json b/assets/minecraft/models/item/salmon_bucket.json new file mode 100644 index 00000000..15217f22 --- /dev/null +++ b/assets/minecraft/models/item/salmon_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/salmon_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/salmon_spawn_egg.json b/assets/minecraft/models/item/salmon_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/salmon_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sand.json b/assets/minecraft/models/item/sand.json new file mode 100644 index 00000000..96c1d00d --- /dev/null +++ b/assets/minecraft/models/item/sand.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sand" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sandstone.json b/assets/minecraft/models/item/sandstone.json new file mode 100644 index 00000000..474b0ddb --- /dev/null +++ b/assets/minecraft/models/item/sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sandstone_slab.json b/assets/minecraft/models/item/sandstone_slab.json new file mode 100644 index 00000000..7b8fc6bd --- /dev/null +++ b/assets/minecraft/models/item/sandstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sandstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sandstone_stairs.json b/assets/minecraft/models/item/sandstone_stairs.json new file mode 100644 index 00000000..989e41ff --- /dev/null +++ b/assets/minecraft/models/item/sandstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sandstone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sandstone_wall.json b/assets/minecraft/models/item/sandstone_wall.json new file mode 100644 index 00000000..b4f2149b --- /dev/null +++ b/assets/minecraft/models/item/sandstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sandstone_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/scaffolding.json b/assets/minecraft/models/item/scaffolding.json new file mode 100644 index 00000000..1946d80f --- /dev/null +++ b/assets/minecraft/models/item/scaffolding.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/scaffolding_stable" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/scrape_pottery_sherd.json b/assets/minecraft/models/item/scrape_pottery_sherd.json new file mode 100644 index 00000000..52717375 --- /dev/null +++ b/assets/minecraft/models/item/scrape_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/scrape_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sculk.json b/assets/minecraft/models/item/sculk.json new file mode 100644 index 00000000..12d25d5f --- /dev/null +++ b/assets/minecraft/models/item/sculk.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sculk" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sculk_catalyst.json b/assets/minecraft/models/item/sculk_catalyst.json new file mode 100644 index 00000000..89e0b5f7 --- /dev/null +++ b/assets/minecraft/models/item/sculk_catalyst.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sculk_catalyst" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sculk_sensor.json b/assets/minecraft/models/item/sculk_sensor.json new file mode 100644 index 00000000..a2b8a77d --- /dev/null +++ b/assets/minecraft/models/item/sculk_sensor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sculk_sensor_inactive" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sculk_shrieker.json b/assets/minecraft/models/item/sculk_shrieker.json new file mode 100644 index 00000000..a6c19ae0 --- /dev/null +++ b/assets/minecraft/models/item/sculk_shrieker.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sculk_shrieker" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sculk_vein.json b/assets/minecraft/models/item/sculk_vein.json new file mode 100644 index 00000000..78df0e28 --- /dev/null +++ b/assets/minecraft/models/item/sculk_vein.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/sculk_vein" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sea_lantern.json b/assets/minecraft/models/item/sea_lantern.json new file mode 100644 index 00000000..72561fc0 --- /dev/null +++ b/assets/minecraft/models/item/sea_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sea_lantern" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sea_pickle.json b/assets/minecraft/models/item/sea_pickle.json new file mode 100644 index 00000000..c7f2f968 --- /dev/null +++ b/assets/minecraft/models/item/sea_pickle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/sea_pickle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/seagrass.json b/assets/minecraft/models/item/seagrass.json new file mode 100644 index 00000000..91c88ccb --- /dev/null +++ b/assets/minecraft/models/item/seagrass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/seagrass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sentry_armor_trim_smithing_template.json b/assets/minecraft/models/item/sentry_armor_trim_smithing_template.json new file mode 100644 index 00000000..37c62bc9 --- /dev/null +++ b/assets/minecraft/models/item/sentry_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/sentry_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shaper_armor_trim_smithing_template.json b/assets/minecraft/models/item/shaper_armor_trim_smithing_template.json new file mode 100644 index 00000000..0d10c46b --- /dev/null +++ b/assets/minecraft/models/item/shaper_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/shaper_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sheaf_pottery_sherd.json b/assets/minecraft/models/item/sheaf_pottery_sherd.json new file mode 100644 index 00000000..f5f85477 --- /dev/null +++ b/assets/minecraft/models/item/sheaf_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/sheaf_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shears.json b/assets/minecraft/models/item/shears.json new file mode 100644 index 00000000..bc9bf014 --- /dev/null +++ b/assets/minecraft/models/item/shears.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/shears" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sheep_spawn_egg.json b/assets/minecraft/models/item/sheep_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/sheep_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shelter_pottery_sherd.json b/assets/minecraft/models/item/shelter_pottery_sherd.json new file mode 100644 index 00000000..11fc43b3 --- /dev/null +++ b/assets/minecraft/models/item/shelter_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/shelter_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shield.json b/assets/minecraft/models/item/shield.json new file mode 100644 index 00000000..dbfc1938 --- /dev/null +++ b/assets/minecraft/models/item/shield.json @@ -0,0 +1,52 @@ +{ + "parent": "builtin/entity", + "gui_light": "front", + "textures": { + "particle": "block/dark_oak_planks" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 90, 0 ], + "translation": [ 10, 6, -4 ], + "scale": [ 1, 1, 1 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 90, 0 ], + "translation": [ 10, 6, 12 ], + "scale": [ 1, 1, 1 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 180, 5 ], + "translation": [ -10, 2, -10 ], + "scale": [ 1.25, 1.25, 1.25 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 180, 5 ], + "translation": [ 10, 0, -10 ], + "scale": [ 1.25, 1.25, 1.25 ] + }, + "gui": { + "rotation": [ 15, -25, -5 ], + "translation": [ 2, 3, 0 ], + "scale": [ 0.65, 0.65, 0.65 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ -4.5, 4.5, -5], + "scale":[ 0.55, 0.55, 0.55] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 2, 4, 2], + "scale":[ 0.25, 0.25, 0.25] + } + }, + "overrides": [ + { + "predicate": { + "blocking": 1 + }, + "model": "item/shield_blocking" + } + ] +} diff --git a/assets/minecraft/models/item/shield_blocking.json b/assets/minecraft/models/item/shield_blocking.json new file mode 100644 index 00000000..c68d1cf3 --- /dev/null +++ b/assets/minecraft/models/item/shield_blocking.json @@ -0,0 +1,34 @@ +{ + "parent": "builtin/entity", + "gui_light": "front", + "textures": { + "particle": "block/dark_oak_planks" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 45, 155, 0 ], + "translation": [ -3.49, 11, -2 ], + "scale": [ 1, 1, 1 ] + }, + "thirdperson_lefthand": { + "rotation": [ 45, 155, 0 ], + "translation": [ 11.51, 7, 2.5 ], + "scale": [ 1, 1, 1 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 180, -5 ], + "translation": [ -15, 5, -11 ], + "scale": [ 1.25, 1.25, 1.25 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 180, -5 ], + "translation": [ 5, 5, -11 ], + "scale": [ 1.25, 1.25, 1.25 ] + }, + "gui": { + "rotation": [ 15, -25, -5 ], + "translation": [ 2, 3, 0 ], + "scale": [ 0.65, 0.65, 0.65 ] + } + } +} diff --git a/assets/minecraft/models/item/short_grass.json b/assets/minecraft/models/item/short_grass.json new file mode 100644 index 00000000..50fc8466 --- /dev/null +++ b/assets/minecraft/models/item/short_grass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/short_grass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shroomlight.json b/assets/minecraft/models/item/shroomlight.json new file mode 100644 index 00000000..5d8aef63 --- /dev/null +++ b/assets/minecraft/models/item/shroomlight.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/shroomlight" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shulker_box.json b/assets/minecraft/models/item/shulker_box.json new file mode 100644 index 00000000..f547516b --- /dev/null +++ b/assets/minecraft/models/item/shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shulker_shell.json b/assets/minecraft/models/item/shulker_shell.json new file mode 100644 index 00000000..6aae0f45 --- /dev/null +++ b/assets/minecraft/models/item/shulker_shell.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/shulker_shell" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/shulker_spawn_egg.json b/assets/minecraft/models/item/shulker_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/shulker_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/silence_armor_trim_smithing_template.json b/assets/minecraft/models/item/silence_armor_trim_smithing_template.json new file mode 100644 index 00000000..5254eced --- /dev/null +++ b/assets/minecraft/models/item/silence_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/silence_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/silverfish_spawn_egg.json b/assets/minecraft/models/item/silverfish_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/silverfish_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/skeleton_horse_spawn_egg.json b/assets/minecraft/models/item/skeleton_horse_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/skeleton_horse_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/skeleton_skull.json b/assets/minecraft/models/item/skeleton_skull.json new file mode 100644 index 00000000..364b6e65 --- /dev/null +++ b/assets/minecraft/models/item/skeleton_skull.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/skeleton_spawn_egg.json b/assets/minecraft/models/item/skeleton_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/skull_banner_pattern.json b/assets/minecraft/models/item/skull_banner_pattern.json new file mode 100644 index 00000000..a39281f7 --- /dev/null +++ b/assets/minecraft/models/item/skull_banner_pattern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/skull_banner_pattern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/skull_pottery_sherd.json b/assets/minecraft/models/item/skull_pottery_sherd.json new file mode 100644 index 00000000..b7765121 --- /dev/null +++ b/assets/minecraft/models/item/skull_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/skull_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/slime_ball.json b/assets/minecraft/models/item/slime_ball.json new file mode 100644 index 00000000..812f0860 --- /dev/null +++ b/assets/minecraft/models/item/slime_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/slime_ball" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/slime_block.json b/assets/minecraft/models/item/slime_block.json new file mode 100644 index 00000000..848fbdaf --- /dev/null +++ b/assets/minecraft/models/item/slime_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/slime_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/slime_spawn_egg.json b/assets/minecraft/models/item/slime_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/slime_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/small_amethyst_bud.json b/assets/minecraft/models/item/small_amethyst_bud.json new file mode 100644 index 00000000..cfa83d8e --- /dev/null +++ b/assets/minecraft/models/item/small_amethyst_bud.json @@ -0,0 +1,16 @@ +{ + "parent": "item/amethyst_bud", + "textures": { + "layer0": "minecraft:block/small_amethyst_bud" + }, + "display": { + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 0, 6, 0 ], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "fixed": { + "translation": [ 0, 7, 0 ] + } + } +} diff --git a/assets/minecraft/models/item/small_dripleaf.json b/assets/minecraft/models/item/small_dripleaf.json new file mode 100644 index 00000000..488841ff --- /dev/null +++ b/assets/minecraft/models/item/small_dripleaf.json @@ -0,0 +1,15 @@ +{ + "parent": "minecraft:block/small_dripleaf_top", + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 4, 1 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 3.2, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} diff --git a/assets/minecraft/models/item/smithing_table.json b/assets/minecraft/models/item/smithing_table.json new file mode 100644 index 00000000..3028d70f --- /dev/null +++ b/assets/minecraft/models/item/smithing_table.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smithing_table" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smoker.json b/assets/minecraft/models/item/smoker.json new file mode 100644 index 00000000..7d274018 --- /dev/null +++ b/assets/minecraft/models/item/smoker.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smoker" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_basalt.json b/assets/minecraft/models/item/smooth_basalt.json new file mode 100644 index 00000000..327e0054 --- /dev/null +++ b/assets/minecraft/models/item/smooth_basalt.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_basalt" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_quartz.json b/assets/minecraft/models/item/smooth_quartz.json new file mode 100644 index 00000000..b2047c83 --- /dev/null +++ b/assets/minecraft/models/item/smooth_quartz.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_quartz" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_quartz_slab.json b/assets/minecraft/models/item/smooth_quartz_slab.json new file mode 100644 index 00000000..55c15fa9 --- /dev/null +++ b/assets/minecraft/models/item/smooth_quartz_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_quartz_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_quartz_stairs.json b/assets/minecraft/models/item/smooth_quartz_stairs.json new file mode 100644 index 00000000..bddcd1cc --- /dev/null +++ b/assets/minecraft/models/item/smooth_quartz_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_quartz_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_red_sandstone.json b/assets/minecraft/models/item/smooth_red_sandstone.json new file mode 100644 index 00000000..3e8943e4 --- /dev/null +++ b/assets/minecraft/models/item/smooth_red_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_red_sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_red_sandstone_slab.json b/assets/minecraft/models/item/smooth_red_sandstone_slab.json new file mode 100644 index 00000000..cae67922 --- /dev/null +++ b/assets/minecraft/models/item/smooth_red_sandstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_red_sandstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_red_sandstone_stairs.json b/assets/minecraft/models/item/smooth_red_sandstone_stairs.json new file mode 100644 index 00000000..1ba4dd5e --- /dev/null +++ b/assets/minecraft/models/item/smooth_red_sandstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_red_sandstone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_sandstone.json b/assets/minecraft/models/item/smooth_sandstone.json new file mode 100644 index 00000000..d702d287 --- /dev/null +++ b/assets/minecraft/models/item/smooth_sandstone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_sandstone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_sandstone_slab.json b/assets/minecraft/models/item/smooth_sandstone_slab.json new file mode 100644 index 00000000..934c7ada --- /dev/null +++ b/assets/minecraft/models/item/smooth_sandstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_sandstone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_sandstone_stairs.json b/assets/minecraft/models/item/smooth_sandstone_stairs.json new file mode 100644 index 00000000..74ab5a1a --- /dev/null +++ b/assets/minecraft/models/item/smooth_sandstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_sandstone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_stone.json b/assets/minecraft/models/item/smooth_stone.json new file mode 100644 index 00000000..393605bd --- /dev/null +++ b/assets/minecraft/models/item/smooth_stone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_stone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/smooth_stone_slab.json b/assets/minecraft/models/item/smooth_stone_slab.json new file mode 100644 index 00000000..e33dcb4c --- /dev/null +++ b/assets/minecraft/models/item/smooth_stone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/smooth_stone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sniffer_egg.json b/assets/minecraft/models/item/sniffer_egg.json new file mode 100644 index 00000000..0f35a4d9 --- /dev/null +++ b/assets/minecraft/models/item/sniffer_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/sniffer_egg" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sniffer_spawn_egg.json b/assets/minecraft/models/item/sniffer_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/sniffer_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/snort_pottery_sherd.json b/assets/minecraft/models/item/snort_pottery_sherd.json new file mode 100644 index 00000000..d3a8ebc3 --- /dev/null +++ b/assets/minecraft/models/item/snort_pottery_sherd.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/snort_pottery_sherd" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/snout_armor_trim_smithing_template.json b/assets/minecraft/models/item/snout_armor_trim_smithing_template.json new file mode 100644 index 00000000..a6c6c622 --- /dev/null +++ b/assets/minecraft/models/item/snout_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/snout_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/snow.json b/assets/minecraft/models/item/snow.json new file mode 100644 index 00000000..a4d1c989 --- /dev/null +++ b/assets/minecraft/models/item/snow.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/snow_height2" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/snow_block.json b/assets/minecraft/models/item/snow_block.json new file mode 100644 index 00000000..1564e775 --- /dev/null +++ b/assets/minecraft/models/item/snow_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/snow_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/snow_golem_spawn_egg.json b/assets/minecraft/models/item/snow_golem_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/snow_golem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/snowball.json b/assets/minecraft/models/item/snowball.json new file mode 100644 index 00000000..7dec4dee --- /dev/null +++ b/assets/minecraft/models/item/snowball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/snowball" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/soul_campfire.json b/assets/minecraft/models/item/soul_campfire.json new file mode 100644 index 00000000..ef63b765 --- /dev/null +++ b/assets/minecraft/models/item/soul_campfire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/soul_campfire" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/soul_lantern.json b/assets/minecraft/models/item/soul_lantern.json new file mode 100644 index 00000000..53e65908 --- /dev/null +++ b/assets/minecraft/models/item/soul_lantern.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/soul_lantern" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/soul_sand.json b/assets/minecraft/models/item/soul_sand.json new file mode 100644 index 00000000..50df79cf --- /dev/null +++ b/assets/minecraft/models/item/soul_sand.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/soul_sand" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/soul_soil.json b/assets/minecraft/models/item/soul_soil.json new file mode 100644 index 00000000..c8c62d36 --- /dev/null +++ b/assets/minecraft/models/item/soul_soil.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/soul_soil" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/soul_torch.json b/assets/minecraft/models/item/soul_torch.json new file mode 100644 index 00000000..96dbfdfb --- /dev/null +++ b/assets/minecraft/models/item/soul_torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/soul_torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spawner.json b/assets/minecraft/models/item/spawner.json new file mode 100644 index 00000000..f54a94f6 --- /dev/null +++ b/assets/minecraft/models/item/spawner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spawner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spectral_arrow.json b/assets/minecraft/models/item/spectral_arrow.json new file mode 100644 index 00000000..33a79f8e --- /dev/null +++ b/assets/minecraft/models/item/spectral_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spectral_arrow" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spider_eye.json b/assets/minecraft/models/item/spider_eye.json new file mode 100644 index 00000000..fd7547f4 --- /dev/null +++ b/assets/minecraft/models/item/spider_eye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spider_eye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spider_spawn_egg.json b/assets/minecraft/models/item/spider_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/spider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spire_armor_trim_smithing_template.json b/assets/minecraft/models/item/spire_armor_trim_smithing_template.json new file mode 100644 index 00000000..fe7a6df0 --- /dev/null +++ b/assets/minecraft/models/item/spire_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spire_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/splash_potion.json b/assets/minecraft/models/item/splash_potion.json new file mode 100644 index 00000000..d9aaa6b8 --- /dev/null +++ b/assets/minecraft/models/item/splash_potion.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/potion_overlay", + "layer1": "item/splash_potion" + } +} diff --git a/assets/minecraft/models/item/sponge.json b/assets/minecraft/models/item/sponge.json new file mode 100644 index 00000000..4e456fd9 --- /dev/null +++ b/assets/minecraft/models/item/sponge.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sponge" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spore_blossom.json b/assets/minecraft/models/item/spore_blossom.json new file mode 100644 index 00000000..3eb054c8 --- /dev/null +++ b/assets/minecraft/models/item/spore_blossom.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spore_blossom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_boat.json b/assets/minecraft/models/item/spruce_boat.json new file mode 100644 index 00000000..a425c2c8 --- /dev/null +++ b/assets/minecraft/models/item/spruce_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spruce_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_button.json b/assets/minecraft/models/item/spruce_button.json new file mode 100644 index 00000000..91d8bc03 --- /dev/null +++ b/assets/minecraft/models/item/spruce_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_chest_boat.json b/assets/minecraft/models/item/spruce_chest_boat.json new file mode 100644 index 00000000..36d7a7f5 --- /dev/null +++ b/assets/minecraft/models/item/spruce_chest_boat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spruce_chest_boat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_door.json b/assets/minecraft/models/item/spruce_door.json new file mode 100644 index 00000000..c1a3bf29 --- /dev/null +++ b/assets/minecraft/models/item/spruce_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spruce_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_fence.json b/assets/minecraft/models/item/spruce_fence.json new file mode 100644 index 00000000..e2c37840 --- /dev/null +++ b/assets/minecraft/models/item/spruce_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_fence_gate.json b/assets/minecraft/models/item/spruce_fence_gate.json new file mode 100644 index 00000000..6f4473e4 --- /dev/null +++ b/assets/minecraft/models/item/spruce_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_hanging_sign.json b/assets/minecraft/models/item/spruce_hanging_sign.json new file mode 100644 index 00000000..90c40e29 --- /dev/null +++ b/assets/minecraft/models/item/spruce_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spruce_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_leaves.json b/assets/minecraft/models/item/spruce_leaves.json new file mode 100644 index 00000000..6c64eda5 --- /dev/null +++ b/assets/minecraft/models/item/spruce_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_leaves" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_log.json b/assets/minecraft/models/item/spruce_log.json new file mode 100644 index 00000000..84bd7dc3 --- /dev/null +++ b/assets/minecraft/models/item/spruce_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_planks.json b/assets/minecraft/models/item/spruce_planks.json new file mode 100644 index 00000000..d87b1720 --- /dev/null +++ b/assets/minecraft/models/item/spruce_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_pressure_plate.json b/assets/minecraft/models/item/spruce_pressure_plate.json new file mode 100644 index 00000000..b0de0787 --- /dev/null +++ b/assets/minecraft/models/item/spruce_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_sapling.json b/assets/minecraft/models/item/spruce_sapling.json new file mode 100644 index 00000000..1c9752de --- /dev/null +++ b/assets/minecraft/models/item/spruce_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/spruce_sapling" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_sign.json b/assets/minecraft/models/item/spruce_sign.json new file mode 100644 index 00000000..f5c26ebf --- /dev/null +++ b/assets/minecraft/models/item/spruce_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spruce_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_slab.json b/assets/minecraft/models/item/spruce_slab.json new file mode 100644 index 00000000..d5fa4c0f --- /dev/null +++ b/assets/minecraft/models/item/spruce_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_stairs.json b/assets/minecraft/models/item/spruce_stairs.json new file mode 100644 index 00000000..7957a5a1 --- /dev/null +++ b/assets/minecraft/models/item/spruce_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_trapdoor.json b/assets/minecraft/models/item/spruce_trapdoor.json new file mode 100644 index 00000000..0eb91e4a --- /dev/null +++ b/assets/minecraft/models/item/spruce_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spruce_wood.json b/assets/minecraft/models/item/spruce_wood.json new file mode 100644 index 00000000..593e4ec8 --- /dev/null +++ b/assets/minecraft/models/item/spruce_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/spruce_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spyglass.json b/assets/minecraft/models/item/spyglass.json new file mode 100644 index 00000000..c5d7e691 --- /dev/null +++ b/assets/minecraft/models/item/spyglass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/spyglass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/spyglass_in_hand.json b/assets/minecraft/models/item/spyglass_in_hand.json new file mode 100644 index 00000000..073bfd29 --- /dev/null +++ b/assets/minecraft/models/item/spyglass_in_hand.json @@ -0,0 +1,52 @@ +{ + "textures": { + "spyglass": "item/spyglass_model" + }, + "elements": [ + { + "from": [7, 8.5, 7], + "to": [9, 13.5, 9], + "faces": { + "north": {"uv": [0, 2, 2, 7], "texture": "#spyglass"}, + "east": {"uv": [0, 2, 2, 7], "texture": "#spyglass"}, + "south": {"uv": [0, 2, 2, 7], "texture": "#spyglass"}, + "west": {"uv": [0, 2, 2, 7], "texture": "#spyglass"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#spyglass"} + } + }, + { + "from": [6.9, 2.4, 6.9], + "to": [9.1, 8.6, 9.1], + "faces": { + "north": {"uv": [0, 7, 2, 13], "texture": "#spyglass"}, + "east": {"uv": [0, 7, 2, 13], "texture": "#spyglass"}, + "south": {"uv": [0, 7, 2, 13], "texture": "#spyglass"}, + "west": {"uv": [0, 7, 2, 13], "texture": "#spyglass"}, + "up": {"uv": [0, 5, 2, 7], "texture": "#spyglass"}, + "down": {"uv": [0, 13, 2, 15], "texture": "#spyglass"} + } + } + ], + "gui_light": "front", + "display": { + "thirdperson_righthand": { + "translation": [0, -2, 0] + }, + "ground": { + "rotation": [90, 0, 0] + }, + "gui": { + "rotation": [-67.5, 0, 45], + "scale": [1.5, 1.5, 1.5] + }, + "head": { + "rotation": [90, 0, 0], + "translation": [0, 0, -16], + "scale": [1.6, 1.6, 1.6] + }, + "fixed": { + "translation": [0, 0, -1.5], + "scale": [1.5, 1.5, 1.5] + } + } +} diff --git a/assets/minecraft/models/item/squid_spawn_egg.json b/assets/minecraft/models/item/squid_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/squid_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stick.json b/assets/minecraft/models/item/stick.json new file mode 100644 index 00000000..f0dc3b97 --- /dev/null +++ b/assets/minecraft/models/item/stick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/stick" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sticky_piston.json b/assets/minecraft/models/item/sticky_piston.json new file mode 100644 index 00000000..69bfdc94 --- /dev/null +++ b/assets/minecraft/models/item/sticky_piston.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/sticky_piston_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone.json b/assets/minecraft/models/item/stone.json new file mode 100644 index 00000000..37f27f10 --- /dev/null +++ b/assets/minecraft/models/item/stone.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_axe.json b/assets/minecraft/models/item/stone_axe.json new file mode 100644 index 00000000..1e3bc7e8 --- /dev/null +++ b/assets/minecraft/models/item/stone_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/stone_axe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_brick_slab.json b/assets/minecraft/models/item/stone_brick_slab.json new file mode 100644 index 00000000..9dd874ac --- /dev/null +++ b/assets/minecraft/models/item/stone_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_brick_stairs.json b/assets/minecraft/models/item/stone_brick_stairs.json new file mode 100644 index 00000000..d62eb4b3 --- /dev/null +++ b/assets/minecraft/models/item/stone_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_brick_wall.json b/assets/minecraft/models/item/stone_brick_wall.json new file mode 100644 index 00000000..929da51f --- /dev/null +++ b/assets/minecraft/models/item/stone_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_bricks.json b/assets/minecraft/models/item/stone_bricks.json new file mode 100644 index 00000000..51de871c --- /dev/null +++ b/assets/minecraft/models/item/stone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_button.json b/assets/minecraft/models/item/stone_button.json new file mode 100644 index 00000000..8802ddfb --- /dev/null +++ b/assets/minecraft/models/item/stone_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_hoe.json b/assets/minecraft/models/item/stone_hoe.json new file mode 100644 index 00000000..13f40c63 --- /dev/null +++ b/assets/minecraft/models/item/stone_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/stone_hoe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_pickaxe.json b/assets/minecraft/models/item/stone_pickaxe.json new file mode 100644 index 00000000..dec09cbe --- /dev/null +++ b/assets/minecraft/models/item/stone_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/stone_pickaxe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_pressure_plate.json b/assets/minecraft/models/item/stone_pressure_plate.json new file mode 100644 index 00000000..bcb76d79 --- /dev/null +++ b/assets/minecraft/models/item/stone_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_shovel.json b/assets/minecraft/models/item/stone_shovel.json new file mode 100644 index 00000000..727a68b9 --- /dev/null +++ b/assets/minecraft/models/item/stone_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/stone_shovel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_slab.json b/assets/minecraft/models/item/stone_slab.json new file mode 100644 index 00000000..63de5381 --- /dev/null +++ b/assets/minecraft/models/item/stone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_stairs.json b/assets/minecraft/models/item/stone_stairs.json new file mode 100644 index 00000000..7b9a82a9 --- /dev/null +++ b/assets/minecraft/models/item/stone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stone_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stone_sword.json b/assets/minecraft/models/item/stone_sword.json new file mode 100644 index 00000000..ba4a89f1 --- /dev/null +++ b/assets/minecraft/models/item/stone_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/stone_sword" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stonecutter.json b/assets/minecraft/models/item/stonecutter.json new file mode 100644 index 00000000..54ffedeb --- /dev/null +++ b/assets/minecraft/models/item/stonecutter.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stonecutter" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stray_spawn_egg.json b/assets/minecraft/models/item/stray_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/stray_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/strider_spawn_egg.json b/assets/minecraft/models/item/strider_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/strider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/string.json b/assets/minecraft/models/item/string.json new file mode 100644 index 00000000..ca6251bf --- /dev/null +++ b/assets/minecraft/models/item/string.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/string" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_acacia_log.json b/assets/minecraft/models/item/stripped_acacia_log.json new file mode 100644 index 00000000..d9a3ce1f --- /dev/null +++ b/assets/minecraft/models/item/stripped_acacia_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_acacia_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_acacia_wood.json b/assets/minecraft/models/item/stripped_acacia_wood.json new file mode 100644 index 00000000..4c653723 --- /dev/null +++ b/assets/minecraft/models/item/stripped_acacia_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_acacia_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_bamboo_block.json b/assets/minecraft/models/item/stripped_bamboo_block.json new file mode 100644 index 00000000..38c93f32 --- /dev/null +++ b/assets/minecraft/models/item/stripped_bamboo_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_bamboo_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_birch_log.json b/assets/minecraft/models/item/stripped_birch_log.json new file mode 100644 index 00000000..d984bf7d --- /dev/null +++ b/assets/minecraft/models/item/stripped_birch_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_birch_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_birch_wood.json b/assets/minecraft/models/item/stripped_birch_wood.json new file mode 100644 index 00000000..dc0b6698 --- /dev/null +++ b/assets/minecraft/models/item/stripped_birch_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_birch_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_cherry_log.json b/assets/minecraft/models/item/stripped_cherry_log.json new file mode 100644 index 00000000..6fb61fed --- /dev/null +++ b/assets/minecraft/models/item/stripped_cherry_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_cherry_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_cherry_wood.json b/assets/minecraft/models/item/stripped_cherry_wood.json new file mode 100644 index 00000000..73a11cdc --- /dev/null +++ b/assets/minecraft/models/item/stripped_cherry_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_cherry_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_crimson_hyphae.json b/assets/minecraft/models/item/stripped_crimson_hyphae.json new file mode 100644 index 00000000..254d5515 --- /dev/null +++ b/assets/minecraft/models/item/stripped_crimson_hyphae.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_crimson_hyphae" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_crimson_stem.json b/assets/minecraft/models/item/stripped_crimson_stem.json new file mode 100644 index 00000000..701f5670 --- /dev/null +++ b/assets/minecraft/models/item/stripped_crimson_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_crimson_stem" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_dark_oak_log.json b/assets/minecraft/models/item/stripped_dark_oak_log.json new file mode 100644 index 00000000..d193f5f0 --- /dev/null +++ b/assets/minecraft/models/item/stripped_dark_oak_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_dark_oak_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_dark_oak_wood.json b/assets/minecraft/models/item/stripped_dark_oak_wood.json new file mode 100644 index 00000000..683446da --- /dev/null +++ b/assets/minecraft/models/item/stripped_dark_oak_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_dark_oak_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_jungle_log.json b/assets/minecraft/models/item/stripped_jungle_log.json new file mode 100644 index 00000000..1c6cf473 --- /dev/null +++ b/assets/minecraft/models/item/stripped_jungle_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_jungle_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_jungle_wood.json b/assets/minecraft/models/item/stripped_jungle_wood.json new file mode 100644 index 00000000..ed78aec7 --- /dev/null +++ b/assets/minecraft/models/item/stripped_jungle_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_jungle_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_mangrove_log.json b/assets/minecraft/models/item/stripped_mangrove_log.json new file mode 100644 index 00000000..4155be18 --- /dev/null +++ b/assets/minecraft/models/item/stripped_mangrove_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_mangrove_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_mangrove_wood.json b/assets/minecraft/models/item/stripped_mangrove_wood.json new file mode 100644 index 00000000..159d89d9 --- /dev/null +++ b/assets/minecraft/models/item/stripped_mangrove_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_mangrove_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_oak_log.json b/assets/minecraft/models/item/stripped_oak_log.json new file mode 100644 index 00000000..bb3cafbe --- /dev/null +++ b/assets/minecraft/models/item/stripped_oak_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_oak_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_oak_wood.json b/assets/minecraft/models/item/stripped_oak_wood.json new file mode 100644 index 00000000..9ba3fb2a --- /dev/null +++ b/assets/minecraft/models/item/stripped_oak_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_oak_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_spruce_log.json b/assets/minecraft/models/item/stripped_spruce_log.json new file mode 100644 index 00000000..e110cdf5 --- /dev/null +++ b/assets/minecraft/models/item/stripped_spruce_log.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_spruce_log" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_spruce_wood.json b/assets/minecraft/models/item/stripped_spruce_wood.json new file mode 100644 index 00000000..658f768b --- /dev/null +++ b/assets/minecraft/models/item/stripped_spruce_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_spruce_wood" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_warped_hyphae.json b/assets/minecraft/models/item/stripped_warped_hyphae.json new file mode 100644 index 00000000..0ebe2320 --- /dev/null +++ b/assets/minecraft/models/item/stripped_warped_hyphae.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_warped_hyphae" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/stripped_warped_stem.json b/assets/minecraft/models/item/stripped_warped_stem.json new file mode 100644 index 00000000..6147725d --- /dev/null +++ b/assets/minecraft/models/item/stripped_warped_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/stripped_warped_stem" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/structure_block.json b/assets/minecraft/models/item/structure_block.json new file mode 100644 index 00000000..1325f770 --- /dev/null +++ b/assets/minecraft/models/item/structure_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/structure_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/structure_void.json b/assets/minecraft/models/item/structure_void.json new file mode 100644 index 00000000..65fb4840 --- /dev/null +++ b/assets/minecraft/models/item/structure_void.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/structure_void" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sugar.json b/assets/minecraft/models/item/sugar.json new file mode 100644 index 00000000..74e73ebd --- /dev/null +++ b/assets/minecraft/models/item/sugar.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/sugar" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sugar_cane.json b/assets/minecraft/models/item/sugar_cane.json new file mode 100644 index 00000000..ee6d1fc1 --- /dev/null +++ b/assets/minecraft/models/item/sugar_cane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/sugar_cane" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sunflower.json b/assets/minecraft/models/item/sunflower.json new file mode 100644 index 00000000..694e244c --- /dev/null +++ b/assets/minecraft/models/item/sunflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/sunflower_front" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/suspicious_gravel.json b/assets/minecraft/models/item/suspicious_gravel.json new file mode 100644 index 00000000..dd5bed5f --- /dev/null +++ b/assets/minecraft/models/item/suspicious_gravel.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/suspicious_gravel_0" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/suspicious_sand.json b/assets/minecraft/models/item/suspicious_sand.json new file mode 100644 index 00000000..c8a0dcb0 --- /dev/null +++ b/assets/minecraft/models/item/suspicious_sand.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/suspicious_sand_0" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/suspicious_stew.json b/assets/minecraft/models/item/suspicious_stew.json new file mode 100644 index 00000000..15e645a3 --- /dev/null +++ b/assets/minecraft/models/item/suspicious_stew.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/suspicious_stew" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/sweet_berries.json b/assets/minecraft/models/item/sweet_berries.json new file mode 100644 index 00000000..e1658941 --- /dev/null +++ b/assets/minecraft/models/item/sweet_berries.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/sweet_berries" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tadpole_bucket.json b/assets/minecraft/models/item/tadpole_bucket.json new file mode 100644 index 00000000..44e1336b --- /dev/null +++ b/assets/minecraft/models/item/tadpole_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/tadpole_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tadpole_spawn_egg.json b/assets/minecraft/models/item/tadpole_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/tadpole_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tall_grass.json b/assets/minecraft/models/item/tall_grass.json new file mode 100644 index 00000000..df809ea7 --- /dev/null +++ b/assets/minecraft/models/item/tall_grass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/tall_grass_top" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/target.json b/assets/minecraft/models/item/target.json new file mode 100644 index 00000000..0e4e696b --- /dev/null +++ b/assets/minecraft/models/item/target.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/target" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/template_banner.json b/assets/minecraft/models/item/template_banner.json new file mode 100644 index 00000000..d5987555 --- /dev/null +++ b/assets/minecraft/models/item/template_banner.json @@ -0,0 +1,39 @@ +{ + "parent": "builtin/entity", + "gui_light": "front", + "textures": { + "particle": "block/oak_planks" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 2, 0.5], + "scale":[ 0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [ 0, 90, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.375, 0.375, 0.375] + }, + "gui": { + "rotation": [ 30, 20, 0 ], + "translation": [ 0, -3.25, 0], + "scale":[ 0.5325, 0.5325, 0.5325] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 1, 0], + "scale":[ 0.25, 0.25, 0.25] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 16, 7], + "scale":[ 1.5, 1.5, 1.5 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5] + } + } +} diff --git a/assets/minecraft/models/item/template_bed.json b/assets/minecraft/models/item/template_bed.json new file mode 100644 index 00000000..2f5d6979 --- /dev/null +++ b/assets/minecraft/models/item/template_bed.json @@ -0,0 +1,35 @@ +{ + "parent": "builtin/entity", + "display": { + "thirdperson_righthand": { + "rotation": [ 30, 160, 0 ], + "translation": [ 0, 3, -2], + "scale":[ 0.23, 0.23, 0.23] + }, + "firstperson_righthand": { + "rotation": [ 30, 160, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.375, 0.375, 0.375] + }, + "gui": { + "rotation": [ 30, 160, 0 ], + "translation": [ 2, 3, 0], + "scale":[ 0.5325, 0.5325, 0.5325] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 1, 2], + "scale":[ 0.25, 0.25, 0.25] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 10, -8], + "scale":[ 1,1,1 ] + }, + "fixed": { + "rotation": [ 270, 0, 0 ], + "translation": [ 0, 4, -2], + "scale":[ 0.5, 0.5, 0.5] + } + } +} diff --git a/assets/minecraft/models/item/template_music_disc.json b/assets/minecraft/models/item/template_music_disc.json new file mode 100644 index 00000000..41268452 --- /dev/null +++ b/assets/minecraft/models/item/template_music_disc.json @@ -0,0 +1,10 @@ +{ + "parent": "item/generated", + "gui_light": "front", + "display": { + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ -0.5, 0, 0 ] + } + } +} diff --git a/assets/minecraft/models/item/template_shulker_box.json b/assets/minecraft/models/item/template_shulker_box.json new file mode 100644 index 00000000..7bfe2e69 --- /dev/null +++ b/assets/minecraft/models/item/template_shulker_box.json @@ -0,0 +1,35 @@ +{ + "parent": "builtin/entity", + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "head": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 1, 1, 1] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 315, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 315, 0 ], + "translation": [ 0, 0, 0], + "scale": [ 0.4, 0.4, 0.4 ] + } + } +} diff --git a/assets/minecraft/models/item/template_skull.json b/assets/minecraft/models/item/template_skull.json new file mode 100644 index 00000000..232416fc --- /dev/null +++ b/assets/minecraft/models/item/template_skull.json @@ -0,0 +1,28 @@ +{ + "parent": "builtin/entity", + "textures": { + "particle": "block/soul_sand" + }, + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 3, 0 ], + "scale": [ 1, 1, 1 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ 0, 4, 0], + "scale":[ 1, 1, 1 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0 ], + "scale": [ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 45, 45, 0 ], + "translation": [ 0, 3, 0 ], + "scale": [ 0.5, 0.5, 0.5 ] + } + } +} diff --git a/assets/minecraft/models/item/template_spawn_egg.json b/assets/minecraft/models/item/template_spawn_egg.json new file mode 100644 index 00000000..4ae4b4c2 --- /dev/null +++ b/assets/minecraft/models/item/template_spawn_egg.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/spawn_egg", + "layer1": "item/spawn_egg_overlay" + } +} diff --git a/assets/minecraft/models/item/terracotta.json b/assets/minecraft/models/item/terracotta.json new file mode 100644 index 00000000..c443c890 --- /dev/null +++ b/assets/minecraft/models/item/terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tide_armor_trim_smithing_template.json b/assets/minecraft/models/item/tide_armor_trim_smithing_template.json new file mode 100644 index 00000000..f3c54405 --- /dev/null +++ b/assets/minecraft/models/item/tide_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/tide_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tinted_glass.json b/assets/minecraft/models/item/tinted_glass.json new file mode 100644 index 00000000..18f610b8 --- /dev/null +++ b/assets/minecraft/models/item/tinted_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tinted_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tipped_arrow.json b/assets/minecraft/models/item/tipped_arrow.json new file mode 100644 index 00000000..578defec --- /dev/null +++ b/assets/minecraft/models/item/tipped_arrow.json @@ -0,0 +1,7 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/tipped_arrow_head", + "layer1": "item/tipped_arrow_base" + } +} diff --git a/assets/minecraft/models/item/tnt.json b/assets/minecraft/models/item/tnt.json new file mode 100644 index 00000000..688d3f95 --- /dev/null +++ b/assets/minecraft/models/item/tnt.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tnt" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tnt_minecart.json b/assets/minecraft/models/item/tnt_minecart.json new file mode 100644 index 00000000..c3c32604 --- /dev/null +++ b/assets/minecraft/models/item/tnt_minecart.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/tnt_minecart" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tooting_goat_horn.json b/assets/minecraft/models/item/tooting_goat_horn.json new file mode 100644 index 00000000..c412562e --- /dev/null +++ b/assets/minecraft/models/item/tooting_goat_horn.json @@ -0,0 +1,26 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/goat_horn" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, -125, 0 ], + "translation": [ -1, 2, 2 ], + "scale": [ 0.5, 0.5, 0.5 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 55, 0 ], + "translation": [ -1, 2, 2 ], + "scale": [ 0.5, 0.5, 0.5 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -55, -5 ], + "translation": [ -1, -2.5, -7.5 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 115, 5 ], + "translation": [ 0 , -2.5, -7.5 ] + } + } +} diff --git a/assets/minecraft/models/item/torch.json b/assets/minecraft/models/item/torch.json new file mode 100644 index 00000000..a734b43b --- /dev/null +++ b/assets/minecraft/models/item/torch.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/torch" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/torchflower.json b/assets/minecraft/models/item/torchflower.json new file mode 100644 index 00000000..bac7a825 --- /dev/null +++ b/assets/minecraft/models/item/torchflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/torchflower" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/torchflower_seeds.json b/assets/minecraft/models/item/torchflower_seeds.json new file mode 100644 index 00000000..6637aa8c --- /dev/null +++ b/assets/minecraft/models/item/torchflower_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/torchflower_seeds" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/totem_of_undying.json b/assets/minecraft/models/item/totem_of_undying.json new file mode 100644 index 00000000..abefc057 --- /dev/null +++ b/assets/minecraft/models/item/totem_of_undying.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/totem_of_undying" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/trader_llama_spawn_egg.json b/assets/minecraft/models/item/trader_llama_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/trader_llama_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/trapped_chest.json b/assets/minecraft/models/item/trapped_chest.json new file mode 100644 index 00000000..c7435714 --- /dev/null +++ b/assets/minecraft/models/item/trapped_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "item/chest" +} diff --git a/assets/minecraft/models/item/trial_key.json b/assets/minecraft/models/item/trial_key.json new file mode 100644 index 00000000..0ff9e82f --- /dev/null +++ b/assets/minecraft/models/item/trial_key.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/trial_key" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/trial_spawner.json b/assets/minecraft/models/item/trial_spawner.json new file mode 100644 index 00000000..22e70fe9 --- /dev/null +++ b/assets/minecraft/models/item/trial_spawner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/trial_spawner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/trident.json b/assets/minecraft/models/item/trident.json new file mode 100644 index 00000000..f129b55e --- /dev/null +++ b/assets/minecraft/models/item/trident.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/trident" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/trident_in_hand.json b/assets/minecraft/models/item/trident_in_hand.json new file mode 100644 index 00000000..6685dcca --- /dev/null +++ b/assets/minecraft/models/item/trident_in_hand.json @@ -0,0 +1,52 @@ +{ + "parent": "builtin/entity", + "gui_light": "front", + "textures": { + "particle": "item/trident" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 60, 0 ], + "translation": [ 11, 17, -2 ], + "scale": [ 1, 1, 1 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 60, 0 ], + "translation": [ 3, 17, 12 ], + "scale": [ 1, 1, 1 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ -3, 17, 1], + "scale": [ 1, 1, 1 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -25 ], + "translation": [ 13, 17, 1], + "scale": [ 1, 1, 1 ] + }, + "gui": { + "rotation": [ 15, -25, -5 ], + "translation": [ 2, 3, 0 ], + "scale": [ 0.65, 0.65, 0.65 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ -2, 4, -5], + "scale":[ 0.5, 0.5, 0.5] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 4, 4, 2], + "scale":[ 0.25, 0.25, 0.25] + } + }, + "overrides": [ + { + "predicate": { + "throwing": 1 + }, + "model": "item/trident_throwing" + } + ] +} diff --git a/assets/minecraft/models/item/trident_throwing.json b/assets/minecraft/models/item/trident_throwing.json new file mode 100644 index 00000000..fb8e96a3 --- /dev/null +++ b/assets/minecraft/models/item/trident_throwing.json @@ -0,0 +1,44 @@ +{ + "parent": "builtin/entity", + "gui_light": "front", + "textures": { + "particle": "item/trident" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ 0, 90, 180 ], + "translation": [ 8, -17, 9 ], + "scale": [ 1, 1, 1 ] + }, + "thirdperson_lefthand": { + "rotation": [ 0, 90, 180 ], + "translation": [ 8, -17, -7 ], + "scale": [ 1, 1, 1 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ -3, 17, 1], + "scale": [ 1, 1, 1 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -25 ], + "translation": [ 13, 17, 1], + "scale": [ 1, 1, 1 ] + }, + "gui": { + "rotation": [ 15, -25, -5 ], + "translation": [ 2, 3, 0 ], + "scale": [ 0.65, 0.65, 0.65 ] + }, + "fixed": { + "rotation": [ 0, 180, 0 ], + "translation": [ -2, 4, -5], + "scale":[ 0.5, 0.5, 0.5] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 4, 4, 2], + "scale":[ 0.25, 0.25, 0.25] + } + } +} diff --git a/assets/minecraft/models/item/tripwire_hook.json b/assets/minecraft/models/item/tripwire_hook.json new file mode 100644 index 00000000..b4a83abd --- /dev/null +++ b/assets/minecraft/models/item/tripwire_hook.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/tripwire_hook" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tropical_fish.json b/assets/minecraft/models/item/tropical_fish.json new file mode 100644 index 00000000..d8e9ebc6 --- /dev/null +++ b/assets/minecraft/models/item/tropical_fish.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/tropical_fish" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tropical_fish_bucket.json b/assets/minecraft/models/item/tropical_fish_bucket.json new file mode 100644 index 00000000..2ea21229 --- /dev/null +++ b/assets/minecraft/models/item/tropical_fish_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/tropical_fish_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tropical_fish_spawn_egg.json b/assets/minecraft/models/item/tropical_fish_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/tropical_fish_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tube_coral.json b/assets/minecraft/models/item/tube_coral.json new file mode 100644 index 00000000..dc0358e1 --- /dev/null +++ b/assets/minecraft/models/item/tube_coral.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/tube_coral" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tube_coral_block.json b/assets/minecraft/models/item/tube_coral_block.json new file mode 100644 index 00000000..14e2d576 --- /dev/null +++ b/assets/minecraft/models/item/tube_coral_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tube_coral_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tube_coral_fan.json b/assets/minecraft/models/item/tube_coral_fan.json new file mode 100644 index 00000000..76c880f7 --- /dev/null +++ b/assets/minecraft/models/item/tube_coral_fan.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/tube_coral_fan" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff.json b/assets/minecraft/models/item/tuff.json new file mode 100644 index 00000000..187958d9 --- /dev/null +++ b/assets/minecraft/models/item/tuff.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff_brick_slab.json b/assets/minecraft/models/item/tuff_brick_slab.json new file mode 100644 index 00000000..b793fc27 --- /dev/null +++ b/assets/minecraft/models/item/tuff_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff_brick_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff_brick_stairs.json b/assets/minecraft/models/item/tuff_brick_stairs.json new file mode 100644 index 00000000..d5156694 --- /dev/null +++ b/assets/minecraft/models/item/tuff_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff_brick_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff_brick_wall.json b/assets/minecraft/models/item/tuff_brick_wall.json new file mode 100644 index 00000000..bfb8d8b5 --- /dev/null +++ b/assets/minecraft/models/item/tuff_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff_brick_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff_bricks.json b/assets/minecraft/models/item/tuff_bricks.json new file mode 100644 index 00000000..d13c6e5a --- /dev/null +++ b/assets/minecraft/models/item/tuff_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff_bricks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff_slab.json b/assets/minecraft/models/item/tuff_slab.json new file mode 100644 index 00000000..5f037430 --- /dev/null +++ b/assets/minecraft/models/item/tuff_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff_stairs.json b/assets/minecraft/models/item/tuff_stairs.json new file mode 100644 index 00000000..eacc1e5e --- /dev/null +++ b/assets/minecraft/models/item/tuff_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/tuff_wall.json b/assets/minecraft/models/item/tuff_wall.json new file mode 100644 index 00000000..91a87f52 --- /dev/null +++ b/assets/minecraft/models/item/tuff_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/tuff_wall_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_egg.json b/assets/minecraft/models/item/turtle_egg.json new file mode 100644 index 00000000..bbc29d4a --- /dev/null +++ b/assets/minecraft/models/item/turtle_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_egg" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet.json b/assets/minecraft/models/item/turtle_helmet.json new file mode 100644 index 00000000..e61aa3c8 --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:item/generated", + "overrides": [ + { + "model": "minecraft:item/turtle_helmet_quartz_trim", + "predicate": { + "trim_type": 0.1 + } + }, + { + "model": "minecraft:item/turtle_helmet_iron_trim", + "predicate": { + "trim_type": 0.2 + } + }, + { + "model": "minecraft:item/turtle_helmet_netherite_trim", + "predicate": { + "trim_type": 0.3 + } + }, + { + "model": "minecraft:item/turtle_helmet_redstone_trim", + "predicate": { + "trim_type": 0.4 + } + }, + { + "model": "minecraft:item/turtle_helmet_copper_trim", + "predicate": { + "trim_type": 0.5 + } + }, + { + "model": "minecraft:item/turtle_helmet_gold_trim", + "predicate": { + "trim_type": 0.6 + } + }, + { + "model": "minecraft:item/turtle_helmet_emerald_trim", + "predicate": { + "trim_type": 0.7 + } + }, + { + "model": "minecraft:item/turtle_helmet_diamond_trim", + "predicate": { + "trim_type": 0.8 + } + }, + { + "model": "minecraft:item/turtle_helmet_lapis_trim", + "predicate": { + "trim_type": 0.9 + } + }, + { + "model": "minecraft:item/turtle_helmet_amethyst_trim", + "predicate": { + "trim_type": 1.0 + } + } + ], + "textures": { + "layer0": "minecraft:item/turtle_helmet" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_amethyst_trim.json b/assets/minecraft/models/item/turtle_helmet_amethyst_trim.json new file mode 100644 index 00000000..b957586d --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_amethyst_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_amethyst" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_copper_trim.json b/assets/minecraft/models/item/turtle_helmet_copper_trim.json new file mode 100644 index 00000000..dcbbfcfe --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_copper_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_copper" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_diamond_trim.json b/assets/minecraft/models/item/turtle_helmet_diamond_trim.json new file mode 100644 index 00000000..75955616 --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_diamond_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_diamond" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_emerald_trim.json b/assets/minecraft/models/item/turtle_helmet_emerald_trim.json new file mode 100644 index 00000000..15cca089 --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_emerald_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_emerald" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_gold_trim.json b/assets/minecraft/models/item/turtle_helmet_gold_trim.json new file mode 100644 index 00000000..d7b0c824 --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_gold_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_gold" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_iron_trim.json b/assets/minecraft/models/item/turtle_helmet_iron_trim.json new file mode 100644 index 00000000..2f4cbc6f --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_iron_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_iron" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_lapis_trim.json b/assets/minecraft/models/item/turtle_helmet_lapis_trim.json new file mode 100644 index 00000000..95d3bc72 --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_lapis_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_lapis" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_netherite_trim.json b/assets/minecraft/models/item/turtle_helmet_netherite_trim.json new file mode 100644 index 00000000..7c16fa61 --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_netherite_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_netherite" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_quartz_trim.json b/assets/minecraft/models/item/turtle_helmet_quartz_trim.json new file mode 100644 index 00000000..6bcfbb69 --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_quartz_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_quartz" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_helmet_redstone_trim.json b/assets/minecraft/models/item/turtle_helmet_redstone_trim.json new file mode 100644 index 00000000..4c694cbb --- /dev/null +++ b/assets/minecraft/models/item/turtle_helmet_redstone_trim.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_helmet", + "layer1": "minecraft:trims/items/helmet_trim_redstone" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_scute.json b/assets/minecraft/models/item/turtle_scute.json new file mode 100644 index 00000000..64af43c3 --- /dev/null +++ b/assets/minecraft/models/item/turtle_scute.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/turtle_scute" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/turtle_spawn_egg.json b/assets/minecraft/models/item/turtle_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/turtle_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/twisting_vines.json b/assets/minecraft/models/item/twisting_vines.json new file mode 100644 index 00000000..fe4d57c0 --- /dev/null +++ b/assets/minecraft/models/item/twisting_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/twisting_vines_plant" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/vault.json b/assets/minecraft/models/item/vault.json new file mode 100644 index 00000000..848fa309 --- /dev/null +++ b/assets/minecraft/models/item/vault.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/vault" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/verdant_froglight.json b/assets/minecraft/models/item/verdant_froglight.json new file mode 100644 index 00000000..6b9f7d21 --- /dev/null +++ b/assets/minecraft/models/item/verdant_froglight.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/verdant_froglight" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/vex_armor_trim_smithing_template.json b/assets/minecraft/models/item/vex_armor_trim_smithing_template.json new file mode 100644 index 00000000..93ec389e --- /dev/null +++ b/assets/minecraft/models/item/vex_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/vex_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/vex_spawn_egg.json b/assets/minecraft/models/item/vex_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/vex_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/villager_spawn_egg.json b/assets/minecraft/models/item/villager_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/villager_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/vindicator_spawn_egg.json b/assets/minecraft/models/item/vindicator_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/vindicator_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/vine.json b/assets/minecraft/models/item/vine.json new file mode 100644 index 00000000..c1eaec40 --- /dev/null +++ b/assets/minecraft/models/item/vine.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/vine" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wandering_trader_spawn_egg.json b/assets/minecraft/models/item/wandering_trader_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/wandering_trader_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/ward_armor_trim_smithing_template.json b/assets/minecraft/models/item/ward_armor_trim_smithing_template.json new file mode 100644 index 00000000..b8be109e --- /dev/null +++ b/assets/minecraft/models/item/ward_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/ward_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warden_spawn_egg.json b/assets/minecraft/models/item/warden_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/warden_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_button.json b/assets/minecraft/models/item/warped_button.json new file mode 100644 index 00000000..182a0ac6 --- /dev/null +++ b/assets/minecraft/models/item/warped_button.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_button_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_door.json b/assets/minecraft/models/item/warped_door.json new file mode 100644 index 00000000..5bc37290 --- /dev/null +++ b/assets/minecraft/models/item/warped_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/warped_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_fence.json b/assets/minecraft/models/item/warped_fence.json new file mode 100644 index 00000000..d45dd46d --- /dev/null +++ b/assets/minecraft/models/item/warped_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_fence_inventory" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_fence_gate.json b/assets/minecraft/models/item/warped_fence_gate.json new file mode 100644 index 00000000..1f521bc7 --- /dev/null +++ b/assets/minecraft/models/item/warped_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_fence_gate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_fungus.json b/assets/minecraft/models/item/warped_fungus.json new file mode 100644 index 00000000..eecb3bfd --- /dev/null +++ b/assets/minecraft/models/item/warped_fungus.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/warped_fungus" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_fungus_on_a_stick.json b/assets/minecraft/models/item/warped_fungus_on_a_stick.json new file mode 100644 index 00000000..562fe25c --- /dev/null +++ b/assets/minecraft/models/item/warped_fungus_on_a_stick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld_rod", + "textures": { + "layer0": "minecraft:item/warped_fungus_on_a_stick" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_hanging_sign.json b/assets/minecraft/models/item/warped_hanging_sign.json new file mode 100644 index 00000000..fe9180a7 --- /dev/null +++ b/assets/minecraft/models/item/warped_hanging_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/warped_hanging_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_hyphae.json b/assets/minecraft/models/item/warped_hyphae.json new file mode 100644 index 00000000..6cc4c5a4 --- /dev/null +++ b/assets/minecraft/models/item/warped_hyphae.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_hyphae" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_nylium.json b/assets/minecraft/models/item/warped_nylium.json new file mode 100644 index 00000000..20309492 --- /dev/null +++ b/assets/minecraft/models/item/warped_nylium.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_nylium" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_planks.json b/assets/minecraft/models/item/warped_planks.json new file mode 100644 index 00000000..92cfb4ca --- /dev/null +++ b/assets/minecraft/models/item/warped_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_planks" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_pressure_plate.json b/assets/minecraft/models/item/warped_pressure_plate.json new file mode 100644 index 00000000..58d9b443 --- /dev/null +++ b/assets/minecraft/models/item/warped_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_pressure_plate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_roots.json b/assets/minecraft/models/item/warped_roots.json new file mode 100644 index 00000000..d44aa577 --- /dev/null +++ b/assets/minecraft/models/item/warped_roots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/warped_roots" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_sign.json b/assets/minecraft/models/item/warped_sign.json new file mode 100644 index 00000000..82db6f27 --- /dev/null +++ b/assets/minecraft/models/item/warped_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/warped_sign" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_slab.json b/assets/minecraft/models/item/warped_slab.json new file mode 100644 index 00000000..ce7153c4 --- /dev/null +++ b/assets/minecraft/models/item/warped_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_stairs.json b/assets/minecraft/models/item/warped_stairs.json new file mode 100644 index 00000000..08260fdd --- /dev/null +++ b/assets/minecraft/models/item/warped_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_stem.json b/assets/minecraft/models/item/warped_stem.json new file mode 100644 index 00000000..0bab3df6 --- /dev/null +++ b/assets/minecraft/models/item/warped_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_stem" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_trapdoor.json b/assets/minecraft/models/item/warped_trapdoor.json new file mode 100644 index 00000000..c716c468 --- /dev/null +++ b/assets/minecraft/models/item/warped_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/warped_wart_block.json b/assets/minecraft/models/item/warped_wart_block.json new file mode 100644 index 00000000..754439ab --- /dev/null +++ b/assets/minecraft/models/item/warped_wart_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/warped_wart_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/water_bucket.json b/assets/minecraft/models/item/water_bucket.json new file mode 100644 index 00000000..af17e57d --- /dev/null +++ b/assets/minecraft/models/item/water_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/water_bucket" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_chiseled_copper.json b/assets/minecraft/models/item/waxed_chiseled_copper.json new file mode 100644 index 00000000..b88e810b --- /dev/null +++ b/assets/minecraft/models/item/waxed_chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_copper_block.json b/assets/minecraft/models/item/waxed_copper_block.json new file mode 100644 index 00000000..7bc2c018 --- /dev/null +++ b/assets/minecraft/models/item/waxed_copper_block.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/copper_block" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_copper_bulb.json b/assets/minecraft/models/item/waxed_copper_bulb.json new file mode 100644 index 00000000..08e49a53 --- /dev/null +++ b/assets/minecraft/models/item/waxed_copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_copper_door.json b/assets/minecraft/models/item/waxed_copper_door.json new file mode 100644 index 00000000..4466e7a3 --- /dev/null +++ b/assets/minecraft/models/item/waxed_copper_door.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/copper_door" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_copper_grate.json b/assets/minecraft/models/item/waxed_copper_grate.json new file mode 100644 index 00000000..f4cff513 --- /dev/null +++ b/assets/minecraft/models/item/waxed_copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_copper_trapdoor.json b/assets/minecraft/models/item/waxed_copper_trapdoor.json new file mode 100644 index 00000000..87df71b2 --- /dev/null +++ b/assets/minecraft/models/item/waxed_copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/copper_trapdoor" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_cut_copper.json b/assets/minecraft/models/item/waxed_cut_copper.json new file mode 100644 index 00000000..ce1ec597 --- /dev/null +++ b/assets/minecraft/models/item/waxed_cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_cut_copper_slab.json b/assets/minecraft/models/item/waxed_cut_copper_slab.json new file mode 100644 index 00000000..b6b05101 --- /dev/null +++ b/assets/minecraft/models/item/waxed_cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_cut_copper_stairs.json b/assets/minecraft/models/item/waxed_cut_copper_stairs.json new file mode 100644 index 00000000..7376f52c --- /dev/null +++ b/assets/minecraft/models/item/waxed_cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_chiseled_copper.json b/assets/minecraft/models/item/waxed_exposed_chiseled_copper.json new file mode 100644 index 00000000..11278b6a --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_copper.json b/assets/minecraft/models/item/waxed_exposed_copper.json new file mode 100644 index 00000000..5881fd7b --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_copper_bulb.json b/assets/minecraft/models/item/waxed_exposed_copper_bulb.json new file mode 100644 index 00000000..efd8e9d9 --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/exposed_copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_copper_door.json b/assets/minecraft/models/item/waxed_exposed_copper_door.json new file mode 100644 index 00000000..7e3a7045 --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_copper_door.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/exposed_copper_door" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_copper_grate.json b/assets/minecraft/models/item/waxed_exposed_copper_grate.json new file mode 100644 index 00000000..b7a3c78e --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_copper_trapdoor.json b/assets/minecraft/models/item/waxed_exposed_copper_trapdoor.json new file mode 100644 index 00000000..e3f5e9ad --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/exposed_copper_trapdoor" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_cut_copper.json b/assets/minecraft/models/item/waxed_exposed_cut_copper.json new file mode 100644 index 00000000..b5c7d8f0 --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_cut_copper_slab.json b/assets/minecraft/models/item/waxed_exposed_cut_copper_slab.json new file mode 100644 index 00000000..29ce4723 --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_exposed_cut_copper_stairs.json b/assets/minecraft/models/item/waxed_exposed_cut_copper_stairs.json new file mode 100644 index 00000000..24bdd285 --- /dev/null +++ b/assets/minecraft/models/item/waxed_exposed_cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/exposed_cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_chiseled_copper.json b/assets/minecraft/models/item/waxed_oxidized_chiseled_copper.json new file mode 100644 index 00000000..72020427 --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_copper.json b/assets/minecraft/models/item/waxed_oxidized_copper.json new file mode 100644 index 00000000..63a0dabe --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_copper_bulb.json b/assets/minecraft/models/item/waxed_oxidized_copper_bulb.json new file mode 100644 index 00000000..59b8fb7b --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/oxidized_copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_copper_door.json b/assets/minecraft/models/item/waxed_oxidized_copper_door.json new file mode 100644 index 00000000..313143e1 --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_copper_door.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/oxidized_copper_door" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_copper_grate.json b/assets/minecraft/models/item/waxed_oxidized_copper_grate.json new file mode 100644 index 00000000..e2521c38 --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_copper_trapdoor.json b/assets/minecraft/models/item/waxed_oxidized_copper_trapdoor.json new file mode 100644 index 00000000..9d3a8bee --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/oxidized_copper_trapdoor" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_cut_copper.json b/assets/minecraft/models/item/waxed_oxidized_cut_copper.json new file mode 100644 index 00000000..36dfa030 --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_cut_copper_slab.json b/assets/minecraft/models/item/waxed_oxidized_cut_copper_slab.json new file mode 100644 index 00000000..a3d02242 --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_oxidized_cut_copper_stairs.json b/assets/minecraft/models/item/waxed_oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..fd8af1aa --- /dev/null +++ b/assets/minecraft/models/item/waxed_oxidized_cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/oxidized_cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_chiseled_copper.json b/assets/minecraft/models/item/waxed_weathered_chiseled_copper.json new file mode 100644 index 00000000..c27086d6 --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_copper.json b/assets/minecraft/models/item/waxed_weathered_copper.json new file mode 100644 index 00000000..743af49a --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_copper_bulb.json b/assets/minecraft/models/item/waxed_weathered_copper_bulb.json new file mode 100644 index 00000000..6e29d291 --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/weathered_copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_copper_door.json b/assets/minecraft/models/item/waxed_weathered_copper_door.json new file mode 100644 index 00000000..409c8efa --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_copper_door.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/weathered_copper_door" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_copper_grate.json b/assets/minecraft/models/item/waxed_weathered_copper_grate.json new file mode 100644 index 00000000..17430d64 --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_copper_trapdoor.json b/assets/minecraft/models/item/waxed_weathered_copper_trapdoor.json new file mode 100644 index 00000000..7c3335de --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/weathered_copper_trapdoor" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_cut_copper.json b/assets/minecraft/models/item/waxed_weathered_cut_copper.json new file mode 100644 index 00000000..e49a231b --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_cut_copper_slab.json b/assets/minecraft/models/item/waxed_weathered_cut_copper_slab.json new file mode 100644 index 00000000..acda09e0 --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/waxed_weathered_cut_copper_stairs.json b/assets/minecraft/models/item/waxed_weathered_cut_copper_stairs.json new file mode 100644 index 00000000..01ce5972 --- /dev/null +++ b/assets/minecraft/models/item/waxed_weathered_cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wayfinder_armor_trim_smithing_template.json b/assets/minecraft/models/item/wayfinder_armor_trim_smithing_template.json new file mode 100644 index 00000000..0d31b00c --- /dev/null +++ b/assets/minecraft/models/item/wayfinder_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/wayfinder_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_chiseled_copper.json b/assets/minecraft/models/item/weathered_chiseled_copper.json new file mode 100644 index 00000000..c27086d6 --- /dev/null +++ b/assets/minecraft/models/item/weathered_chiseled_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_chiseled_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_copper.json b/assets/minecraft/models/item/weathered_copper.json new file mode 100644 index 00000000..743af49a --- /dev/null +++ b/assets/minecraft/models/item/weathered_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_copper_bulb.json b/assets/minecraft/models/item/weathered_copper_bulb.json new file mode 100644 index 00000000..276559f8 --- /dev/null +++ b/assets/minecraft/models/item/weathered_copper_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_copper_bulb" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_copper_door.json b/assets/minecraft/models/item/weathered_copper_door.json new file mode 100644 index 00000000..91c28c7b --- /dev/null +++ b/assets/minecraft/models/item/weathered_copper_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/weathered_copper_door" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_copper_grate.json b/assets/minecraft/models/item/weathered_copper_grate.json new file mode 100644 index 00000000..17430d64 --- /dev/null +++ b/assets/minecraft/models/item/weathered_copper_grate.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_copper_grate" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_copper_trapdoor.json b/assets/minecraft/models/item/weathered_copper_trapdoor.json new file mode 100644 index 00000000..7b067302 --- /dev/null +++ b/assets/minecraft/models/item/weathered_copper_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_copper_trapdoor_bottom" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_cut_copper.json b/assets/minecraft/models/item/weathered_cut_copper.json new file mode 100644 index 00000000..e49a231b --- /dev/null +++ b/assets/minecraft/models/item/weathered_cut_copper.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_cut_copper" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_cut_copper_slab.json b/assets/minecraft/models/item/weathered_cut_copper_slab.json new file mode 100644 index 00000000..acda09e0 --- /dev/null +++ b/assets/minecraft/models/item/weathered_cut_copper_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_cut_copper_slab" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weathered_cut_copper_stairs.json b/assets/minecraft/models/item/weathered_cut_copper_stairs.json new file mode 100644 index 00000000..01ce5972 --- /dev/null +++ b/assets/minecraft/models/item/weathered_cut_copper_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/weathered_cut_copper_stairs" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/weeping_vines.json b/assets/minecraft/models/item/weeping_vines.json new file mode 100644 index 00000000..834b71c5 --- /dev/null +++ b/assets/minecraft/models/item/weeping_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/weeping_vines_plant" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wet_sponge.json b/assets/minecraft/models/item/wet_sponge.json new file mode 100644 index 00000000..d662daae --- /dev/null +++ b/assets/minecraft/models/item/wet_sponge.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/wet_sponge" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wheat.json b/assets/minecraft/models/item/wheat.json new file mode 100644 index 00000000..f77a8c8f --- /dev/null +++ b/assets/minecraft/models/item/wheat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/wheat" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wheat_seeds.json b/assets/minecraft/models/item/wheat_seeds.json new file mode 100644 index 00000000..8fd9068f --- /dev/null +++ b/assets/minecraft/models/item/wheat_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/wheat_seeds" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_banner.json b/assets/minecraft/models/item/white_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/white_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_bed.json b/assets/minecraft/models/item/white_bed.json new file mode 100644 index 00000000..93d81aff --- /dev/null +++ b/assets/minecraft/models/item/white_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/white_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_candle.json b/assets/minecraft/models/item/white_candle.json new file mode 100644 index 00000000..d13392c4 --- /dev/null +++ b/assets/minecraft/models/item/white_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/white_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_carpet.json b/assets/minecraft/models/item/white_carpet.json new file mode 100644 index 00000000..8ef6f034 --- /dev/null +++ b/assets/minecraft/models/item/white_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/white_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_concrete.json b/assets/minecraft/models/item/white_concrete.json new file mode 100644 index 00000000..16475ed4 --- /dev/null +++ b/assets/minecraft/models/item/white_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/white_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_concrete_powder.json b/assets/minecraft/models/item/white_concrete_powder.json new file mode 100644 index 00000000..c001b383 --- /dev/null +++ b/assets/minecraft/models/item/white_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/white_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_dye.json b/assets/minecraft/models/item/white_dye.json new file mode 100644 index 00000000..68b02c07 --- /dev/null +++ b/assets/minecraft/models/item/white_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/white_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_glazed_terracotta.json b/assets/minecraft/models/item/white_glazed_terracotta.json new file mode 100644 index 00000000..55881dbc --- /dev/null +++ b/assets/minecraft/models/item/white_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/white_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_shulker_box.json b/assets/minecraft/models/item/white_shulker_box.json new file mode 100644 index 00000000..6fd0156e --- /dev/null +++ b/assets/minecraft/models/item/white_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/white_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_stained_glass.json b/assets/minecraft/models/item/white_stained_glass.json new file mode 100644 index 00000000..28c61d95 --- /dev/null +++ b/assets/minecraft/models/item/white_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/white_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_stained_glass_pane.json b/assets/minecraft/models/item/white_stained_glass_pane.json new file mode 100644 index 00000000..dbe66a16 --- /dev/null +++ b/assets/minecraft/models/item/white_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/white_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_terracotta.json b/assets/minecraft/models/item/white_terracotta.json new file mode 100644 index 00000000..973fa966 --- /dev/null +++ b/assets/minecraft/models/item/white_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/white_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_tulip.json b/assets/minecraft/models/item/white_tulip.json new file mode 100644 index 00000000..f1940906 --- /dev/null +++ b/assets/minecraft/models/item/white_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/white_tulip" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/white_wool.json b/assets/minecraft/models/item/white_wool.json new file mode 100644 index 00000000..5908f340 --- /dev/null +++ b/assets/minecraft/models/item/white_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/white_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wild_armor_trim_smithing_template.json b/assets/minecraft/models/item/wild_armor_trim_smithing_template.json new file mode 100644 index 00000000..52c438c7 --- /dev/null +++ b/assets/minecraft/models/item/wild_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/wild_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wind_charge.json b/assets/minecraft/models/item/wind_charge.json new file mode 100644 index 00000000..821c34eb --- /dev/null +++ b/assets/minecraft/models/item/wind_charge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/wind_charge" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/witch_spawn_egg.json b/assets/minecraft/models/item/witch_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/witch_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wither_rose.json b/assets/minecraft/models/item/wither_rose.json new file mode 100644 index 00000000..9579e7c4 --- /dev/null +++ b/assets/minecraft/models/item/wither_rose.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/wither_rose" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wither_skeleton_skull.json b/assets/minecraft/models/item/wither_skeleton_skull.json new file mode 100644 index 00000000..364b6e65 --- /dev/null +++ b/assets/minecraft/models/item/wither_skeleton_skull.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wither_skeleton_spawn_egg.json b/assets/minecraft/models/item/wither_skeleton_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/wither_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wither_spawn_egg.json b/assets/minecraft/models/item/wither_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/wither_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wolf_armor.json b/assets/minecraft/models/item/wolf_armor.json new file mode 100644 index 00000000..b08d0829 --- /dev/null +++ b/assets/minecraft/models/item/wolf_armor.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/wolf_armor", + "layer1": "minecraft:item/wolf_armor_overlay" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wolf_spawn_egg.json b/assets/minecraft/models/item/wolf_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/wolf_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wooden_axe.json b/assets/minecraft/models/item/wooden_axe.json new file mode 100644 index 00000000..e08423db --- /dev/null +++ b/assets/minecraft/models/item/wooden_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/wooden_axe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wooden_hoe.json b/assets/minecraft/models/item/wooden_hoe.json new file mode 100644 index 00000000..a925c76b --- /dev/null +++ b/assets/minecraft/models/item/wooden_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/wooden_hoe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wooden_pickaxe.json b/assets/minecraft/models/item/wooden_pickaxe.json new file mode 100644 index 00000000..5b9bbab7 --- /dev/null +++ b/assets/minecraft/models/item/wooden_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/wooden_pickaxe" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wooden_shovel.json b/assets/minecraft/models/item/wooden_shovel.json new file mode 100644 index 00000000..7c4d8287 --- /dev/null +++ b/assets/minecraft/models/item/wooden_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/wooden_shovel" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/wooden_sword.json b/assets/minecraft/models/item/wooden_sword.json new file mode 100644 index 00000000..4024a58a --- /dev/null +++ b/assets/minecraft/models/item/wooden_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "minecraft:item/wooden_sword" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/writable_book.json b/assets/minecraft/models/item/writable_book.json new file mode 100644 index 00000000..9398beca --- /dev/null +++ b/assets/minecraft/models/item/writable_book.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/writable_book" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/written_book.json b/assets/minecraft/models/item/written_book.json new file mode 100644 index 00000000..45a09602 --- /dev/null +++ b/assets/minecraft/models/item/written_book.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/written_book" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_banner.json b/assets/minecraft/models/item/yellow_banner.json new file mode 100644 index 00000000..661a106d --- /dev/null +++ b/assets/minecraft/models/item/yellow_banner.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_banner" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_bed.json b/assets/minecraft/models/item/yellow_bed.json new file mode 100644 index 00000000..cc67ceff --- /dev/null +++ b/assets/minecraft/models/item/yellow_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:block/yellow_wool" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_candle.json b/assets/minecraft/models/item/yellow_candle.json new file mode 100644 index 00000000..8f2e0728 --- /dev/null +++ b/assets/minecraft/models/item/yellow_candle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/yellow_candle" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_carpet.json b/assets/minecraft/models/item/yellow_carpet.json new file mode 100644 index 00000000..c3b3710e --- /dev/null +++ b/assets/minecraft/models/item/yellow_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/yellow_carpet" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_concrete.json b/assets/minecraft/models/item/yellow_concrete.json new file mode 100644 index 00000000..ed8ebe4c --- /dev/null +++ b/assets/minecraft/models/item/yellow_concrete.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/yellow_concrete" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_concrete_powder.json b/assets/minecraft/models/item/yellow_concrete_powder.json new file mode 100644 index 00000000..38bac8bf --- /dev/null +++ b/assets/minecraft/models/item/yellow_concrete_powder.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/yellow_concrete_powder" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_dye.json b/assets/minecraft/models/item/yellow_dye.json new file mode 100644 index 00000000..14d6bb6a --- /dev/null +++ b/assets/minecraft/models/item/yellow_dye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:item/yellow_dye" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_glazed_terracotta.json b/assets/minecraft/models/item/yellow_glazed_terracotta.json new file mode 100644 index 00000000..4d819984 --- /dev/null +++ b/assets/minecraft/models/item/yellow_glazed_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/yellow_glazed_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_shulker_box.json b/assets/minecraft/models/item/yellow_shulker_box.json new file mode 100644 index 00000000..318a620e --- /dev/null +++ b/assets/minecraft/models/item/yellow_shulker_box.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_shulker_box", + "textures": { + "particle": "minecraft:block/yellow_shulker_box" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_stained_glass.json b/assets/minecraft/models/item/yellow_stained_glass.json new file mode 100644 index 00000000..e102e2d5 --- /dev/null +++ b/assets/minecraft/models/item/yellow_stained_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/yellow_stained_glass" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_stained_glass_pane.json b/assets/minecraft/models/item/yellow_stained_glass_pane.json new file mode 100644 index 00000000..e17c28a2 --- /dev/null +++ b/assets/minecraft/models/item/yellow_stained_glass_pane.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "minecraft:block/yellow_stained_glass" + } +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_terracotta.json b/assets/minecraft/models/item/yellow_terracotta.json new file mode 100644 index 00000000..50dfb7ea --- /dev/null +++ b/assets/minecraft/models/item/yellow_terracotta.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/yellow_terracotta" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/yellow_wool.json b/assets/minecraft/models/item/yellow_wool.json new file mode 100644 index 00000000..e0de4bb8 --- /dev/null +++ b/assets/minecraft/models/item/yellow_wool.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:block/yellow_wool" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/zoglin_spawn_egg.json b/assets/minecraft/models/item/zoglin_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/zoglin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/zombie_head.json b/assets/minecraft/models/item/zombie_head.json new file mode 100644 index 00000000..364b6e65 --- /dev/null +++ b/assets/minecraft/models/item/zombie_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/zombie_horse_spawn_egg.json b/assets/minecraft/models/item/zombie_horse_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/zombie_horse_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/zombie_spawn_egg.json b/assets/minecraft/models/item/zombie_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/zombie_villager_spawn_egg.json b/assets/minecraft/models/item/zombie_villager_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/zombie_villager_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/models/item/zombified_piglin_spawn_egg.json b/assets/minecraft/models/item/zombified_piglin_spawn_egg.json new file mode 100644 index 00000000..d1aaa9d6 --- /dev/null +++ b/assets/minecraft/models/item/zombified_piglin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/assets/minecraft/particles/ambient_entity_effect.json b/assets/minecraft/particles/ambient_entity_effect.json new file mode 100644 index 00000000..3be9c3a9 --- /dev/null +++ b/assets/minecraft/particles/ambient_entity_effect.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:effect_7", + "minecraft:effect_6", + "minecraft:effect_5", + "minecraft:effect_4", + "minecraft:effect_3", + "minecraft:effect_2", + "minecraft:effect_1", + "minecraft:effect_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/angry_villager.json b/assets/minecraft/particles/angry_villager.json new file mode 100644 index 00000000..ab50717b --- /dev/null +++ b/assets/minecraft/particles/angry_villager.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:angry" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/ash.json b/assets/minecraft/particles/ash.json new file mode 100644 index 00000000..ca698ca4 --- /dev/null +++ b/assets/minecraft/particles/ash.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/bubble.json b/assets/minecraft/particles/bubble.json new file mode 100644 index 00000000..c9ad6449 --- /dev/null +++ b/assets/minecraft/particles/bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:bubble" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/bubble_column_up.json b/assets/minecraft/particles/bubble_column_up.json new file mode 100644 index 00000000..c9ad6449 --- /dev/null +++ b/assets/minecraft/particles/bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:bubble" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/bubble_pop.json b/assets/minecraft/particles/bubble_pop.json new file mode 100644 index 00000000..65ff9e5f --- /dev/null +++ b/assets/minecraft/particles/bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "minecraft:bubble_pop_0", + "minecraft:bubble_pop_1", + "minecraft:bubble_pop_2", + "minecraft:bubble_pop_3", + "minecraft:bubble_pop_4" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/campfire_cosy_smoke.json b/assets/minecraft/particles/campfire_cosy_smoke.json new file mode 100644 index 00000000..a99bffe8 --- /dev/null +++ b/assets/minecraft/particles/campfire_cosy_smoke.json @@ -0,0 +1,16 @@ +{ + "textures": [ + "minecraft:big_smoke_0", + "minecraft:big_smoke_1", + "minecraft:big_smoke_2", + "minecraft:big_smoke_3", + "minecraft:big_smoke_4", + "minecraft:big_smoke_5", + "minecraft:big_smoke_6", + "minecraft:big_smoke_7", + "minecraft:big_smoke_8", + "minecraft:big_smoke_9", + "minecraft:big_smoke_10", + "minecraft:big_smoke_11" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/campfire_signal_smoke.json b/assets/minecraft/particles/campfire_signal_smoke.json new file mode 100644 index 00000000..a99bffe8 --- /dev/null +++ b/assets/minecraft/particles/campfire_signal_smoke.json @@ -0,0 +1,16 @@ +{ + "textures": [ + "minecraft:big_smoke_0", + "minecraft:big_smoke_1", + "minecraft:big_smoke_2", + "minecraft:big_smoke_3", + "minecraft:big_smoke_4", + "minecraft:big_smoke_5", + "minecraft:big_smoke_6", + "minecraft:big_smoke_7", + "minecraft:big_smoke_8", + "minecraft:big_smoke_9", + "minecraft:big_smoke_10", + "minecraft:big_smoke_11" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/cherry_leaves.json b/assets/minecraft/particles/cherry_leaves.json new file mode 100644 index 00000000..c373f2e5 --- /dev/null +++ b/assets/minecraft/particles/cherry_leaves.json @@ -0,0 +1,16 @@ +{ + "textures": [ + "minecraft:cherry_0", + "minecraft:cherry_1", + "minecraft:cherry_2", + "minecraft:cherry_3", + "minecraft:cherry_4", + "minecraft:cherry_5", + "minecraft:cherry_6", + "minecraft:cherry_7", + "minecraft:cherry_8", + "minecraft:cherry_9", + "minecraft:cherry_10", + "minecraft:cherry_11" + ] +} diff --git a/assets/minecraft/particles/cloud.json b/assets/minecraft/particles/cloud.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/cloud.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/composter.json b/assets/minecraft/particles/composter.json new file mode 100644 index 00000000..f9f9746a --- /dev/null +++ b/assets/minecraft/particles/composter.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glint" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/crimson_spore.json b/assets/minecraft/particles/crimson_spore.json new file mode 100644 index 00000000..ca698ca4 --- /dev/null +++ b/assets/minecraft/particles/crimson_spore.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/crit.json b/assets/minecraft/particles/crit.json new file mode 100644 index 00000000..735a9d74 --- /dev/null +++ b/assets/minecraft/particles/crit.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:critical_hit" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/current_down.json b/assets/minecraft/particles/current_down.json new file mode 100644 index 00000000..c9ad6449 --- /dev/null +++ b/assets/minecraft/particles/current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:bubble" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/damage_indicator.json b/assets/minecraft/particles/damage_indicator.json new file mode 100644 index 00000000..3c9f3207 --- /dev/null +++ b/assets/minecraft/particles/damage_indicator.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:damage" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dolphin.json b/assets/minecraft/particles/dolphin.json new file mode 100644 index 00000000..ca698ca4 --- /dev/null +++ b/assets/minecraft/particles/dolphin.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dragon_breath.json b/assets/minecraft/particles/dragon_breath.json new file mode 100644 index 00000000..e65716e3 --- /dev/null +++ b/assets/minecraft/particles/dragon_breath.json @@ -0,0 +1,7 @@ +{ + "textures": [ + "minecraft:generic_5", + "minecraft:generic_6", + "minecraft:generic_7" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dripping_dripstone_lava.json b/assets/minecraft/particles/dripping_dripstone_lava.json new file mode 100644 index 00000000..987e9f30 --- /dev/null +++ b/assets/minecraft/particles/dripping_dripstone_lava.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_hang" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dripping_dripstone_water.json b/assets/minecraft/particles/dripping_dripstone_water.json new file mode 100644 index 00000000..987e9f30 --- /dev/null +++ b/assets/minecraft/particles/dripping_dripstone_water.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_hang" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dripping_honey.json b/assets/minecraft/particles/dripping_honey.json new file mode 100644 index 00000000..6a657af2 --- /dev/null +++ b/assets/minecraft/particles/dripping_honey.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_hang" + ] +} diff --git a/assets/minecraft/particles/dripping_lava.json b/assets/minecraft/particles/dripping_lava.json new file mode 100644 index 00000000..987e9f30 --- /dev/null +++ b/assets/minecraft/particles/dripping_lava.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_hang" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dripping_obsidian_tear.json b/assets/minecraft/particles/dripping_obsidian_tear.json new file mode 100644 index 00000000..6a657af2 --- /dev/null +++ b/assets/minecraft/particles/dripping_obsidian_tear.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_hang" + ] +} diff --git a/assets/minecraft/particles/dripping_water.json b/assets/minecraft/particles/dripping_water.json new file mode 100644 index 00000000..987e9f30 --- /dev/null +++ b/assets/minecraft/particles/dripping_water.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_hang" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dust.json b/assets/minecraft/particles/dust.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/dust.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dust_color_transition.json b/assets/minecraft/particles/dust_color_transition.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/dust_color_transition.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/dust_plume.json b/assets/minecraft/particles/dust_plume.json new file mode 100644 index 00000000..e0996e04 --- /dev/null +++ b/assets/minecraft/particles/dust_plume.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} diff --git a/assets/minecraft/particles/effect.json b/assets/minecraft/particles/effect.json new file mode 100644 index 00000000..3be9c3a9 --- /dev/null +++ b/assets/minecraft/particles/effect.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:effect_7", + "minecraft:effect_6", + "minecraft:effect_5", + "minecraft:effect_4", + "minecraft:effect_3", + "minecraft:effect_2", + "minecraft:effect_1", + "minecraft:effect_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/egg_crack.json b/assets/minecraft/particles/egg_crack.json new file mode 100644 index 00000000..bab4ed65 --- /dev/null +++ b/assets/minecraft/particles/egg_crack.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glint" + ] +} diff --git a/assets/minecraft/particles/electric_spark.json b/assets/minecraft/particles/electric_spark.json new file mode 100644 index 00000000..aa3870da --- /dev/null +++ b/assets/minecraft/particles/electric_spark.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glow" + ] +} diff --git a/assets/minecraft/particles/enchant.json b/assets/minecraft/particles/enchant.json new file mode 100644 index 00000000..d2175f03 --- /dev/null +++ b/assets/minecraft/particles/enchant.json @@ -0,0 +1,30 @@ +{ + "textures": [ + "minecraft:sga_a", + "minecraft:sga_b", + "minecraft:sga_c", + "minecraft:sga_d", + "minecraft:sga_e", + "minecraft:sga_f", + "minecraft:sga_g", + "minecraft:sga_h", + "minecraft:sga_i", + "minecraft:sga_j", + "minecraft:sga_k", + "minecraft:sga_l", + "minecraft:sga_m", + "minecraft:sga_n", + "minecraft:sga_o", + "minecraft:sga_p", + "minecraft:sga_q", + "minecraft:sga_r", + "minecraft:sga_s", + "minecraft:sga_t", + "minecraft:sga_u", + "minecraft:sga_v", + "minecraft:sga_w", + "minecraft:sga_x", + "minecraft:sga_y", + "minecraft:sga_z" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/enchanted_hit.json b/assets/minecraft/particles/enchanted_hit.json new file mode 100644 index 00000000..9dfa4dad --- /dev/null +++ b/assets/minecraft/particles/enchanted_hit.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:enchanted_hit" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/end_rod.json b/assets/minecraft/particles/end_rod.json new file mode 100644 index 00000000..4fdc55ff --- /dev/null +++ b/assets/minecraft/particles/end_rod.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:glitter_7", + "minecraft:glitter_6", + "minecraft:glitter_5", + "minecraft:glitter_4", + "minecraft:glitter_3", + "minecraft:glitter_2", + "minecraft:glitter_1", + "minecraft:glitter_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/entity_effect.json b/assets/minecraft/particles/entity_effect.json new file mode 100644 index 00000000..3be9c3a9 --- /dev/null +++ b/assets/minecraft/particles/entity_effect.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:effect_7", + "minecraft:effect_6", + "minecraft:effect_5", + "minecraft:effect_4", + "minecraft:effect_3", + "minecraft:effect_2", + "minecraft:effect_1", + "minecraft:effect_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/explosion.json b/assets/minecraft/particles/explosion.json new file mode 100644 index 00000000..6e3e151a --- /dev/null +++ b/assets/minecraft/particles/explosion.json @@ -0,0 +1,20 @@ +{ + "textures": [ + "minecraft:explosion_0", + "minecraft:explosion_1", + "minecraft:explosion_2", + "minecraft:explosion_3", + "minecraft:explosion_4", + "minecraft:explosion_5", + "minecraft:explosion_6", + "minecraft:explosion_7", + "minecraft:explosion_8", + "minecraft:explosion_9", + "minecraft:explosion_10", + "minecraft:explosion_11", + "minecraft:explosion_12", + "minecraft:explosion_13", + "minecraft:explosion_14", + "minecraft:explosion_15" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/falling_dripstone_lava.json b/assets/minecraft/particles/falling_dripstone_lava.json new file mode 100644 index 00000000..520ad48b --- /dev/null +++ b/assets/minecraft/particles/falling_dripstone_lava.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/falling_dripstone_water.json b/assets/minecraft/particles/falling_dripstone_water.json new file mode 100644 index 00000000..520ad48b --- /dev/null +++ b/assets/minecraft/particles/falling_dripstone_water.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/falling_dust.json b/assets/minecraft/particles/falling_dust.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/falling_dust.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/falling_honey.json b/assets/minecraft/particles/falling_honey.json new file mode 100644 index 00000000..2732837e --- /dev/null +++ b/assets/minecraft/particles/falling_honey.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} diff --git a/assets/minecraft/particles/falling_lava.json b/assets/minecraft/particles/falling_lava.json new file mode 100644 index 00000000..520ad48b --- /dev/null +++ b/assets/minecraft/particles/falling_lava.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/falling_nectar.json b/assets/minecraft/particles/falling_nectar.json new file mode 100644 index 00000000..2732837e --- /dev/null +++ b/assets/minecraft/particles/falling_nectar.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} diff --git a/assets/minecraft/particles/falling_obsidian_tear.json b/assets/minecraft/particles/falling_obsidian_tear.json new file mode 100644 index 00000000..2732837e --- /dev/null +++ b/assets/minecraft/particles/falling_obsidian_tear.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} diff --git a/assets/minecraft/particles/falling_spore_blossom.json b/assets/minecraft/particles/falling_spore_blossom.json new file mode 100644 index 00000000..2732837e --- /dev/null +++ b/assets/minecraft/particles/falling_spore_blossom.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} diff --git a/assets/minecraft/particles/falling_water.json b/assets/minecraft/particles/falling_water.json new file mode 100644 index 00000000..520ad48b --- /dev/null +++ b/assets/minecraft/particles/falling_water.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/firework.json b/assets/minecraft/particles/firework.json new file mode 100644 index 00000000..9e4709bc --- /dev/null +++ b/assets/minecraft/particles/firework.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:spark_7", + "minecraft:spark_6", + "minecraft:spark_5", + "minecraft:spark_4", + "minecraft:spark_3", + "minecraft:spark_2", + "minecraft:spark_1", + "minecraft:spark_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/fishing.json b/assets/minecraft/particles/fishing.json new file mode 100644 index 00000000..49f427bc --- /dev/null +++ b/assets/minecraft/particles/fishing.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "minecraft:splash_0", + "minecraft:splash_1", + "minecraft:splash_2", + "minecraft:splash_3" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/flame.json b/assets/minecraft/particles/flame.json new file mode 100644 index 00000000..f506424d --- /dev/null +++ b/assets/minecraft/particles/flame.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:flame" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/flash.json b/assets/minecraft/particles/flash.json new file mode 100644 index 00000000..9d842205 --- /dev/null +++ b/assets/minecraft/particles/flash.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:flash" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/glow.json b/assets/minecraft/particles/glow.json new file mode 100644 index 00000000..8c0a8d20 --- /dev/null +++ b/assets/minecraft/particles/glow.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glow" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/glow_squid_ink.json b/assets/minecraft/particles/glow_squid_ink.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/glow_squid_ink.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/gust.json b/assets/minecraft/particles/gust.json new file mode 100644 index 00000000..ae6f2dd9 --- /dev/null +++ b/assets/minecraft/particles/gust.json @@ -0,0 +1,16 @@ +{ + "textures": [ + "minecraft:gust_0", + "minecraft:gust_1", + "minecraft:gust_2", + "minecraft:gust_3", + "minecraft:gust_4", + "minecraft:gust_5", + "minecraft:gust_6", + "minecraft:gust_7", + "minecraft:gust_8", + "minecraft:gust_9", + "minecraft:gust_10", + "minecraft:gust_11" + ] +} diff --git a/assets/minecraft/particles/happy_villager.json b/assets/minecraft/particles/happy_villager.json new file mode 100644 index 00000000..f9f9746a --- /dev/null +++ b/assets/minecraft/particles/happy_villager.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glint" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/heart.json b/assets/minecraft/particles/heart.json new file mode 100644 index 00000000..686a2dcf --- /dev/null +++ b/assets/minecraft/particles/heart.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:heart" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/infested.json b/assets/minecraft/particles/infested.json new file mode 100644 index 00000000..5910ce70 --- /dev/null +++ b/assets/minecraft/particles/infested.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:infested" + ] +} diff --git a/assets/minecraft/particles/instant_effect.json b/assets/minecraft/particles/instant_effect.json new file mode 100644 index 00000000..7ec70d32 --- /dev/null +++ b/assets/minecraft/particles/instant_effect.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:spell_7", + "minecraft:spell_6", + "minecraft:spell_5", + "minecraft:spell_4", + "minecraft:spell_3", + "minecraft:spell_2", + "minecraft:spell_1", + "minecraft:spell_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/landing_honey.json b/assets/minecraft/particles/landing_honey.json new file mode 100644 index 00000000..3af906fe --- /dev/null +++ b/assets/minecraft/particles/landing_honey.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_land" + ] +} diff --git a/assets/minecraft/particles/landing_lava.json b/assets/minecraft/particles/landing_lava.json new file mode 100644 index 00000000..89230de9 --- /dev/null +++ b/assets/minecraft/particles/landing_lava.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_land" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/landing_obsidian_tear.json b/assets/minecraft/particles/landing_obsidian_tear.json new file mode 100644 index 00000000..3af906fe --- /dev/null +++ b/assets/minecraft/particles/landing_obsidian_tear.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_land" + ] +} diff --git a/assets/minecraft/particles/large_smoke.json b/assets/minecraft/particles/large_smoke.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/large_smoke.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/lava.json b/assets/minecraft/particles/lava.json new file mode 100644 index 00000000..da6979fe --- /dev/null +++ b/assets/minecraft/particles/lava.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:lava" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/mycelium.json b/assets/minecraft/particles/mycelium.json new file mode 100644 index 00000000..ca698ca4 --- /dev/null +++ b/assets/minecraft/particles/mycelium.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/nautilus.json b/assets/minecraft/particles/nautilus.json new file mode 100644 index 00000000..6b9eafdf --- /dev/null +++ b/assets/minecraft/particles/nautilus.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:nautilus" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/note.json b/assets/minecraft/particles/note.json new file mode 100644 index 00000000..8097a3d7 --- /dev/null +++ b/assets/minecraft/particles/note.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:note" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/ominous_spawning.json b/assets/minecraft/particles/ominous_spawning.json new file mode 100644 index 00000000..6508b58d --- /dev/null +++ b/assets/minecraft/particles/ominous_spawning.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:ominous_spawning" + ] +} diff --git a/assets/minecraft/particles/poof.json b/assets/minecraft/particles/poof.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/poof.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/portal.json b/assets/minecraft/particles/portal.json new file mode 100644 index 00000000..f970e447 --- /dev/null +++ b/assets/minecraft/particles/portal.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_0", + "minecraft:generic_1", + "minecraft:generic_2", + "minecraft:generic_3", + "minecraft:generic_4", + "minecraft:generic_5", + "minecraft:generic_6", + "minecraft:generic_7" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/raid_omen.json b/assets/minecraft/particles/raid_omen.json new file mode 100644 index 00000000..37c611ef --- /dev/null +++ b/assets/minecraft/particles/raid_omen.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:raid_omen" + ] +} diff --git a/assets/minecraft/particles/rain.json b/assets/minecraft/particles/rain.json new file mode 100644 index 00000000..49f427bc --- /dev/null +++ b/assets/minecraft/particles/rain.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "minecraft:splash_0", + "minecraft:splash_1", + "minecraft:splash_2", + "minecraft:splash_3" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/reverse_portal.json b/assets/minecraft/particles/reverse_portal.json new file mode 100644 index 00000000..f970e447 --- /dev/null +++ b/assets/minecraft/particles/reverse_portal.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_0", + "minecraft:generic_1", + "minecraft:generic_2", + "minecraft:generic_3", + "minecraft:generic_4", + "minecraft:generic_5", + "minecraft:generic_6", + "minecraft:generic_7" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/scrape.json b/assets/minecraft/particles/scrape.json new file mode 100644 index 00000000..aa3870da --- /dev/null +++ b/assets/minecraft/particles/scrape.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glow" + ] +} diff --git a/assets/minecraft/particles/sculk_charge.json b/assets/minecraft/particles/sculk_charge.json new file mode 100644 index 00000000..0e825f11 --- /dev/null +++ b/assets/minecraft/particles/sculk_charge.json @@ -0,0 +1,11 @@ +{ + "textures": [ + "minecraft:sculk_charge_0", + "minecraft:sculk_charge_1", + "minecraft:sculk_charge_2", + "minecraft:sculk_charge_3", + "minecraft:sculk_charge_4", + "minecraft:sculk_charge_5", + "minecraft:sculk_charge_6" + ] +} diff --git a/assets/minecraft/particles/sculk_charge_pop.json b/assets/minecraft/particles/sculk_charge_pop.json new file mode 100644 index 00000000..45d6bcc4 --- /dev/null +++ b/assets/minecraft/particles/sculk_charge_pop.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "minecraft:sculk_charge_pop_0", + "minecraft:sculk_charge_pop_1", + "minecraft:sculk_charge_pop_2", + "minecraft:sculk_charge_pop_3" + ] +} diff --git a/assets/minecraft/particles/sculk_soul.json b/assets/minecraft/particles/sculk_soul.json new file mode 100644 index 00000000..642ff282 --- /dev/null +++ b/assets/minecraft/particles/sculk_soul.json @@ -0,0 +1,15 @@ +{ + "textures": [ + "minecraft:sculk_soul_0", + "minecraft:sculk_soul_1", + "minecraft:sculk_soul_2", + "minecraft:sculk_soul_3", + "minecraft:sculk_soul_4", + "minecraft:sculk_soul_5", + "minecraft:sculk_soul_6", + "minecraft:sculk_soul_7", + "minecraft:sculk_soul_8", + "minecraft:sculk_soul_9", + "minecraft:sculk_soul_10" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/shriek.json b/assets/minecraft/particles/shriek.json new file mode 100644 index 00000000..ad08a598 --- /dev/null +++ b/assets/minecraft/particles/shriek.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:shriek" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/small_flame.json b/assets/minecraft/particles/small_flame.json new file mode 100644 index 00000000..ef790a1f --- /dev/null +++ b/assets/minecraft/particles/small_flame.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:flame" + ] +} diff --git a/assets/minecraft/particles/small_gust.json b/assets/minecraft/particles/small_gust.json new file mode 100644 index 00000000..376dff66 --- /dev/null +++ b/assets/minecraft/particles/small_gust.json @@ -0,0 +1,11 @@ +{ + "textures": [ + "minecraft:small_gust_0", + "minecraft:small_gust_1", + "minecraft:small_gust_2", + "minecraft:small_gust_3", + "minecraft:small_gust_4", + "minecraft:small_gust_5", + "minecraft:small_gust_6" + ] +} diff --git a/assets/minecraft/particles/smoke.json b/assets/minecraft/particles/smoke.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/smoke.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/sneeze.json b/assets/minecraft/particles/sneeze.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/sneeze.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/snowflake.json b/assets/minecraft/particles/snowflake.json new file mode 100644 index 00000000..e0996e04 --- /dev/null +++ b/assets/minecraft/particles/snowflake.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} diff --git a/assets/minecraft/particles/sonic_boom.json b/assets/minecraft/particles/sonic_boom.json new file mode 100644 index 00000000..f08e512b --- /dev/null +++ b/assets/minecraft/particles/sonic_boom.json @@ -0,0 +1,20 @@ +{ + "textures": [ + "minecraft:sonic_boom_0", + "minecraft:sonic_boom_1", + "minecraft:sonic_boom_2", + "minecraft:sonic_boom_3", + "minecraft:sonic_boom_4", + "minecraft:sonic_boom_5", + "minecraft:sonic_boom_6", + "minecraft:sonic_boom_7", + "minecraft:sonic_boom_8", + "minecraft:sonic_boom_9", + "minecraft:sonic_boom_10", + "minecraft:sonic_boom_11", + "minecraft:sonic_boom_12", + "minecraft:sonic_boom_13", + "minecraft:sonic_boom_14", + "minecraft:sonic_boom_15" + ] +} diff --git a/assets/minecraft/particles/soul.json b/assets/minecraft/particles/soul.json new file mode 100644 index 00000000..08defaea --- /dev/null +++ b/assets/minecraft/particles/soul.json @@ -0,0 +1,15 @@ +{ + "textures": [ + "minecraft:soul_0", + "minecraft:soul_1", + "minecraft:soul_2", + "minecraft:soul_3", + "minecraft:soul_4", + "minecraft:soul_5", + "minecraft:soul_6", + "minecraft:soul_7", + "minecraft:soul_8", + "minecraft:soul_9", + "minecraft:soul_10" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/soul_fire_flame.json b/assets/minecraft/particles/soul_fire_flame.json new file mode 100644 index 00000000..6064eacb --- /dev/null +++ b/assets/minecraft/particles/soul_fire_flame.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:soul_fire_flame" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/spit.json b/assets/minecraft/particles/spit.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/spit.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/splash.json b/assets/minecraft/particles/splash.json new file mode 100644 index 00000000..49f427bc --- /dev/null +++ b/assets/minecraft/particles/splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "minecraft:splash_0", + "minecraft:splash_1", + "minecraft:splash_2", + "minecraft:splash_3" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/spore_blossom_air.json b/assets/minecraft/particles/spore_blossom_air.json new file mode 100644 index 00000000..520ad48b --- /dev/null +++ b/assets/minecraft/particles/spore_blossom_air.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/squid_ink.json b/assets/minecraft/particles/squid_ink.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/squid_ink.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/sweep_attack.json b/assets/minecraft/particles/sweep_attack.json new file mode 100644 index 00000000..3b9fe789 --- /dev/null +++ b/assets/minecraft/particles/sweep_attack.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:sweep_0", + "minecraft:sweep_1", + "minecraft:sweep_2", + "minecraft:sweep_3", + "minecraft:sweep_4", + "minecraft:sweep_5", + "minecraft:sweep_6", + "minecraft:sweep_7" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/totem_of_undying.json b/assets/minecraft/particles/totem_of_undying.json new file mode 100644 index 00000000..4fdc55ff --- /dev/null +++ b/assets/minecraft/particles/totem_of_undying.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:glitter_7", + "minecraft:glitter_6", + "minecraft:glitter_5", + "minecraft:glitter_4", + "minecraft:glitter_3", + "minecraft:glitter_2", + "minecraft:glitter_1", + "minecraft:glitter_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/trial_omen.json b/assets/minecraft/particles/trial_omen.json new file mode 100644 index 00000000..1e0bd583 --- /dev/null +++ b/assets/minecraft/particles/trial_omen.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:trial_omen" + ] +} diff --git a/assets/minecraft/particles/trial_spawner_detection.json b/assets/minecraft/particles/trial_spawner_detection.json new file mode 100644 index 00000000..c3937548 --- /dev/null +++ b/assets/minecraft/particles/trial_spawner_detection.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "minecraft:trial_spawner_detection_0", + "minecraft:trial_spawner_detection_1", + "minecraft:trial_spawner_detection_2", + "minecraft:trial_spawner_detection_3", + "minecraft:trial_spawner_detection_4" + ] +} diff --git a/assets/minecraft/particles/trial_spawner_detection_ominous.json b/assets/minecraft/particles/trial_spawner_detection_ominous.json new file mode 100644 index 00000000..062b339f --- /dev/null +++ b/assets/minecraft/particles/trial_spawner_detection_ominous.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "minecraft:trial_spawner_detection_ominous_0", + "minecraft:trial_spawner_detection_ominous_1", + "minecraft:trial_spawner_detection_ominous_2", + "minecraft:trial_spawner_detection_ominous_3", + "minecraft:trial_spawner_detection_ominous_4" + ] +} diff --git a/assets/minecraft/particles/underwater.json b/assets/minecraft/particles/underwater.json new file mode 100644 index 00000000..ca698ca4 --- /dev/null +++ b/assets/minecraft/particles/underwater.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/vault_connection.json b/assets/minecraft/particles/vault_connection.json new file mode 100644 index 00000000..184afd46 --- /dev/null +++ b/assets/minecraft/particles/vault_connection.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:vault_connection" + ] +} diff --git a/assets/minecraft/particles/vibration.json b/assets/minecraft/particles/vibration.json new file mode 100644 index 00000000..c2cf0ff5 --- /dev/null +++ b/assets/minecraft/particles/vibration.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:vibration" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/warped_spore.json b/assets/minecraft/particles/warped_spore.json new file mode 100644 index 00000000..ca698ca4 --- /dev/null +++ b/assets/minecraft/particles/warped_spore.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/wax_off.json b/assets/minecraft/particles/wax_off.json new file mode 100644 index 00000000..aa3870da --- /dev/null +++ b/assets/minecraft/particles/wax_off.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glow" + ] +} diff --git a/assets/minecraft/particles/wax_on.json b/assets/minecraft/particles/wax_on.json new file mode 100644 index 00000000..aa3870da --- /dev/null +++ b/assets/minecraft/particles/wax_on.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:glow" + ] +} diff --git a/assets/minecraft/particles/white_ash.json b/assets/minecraft/particles/white_ash.json new file mode 100644 index 00000000..5590ac4d --- /dev/null +++ b/assets/minecraft/particles/white_ash.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:generic_0" + ] +} diff --git a/assets/minecraft/particles/white_smoke.json b/assets/minecraft/particles/white_smoke.json new file mode 100644 index 00000000..27126109 --- /dev/null +++ b/assets/minecraft/particles/white_smoke.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:generic_7", + "minecraft:generic_6", + "minecraft:generic_5", + "minecraft:generic_4", + "minecraft:generic_3", + "minecraft:generic_2", + "minecraft:generic_1", + "minecraft:generic_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/particles/witch.json b/assets/minecraft/particles/witch.json new file mode 100644 index 00000000..7ec70d32 --- /dev/null +++ b/assets/minecraft/particles/witch.json @@ -0,0 +1,12 @@ +{ + "textures": [ + "minecraft:spell_7", + "minecraft:spell_6", + "minecraft:spell_5", + "minecraft:spell_4", + "minecraft:spell_3", + "minecraft:spell_2", + "minecraft:spell_1", + "minecraft:spell_0" + ] +} \ No newline at end of file diff --git a/assets/minecraft/regional_compliancies.json b/assets/minecraft/regional_compliancies.json new file mode 100644 index 00000000..db5736b9 --- /dev/null +++ b/assets/minecraft/regional_compliancies.json @@ -0,0 +1,15 @@ +{ + "KOR" : [ + { + "delay": 1440, + "period": 60, + "title": "compliance.playtime.greaterThan24Hours", + "message": "compliance.playtime.message" + }, + { + "period": 60, + "title": "compliance.playtime.hours", + "message": "compliance.playtime.message" + } + ] +} diff --git a/assets/minecraft/shaders/core/blit_screen.fsh b/assets/minecraft/shaders/core/blit_screen.fsh new file mode 100644 index 00000000..b750ae82 --- /dev/null +++ b/assets/minecraft/shaders/core/blit_screen.fsh @@ -0,0 +1,11 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +in vec2 texCoord; + +out vec4 fragColor; + +void main() { + fragColor = texture(DiffuseSampler, texCoord); +} diff --git a/assets/minecraft/shaders/core/blit_screen.json b/assets/minecraft/shaders/core/blit_screen.json new file mode 100644 index 00000000..72894ff6 --- /dev/null +++ b/assets/minecraft/shaders/core/blit_screen.json @@ -0,0 +1,9 @@ +{ + "vertex": "blit_screen", + "fragment": "blit_screen", + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + ] +} diff --git a/assets/minecraft/shaders/core/blit_screen.vsh b/assets/minecraft/shaders/core/blit_screen.vsh new file mode 100644 index 00000000..405da001 --- /dev/null +++ b/assets/minecraft/shaders/core/blit_screen.vsh @@ -0,0 +1,11 @@ +#version 150 + +in vec3 Position; + +out vec2 texCoord; + +void main() { + vec2 screenPos = Position.xy * 2.0 - 1.0; + gl_Position = vec4(screenPos.x, screenPos.y, 1.0, 1.0); + texCoord = Position.xy; +} diff --git a/assets/minecraft/shaders/core/particle.fsh b/assets/minecraft/shaders/core/particle.fsh new file mode 100644 index 00000000..58f81d29 --- /dev/null +++ b/assets/minecraft/shaders/core/particle.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec2 texCoord0; +in vec4 vertexColor; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/particle.json b/assets/minecraft/shaders/core/particle.json new file mode 100644 index 00000000..a3d33094 --- /dev/null +++ b/assets/minecraft/shaders/core/particle.json @@ -0,0 +1,17 @@ +{ + "vertex": "particle", + "fragment": "particle", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/particle.vsh b/assets/minecraft/shaders/core/particle.vsh new file mode 100644 index 00000000..a2ae56b7 --- /dev/null +++ b/assets/minecraft/shaders/core/particle.vsh @@ -0,0 +1,26 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec2 UV0; +in vec4 Color; +in ivec2 UV2; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec2 texCoord0; +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + texCoord0 = UV0; + vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); +} diff --git a/assets/minecraft/shaders/core/position.fsh b/assets/minecraft/shaders/core/position.fsh new file mode 100644 index 00000000..83ce3b1d --- /dev/null +++ b/assets/minecraft/shaders/core/position.fsh @@ -0,0 +1,16 @@ +#version 150 + +#moj_import + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; + +out vec4 fragColor; + +void main() { + fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/position.json b/assets/minecraft/shaders/core/position.json new file mode 100644 index 00000000..78516f65 --- /dev/null +++ b/assets/minecraft/shaders/core/position.json @@ -0,0 +1,15 @@ +{ + "vertex": "position", + "fragment": "position", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/position.vsh b/assets/minecraft/shaders/core/position.vsh new file mode 100644 index 00000000..6ff178e2 --- /dev/null +++ b/assets/minecraft/shaders/core/position.vsh @@ -0,0 +1,17 @@ +#version 150 + +#moj_import + +in vec3 Position; + +uniform mat4 ProjMat; +uniform mat4 ModelViewMat; +uniform int FogShape; + +out float vertexDistance; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); +} diff --git a/assets/minecraft/shaders/core/position_color.fsh b/assets/minecraft/shaders/core/position_color.fsh new file mode 100644 index 00000000..d7da70e8 --- /dev/null +++ b/assets/minecraft/shaders/core/position_color.fsh @@ -0,0 +1,15 @@ +#version 150 + +in vec4 vertexColor; + +uniform vec4 ColorModulator; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor; + if (color.a == 0.0) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/position_color.json b/assets/minecraft/shaders/core/position_color.json new file mode 100644 index 00000000..827d9af4 --- /dev/null +++ b/assets/minecraft/shaders/core/position_color.json @@ -0,0 +1,11 @@ +{ + "vertex": "position_color", + "fragment": "position_color", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/position_color.vsh b/assets/minecraft/shaders/core/position_color.vsh new file mode 100644 index 00000000..19d3fdba --- /dev/null +++ b/assets/minecraft/shaders/core/position_color.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec3 Position; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/position_color_lightmap.fsh b/assets/minecraft/shaders/core/position_color_lightmap.fsh new file mode 100644 index 00000000..49a182cb --- /dev/null +++ b/assets/minecraft/shaders/core/position_color_lightmap.fsh @@ -0,0 +1,15 @@ +#version 150 + +uniform sampler2D Sampler2; + +uniform vec4 ColorModulator; + +in vec4 vertexColor; +in vec2 texCoord2; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler2, texCoord2) * vertexColor; + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/position_color_lightmap.json b/assets/minecraft/shaders/core/position_color_lightmap.json new file mode 100644 index 00000000..ed33a8b0 --- /dev/null +++ b/assets/minecraft/shaders/core/position_color_lightmap.json @@ -0,0 +1,12 @@ +{ + "vertex": "position_color_lightmap", + "fragment": "position_color_lightmap", + "samplers": [ + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/position_color_lightmap.vsh b/assets/minecraft/shaders/core/position_color_lightmap.vsh new file mode 100644 index 00000000..8a08d3c7 --- /dev/null +++ b/assets/minecraft/shaders/core/position_color_lightmap.vsh @@ -0,0 +1,18 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord2 = UV2; +} diff --git a/assets/minecraft/shaders/core/position_color_tex_lightmap.fsh b/assets/minecraft/shaders/core/position_color_tex_lightmap.fsh new file mode 100644 index 00000000..d04bdec4 --- /dev/null +++ b/assets/minecraft/shaders/core/position_color_tex_lightmap.fsh @@ -0,0 +1,19 @@ +#version 150 + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; + +in vec4 vertexColor; +in vec2 texCoord0; +in vec2 texCoord2; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor; + if (color.a < 0.1) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/position_color_tex_lightmap.json b/assets/minecraft/shaders/core/position_color_tex_lightmap.json new file mode 100644 index 00000000..1f1dbd53 --- /dev/null +++ b/assets/minecraft/shaders/core/position_color_tex_lightmap.json @@ -0,0 +1,12 @@ +{ + "vertex": "position_color_tex_lightmap", + "fragment": "position_color_tex_lightmap", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/position_color_tex_lightmap.vsh b/assets/minecraft/shaders/core/position_color_tex_lightmap.vsh new file mode 100644 index 00000000..75bbab4f --- /dev/null +++ b/assets/minecraft/shaders/core/position_color_tex_lightmap.vsh @@ -0,0 +1,21 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord0 = UV0; + texCoord2 = UV2; +} diff --git a/assets/minecraft/shaders/core/position_tex.fsh b/assets/minecraft/shaders/core/position_tex.fsh new file mode 100644 index 00000000..ded49d39 --- /dev/null +++ b/assets/minecraft/shaders/core/position_tex.fsh @@ -0,0 +1,17 @@ +#version 150 + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; + +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a == 0.0) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/position_tex.json b/assets/minecraft/shaders/core/position_tex.json new file mode 100644 index 00000000..7ba6e132 --- /dev/null +++ b/assets/minecraft/shaders/core/position_tex.json @@ -0,0 +1,12 @@ +{ + "vertex": "position_tex", + "fragment": "position_tex", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/position_tex.vsh b/assets/minecraft/shaders/core/position_tex.vsh new file mode 100644 index 00000000..15336e2e --- /dev/null +++ b/assets/minecraft/shaders/core/position_tex.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec3 Position; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/position_tex_color.fsh b/assets/minecraft/shaders/core/position_tex_color.fsh new file mode 100644 index 00000000..f64629e9 --- /dev/null +++ b/assets/minecraft/shaders/core/position_tex_color.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; + +in vec2 texCoord0; +in vec4 vertexColor; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor; + if (color.a < 0.1) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/position_tex_color.json b/assets/minecraft/shaders/core/position_tex_color.json new file mode 100644 index 00000000..367ef5e9 --- /dev/null +++ b/assets/minecraft/shaders/core/position_tex_color.json @@ -0,0 +1,12 @@ +{ + "vertex": "position_tex_color", + "fragment": "position_tex_color", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/position_tex_color.vsh b/assets/minecraft/shaders/core/position_tex_color.vsh new file mode 100644 index 00000000..1ed8e406 --- /dev/null +++ b/assets/minecraft/shaders/core/position_tex_color.vsh @@ -0,0 +1,18 @@ +#version 150 + +in vec3 Position; +in vec2 UV0; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec2 texCoord0; +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + texCoord0 = UV0; + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.fsh b/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.fsh new file mode 100644 index 00000000..232a61df --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.fsh @@ -0,0 +1,25 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; +in vec2 texCoord1; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.json b/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.json new file mode 100644 index 00000000..7f15d3bf --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.json @@ -0,0 +1,19 @@ +{ + "vertex": "rendertype_armor_cutout_no_cull", + "fragment": "rendertype_armor_cutout_no_cull", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.vsh b/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.vsh new file mode 100644 index 00000000..6366633b --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_armor_cutout_no_cull.vsh @@ -0,0 +1,34 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; +out vec2 texCoord1; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; + texCoord1 = UV1; +} diff --git a/assets/minecraft/shaders/core/rendertype_armor_entity_glint.fsh b/assets/minecraft/shaders/core/rendertype_armor_entity_glint.fsh new file mode 100644 index 00000000..9bcfd7db --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_armor_entity_glint.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform float GlintAlpha; + +in float vertexDistance; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * ColorModulator; + if (color.a < 0.1) { + discard; + } + float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; + fragColor = vec4(color.rgb * fade, color.a); +} diff --git a/assets/minecraft/shaders/core/rendertype_armor_entity_glint.json b/assets/minecraft/shaders/core/rendertype_armor_entity_glint.json new file mode 100644 index 00000000..982489f6 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_armor_entity_glint.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_armor_entity_glint", + "fragment": "rendertype_armor_entity_glint", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "GlintAlpha", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] }, + { "name": "TextureMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_armor_entity_glint.vsh b/assets/minecraft/shaders/core/rendertype_armor_entity_glint.vsh new file mode 100644 index 00000000..f123a0e1 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_armor_entity_glint.vsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat4 TextureMat; +uniform int FogShape; + +out float vertexDistance; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; +} diff --git a/assets/minecraft/shaders/core/rendertype_beacon_beam.fsh b/assets/minecraft/shaders/core/rendertype_beacon_beam.fsh new file mode 100644 index 00000000..88ce640a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_beacon_beam.fsh @@ -0,0 +1,23 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform mat4 ProjMat; +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + color *= vertexColor * ColorModulator; + float fragmentDistance = -ProjMat[3].z / ((gl_FragCoord.z) * -2.0 + 1.0 - ProjMat[2].z); + fragColor = linear_fog(color, fragmentDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_beacon_beam.json b/assets/minecraft/shaders/core/rendertype_beacon_beam.json new file mode 100644 index 00000000..145874ff --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_beacon_beam.json @@ -0,0 +1,15 @@ +{ + "vertex": "rendertype_beacon_beam", + "fragment": "rendertype_beacon_beam", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_beacon_beam.vsh b/assets/minecraft/shaders/core/rendertype_beacon_beam.vsh new file mode 100644 index 00000000..44e105d4 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_beacon_beam.vsh @@ -0,0 +1,18 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_breeze_wind.fsh b/assets/minecraft/shaders/core/rendertype_breeze_wind.fsh new file mode 100644 index 00000000..89514fba --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_breeze_wind.fsh @@ -0,0 +1,23 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); +} diff --git a/assets/minecraft/shaders/core/rendertype_breeze_wind.json b/assets/minecraft/shaders/core/rendertype_breeze_wind.json new file mode 100644 index 00000000..17da015f --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_breeze_wind.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_breeze_wind", + "fragment": "rendertype_breeze_wind", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "TextureMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_breeze_wind.vsh b/assets/minecraft/shaders/core/rendertype_breeze_wind.vsh new file mode 100644 index 00000000..583325b9 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_breeze_wind.vsh @@ -0,0 +1,32 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; + +uniform sampler2D Sampler0; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat4 TextureMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + vertexColor = Color * lightMapColor; + + texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; +} diff --git a/assets/minecraft/shaders/core/rendertype_clouds.fsh b/assets/minecraft/shaders/core/rendertype_clouds.fsh new file mode 100644 index 00000000..941d07fd --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_clouds.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in vec2 texCoord0; +in float vertexDistance; +in vec4 vertexColor; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_clouds.json b/assets/minecraft/shaders/core/rendertype_clouds.json new file mode 100644 index 00000000..583a72bd --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_clouds.json @@ -0,0 +1,16 @@ +{ + "vertex": "rendertype_clouds", + "fragment": "rendertype_clouds", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_clouds.vsh b/assets/minecraft/shaders/core/rendertype_clouds.vsh new file mode 100644 index 00000000..cab15097 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_clouds.vsh @@ -0,0 +1,25 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec2 UV0; +in vec4 Color; +in vec3 Normal; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out vec2 texCoord0; +out float vertexDistance; +out vec4 vertexColor; + +void main() { + vec4 pos = ModelViewMat * vec4(Position, 1.0); + gl_Position = ProjMat * pos; + + texCoord0 = UV0; + vertexDistance = fog_distance(pos.xyz, FogShape); + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_crumbling.fsh b/assets/minecraft/shaders/core/rendertype_crumbling.fsh new file mode 100644 index 00000000..d04bdec4 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_crumbling.fsh @@ -0,0 +1,19 @@ +#version 150 + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; + +in vec4 vertexColor; +in vec2 texCoord0; +in vec2 texCoord2; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor; + if (color.a < 0.1) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_crumbling.json b/assets/minecraft/shaders/core/rendertype_crumbling.json new file mode 100644 index 00000000..01cd4bb2 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_crumbling.json @@ -0,0 +1,12 @@ +{ + "vertex": "rendertype_crumbling", + "fragment": "rendertype_crumbling", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_crumbling.vsh b/assets/minecraft/shaders/core/rendertype_crumbling.vsh new file mode 100644 index 00000000..06341163 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_crumbling.vsh @@ -0,0 +1,22 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV2; +in vec3 Normal; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord0 = UV0; + texCoord2 = UV2; +} diff --git a/assets/minecraft/shaders/core/rendertype_cutout.fsh b/assets/minecraft/shaders/core/rendertype_cutout.fsh new file mode 100644 index 00000000..3fe46019 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_cutout.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_cutout.json b/assets/minecraft/shaders/core/rendertype_cutout.json new file mode 100644 index 00000000..a9460d25 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_cutout.json @@ -0,0 +1,18 @@ +{ + "vertex": "rendertype_cutout", + "fragment": "rendertype_cutout", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ChunkOffset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_cutout.vsh b/assets/minecraft/shaders/core/rendertype_cutout.vsh new file mode 100644 index 00000000..02f3d117 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_cutout.vsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform vec3 ChunkOffset; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + vec3 pos = Position + ChunkOffset; + gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0); + + vertexDistance = fog_distance(pos, FogShape); + vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_cutout_mipped.fsh b/assets/minecraft/shaders/core/rendertype_cutout_mipped.fsh new file mode 100644 index 00000000..cb63a69a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_cutout_mipped.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.5) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_cutout_mipped.json b/assets/minecraft/shaders/core/rendertype_cutout_mipped.json new file mode 100644 index 00000000..7698959a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_cutout_mipped.json @@ -0,0 +1,18 @@ +{ + "vertex": "rendertype_cutout_mipped", + "fragment": "rendertype_cutout_mipped", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ChunkOffset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_cutout_mipped.vsh b/assets/minecraft/shaders/core/rendertype_cutout_mipped.vsh new file mode 100644 index 00000000..02f3d117 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_cutout_mipped.vsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform vec3 ChunkOffset; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + vec3 pos = Position + ChunkOffset; + gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0); + + vertexDistance = fog_distance(pos, FogShape); + vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_end_gateway.json b/assets/minecraft/shaders/core/rendertype_end_gateway.json new file mode 100644 index 00000000..dd4095d2 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_end_gateway.json @@ -0,0 +1,14 @@ +{ + "vertex": "rendertype_end_portal", + "fragment": "rendertype_end_portal", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "GameTime", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "EndPortalLayers", "type": "int", "count": 1, "values": [ 16 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_end_portal.fsh b/assets/minecraft/shaders/core/rendertype_end_portal.fsh new file mode 100644 index 00000000..b6a400cd --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_end_portal.fsh @@ -0,0 +1,62 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; +uniform sampler2D Sampler1; + +uniform float GameTime; +uniform int EndPortalLayers; + +in vec4 texProj0; + +const vec3[] COLORS = vec3[]( + vec3(0.022087, 0.098399, 0.110818), + vec3(0.011892, 0.095924, 0.089485), + vec3(0.027636, 0.101689, 0.100326), + vec3(0.046564, 0.109883, 0.114838), + vec3(0.064901, 0.117696, 0.097189), + vec3(0.063761, 0.086895, 0.123646), + vec3(0.084817, 0.111994, 0.166380), + vec3(0.097489, 0.154120, 0.091064), + vec3(0.106152, 0.131144, 0.195191), + vec3(0.097721, 0.110188, 0.187229), + vec3(0.133516, 0.138278, 0.148582), + vec3(0.070006, 0.243332, 0.235792), + vec3(0.196766, 0.142899, 0.214696), + vec3(0.047281, 0.315338, 0.321970), + vec3(0.204675, 0.390010, 0.302066), + vec3(0.080955, 0.314821, 0.661491) +); + +const mat4 SCALE_TRANSLATE = mat4( + 0.5, 0.0, 0.0, 0.25, + 0.0, 0.5, 0.0, 0.25, + 0.0, 0.0, 1.0, 0.0, + 0.0, 0.0, 0.0, 1.0 +); + +mat4 end_portal_layer(float layer) { + mat4 translate = mat4( + 1.0, 0.0, 0.0, 17.0 / layer, + 0.0, 1.0, 0.0, (2.0 + layer / 1.5) * (GameTime * 1.5), + 0.0, 0.0, 1.0, 0.0, + 0.0, 0.0, 0.0, 1.0 + ); + + mat2 rotate = mat2_rotate_z(radians((layer * layer * 4321.0 + layer * 9.0) * 2.0)); + + mat2 scale = mat2((4.5 - layer / 4.0) * 2.0); + + return mat4(scale * rotate) * translate * SCALE_TRANSLATE; +} + +out vec4 fragColor; + +void main() { + vec3 color = textureProj(Sampler0, texProj0).rgb * COLORS[0]; + for (int i = 0; i < EndPortalLayers; i++) { + color += textureProj(Sampler1, texProj0 * end_portal_layer(float(i + 1))).rgb * COLORS[i]; + } + fragColor = vec4(color, 1.0); +} diff --git a/assets/minecraft/shaders/core/rendertype_end_portal.json b/assets/minecraft/shaders/core/rendertype_end_portal.json new file mode 100644 index 00000000..c6687648 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_end_portal.json @@ -0,0 +1,14 @@ +{ + "vertex": "rendertype_end_portal", + "fragment": "rendertype_end_portal", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "GameTime", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "EndPortalLayers", "type": "int", "count": 1, "values": [ 15 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_end_portal.vsh b/assets/minecraft/shaders/core/rendertype_end_portal.vsh new file mode 100644 index 00000000..1c094831 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_end_portal.vsh @@ -0,0 +1,16 @@ +#version 150 + +#moj_import + +in vec3 Position; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 texProj0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + texProj0 = projection_from_position(gl_Position); +} diff --git a/assets/minecraft/shaders/core/rendertype_energy_swirl.fsh b/assets/minecraft/shaders/core/rendertype_energy_swirl.fsh new file mode 100644 index 00000000..89514fba --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_energy_swirl.fsh @@ -0,0 +1,23 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); +} diff --git a/assets/minecraft/shaders/core/rendertype_energy_swirl.json b/assets/minecraft/shaders/core/rendertype_energy_swirl.json new file mode 100644 index 00000000..3696b6fe --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_energy_swirl.json @@ -0,0 +1,16 @@ +{ + "vertex": "rendertype_energy_swirl", + "fragment": "rendertype_energy_swirl", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "TextureMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_energy_swirl.vsh b/assets/minecraft/shaders/core/rendertype_energy_swirl.vsh new file mode 100644 index 00000000..23ddffdd --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_energy_swirl.vsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat4 TextureMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_alpha.fsh b/assets/minecraft/shaders/core/rendertype_entity_alpha.fsh new file mode 100644 index 00000000..7289c11e --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_alpha.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D Sampler0; + +in vec4 vertexColor; +in vec2 texCoord0; +in vec2 texCoord1; +in vec2 texCoord2; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < vertexColor.a) { + discard; + } + fragColor = color; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_alpha.json b/assets/minecraft/shaders/core/rendertype_entity_alpha.json new file mode 100644 index 00000000..3e312576 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_alpha.json @@ -0,0 +1,11 @@ +{ + "vertex": "rendertype_entity_alpha", + "fragment": "rendertype_entity_alpha", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_alpha.vsh b/assets/minecraft/shaders/core/rendertype_entity_alpha.vsh new file mode 100644 index 00000000..fd9dfbfc --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_alpha.vsh @@ -0,0 +1,25 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV1; +in vec2 UV2; +in vec3 Normal; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; +out vec2 texCoord1; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord0 = UV0; + texCoord1 = UV1; + texCoord2 = UV2; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout.fsh b/assets/minecraft/shaders/core/rendertype_entity_cutout.fsh new file mode 100644 index 00000000..82ee596b --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout.fsh @@ -0,0 +1,29 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightMapColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + color *= lightMapColor; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout.json b/assets/minecraft/shaders/core/rendertype_entity_cutout.json new file mode 100644 index 00000000..def64e8a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout.json @@ -0,0 +1,20 @@ +{ + "vertex": "rendertype_entity_cutout", + "fragment": "rendertype_entity_cutout", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout.vsh b/assets/minecraft/shaders/core/rendertype_entity_cutout.vsh new file mode 100644 index 00000000..de8af38a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout.vsh @@ -0,0 +1,37 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.fsh b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.fsh new file mode 100644 index 00000000..82ee596b --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.fsh @@ -0,0 +1,29 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightMapColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + color *= lightMapColor; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.json b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.json new file mode 100644 index 00000000..2c3ec23e --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.json @@ -0,0 +1,20 @@ +{ + "vertex": "rendertype_entity_cutout_no_cull", + "fragment": "rendertype_entity_cutout_no_cull", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.vsh b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.vsh new file mode 100644 index 00000000..de8af38a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.vsh @@ -0,0 +1,37 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.fsh b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.fsh new file mode 100644 index 00000000..82ee596b --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.fsh @@ -0,0 +1,29 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightMapColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + color *= lightMapColor; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.json b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.json new file mode 100644 index 00000000..a2129c2c --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.json @@ -0,0 +1,20 @@ +{ + "vertex": "rendertype_entity_cutout_no_cull_z_offset", + "fragment": "rendertype_entity_cutout_no_cull_z_offset", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.vsh b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.vsh new file mode 100644 index 00000000..de8af38a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.vsh @@ -0,0 +1,37 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_decal.fsh b/assets/minecraft/shaders/core/rendertype_entity_decal.fsh new file mode 100644 index 00000000..9b6022b9 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_decal.fsh @@ -0,0 +1,27 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + color *= vertexColor * ColorModulator; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_decal.json b/assets/minecraft/shaders/core/rendertype_entity_decal.json new file mode 100644 index 00000000..d3b01a99 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_decal.json @@ -0,0 +1,20 @@ +{ + "vertex": "rendertype_entity_decal", + "fragment": "rendertype_entity_decal", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_decal.vsh b/assets/minecraft/shaders/core/rendertype_entity_decal.vsh new file mode 100644 index 00000000..9c7e6e9d --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_decal.vsh @@ -0,0 +1,35 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_glint.fsh b/assets/minecraft/shaders/core/rendertype_entity_glint.fsh new file mode 100644 index 00000000..9bcfd7db --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_glint.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform float GlintAlpha; + +in float vertexDistance; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * ColorModulator; + if (color.a < 0.1) { + discard; + } + float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; + fragColor = vec4(color.rgb * fade, color.a); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_glint.json b/assets/minecraft/shaders/core/rendertype_entity_glint.json new file mode 100644 index 00000000..0e5ad710 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_glint.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_entity_glint", + "fragment": "rendertype_entity_glint", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "GlintAlpha", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] }, + { "name": "TextureMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_glint.vsh b/assets/minecraft/shaders/core/rendertype_entity_glint.vsh new file mode 100644 index 00000000..f123a0e1 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_glint.vsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat4 TextureMat; +uniform int FogShape; + +out float vertexDistance; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_glint_direct.fsh b/assets/minecraft/shaders/core/rendertype_entity_glint_direct.fsh new file mode 100644 index 00000000..9bcfd7db --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_glint_direct.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform float GlintAlpha; + +in float vertexDistance; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * ColorModulator; + if (color.a < 0.1) { + discard; + } + float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; + fragColor = vec4(color.rgb * fade, color.a); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_glint_direct.json b/assets/minecraft/shaders/core/rendertype_entity_glint_direct.json new file mode 100644 index 00000000..1f4d484a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_glint_direct.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_entity_glint_direct", + "fragment": "rendertype_entity_glint_direct", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "GlintAlpha", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] }, + { "name": "TextureMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_glint_direct.vsh b/assets/minecraft/shaders/core/rendertype_entity_glint_direct.vsh new file mode 100644 index 00000000..f123a0e1 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_glint_direct.vsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat4 TextureMat; +uniform int FogShape; + +out float vertexDistance; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_no_outline.fsh b/assets/minecraft/shaders/core/rendertype_entity_no_outline.fsh new file mode 100644 index 00000000..851068d0 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_no_outline.fsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_no_outline.json b/assets/minecraft/shaders/core/rendertype_entity_no_outline.json new file mode 100644 index 00000000..b9267dde --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_no_outline.json @@ -0,0 +1,19 @@ +{ + "vertex": "rendertype_entity_no_outline", + "fragment": "rendertype_entity_no_outline", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_no_outline.vsh b/assets/minecraft/shaders/core/rendertype_entity_no_outline.vsh new file mode 100644 index 00000000..c65e7764 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_no_outline.vsh @@ -0,0 +1,31 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_shadow.fsh b/assets/minecraft/shaders/core/rendertype_entity_shadow.fsh new file mode 100644 index 00000000..3d3dd998 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_shadow.fsh @@ -0,0 +1,22 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, clamp(texCoord0, 0.0, 1.0)); + color *= vertexColor * ColorModulator; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_shadow.json b/assets/minecraft/shaders/core/rendertype_entity_shadow.json new file mode 100644 index 00000000..49dd839d --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_shadow.json @@ -0,0 +1,16 @@ +{ + "vertex": "rendertype_entity_shadow", + "fragment": "rendertype_entity_shadow", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_shadow.vsh b/assets/minecraft/shaders/core/rendertype_entity_shadow.vsh new file mode 100644 index 00000000..f5103b4c --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_shadow.vsh @@ -0,0 +1,23 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.fsh b/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.fsh new file mode 100644 index 00000000..82ee596b --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.fsh @@ -0,0 +1,29 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightMapColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + color *= lightMapColor; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.json b/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.json new file mode 100644 index 00000000..016e8c14 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.json @@ -0,0 +1,20 @@ +{ + "vertex": "rendertype_entity_smooth_cutout", + "fragment": "rendertype_entity_smooth_cutout", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.vsh b/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.vsh new file mode 100644 index 00000000..de8af38a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_smooth_cutout.vsh @@ -0,0 +1,37 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_solid.fsh b/assets/minecraft/shaders/core/rendertype_entity_solid.fsh new file mode 100644 index 00000000..ff8974fc --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_solid.fsh @@ -0,0 +1,25 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightMapColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + color *= lightMapColor; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_solid.json b/assets/minecraft/shaders/core/rendertype_entity_solid.json new file mode 100644 index 00000000..244b7a04 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_solid.json @@ -0,0 +1,20 @@ +{ + "vertex": "rendertype_entity_solid", + "fragment": "rendertype_entity_solid", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_solid.vsh b/assets/minecraft/shaders/core/rendertype_entity_solid.vsh new file mode 100644 index 00000000..de8af38a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_solid.vsh @@ -0,0 +1,37 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent.fsh b/assets/minecraft/shaders/core/rendertype_entity_translucent.fsh new file mode 100644 index 00000000..82ee596b --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent.fsh @@ -0,0 +1,29 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightMapColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + color *= lightMapColor; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent.json b/assets/minecraft/shaders/core/rendertype_entity_translucent.json new file mode 100644 index 00000000..cf4ed96a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent.json @@ -0,0 +1,20 @@ +{ + "vertex": "rendertype_entity_translucent", + "fragment": "rendertype_entity_translucent", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent.vsh b/assets/minecraft/shaders/core/rendertype_entity_translucent.vsh new file mode 100644 index 00000000..de8af38a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent.vsh @@ -0,0 +1,37 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.fsh b/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.fsh new file mode 100644 index 00000000..232a61df --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.fsh @@ -0,0 +1,25 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; +in vec2 texCoord1; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.json b/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.json new file mode 100644 index 00000000..2db71dd7 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.json @@ -0,0 +1,19 @@ +{ + "vertex": "rendertype_entity_translucent_cull", + "fragment": "rendertype_entity_translucent_cull", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.vsh b/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.vsh new file mode 100644 index 00000000..a2c9595e --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.vsh @@ -0,0 +1,36 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; +out vec2 texCoord1; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; + texCoord1 = UV1; + texCoord2 = UV2; +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.fsh b/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.fsh new file mode 100644 index 00000000..b624e4bf --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.fsh @@ -0,0 +1,26 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.json b/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.json new file mode 100644 index 00000000..84e7f320 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.json @@ -0,0 +1,18 @@ +{ + "vertex": "rendertype_entity_translucent_emissive", + "fragment": "rendertype_entity_translucent_emissive", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.vsh b/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.vsh new file mode 100644 index 00000000..c1c4fb6a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_entity_translucent_emissive.vsh @@ -0,0 +1,33 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = length((ModelViewMat * vec4(Position, 1.0)).xyz); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_eyes.fsh b/assets/minecraft/shaders/core/rendertype_eyes.fsh new file mode 100644 index 00000000..cde91df5 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_eyes.fsh @@ -0,0 +1,20 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor; + fragColor = color * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); +} diff --git a/assets/minecraft/shaders/core/rendertype_eyes.json b/assets/minecraft/shaders/core/rendertype_eyes.json new file mode 100644 index 00000000..48dad45e --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_eyes.json @@ -0,0 +1,15 @@ +{ + "vertex": "rendertype_eyes", + "fragment": "rendertype_eyes", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_eyes.vsh b/assets/minecraft/shaders/core/rendertype_eyes.vsh new file mode 100644 index 00000000..f5103b4c --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_eyes.vsh @@ -0,0 +1,23 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_glint.fsh b/assets/minecraft/shaders/core/rendertype_glint.fsh new file mode 100644 index 00000000..9bcfd7db --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_glint.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform float GlintAlpha; + +in float vertexDistance; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * ColorModulator; + if (color.a < 0.1) { + discard; + } + float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; + fragColor = vec4(color.rgb * fade, color.a); +} diff --git a/assets/minecraft/shaders/core/rendertype_glint.json b/assets/minecraft/shaders/core/rendertype_glint.json new file mode 100644 index 00000000..8af35330 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_glint.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_glint", + "fragment": "rendertype_glint", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "GlintAlpha", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] }, + { "name": "TextureMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_glint.vsh b/assets/minecraft/shaders/core/rendertype_glint.vsh new file mode 100644 index 00000000..f123a0e1 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_glint.vsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat4 TextureMat; +uniform int FogShape; + +out float vertexDistance; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; +} diff --git a/assets/minecraft/shaders/core/rendertype_glint_translucent.fsh b/assets/minecraft/shaders/core/rendertype_glint_translucent.fsh new file mode 100644 index 00000000..9bcfd7db --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_glint_translucent.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform float GlintAlpha; + +in float vertexDistance; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * ColorModulator; + if (color.a < 0.1) { + discard; + } + float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; + fragColor = vec4(color.rgb * fade, color.a); +} diff --git a/assets/minecraft/shaders/core/rendertype_glint_translucent.json b/assets/minecraft/shaders/core/rendertype_glint_translucent.json new file mode 100644 index 00000000..d0a7147e --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_glint_translucent.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_glint_translucent", + "fragment": "rendertype_glint_translucent", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "GlintAlpha", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] }, + { "name": "TextureMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_glint_translucent.vsh b/assets/minecraft/shaders/core/rendertype_glint_translucent.vsh new file mode 100644 index 00000000..f123a0e1 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_glint_translucent.vsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat4 TextureMat; +uniform int FogShape; + +out float vertexDistance; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + texCoord0 = (TextureMat * vec4(UV0, 0.0, 1.0)).xy; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui.fsh b/assets/minecraft/shaders/core/rendertype_gui.fsh new file mode 100644 index 00000000..d7da70e8 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui.fsh @@ -0,0 +1,15 @@ +#version 150 + +in vec4 vertexColor; + +uniform vec4 ColorModulator; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor; + if (color.a == 0.0) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui.json b/assets/minecraft/shaders/core/rendertype_gui.json new file mode 100644 index 00000000..bc550e8f --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui.json @@ -0,0 +1,11 @@ +{ + "vertex": "rendertype_gui", + "fragment": "rendertype_gui", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_gui.vsh b/assets/minecraft/shaders/core/rendertype_gui.vsh new file mode 100644 index 00000000..19d3fdba --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec3 Position; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.fsh b/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.fsh new file mode 100644 index 00000000..d7da70e8 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.fsh @@ -0,0 +1,15 @@ +#version 150 + +in vec4 vertexColor; + +uniform vec4 ColorModulator; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor; + if (color.a == 0.0) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.json b/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.json new file mode 100644 index 00000000..9a1d76e5 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.json @@ -0,0 +1,11 @@ +{ + "vertex": "rendertype_gui_ghost_recipe_overlay", + "fragment": "rendertype_gui_ghost_recipe_overlay", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.vsh b/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.vsh new file mode 100644 index 00000000..19d3fdba --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_ghost_recipe_overlay.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec3 Position; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_overlay.fsh b/assets/minecraft/shaders/core/rendertype_gui_overlay.fsh new file mode 100644 index 00000000..d7da70e8 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_overlay.fsh @@ -0,0 +1,15 @@ +#version 150 + +in vec4 vertexColor; + +uniform vec4 ColorModulator; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor; + if (color.a == 0.0) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_overlay.json b/assets/minecraft/shaders/core/rendertype_gui_overlay.json new file mode 100644 index 00000000..625c2586 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_overlay.json @@ -0,0 +1,11 @@ +{ + "vertex": "rendertype_gui_overlay", + "fragment": "rendertype_gui_overlay", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_overlay.vsh b/assets/minecraft/shaders/core/rendertype_gui_overlay.vsh new file mode 100644 index 00000000..19d3fdba --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_overlay.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec3 Position; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_text_highlight.fsh b/assets/minecraft/shaders/core/rendertype_gui_text_highlight.fsh new file mode 100644 index 00000000..d7da70e8 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_text_highlight.fsh @@ -0,0 +1,15 @@ +#version 150 + +in vec4 vertexColor; + +uniform vec4 ColorModulator; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor; + if (color.a == 0.0) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_text_highlight.json b/assets/minecraft/shaders/core/rendertype_gui_text_highlight.json new file mode 100644 index 00000000..170e2cb4 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_text_highlight.json @@ -0,0 +1,11 @@ +{ + "vertex": "rendertype_gui_text_highlight", + "fragment": "rendertype_gui_text_highlight", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_gui_text_highlight.vsh b/assets/minecraft/shaders/core/rendertype_gui_text_highlight.vsh new file mode 100644 index 00000000..19d3fdba --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_gui_text_highlight.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec3 Position; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.fsh b/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.fsh new file mode 100644 index 00000000..232a61df --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.fsh @@ -0,0 +1,25 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; +in vec2 texCoord1; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.json b/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.json new file mode 100644 index 00000000..cb19baf2 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.json @@ -0,0 +1,19 @@ +{ + "vertex": "rendertype_item_entity_translucent_cull", + "fragment": "rendertype_item_entity_translucent_cull", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.vsh b/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.vsh new file mode 100644 index 00000000..a2c9595e --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.vsh @@ -0,0 +1,36 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; +out vec2 texCoord1; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; + texCoord1 = UV1; + texCoord2 = UV2; +} diff --git a/assets/minecraft/shaders/core/rendertype_leash.fsh b/assets/minecraft/shaders/core/rendertype_leash.fsh new file mode 100644 index 00000000..f6aabc62 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_leash.fsh @@ -0,0 +1,16 @@ +#version 150 + +#moj_import + +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +flat in vec4 vertexColor; + +out vec4 fragColor; + +void main() { + fragColor = linear_fog(vertexColor, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_leash.json b/assets/minecraft/shaders/core/rendertype_leash.json new file mode 100644 index 00000000..62701714 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_leash.json @@ -0,0 +1,16 @@ +{ + "vertex": "rendertype_leash", + "fragment": "rendertype_leash", + "samplers": [ + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_leash.vsh b/assets/minecraft/shaders/core/rendertype_leash.vsh new file mode 100644 index 00000000..be108e6d --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_leash.vsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in ivec2 UV2; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform vec4 ColorModulator; +uniform int FogShape; + +out float vertexDistance; +flat out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color * ColorModulator * texelFetch(Sampler2, UV2 / 16, 0); +} diff --git a/assets/minecraft/shaders/core/rendertype_lightning.fsh b/assets/minecraft/shaders/core/rendertype_lightning.fsh new file mode 100644 index 00000000..f555d413 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_lightning.fsh @@ -0,0 +1,16 @@ +#version 150 + +#moj_import + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; + +in float vertexDistance; +in vec4 vertexColor; + +out vec4 fragColor; + +void main() { + fragColor = vertexColor * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); +} diff --git a/assets/minecraft/shaders/core/rendertype_lightning.json b/assets/minecraft/shaders/core/rendertype_lightning.json new file mode 100644 index 00000000..9e7f3d36 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_lightning.json @@ -0,0 +1,14 @@ +{ + "vertex": "rendertype_lightning", + "fragment": "rendertype_lightning", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_lightning.vsh b/assets/minecraft/shaders/core/rendertype_lightning.vsh new file mode 100644 index 00000000..00d7de2f --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_lightning.vsh @@ -0,0 +1,20 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_lines.fsh b/assets/minecraft/shaders/core/rendertype_lines.fsh new file mode 100644 index 00000000..057f31fc --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_lines.fsh @@ -0,0 +1,18 @@ +#version 150 + +#moj_import + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor * ColorModulator; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_lines.json b/assets/minecraft/shaders/core/rendertype_lines.json new file mode 100644 index 00000000..670a8bd7 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_lines.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_lines", + "fragment": "rendertype_lines", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "LineWidth", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "ScreenSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_lines.vsh b/assets/minecraft/shaders/core/rendertype_lines.vsh new file mode 100644 index 00000000..82c69d17 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_lines.vsh @@ -0,0 +1,48 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec3 Normal; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform float LineWidth; +uniform vec2 ScreenSize; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; + +const float VIEW_SHRINK = 1.0 - (1.0 / 256.0); +const mat4 VIEW_SCALE = mat4( + VIEW_SHRINK, 0.0, 0.0, 0.0, + 0.0, VIEW_SHRINK, 0.0, 0.0, + 0.0, 0.0, VIEW_SHRINK, 0.0, + 0.0, 0.0, 0.0, 1.0 +); + +void main() { + vec4 linePosStart = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position, 1.0); + vec4 linePosEnd = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position + Normal, 1.0); + + vec3 ndc1 = linePosStart.xyz / linePosStart.w; + vec3 ndc2 = linePosEnd.xyz / linePosEnd.w; + + vec2 lineScreenDirection = normalize((ndc2.xy - ndc1.xy) * ScreenSize); + vec2 lineOffset = vec2(-lineScreenDirection.y, lineScreenDirection.x) * LineWidth / ScreenSize; + + if (lineOffset.x < 0.0) { + lineOffset *= -1.0; + } + + if (gl_VertexID % 2 == 0) { + gl_Position = vec4((ndc1 + vec3(lineOffset, 0.0)) * linePosStart.w, linePosStart.w); + } else { + gl_Position = vec4((ndc1 - vec3(lineOffset, 0.0)) * linePosStart.w, linePosStart.w); + } + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_outline.fsh b/assets/minecraft/shaders/core/rendertype_outline.fsh new file mode 100644 index 00000000..0155fe51 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_outline.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; + +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + if (color.a == 0.0) { + discard; + } + fragColor = vec4(ColorModulator.rgb * vertexColor.rgb, ColorModulator.a); +} diff --git a/assets/minecraft/shaders/core/rendertype_outline.json b/assets/minecraft/shaders/core/rendertype_outline.json new file mode 100644 index 00000000..ea6c72fe --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_outline.json @@ -0,0 +1,12 @@ +{ + "vertex": "rendertype_outline", + "fragment": "rendertype_outline", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_outline.vsh b/assets/minecraft/shaders/core/rendertype_outline.vsh new file mode 100644 index 00000000..44e105d4 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_outline.vsh @@ -0,0 +1,18 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_solid.fsh b/assets/minecraft/shaders/core/rendertype_solid.fsh new file mode 100644 index 00000000..851068d0 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_solid.fsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_solid.json b/assets/minecraft/shaders/core/rendertype_solid.json new file mode 100644 index 00000000..a9e5db45 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_solid.json @@ -0,0 +1,18 @@ +{ + "vertex": "rendertype_solid", + "fragment": "rendertype_solid", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ChunkOffset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_solid.vsh b/assets/minecraft/shaders/core/rendertype_solid.vsh new file mode 100644 index 00000000..02f3d117 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_solid.vsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform vec3 ChunkOffset; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + vec3 pos = Position + ChunkOffset; + gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0); + + vertexDistance = fog_distance(pos, FogShape); + vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_text.fsh b/assets/minecraft/shaders/core/rendertype_text.fsh new file mode 100644 index 00000000..3fe46019 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_text.json b/assets/minecraft/shaders/core/rendertype_text.json new file mode 100644 index 00000000..607a9c1e --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_text", + "fragment": "rendertype_text", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_text.vsh b/assets/minecraft/shaders/core/rendertype_text.vsh new file mode 100644 index 00000000..f53b07f1 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text.vsh @@ -0,0 +1,26 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_text_background.fsh b/assets/minecraft/shaders/core/rendertype_text_background.fsh new file mode 100644 index 00000000..87237bed --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_background.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_text_background.json b/assets/minecraft/shaders/core/rendertype_text_background.json new file mode 100644 index 00000000..b498c38a --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_background.json @@ -0,0 +1,16 @@ +{ + "vertex": "rendertype_text_background", + "fragment": "rendertype_text_background", + "samplers": [ + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_text_background.vsh b/assets/minecraft/shaders/core/rendertype_text_background.vsh new file mode 100644 index 00000000..e29f3d9c --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_background.vsh @@ -0,0 +1,23 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in ivec2 UV2; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); +} diff --git a/assets/minecraft/shaders/core/rendertype_text_background_see_through.fsh b/assets/minecraft/shaders/core/rendertype_text_background_see_through.fsh new file mode 100644 index 00000000..6b1c565f --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_background_see_through.fsh @@ -0,0 +1,15 @@ +#version 150 + +uniform vec4 ColorModulator; + +in vec4 vertexColor; + +out vec4 fragColor; + +void main() { + vec4 color = vertexColor; + if (color.a < 0.1) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_text_background_see_through.json b/assets/minecraft/shaders/core/rendertype_text_background_see_through.json new file mode 100644 index 00000000..a1fb14dd --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_background_see_through.json @@ -0,0 +1,11 @@ +{ + "vertex": "rendertype_text_background_see_through", + "fragment": "rendertype_text_background_see_through", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_text_background_see_through.vsh b/assets/minecraft/shaders/core/rendertype_text_background_see_through.vsh new file mode 100644 index 00000000..19d3fdba --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_background_see_through.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec3 Position; +in vec4 Color; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; +} diff --git a/assets/minecraft/shaders/core/rendertype_text_intensity.fsh b/assets/minecraft/shaders/core/rendertype_text_intensity.fsh new file mode 100644 index 00000000..adf5282d --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_intensity.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_text_intensity.json b/assets/minecraft/shaders/core/rendertype_text_intensity.json new file mode 100644 index 00000000..18712ec0 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_intensity.json @@ -0,0 +1,17 @@ +{ + "vertex": "rendertype_text_intensity", + "fragment": "rendertype_text_intensity", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_text_intensity.vsh b/assets/minecraft/shaders/core/rendertype_text_intensity.vsh new file mode 100644 index 00000000..f53b07f1 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_intensity.vsh @@ -0,0 +1,26 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.fsh b/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.fsh new file mode 100644 index 00000000..ae4ed270 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; + +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor; + if (color.a < 0.1) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.json b/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.json new file mode 100644 index 00000000..aaeee8b4 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.json @@ -0,0 +1,12 @@ +{ + "vertex": "rendertype_text_intensity_see_through", + "fragment": "rendertype_text_intensity_see_through", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.vsh b/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.vsh new file mode 100644 index 00000000..44e105d4 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_intensity_see_through.vsh @@ -0,0 +1,18 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_text_see_through.fsh b/assets/minecraft/shaders/core/rendertype_text_see_through.fsh new file mode 100644 index 00000000..cfdb7b2b --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_see_through.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; + +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor; + if (color.a < 0.1) { + discard; + } + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_text_see_through.json b/assets/minecraft/shaders/core/rendertype_text_see_through.json new file mode 100644 index 00000000..ae7f4bee --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_see_through.json @@ -0,0 +1,12 @@ +{ + "vertex": "rendertype_text_see_through", + "fragment": "rendertype_text_see_through", + "samplers": [ + { "name": "Sampler0" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_text_see_through.vsh b/assets/minecraft/shaders/core/rendertype_text_see_through.vsh new file mode 100644 index 00000000..44e105d4 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_text_see_through.vsh @@ -0,0 +1,18 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color; + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_translucent.fsh b/assets/minecraft/shaders/core/rendertype_translucent.fsh new file mode 100644 index 00000000..851068d0 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_translucent.fsh @@ -0,0 +1,21 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_translucent.json b/assets/minecraft/shaders/core/rendertype_translucent.json new file mode 100644 index 00000000..f157ec73 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_translucent.json @@ -0,0 +1,18 @@ +{ + "vertex": "rendertype_translucent", + "fragment": "rendertype_translucent", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ChunkOffset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_translucent.vsh b/assets/minecraft/shaders/core/rendertype_translucent.vsh new file mode 100644 index 00000000..02f3d117 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_translucent.vsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform vec3 ChunkOffset; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + vec3 pos = Position + ChunkOffset; + gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0); + + vertexDistance = fog_distance(pos, FogShape); + vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_translucent_moving_block.fsh b/assets/minecraft/shaders/core/rendertype_translucent_moving_block.fsh new file mode 100644 index 00000000..39ddb91d --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_translucent_moving_block.fsh @@ -0,0 +1,16 @@ +#version 150 + +uniform sampler2D Sampler0; +uniform sampler2D Sampler2; + +uniform vec4 ColorModulator; + +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor; + fragColor = color * ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_translucent_moving_block.json b/assets/minecraft/shaders/core/rendertype_translucent_moving_block.json new file mode 100644 index 00000000..1c08b62c --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_translucent_moving_block.json @@ -0,0 +1,13 @@ +{ + "vertex": "rendertype_translucent_moving_block", + "fragment": "rendertype_translucent_moving_block", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_translucent_moving_block.vsh b/assets/minecraft/shaders/core/rendertype_translucent_moving_block.vsh new file mode 100644 index 00000000..33c7d419 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_translucent_moving_block.vsh @@ -0,0 +1,22 @@ +#version 150 + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_tripwire.fsh b/assets/minecraft/shaders/core/rendertype_tripwire.fsh new file mode 100644 index 00000000..3fe46019 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_tripwire.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/assets/minecraft/shaders/core/rendertype_tripwire.json b/assets/minecraft/shaders/core/rendertype_tripwire.json new file mode 100644 index 00000000..759278d8 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_tripwire.json @@ -0,0 +1,18 @@ +{ + "vertex": "rendertype_tripwire", + "fragment": "rendertype_tripwire", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ChunkOffset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_tripwire.vsh b/assets/minecraft/shaders/core/rendertype_tripwire.vsh new file mode 100644 index 00000000..02f3d117 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_tripwire.vsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform vec3 ChunkOffset; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + vec3 pos = Position + ChunkOffset; + gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.0); + + vertexDistance = fog_distance(pos, FogShape); + vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); + texCoord0 = UV0; +} diff --git a/assets/minecraft/shaders/core/rendertype_water_mask.fsh b/assets/minecraft/shaders/core/rendertype_water_mask.fsh new file mode 100644 index 00000000..e0799241 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_water_mask.fsh @@ -0,0 +1,9 @@ +#version 150 + +uniform vec4 ColorModulator; + +out vec4 fragColor; + +void main() { + fragColor = ColorModulator; +} diff --git a/assets/minecraft/shaders/core/rendertype_water_mask.json b/assets/minecraft/shaders/core/rendertype_water_mask.json new file mode 100644 index 00000000..32bfac93 --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_water_mask.json @@ -0,0 +1,11 @@ +{ + "vertex": "rendertype_water_mask", + "fragment": "rendertype_water_mask", + "samplers": [ + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/core/rendertype_water_mask.vsh b/assets/minecraft/shaders/core/rendertype_water_mask.vsh new file mode 100644 index 00000000..fa2d216d --- /dev/null +++ b/assets/minecraft/shaders/core/rendertype_water_mask.vsh @@ -0,0 +1,10 @@ +#version 150 + +in vec3 Position; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); +} diff --git a/assets/minecraft/shaders/include/fog.glsl b/assets/minecraft/shaders/include/fog.glsl new file mode 100644 index 00000000..601478c6 --- /dev/null +++ b/assets/minecraft/shaders/include/fog.glsl @@ -0,0 +1,30 @@ +#version 150 + +vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { + if (vertexDistance <= fogStart) { + return inColor; + } + + float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.0; + return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); +} + +float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { + if (vertexDistance <= fogStart) { + return 1.0; + } else if (vertexDistance >= fogEnd) { + return 0.0; + } + + return smoothstep(fogEnd, fogStart, vertexDistance); +} + +float fog_distance(vec3 pos, int shape) { + if (shape == 0) { + return length(pos); + } else { + float distXZ = length(pos.xz); + float distY = abs(pos.y); + return max(distXZ, distY); + } +} diff --git a/assets/minecraft/shaders/include/light.glsl b/assets/minecraft/shaders/include/light.glsl new file mode 100644 index 00000000..9924b90a --- /dev/null +++ b/assets/minecraft/shaders/include/light.glsl @@ -0,0 +1,15 @@ +#version 150 + +#define MINECRAFT_LIGHT_POWER (0.6) +#define MINECRAFT_AMBIENT_LIGHT (0.4) + +vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { + float light0 = max(0.0, dot(lightDir0, normal)); + float light1 = max(0.0, dot(lightDir1, normal)); + float lightAccum = min(1.0, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); + return vec4(color.rgb * lightAccum, color.a); +} + +vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { + return texture(lightMap, clamp(uv / 256.0, vec2(0.5 / 16.0), vec2(15.5 / 16.0))); +} diff --git a/assets/minecraft/shaders/include/matrix.glsl b/assets/minecraft/shaders/include/matrix.glsl new file mode 100644 index 00000000..c64fd06e --- /dev/null +++ b/assets/minecraft/shaders/include/matrix.glsl @@ -0,0 +1,8 @@ +#version 150 + +mat2 mat2_rotate_z(float radians) { + return mat2( + cos(radians), -sin(radians), + sin(radians), cos(radians) + ); +} diff --git a/assets/minecraft/shaders/include/projection.glsl b/assets/minecraft/shaders/include/projection.glsl new file mode 100644 index 00000000..cc4e5245 --- /dev/null +++ b/assets/minecraft/shaders/include/projection.glsl @@ -0,0 +1,8 @@ +#version 150 + +vec4 projection_from_position(vec4 position) { + vec4 projection = position * 0.5; + projection.xy = vec2(projection.x + projection.w, projection.y + projection.w); + projection.zw = position.zw; + return projection; +} diff --git a/assets/minecraft/shaders/post/blur.json b/assets/minecraft/shaders/post/blur.json new file mode 100644 index 00000000..096cd06f --- /dev/null +++ b/assets/minecraft/shaders/post/blur.json @@ -0,0 +1,81 @@ +{ + "targets": [ + "swap" + ], + "passes": [ + { + "name": "box_blur", + "intarget": "minecraft:main", + "outtarget": "swap", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + } + ] + }, + { + "name": "box_blur", + "intarget": "swap", + "outtarget": "minecraft:main", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + } + ] + }, { + "name": "box_blur", + "intarget": "minecraft:main", + "outtarget": "swap", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ], + "RadiusMultiplier" : 0.5 + } + ] + }, + { + "name": "box_blur", + "intarget": "swap", + "outtarget": "minecraft:main", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ], + "RadiusMultiplier" : 0.5 + } + ] + }, { + "name": "box_blur", + "intarget": "minecraft:main", + "outtarget": "swap", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ], + "RadiusMultiplier" : 0.25 + } + ] + }, + { + "name": "box_blur", + "intarget": "swap", + "outtarget": "minecraft:main", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ], + "RadiusMultiplier" : 0.25 + } + ] + } + ] +} diff --git a/assets/minecraft/shaders/post/creeper.json b/assets/minecraft/shaders/post/creeper.json new file mode 100644 index 00000000..da503f1a --- /dev/null +++ b/assets/minecraft/shaders/post/creeper.json @@ -0,0 +1,41 @@ +{ + "targets": [ + "swap" + ], + "passes": [ + { + "name": "color_convolve", + "intarget": "minecraft:main", + "outtarget": "swap", + "uniforms": [ + { + "name": "RedMatrix", + "values": [ 0.0, 0.0, 0.0 ] + }, + { + "name": "GreenMatrix", + "values": [ 0.3, 0.59, 0.11 ] + }, + { + "name": "BlueMatrix", + "values": [ 0.0, 0.0, 0.0 ] + } + ] + }, + { + "name": "bits", + "intarget": "swap", + "outtarget": "minecraft:main", + "uniforms": [ + { + "name": "Resolution", + "values": [ 16.0 ] + }, + { + "name": "MosaicSize", + "values": [ 4.0 ] + } + ] + } + ] +} diff --git a/assets/minecraft/shaders/post/entity_outline.json b/assets/minecraft/shaders/post/entity_outline.json new file mode 100644 index 00000000..a2efc39c --- /dev/null +++ b/assets/minecraft/shaders/post/entity_outline.json @@ -0,0 +1,42 @@ +{ + "targets": [ + "swap", + "final" + ], + "passes": [ + { + "name": "entity_outline", + "intarget": "final", + "outtarget": "swap" + }, + { + "name": "entity_outline_box_blur", + "intarget": "swap", + "outtarget": "final", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + } + ] + }, + { + "name": "entity_outline_box_blur", + "intarget": "final", + "outtarget": "swap", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + } + ] + }, + { + "name": "blit", + "intarget": "swap", + "outtarget": "final" + } + ] +} diff --git a/assets/minecraft/shaders/post/invert.json b/assets/minecraft/shaders/post/invert.json new file mode 100644 index 00000000..2ab63fb6 --- /dev/null +++ b/assets/minecraft/shaders/post/invert.json @@ -0,0 +1,23 @@ +{ + "targets": [ + "swap" + ], + "passes": [ + { + "name": "invert", + "intarget": "minecraft:main", + "outtarget": "swap", + "uniforms": [ + { + "name": "InverseAmount", + "values": [ 0.8 ] + } + ] + }, + { + "name": "blit", + "intarget": "swap", + "outtarget": "minecraft:main" + } + ] +} diff --git a/assets/minecraft/shaders/post/spider.json b/assets/minecraft/shaders/post/spider.json new file mode 100644 index 00000000..ea8a59fa --- /dev/null +++ b/assets/minecraft/shaders/post/spider.json @@ -0,0 +1,234 @@ +{ + "targets": [ + "largeBlur", + "smallBlur", + "temp", + "swap" + ], + "passes": [ + { + "name": "box_blur", + "intarget": "minecraft:main", + "outtarget": "temp", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + }, + { + "name": "Radius", + "values": [ 15.0 ] + } + ] + }, + { + "name": "box_blur", + "intarget": "temp", + "outtarget": "largeBlur", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + }, + { + "name": "Radius", + "values": [ 15.0 ] + } + ] + }, + { + "name": "box_blur", + "intarget": "minecraft:main", + "outtarget": "temp", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + }, + { + "name": "Radius", + "values": [ 7.0 ] + } + ] + }, + { + "name": "box_blur", + "intarget": "temp", + "outtarget": "smallBlur", + "use_linear_filter": true, + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + }, + { + "name": "Radius", + "values": [ 7.0 ] + } + ] + }, + { + "name": "spider", + "intarget": "minecraft:main", + "outtarget": "temp", + "auxtargets": [ + { + "name": "BlurSampler", + "id": "largeBlur" + } + ], + "uniforms": [ + { + "name": "InScale", + "values": [ 1.25, 2.0 ] + }, + { + "name": "InOffset", + "values": [ -0.125, -0.1 ] + }, + { + "name": "Scissor", + "values": [ 0.0, 0.0, 1.0, 1.0 ] + }, + { + "name": "Vignette", + "values": [ 0.1, 0.1, 0.9, 0.9 ] + } + ] + }, + { + "name": "spider", + "intarget": "smallBlur", + "outtarget": "swap", + "auxtargets": [ + { + "name": "BlurSampler", + "id": "temp" + } + ], + "uniforms": [ + { + "name": "InScale", + "values": [ 2.35, 4.2 ] + }, + { + "name": "InOffset", + "values": [ -1.1, -1.5 ] + }, + { + "name": "InRotation", + "values": [ -45.0 ] + }, + { + "name": "Scissor", + "values": [ 0.21, 0.0, 0.79, 1.0 ] + }, + { + "name": "Vignette", + "values": [ 0.31, 0.1, 0.69, 0.9 ] + } + ] + }, + { + "name": "spider", + "intarget": "smallBlur", + "outtarget": "temp", + "auxtargets": [ + { + "name": "BlurSampler", + "id": "swap" + } + ], + "uniforms": [ + { + "name": "InScale", + "values": [ 2.35, 4.2 ] + }, + { + "name": "InOffset", + "values": [ 0.45, -4.45 ] + }, + { + "name": "InRotation", + "values": [ 45.0 ] + }, + { + "name": "Scissor", + "values": [ 0.21, 0.0, 0.79, 1.0 ] + }, + { + "name": "Vignette", + "values": [ 0.31, 0.1, 0.69, 0.9 ] + } + ] + }, + { + "name": "spider", + "intarget": "smallBlur", + "outtarget": "swap", + "auxtargets": [ + { + "name": "BlurSampler", + "id": "temp" + } + ], + "uniforms": [ + { + "name": "InScale", + "values": [ 2.35, 2.35 ] + }, + { + "name": "InOffset", + "values": [ -0.385, -1.29 ] + }, + { + "name": "InRotation", + "values": [ 0.0 ] + }, + { + "name": "Vignette", + "values": [ 0.31, 0.1, 0.69, 0.9 ] + } + ] + }, + { + "name": "spider", + "intarget": "smallBlur", + "outtarget": "temp", + "auxtargets": [ + { + "name": "BlurSampler", + "id": "swap" + } + ], + "uniforms": [ + { + "name": "InScale", + "values": [ 2.35, 2.35 ] + }, + { + "name": "InOffset", + "values": [ -0.965, -1.29 ] + }, + { + "name": "Vignette", + "values": [ 0.31, 0.1, 0.69, 0.9 ] + } + ] + }, + { + "name": "blit", + "intarget": "temp", + "outtarget": "minecraft:main", + "uniforms": [ + { + "name": "ColorModulate", + "values": [ 1.0, 0.8, 0.8, 1.0 ] + } + ] + } + ] +} diff --git a/assets/minecraft/shaders/post/transparency.json b/assets/minecraft/shaders/post/transparency.json new file mode 100644 index 00000000..8642ac2d --- /dev/null +++ b/assets/minecraft/shaders/post/transparency.json @@ -0,0 +1,69 @@ +{ + "targets": [ + "water", + "translucent", + "itemEntity", + "particles", + "clouds", + "weather", + "final" + ], + "passes": [ + { + "name": "transparency", + "intarget": "minecraft:main", + "outtarget": "final", + "auxtargets": [ + { + "name": "DiffuseDepthSampler", + "id": "minecraft:main:depth" + }, + { + "name": "TranslucentSampler", + "id": "translucent" + }, + { + "name": "TranslucentDepthSampler", + "id": "translucent:depth" + }, + { + "name": "ItemEntitySampler", + "id": "itemEntity" + }, + { + "name": "ItemEntityDepthSampler", + "id": "itemEntity:depth" + }, + { + "name": "ParticlesSampler", + "id": "particles" + }, + { + "name": "ParticlesDepthSampler", + "id": "particles:depth" + }, + { + "name": "CloudsSampler", + "id": "clouds" + }, + { + "name": "CloudsDepthSampler", + "id": "clouds:depth" + }, + { + "name": "WeatherSampler", + "id": "weather" + }, + { + "name": "WeatherDepthSampler", + "id": "weather:depth" + } + ] + }, + { + "name": "blit", + "intarget": "final", + "outtarget": "minecraft:main" + } + ] +} diff --git a/assets/minecraft/shaders/program/bits.fsh b/assets/minecraft/shaders/program/bits.fsh new file mode 100644 index 00000000..d4b86c22 --- /dev/null +++ b/assets/minecraft/shaders/program/bits.fsh @@ -0,0 +1,29 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +in vec2 texCoord; +in vec2 oneTexel; + +uniform vec2 InSize; + +uniform float Resolution; +uniform float Saturation; +uniform float MosaicSize; + +out vec4 fragColor; + +void main() { + vec2 mosaicInSize = InSize / MosaicSize; + vec2 fractPix = fract(texCoord * mosaicInSize) / mosaicInSize; + + vec4 baseTexel = texture(DiffuseSampler, texCoord - fractPix); + + vec3 fractTexel = baseTexel.rgb - fract(baseTexel.rgb * Resolution) / Resolution; + float luma = dot(fractTexel, vec3(0.3, 0.59, 0.11)); + vec3 chroma = (fractTexel - luma) * Saturation; + baseTexel.rgb = luma + chroma; + baseTexel.a = 1.0; + + fragColor = baseTexel; +} diff --git a/assets/minecraft/shaders/program/bits.json b/assets/minecraft/shaders/program/bits.json new file mode 100644 index 00000000..e2623f7d --- /dev/null +++ b/assets/minecraft/shaders/program/bits.json @@ -0,0 +1,21 @@ +{ + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "sobel", + "fragment": "bits", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "Resolution", "type": "float", "count": 1, "values": [ 4.0 ] }, + { "name": "Saturation", "type": "float", "count": 1, "values": [ 1.5 ] }, + { "name": "MosaicSize", "type": "float", "count": 1, "values": [ 8.0 ] } + ] +} diff --git a/assets/minecraft/shaders/program/blit.fsh b/assets/minecraft/shaders/program/blit.fsh new file mode 100644 index 00000000..18202e06 --- /dev/null +++ b/assets/minecraft/shaders/program/blit.fsh @@ -0,0 +1,13 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +uniform vec4 ColorModulate; + +in vec2 texCoord; + +out vec4 fragColor; + +void main(){ + fragColor = texture(DiffuseSampler, texCoord) * ColorModulate; +} diff --git a/assets/minecraft/shaders/program/blit.json b/assets/minecraft/shaders/program/blit.json new file mode 100644 index 00000000..1256b6b1 --- /dev/null +++ b/assets/minecraft/shaders/program/blit.json @@ -0,0 +1,18 @@ +{ + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "blit", + "fragment": "blit", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "ColorModulate", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/program/blit.vsh b/assets/minecraft/shaders/program/blit.vsh new file mode 100644 index 00000000..443e1f34 --- /dev/null +++ b/assets/minecraft/shaders/program/blit.vsh @@ -0,0 +1,15 @@ +#version 150 + +in vec4 Position; + +uniform mat4 ProjMat; +uniform vec2 OutSize; + +out vec2 texCoord; + +void main(){ + vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0); + gl_Position = vec4(outPos.xy, 0.2, 1.0); + + texCoord = Position.xy / OutSize; +} diff --git a/assets/minecraft/shaders/program/blur.vsh b/assets/minecraft/shaders/program/blur.vsh new file mode 100644 index 00000000..5917d86b --- /dev/null +++ b/assets/minecraft/shaders/program/blur.vsh @@ -0,0 +1,21 @@ +#version 150 + +in vec4 Position; + +uniform mat4 ProjMat; +uniform vec2 InSize; +uniform vec2 OutSize; +uniform vec2 BlurDir; + +out vec2 texCoord; +out vec2 sampleStep; + +void main() { + vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0); + gl_Position = vec4(outPos.xy, 0.2, 1.0); + + vec2 oneTexel = 1.0 / InSize; + sampleStep = oneTexel * BlurDir; + + texCoord = Position.xy / OutSize; +} diff --git a/assets/minecraft/shaders/program/box_blur.fsh b/assets/minecraft/shaders/program/box_blur.fsh new file mode 100644 index 00000000..ea02d30d --- /dev/null +++ b/assets/minecraft/shaders/program/box_blur.fsh @@ -0,0 +1,24 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +in vec2 texCoord; +in vec2 sampleStep; + +uniform float Radius; +uniform float RadiusMultiplier; + +out vec4 fragColor; + +// This shader relies on GL_LINEAR sampling to reduce the amount of texture samples in half. +// Instead of sampling each pixel position with a step of 1 we sample between pixels with a step of 2. +// In the end we sample the last pixel with a half weight, since the amount of pixels to sample is always odd (actualRadius * 2 + 1). +void main() { + vec4 blurred = vec4(0.0); + float actualRadius = round(Radius * RadiusMultiplier); + for (float a = -actualRadius + 0.5; a <= actualRadius; a += 2.0) { + blurred += texture(DiffuseSampler, texCoord + sampleStep * a); + } + blurred += texture(DiffuseSampler, texCoord + sampleStep * actualRadius) / 2.0; + fragColor = blurred / (actualRadius + 0.5); +} diff --git a/assets/minecraft/shaders/program/box_blur.json b/assets/minecraft/shaders/program/box_blur.json new file mode 100644 index 00000000..e60d51b4 --- /dev/null +++ b/assets/minecraft/shaders/program/box_blur.json @@ -0,0 +1,21 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "blur", + "fragment": "box_blur", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "BlurDir", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "Radius", "type": "float", "count": 1, "values": [ 5.0 ] }, + { "name": "RadiusMultiplier", "type": "float", "count": 1, "values": [ 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/program/color_convolve.fsh b/assets/minecraft/shaders/program/color_convolve.fsh new file mode 100644 index 00000000..9ee675f3 --- /dev/null +++ b/assets/minecraft/shaders/program/color_convolve.fsh @@ -0,0 +1,38 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +in vec2 texCoord; +in vec2 oneTexel; + +uniform vec2 InSize; + +uniform vec3 Gray; +uniform vec3 RedMatrix; +uniform vec3 GreenMatrix; +uniform vec3 BlueMatrix; +uniform vec3 Offset; +uniform vec3 ColorScale; +uniform float Saturation; + +out vec4 fragColor; + +void main() { + vec4 InTexel = texture(DiffuseSampler, texCoord); + + // Color Matrix + float RedValue = dot(InTexel.rgb, RedMatrix); + float GreenValue = dot(InTexel.rgb, GreenMatrix); + float BlueValue = dot(InTexel.rgb, BlueMatrix); + vec3 OutColor = vec3(RedValue, GreenValue, BlueValue); + + // Offset & Scale + OutColor = (OutColor * ColorScale) + Offset; + + // Saturation + float Luma = dot(OutColor, Gray); + vec3 Chroma = OutColor - Luma; + OutColor = (Chroma * Saturation) + Luma; + + fragColor = vec4(OutColor, 1.0); +} diff --git a/assets/minecraft/shaders/program/color_convolve.json b/assets/minecraft/shaders/program/color_convolve.json new file mode 100644 index 00000000..e3a32c2d --- /dev/null +++ b/assets/minecraft/shaders/program/color_convolve.json @@ -0,0 +1,25 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "sobel", + "fragment": "color_convolve", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "Gray", "type": "float", "count": 3, "values": [ 0.3, 0.59, 0.11 ] }, + { "name": "RedMatrix", "type": "float", "count": 3, "values": [ 1.0, 0.0, 0.0 ] }, + { "name": "GreenMatrix", "type": "float", "count": 3, "values": [ 0.0, 1.0, 0.0 ] }, + { "name": "BlueMatrix", "type": "float", "count": 3, "values": [ 0.0, 0.0, 1.0 ] }, + { "name": "Offset", "type": "float", "count": 3, "values": [ 0.0, 0.0, 0.0 ] }, + { "name": "ColorScale", "type": "float", "count": 3, "values": [ 1.0, 1.0, 1.0 ] }, + { "name": "Saturation", "type": "float", "count": 1, "values": [ 1.8 ] } + ] +} diff --git a/assets/minecraft/shaders/program/entity_outline.json b/assets/minecraft/shaders/program/entity_outline.json new file mode 100644 index 00000000..d7c77631 --- /dev/null +++ b/assets/minecraft/shaders/program/entity_outline.json @@ -0,0 +1,18 @@ +{ + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "sobel", + "fragment": "entity_sobel", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/program/entity_outline_box_blur.fsh b/assets/minecraft/shaders/program/entity_outline_box_blur.fsh new file mode 100644 index 00000000..1c59ff64 --- /dev/null +++ b/assets/minecraft/shaders/program/entity_outline_box_blur.fsh @@ -0,0 +1,18 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +in vec2 texCoord; +in vec2 sampleStep; + +out vec4 fragColor; + +void main() { + vec4 blurred = vec4(0.0); + float radius = 2.0; + for (float a = -radius + 0.5; a <= radius; a += 2.0) { + blurred += texture(DiffuseSampler, texCoord + sampleStep * a); + } + blurred += texture(DiffuseSampler, texCoord + sampleStep * radius) / 2.0; + fragColor = vec4((blurred / (radius + 0.5)).rgb, blurred.a); +} diff --git a/assets/minecraft/shaders/program/entity_outline_box_blur.json b/assets/minecraft/shaders/program/entity_outline_box_blur.json new file mode 100644 index 00000000..58fa7da1 --- /dev/null +++ b/assets/minecraft/shaders/program/entity_outline_box_blur.json @@ -0,0 +1,19 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "blur", + "fragment": "entity_outline_box_blur", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "BlurDir", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/program/entity_sobel.fsh b/assets/minecraft/shaders/program/entity_sobel.fsh new file mode 100644 index 00000000..77081385 --- /dev/null +++ b/assets/minecraft/shaders/program/entity_sobel.fsh @@ -0,0 +1,23 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +in vec2 texCoord; +in vec2 oneTexel; + +out vec4 fragColor; + +void main(){ + vec4 center = texture(DiffuseSampler, texCoord); + vec4 left = texture(DiffuseSampler, texCoord - vec2(oneTexel.x, 0.0)); + vec4 right = texture(DiffuseSampler, texCoord + vec2(oneTexel.x, 0.0)); + vec4 up = texture(DiffuseSampler, texCoord - vec2(0.0, oneTexel.y)); + vec4 down = texture(DiffuseSampler, texCoord + vec2(0.0, oneTexel.y)); + float leftDiff = abs(center.a - left.a); + float rightDiff = abs(center.a - right.a); + float upDiff = abs(center.a - up.a); + float downDiff = abs(center.a - down.a); + float total = clamp(leftDiff + rightDiff + upDiff + downDiff, 0.0, 1.0); + vec3 outColor = center.rgb * center.a + left.rgb * left.a + right.rgb * right.a + up.rgb * up.a + down.rgb * down.a; + fragColor = vec4(outColor * 0.2, total); +} diff --git a/assets/minecraft/shaders/program/invert.fsh b/assets/minecraft/shaders/program/invert.fsh new file mode 100644 index 00000000..fce3ba46 --- /dev/null +++ b/assets/minecraft/shaders/program/invert.fsh @@ -0,0 +1,16 @@ +#version 150 + +uniform sampler2D DiffuseSampler; + +in vec2 texCoord; + +uniform float InverseAmount; + +out vec4 fragColor; + +void main(){ + vec4 diffuseColor = texture(DiffuseSampler, texCoord); + vec4 invertColor = 1.0 - diffuseColor; + vec4 outColor = mix(diffuseColor, invertColor, InverseAmount); + fragColor = vec4(outColor.rgb, 1.0); +} diff --git a/assets/minecraft/shaders/program/invert.json b/assets/minecraft/shaders/program/invert.json new file mode 100644 index 00000000..f9ab649c --- /dev/null +++ b/assets/minecraft/shaders/program/invert.json @@ -0,0 +1,19 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "blit", + "fragment": "invert", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "InverseAmount", "type": "float", "count": 1, "values": [ 0.0 ] } + ] +} diff --git a/assets/minecraft/shaders/program/invert.vsh b/assets/minecraft/shaders/program/invert.vsh new file mode 100644 index 00000000..f30f3a83 --- /dev/null +++ b/assets/minecraft/shaders/program/invert.vsh @@ -0,0 +1,20 @@ +#version 150 + +in vec4 Position; + +uniform mat4 ProjMat; +uniform vec2 InSize; +uniform vec2 OutSize; + +out vec2 texCoord; + +void main(){ + vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0); + gl_Position = vec4(outPos.xy, 0.2, 1.0); + + vec2 sizeRatio = OutSize / InSize; + texCoord = Position.xy / OutSize; + texCoord.x = texCoord.x * sizeRatio.x; + texCoord.y = texCoord.y * sizeRatio.y; + texCoord.y = sizeRatio.y - texCoord.y; +} diff --git a/assets/minecraft/shaders/program/rotscale.vsh b/assets/minecraft/shaders/program/rotscale.vsh new file mode 100644 index 00000000..6c55a893 --- /dev/null +++ b/assets/minecraft/shaders/program/rotscale.vsh @@ -0,0 +1,30 @@ +#version 150 + +in vec4 Position; + +uniform mat4 ProjMat; +uniform vec2 InSize; +uniform vec2 OutSize; + +uniform vec2 InScale; +uniform vec2 InOffset; +uniform float InRotation; +uniform float Time; + +out vec2 texCoord; +out vec2 scaledCoord; + +void main(){ + vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0); + gl_Position = vec4(outPos.xy, 0.2, 1.0); + + texCoord = Position.xy / OutSize; + + float Deg2Rad = 0.0174532925; + float InRadians = InRotation * Deg2Rad; + float Cosine = cos(InRadians); + float Sine = sin(InRadians); + float RotU = texCoord.x * Cosine - texCoord.y * Sine; + float RotV = texCoord.y * Cosine + texCoord.x * Sine; + scaledCoord = vec2(RotU, RotV) * InScale + InOffset; +} diff --git a/assets/minecraft/shaders/program/screenquad.vsh b/assets/minecraft/shaders/program/screenquad.vsh new file mode 100644 index 00000000..9dfe91cd --- /dev/null +++ b/assets/minecraft/shaders/program/screenquad.vsh @@ -0,0 +1,14 @@ +#version 150 + +in vec4 Position; + +uniform mat4 ProjMat; +uniform vec2 OutSize; + +out vec2 texCoord; + +void main() { + vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0); + gl_Position = vec4(outPos.xy, 0.2, 1.0); + texCoord = Position.xy / OutSize; +} diff --git a/assets/minecraft/shaders/program/sobel.vsh b/assets/minecraft/shaders/program/sobel.vsh new file mode 100644 index 00000000..99e97e06 --- /dev/null +++ b/assets/minecraft/shaders/program/sobel.vsh @@ -0,0 +1,19 @@ +#version 150 + +in vec4 Position; + +uniform mat4 ProjMat; +uniform vec2 InSize; +uniform vec2 OutSize; + +out vec2 texCoord; +out vec2 oneTexel; + +void main(){ + vec4 outPos = ProjMat * vec4(Position.xy, 0.0, 1.0); + gl_Position = vec4(outPos.xy, 0.2, 1.0); + + oneTexel = 1.0 / InSize; + + texCoord = Position.xy / OutSize; +} diff --git a/assets/minecraft/shaders/program/spider.json b/assets/minecraft/shaders/program/spider.json new file mode 100644 index 00000000..3a47688e --- /dev/null +++ b/assets/minecraft/shaders/program/spider.json @@ -0,0 +1,25 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "rotscale", + "fragment": "spiderclip", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" }, + { "name": "BlurSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "InScale", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "InOffset", "type": "float", "count": 2, "values": [ 0.0, 0.0 ] }, + { "name": "InRotation", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "Time", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "Scissor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 1.0, 1.0 ] }, + { "name": "Vignette", "type": "float", "count": 4, "values": [ 0.0, 0.0, 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/shaders/program/spiderclip.fsh b/assets/minecraft/shaders/program/spiderclip.fsh new file mode 100644 index 00000000..c586188f --- /dev/null +++ b/assets/minecraft/shaders/program/spiderclip.fsh @@ -0,0 +1,33 @@ +#version 150 + +uniform sampler2D DiffuseSampler; +uniform sampler2D BlurSampler; + +in vec2 texCoord; +in vec2 scaledCoord; + +uniform vec2 InSize; +uniform vec4 Scissor; +uniform vec4 Vignette; + +out vec4 fragColor; + +void main() { + vec4 ScaledTexel = texture(DiffuseSampler, scaledCoord); + vec4 BlurTexel = texture(BlurSampler, texCoord); + vec4 OutTexel = ScaledTexel; + + // -- Alpha Clipping -- + if (scaledCoord.x < Scissor.x) OutTexel = BlurTexel; + if (scaledCoord.y < Scissor.y) OutTexel = BlurTexel; + if (scaledCoord.x > Scissor.z) OutTexel = BlurTexel; + if (scaledCoord.y > Scissor.w) OutTexel = BlurTexel; + + clamp(scaledCoord, 0.0, 1.0); + + if (scaledCoord.x < Vignette.x) OutTexel = mix(BlurTexel, OutTexel, (Scissor.x - scaledCoord.x) / (Scissor.x - Vignette.x)); + if (scaledCoord.y < Vignette.y) OutTexel = mix(BlurTexel, OutTexel, (Scissor.y - scaledCoord.y) / (Scissor.y - Vignette.y)); + if (scaledCoord.x > Vignette.z) OutTexel = mix(BlurTexel, OutTexel, (Scissor.z - scaledCoord.x) / (Scissor.z - Vignette.z)); + if (scaledCoord.y > Vignette.w) OutTexel = mix(BlurTexel, OutTexel, (Scissor.w - scaledCoord.y) / (Scissor.w - Vignette.w)); + fragColor = vec4(OutTexel.rgb, 1.0); +} diff --git a/assets/minecraft/shaders/program/transparency.fsh b/assets/minecraft/shaders/program/transparency.fsh new file mode 100644 index 00000000..3b277ace --- /dev/null +++ b/assets/minecraft/shaders/program/transparency.fsh @@ -0,0 +1,70 @@ +#version 150 + +uniform sampler2D DiffuseSampler; +uniform sampler2D DiffuseDepthSampler; +uniform sampler2D TranslucentSampler; +uniform sampler2D TranslucentDepthSampler; +uniform sampler2D ItemEntitySampler; +uniform sampler2D ItemEntityDepthSampler; +uniform sampler2D ParticlesSampler; +uniform sampler2D ParticlesDepthSampler; +uniform sampler2D WeatherSampler; +uniform sampler2D WeatherDepthSampler; +uniform sampler2D CloudsSampler; +uniform sampler2D CloudsDepthSampler; + +in vec2 texCoord; + +#define NUM_LAYERS 6 + +vec4 color_layers[NUM_LAYERS]; +float depth_layers[NUM_LAYERS]; +int active_layers = 0; + +out vec4 fragColor; + +void try_insert( vec4 color, float depth ) { + if ( color.a == 0.0 ) { + return; + } + + color_layers[active_layers] = color; + depth_layers[active_layers] = depth; + + int jj = active_layers++; + int ii = jj - 1; + while ( jj > 0 && depth_layers[jj] > depth_layers[ii] ) { + float depthTemp = depth_layers[ii]; + depth_layers[ii] = depth_layers[jj]; + depth_layers[jj] = depthTemp; + + vec4 colorTemp = color_layers[ii]; + color_layers[ii] = color_layers[jj]; + color_layers[jj] = colorTemp; + + jj = ii--; + } +} + +vec3 blend( vec3 dst, vec4 src ) { + return ( dst * ( 1.0 - src.a ) ) + src.rgb; +} + +void main() { + color_layers[0] = vec4( texture( DiffuseSampler, texCoord ).rgb, 1.0 ); + depth_layers[0] = texture( DiffuseDepthSampler, texCoord ).r; + active_layers = 1; + + try_insert( texture( TranslucentSampler, texCoord ), texture( TranslucentDepthSampler, texCoord ).r ); + try_insert( texture( ItemEntitySampler, texCoord ), texture( ItemEntityDepthSampler, texCoord ).r ); + try_insert( texture( ParticlesSampler, texCoord ), texture( ParticlesDepthSampler, texCoord ).r ); + try_insert( texture( WeatherSampler, texCoord ), texture( WeatherDepthSampler, texCoord ).r ); + try_insert( texture( CloudsSampler, texCoord ), texture( CloudsDepthSampler, texCoord ).r ); + + vec3 texelAccum = color_layers[0].rgb; + for ( int ii = 1; ii < active_layers; ++ii ) { + texelAccum = blend( texelAccum, color_layers[ii] ); + } + + fragColor = vec4( texelAccum.rgb, 1.0 ); +} diff --git a/assets/minecraft/shaders/program/transparency.json b/assets/minecraft/shaders/program/transparency.json new file mode 100644 index 00000000..66b9835d --- /dev/null +++ b/assets/minecraft/shaders/program/transparency.json @@ -0,0 +1,28 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "screenquad", + "fragment": "transparency", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" }, + { "name": "DiffuseDepthSampler" }, + { "name": "TranslucentSampler" }, + { "name": "TranslucentDepthSampler" }, + { "name": "ItemEntitySampler" }, + { "name": "ItemEntityDepthSampler" }, + { "name": "ParticlesSampler" }, + { "name": "ParticlesDepthSampler" }, + { "name": "CloudsSampler" }, + { "name": "CloudsDepthSampler" }, + { "name": "WeatherSampler" }, + { "name": "WeatherDepthSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] } + ] +} diff --git a/assets/minecraft/texts/credits.json b/assets/minecraft/texts/credits.json new file mode 100644 index 00000000..0d681b8b --- /dev/null +++ b/assets/minecraft/texts/credits.json @@ -0,0 +1,4359 @@ +[ + { + "section": "Mojang Studios", + "disciplines": [ + { + "discipline": "Mojang Studios Leadership", + "titles": [ + { + "title": "Studio Head of Mojang Studios", + "names": [ + "Åsa Bredin" + ] + }, + { + "title": "Chief Operating Officer", + "names": [ + "Annie Chenn" + ] + }, + { + "title": "Head of Growth Products & Partnerships", + "names": [ + "Ada Duan" + ] + }, + { + "title": "Head of Minecraft Game Experience", + "names": [ + "Ryan B. Cooper" + ] + }, + { + "title": "Chief of Staff", + "names": [ + "Amy Stillion" + ] + }, + { + "title": "Chief Creative Officer", + "names": [ + "Jens Bergensten" + ] + }, + { + "title": "Head of Brand & Entertainment", + "names": [ + "Kayleen Walters" + ] + }, + { + "title": "Head of Games Expansion", + "names": [ + "John Thornton" + ] + }, + { + "title": "Franchise Strategic Advisor", + "names": [ + "Scott Dell'Osso" + ] + } + ] + }, + { + "discipline": "Design", + "titles": [ + { + "title": "Game Director, Minecraft", + "names": [ + "Agnes Larsson" + ] + }, + { + "title": "Creative Director, Brand", + "names": [ + "Markus Toivonen" + ] + }, + { + "title": "Creative Director", + "names": [ + "John Yamamoto" + ] + }, + { + "title": "Creative Directors, Games", + "names": [ + "Craig Leigh", + "Magnus Nedfors", + "Måns Olson" + ] + }, + { + "title": "Creative Director, Original Content", + "names": [ + "Torfi Frans Ólafsson" + ] + }, + { + "title": "Creative Leads", + "names": [ + "Louise Smith (Formosa)", + "Michael Harnisch" + ] + }, + { + "title": "Design Director", + "names": [ + "Laura de Llorens Garcia" + ] + }, + { + "title": "Design Managers", + "names": [ + "Isak de Jong", + "Oskar Hansson Wettergren", + "Robin Hedin", + "Sherin Kwan" + ] + }, + { + "title": "Lead Game Designers", + "names": [ + "Guillaume Mroz", + "Nickole Li", + "Rob Poerschke", + "Robin V Vincent", + "Uladzislau Charnaus" + ] + }, + { + "title": "Game Designers", + "names": [ + "Art Usher", + "Brandon Pearce", + "Christian Berg", + "Cole Phillips", + "Cory Scheviak", + "Dana Lee (Insight Global, Inc)", + "Daniel Jansson", + "Jacob Presley (Insight Global, Inc)", + "Jesper Westlund", + "Justice Mealer (Insight Global, Inc)", + "Katherine Durkin (Insight Global, Inc)", + "Kelsey Howard", + "Mark Anthony Esparagoza (Insight Global, Inc)", + "Matthew Gatland", + "Michael Söderqvist", + "Michael Stagnitta", + "Nir Vaknin", + "Steve Enos", + "Tate Sliwa (Insight Global, Inc)", + "Tod Pang" + ] + }, + { + "title": "Narrative Director", + "names": [ + "Kevin Grace" + ] + }, + { + "title": "Narrative Editor", + "names": [ + "Alex Wiltshire" + ] + }, + { + "title": "User Experience Design Director", + "names": [ + "Anna Wendelin" + ] + }, + { + "title": "User Experience Design Leads", + "names": [ + "Carlos Lidón", + "Josefine Lindqvist", + "Unn Swanström" + ] + }, + { + "title": "User Experience Designers", + "names": [ + "Aksel Englund", + "Alejandra Ricciardi (Globant)", + "Clory Luo (Formosa)", + "Hajar Harda", + "Imani Ricks", + "Margot Laucournet", + "Rowel Ocampo (Allegis Group Services, Inc)", + "Sarah Mack (Digital Intelligence Systems, LLC)", + "Sebastian Melchor Hedman", + "Shaun Basil Mendonsa", + "Tom Keen", + "William Hollowell" + ] + }, + { + "title": "User Experience Writer", + "names": [ + "Juan Buis" + ] + } + ] + }, + { + "discipline": "Programming", + "titles": [ + { + "title": "Technical Directors", + "names": [ + "Daniel Johansson", + "James S Yarrow", + "Michael J. Ott" + ] + }, + { + "title": "Engineering Director, Bedrock Platform", + "names": [ + "Vince Curley" + ] + }, + { + "title": "Engineering Director, Growth Products", + "names": [ + "Lawrence M. Sanchez II" + ] + }, + { + "title": "Engineering Director, Internal New Games", + "names": [ + "Aisling Canton" + ] + }, + { + "title": "Engineering Directors", + "names": [ + "Geoff Ebersol", + "Mathias Ericsson", + "Matthew Ng" + ] + }, + { + "title": "Engineering Manager, Franchise Services", + "names": [ + "Matt Hawley" + ] + }, + { + "title": "Engineering Managers", + "names": [ + "Brian Schwartz", + "Christian Diefenbach", + "Elina Dettner", + "Elizabeth Carty (Insight Global, Inc)", + "Ellenor Wiig", + "Erik Wallin", + "Erika Renlund", + "Fanny P Vadillo Herrera", + "Haronid Moncivais", + "Jeff McKune", + "Jonas Keating", + "Lie Fujita", + "Magnus Puig De La Bellacasa Cristiansson", + "Mikael Stenelund", + "Per Sahlée", + "Rijil Narath", + "Rose Higgins", + "Sue Loh" + ] + }, + { + "title": "Lead Software Engineers", + "names": [ + "Bill Carlson", + "Brock Davis", + "Bryan Yeo", + "Chris BeHanna", + "Dan Posluns", + "Dan Samhold", + "David Carlton", + "David Cowan", + "Derrick Price", + "Gary McLaughlin", + "Jake Shirley", + "Joel Bergman", + "Jose Marcos De Oliveira", + "Kanita Rauniyar", + "Mason McCuskey", + "Matt Cooley", + "Nickolas Graczyk", + "Paul Crawford", + "Robert Goins", + "Ryan Burns", + "Yash Shroff" + ] + }, + { + "title": "Technical Leads", + "names": [ + "Andrew Maher", + "Anton Arbring", + "David Ekermann", + "Felix Jones", + "Jahmai O'Sullivan", + "Jakob Rydén", + "Mangal Srinivasamurthy", + "Michael Kranz", + "Michael Stoyke", + "Mikael Hedberg", + "Niclas Unnervik", + "Oleg Kozitsyn", + "Patrick McGannon", + "Paulo Ragonha", + "Raphael Landaverde", + "Robert Sjödahl", + "Stefan Annell", + "Torbjörn Allard", + "Tristan Schneider", + "Zhengwu Zhang" + ] + }, + { + "title": "Software Engineers", + "names": [ + "A.J. Fairfield", + "Aaron Ward (Insight Global, Inc)", + "Abhinav Jain (Ascendion, Inc)", + "Abinaya Sambandam (Ascendion, Inc)", + "Adam Granzer (TEKsystems, Inc)", + "Addison Kaufmann", + "Adrian Ster (Globant)", + "Aileen Hadsell", + "Ajit Belkunde (Ascendion Inc)", + "Alec Chan", + "Alejandro Rosales Martinez (Artech Consulting, LLC)", + "Alex Carvalho Camargo (Ascendion, Inc)", + "Alex Troyer", + "Alex Wouters (Insight Global, Inc)", + "Alexander Kofford (Insight Global, Inc)", + "Alexander Torstling", + "Alexandru Boaru (Globant)", + "Álvaro García Gutiérrez (Globant)", + "Amy Bernhoft", + "Andres Altamirano Montealvo", + "Andrew Griffin", + "Anna Päärni", + "Anthony Sopkow (Ascendion, Inc)", + "Anthony Young", + "Antonino Liconti", + "Apurva Raman", + "Ashish Sharma (Ascendion Inc)", + "Austin Shaythong (Insight Global, Inc)", + "Ayannah Rashida Oluwatoyin Adegeye", + "Bartosz Bok", + "Billy Sjöberg", + "Bjarni Gudmundsson", + "Björn Larsson", + "Brian Luger", + "Bryan DeNosky (Murphy & Associates, Inc)", + "Cameron Chancey (Insight Global, Inc)", + "Chad George", + "Chad Meyers", + "Chloe Basel", + "Chris Dauchot (Insight Global, Inc)", + "Christopher Miceli", + "Cierra Shawe", + "Corey Goodman (Insight Global, Inc)", + "Corey Smith (Insight Global, Inc)", + "Craig Steyn", + "Dan Mauk", + "Dana Zhu", + "Daniel Lobo", + "Daniel Stevens", + "Dat Trieu", + "David Karlehagen", + "David Rice (Ascendion, Inc)", + "David Westen", + "Declan Hopkins", + "Delia Varzariu (Globant)", + "Dragos Bogdan (Globant)", + "Dylan Johanson", + "Dylan Ross (Insight Global, Inc)", + "Elliot Strait (Ascendion, Inc)", + "Emily Yellen", + "Eric Johnston", + "Eric Rehmeyer", + "Eric Sjögren", + "Ericson Gonzalez (Globant)", + "Erik Broes", + "Erik M Schulz", + "Esther Peters (Ascendion, Inc)", + "Evin Watson (Insight Global, Inc)", + "Fernando Cerdeira (Globant)", + "Francisco A Garcia Cebada", + "Gabriel Gerhardsson", + "Garrett Allen", + "Geof Sawaya (Ascendion, Inc)", + "Georgii \"Fry\" Gavrichev", + "Gustaf Zetterlund", + "Håkan Jonson", + "Harald Johansson", + "Hebert Pena Serna (Artech Consulting, LLC)", + "Hector Llanos III", + "Hector M Arriaga Pineda", + "Herbert Mocke (Ascendion, Inc)", + "Ian Gaither (Insight Global, Inc)", + "Isaac Dayton", + "Jaafer Sheriff", + "Jacek Wołkowicz", + "James G Moore", + "James Nicholls", + "Jamie Fristrom", + "Jason Chionh", + "Javi Romero (Globant)", + "Javier Castro Landaverde (Artech Consulting, LLC)", + "Jay Sharma (Insight Global, Inc)", + "Jeffrey Kumley", + "Jeremy Robinson (Insight Global, Inc)", + "Jessica Chen", + "Jifeng Zhang", + "Jillian Polsin", + "Jithin Joji Anchanattu (Ascendion, Inc)", + "Joe Brockhaus", + "Johannes Busch", + "John Graf (Collabera, LLC)", + "John-Philip Johansson", + "Jon Maiga", + "Jonas Eriksson", + "Jordan Maxwell (Insight Global, Inc)", + "José Carlos Bellido", + "Joseph Kichline", + "Jozsef Hollo (Globant)", + "Juliana Montes", + "Julio Novais Raffaine", + "Justin Watkins", + "Khaled Fahmy (Ascendion, Inc)", + "Khaleel Harper", + "Kiran Beersing-Vasquez", + "Lina Juuso", + "Lorenzo Vigano", + "Marco Ballabio", + "Mark Elling (Ascendion, Inc)", + "Mark Rowland (Insight Global, Inc)", + "Markus Gustavsson", + "Marlon Huber-Smith", + "Martin Moe", + "Matijas Matijevic", + "Matt Staubus", + "Matthew Moses (Ascendion, Inc)", + "Matthew Phair", + "Mattias Selin", + "Maxime Bouchez", + "Maxime Lebrot", + "Michael Davidson (Insight Global, Inc)", + "Michael Oliveira-Silva", + "Michel Miranda (Globant)", + "Michelle Burd", + "Mike Carlson", + "Mike Swartz", + "Miles Mbo", + "Molly Flemming", + "Mona El-Falou (Ascendion, Inc)", + "Mykhalio Ostapysko (Globant)", + "Nat Meo (Ascendion, Inc)", + "Nathan Adams", + "Nicholas Curtis", + "Nick Burlingame", + "Nico Suc", + "Nicolas del Fiorentino (Globant)", + "Nikita Zetilov", + "Niklas Ekman", + "Nilay Karaoglu", + "Nirali Vadera (Ascendion, Inc)", + "Oden Stark", + "Omar ElGaml", + "Oscar Åkesson", + "Oskar Pedersen", + "Oswaldo Leyva Barrientos", + "Pär Axelsson", + "Patrick Szafranko (Ascendion, Inc)", + "Patrick Tobin", + "Paul Schierman", + "Pavel Grebnev", + "Peter Larsson", + "Petter Gisslen", + "Petter Holmberg", + "Petter Lundgren", + "Pouya Ashraf", + "Prashant Sharma (Ascendion, Inc)", + "Rasmus Källqvist", + "Rebecca Kullenius", + "Rebecca McFadden", + "Reece Sagun (Ascendion, Inc)", + "Richard Meurling", + "Richard Payne (Insight Global, Inc)", + "River Gillis", + "Robert Di Battista", + "Robert Hunt", + "Robert Hurley (Ascendion, Inc)", + "Robert Sanchez", + "Robin Somers", + "Rodel Dela Cruz (Ascendion, Inc)", + "Rodrick Edwards", + "Roger Duke (Insight Global, Inc)", + "Samantha Hallam", + "Samuel Sage (Insight Global, Inc)", + "Samuel Schimmel (Insight Global, Inc)", + "Samuel Smethurst (Ascendion, Inc)", + "Santosha Bhat (Ascendion, Inc)", + "Sarmis-Stefan Streanga (Globant)", + "Sean Reilly", + "Sebastian Ross", + "Shane Pierce", + "Shipra Behera", + "Simon Fagerholm", + "Sofie Niska", + "Stauffer Taylor", + "Stefan Torstensson", + "Stephanie Huynh", + "Stephen Trigger (Insight Global, Inc)", + "Sunil Nikam (Ascendion, Inc)", + "Tara Pratap", + "Taylor Feddersen", + "Therese Andersson", + "Timur Nazarov", + "Tommy Wallberg", + "Tushar Patil (Ascendion Inc)", + "Tyler Fedoris (Insight Global, Inc)", + "Udit Gandhi (Ascendion, Inc)", + "Vinay Kumar S B (Ascendion Inc)", + "Volodymyr Belianinov (Ascendion, Inc)", + "Wenfei Zhu", + "Wes Pesetti", + "Will Van Keulen", + "William Harmon (Insight Global, Inc)", + "Zeshan Ahmed (Ascendion, Inc)" + ] + } + ] + }, + { + "discipline": "Production", + "titles": [ + { + "title": "Executive Producer, Education", + "names": [ + "Allison Matthews" + ] + }, + { + "title": "Executive Producers", + "names": [ + "Anita Sujarit", + "Chloe Brennan", + "Fredrik Telenius", + "Ingela Garneij", + "Kayla Kinnunen", + "Klas Hammarström" + ] + }, + { + "title": "Director of Bedrock Platform", + "names": [ + "Michael McManus" + ] + }, + { + "title": "Director of Creator", + "names": [ + "Travis Howland" + ] + }, + { + "title": "Director of Ecosystem Experiences", + "names": [ + "Saher Hirji" + ] + }, + { + "title": "Director of Internal New Games", + "names": [ + "David Nisshagen" + ] + }, + { + "title": "Director of Minecraft Launcher", + "names": [ + "David Siegel" + ] + }, + { + "title": "Director of Minecraft Online & Marketplace", + "names": [ + "Jessica Zahn" + ] + }, + { + "title": "Director of Minecraft Websites", + "names": [ + "Todd Baldwin" + ] + }, + { + "title": "Director of Publishing and Licensing", + "names": [ + "Dennis Ries" + ] + }, + { + "title": "Production Directors", + "names": [ + "Alina Skripnyk", + "Donald Brinkman", + "Eric Taylor", + "Jaime Vargas", + "Justin Edwards", + "Kristina Ashment", + "Marcus Bodin", + "Melinda Knight", + "Molly Woodruff", + "Nathan Rose", + "Todd Stevens", + "Tyler Jeffers (Formosa)" + ] + }, + { + "title": "Production Leads", + "names": [ + "Carrie Doring", + "Micah Myerscough", + "Milo Bengtsson", + "Mona Landh Gullberg", + "Sarah Carton", + "Tim Mardell" + ] + }, + { + "title": "Producers", + "names": [ + "Adrian Östergård", + "Allan Contreras (Insight Global, Inc)", + "Anjelika Zora Kosanic", + "Anna Lundgren", + "Annica Strand", + "Aqsa Rauf (Apex Systems, Inc)", + "Bryan G. Bonham", + "Carlos Naranjo", + "Carolin Szymaniak", + "Charlotte Angantyr", + "Dejan Dimic", + "Elin Roslund", + "Eliot Lee", + "Emily Steele (Formosa)", + "Grace Jung-Stanley (Allegis Group Services, Inc)", + "Hillary Good (Aquent, LLC)", + "Isaac Barron (Globant)", + "Jennifer Dotson (Insight Global, Inc)", + "Josefin Olsson", + "Josefine Brink", + "Kristina Barandiy", + "Laylah Bulman", + "Linda Dalin", + "Lisa Kempe", + "Luis Qiang Liu", + "Marc Watson", + "Marie Bustgaard Granlund", + "Megan Rodes (Formosa)", + "Micael Sjölund", + "Natalie Selin", + "Nicolette Suraga", + "Nikoo Jorjani", + "Petter Denninger", + "Riccardo Lenzi", + "Seo Hee Hong", + "Seyit Ivhed", + "Steph Huske (TEKsystems, Inc)", + "Tess Kearney (Formosa)", + "Tina Lin (Ascendion, Inc)" + ] + }, + { + "title": "Media Producers", + "names": [ + "André Angerbjörn", + "Ines Quintanar Cardenas", + "Johan Kvarnemo" + ] + }, + { + "title": "Product Manager Leads", + "names": [ + "Candice Giffin", + "Carlos Figueiredo", + "Justin Johnson", + "Nick Horvath" + ] + }, + { + "title": "Product Managers", + "names": [ + "Andrea Lam-Flannery", + "Barbara Konchinski", + "Donyea Cooley-White", + "Erica Lares (Apex Systems, Inc)", + "Esteban Balbuena (Globant)", + "Jorge Aleman Rodriguez", + "Kari C Whiteside", + "Kat Siegert", + "Liz Smith", + "Madeline Psenka", + "Mike Ammerlaan", + "Milena Gonzalez", + "Stephen A Scott", + "Su Liu" + ] + }, + { + "title": "Organizational Coaches", + "names": [ + "Rasmus Noah Hansen" + ] + }, + { + "title": "Release Management Lead", + "names": [ + "Josh Mulanax" + ] + }, + { + "title": "Release Managers", + "names": [ + "Andrew Pritchard", + "Hailey Dice (Hanson Consulting Group, Inc)", + "Joseph Panaccione (Apex Systems, Inc)", + "Joshua Bullard", + "Kyle Sullivan (Hanson Consulting Group, Inc)" + ] + }, + { + "title": "Technical Writers", + "names": [ + "Jill Headen (Insight Global, Inc)", + "Jim Seaman (Insight Global, Inc)" + ] + }, + { + "title": "Technical Program Manager Lead", + "names": [ + "Eric Odell-Hein" + ] + }, + { + "title": "Technical Program Managers", + "names": [ + "Aysha Davis (Cyborg Mobile LLC)", + "Beth Carty (Insight Global, Inc)", + "Brynn Medelsohn (Insight Global, Inc)", + "Daniel Stewart", + "Devarshi Hazarika", + "Diana Lind (Harvey Nash, Inc)", + "DJ Stiner", + "Dom Arcamone", + "Dylan Kesselring (Insight Global, Inc)", + "Eloise Espel", + "Erfon Haubenstock", + "Hai Shi", + "Heesung Koo", + "Henning Erlandsen", + "James Friedenberg (Insight Global, Inc)", + "James Gregory", + "Joshua Mueller (Apex Systems, Inc)", + "Kara Kono", + "Katie Ellison", + "Kei Schafer", + "Lauren Henderson", + "Quinn Richter", + "Rachel Ji", + "Stephen Frothingham (Wimmer Solutions)", + "Tia Dalupan", + "Tori Tippin", + "William Weber (Apex Systems, Inc)" + ] + }, + { + "title": "Localization", + "names": [ + "Amber Wu (Shanghai Wicresoft Co, Ltd.)" + ] + }, + { + "title": "Playtest Coordinator", + "names": [ + "Axel Savage" + ] + } + ] + }, + { + "discipline": "Visual Arts", + "titles": [ + { + "title": "Creative Leads", + "names": [ + "Antti Meriluoto", + "Erik Gestrelius", + "Johan Aronsson", + "Martin Johansson-He" + ] + }, + { + "title": "Creative Manager", + "names": [ + "Samir Belarbi" + ] + }, + { + "title": "Art Directors", + "names": [ + "Amanda Ström", + "Filip Keatley Thoms", + "Jasper Boerstra", + "Julian Kerr", + "Lynwood Montgomery (Formosa)", + "Markus Karlsson Frost", + "Ninni Landin", + "Seung Sung", + "Telemachus Stavropoulos", + "Viktor Blanke" + ] + }, + { + "title": "Artist Leads", + "names": [ + "Alexandra Dogaru", + "Evelina Kolovou", + "Joule Garvin", + "Michael Apolis", + "Michael Ray Neumann" + ] + }, + { + "title": "Artists", + "names": [ + "Adam Sellerfors", + "Aleesa Tana (Formosa)", + "Andrea Sanchez Sepulveda (Formosa)", + "Brandon Korvas (Ten Gun Design, Inc)", + "Brendan 'Sully' Sullivan", + "Celene Tolentino (Harvey Nash, Inc)", + "Chi Wong", + "Christian Nordgren", + "Claire Selvog (Formosa)", + "Cristina Bravo Amigueti", + "Dana Mack (Harvey Nash, Inc)", + "Erin Biafore (Formosa)", + "Florian Decupper", + "Jan Cariaga", + "Jei Ling (Formosa)", + "Jesse Munguia", + "Kailey Hara (Formosa)", + "Kate Anderson (Formosa)", + "Kirk Barnett", + "Lauren Bravo-Kohler", + "Linus Chan (Formosa)", + "Mariana Salimena", + "Mark Eash Hershberger (Formosa)", + "Mark Reyes (Formosa)", + "Mattis Grahm", + "Morten Rasmussen", + "Patrick Rodes (Formosa)", + "Peter Sheff", + "Rudy Solidarios (Formosa)", + "Salinee Goldenberg (Formosa)", + "Sarah Boeving", + "Sarah Corean (Formosa)", + "Sarah Martino (Formosa)", + "Stephanie Nannariello (Harvey Nash, Inc)", + "William Thomas" + ] + }, + { + "title": "Technical Artist", + "names": [ + "Dan Sönne" + ] + }, + { + "title": "Product Design Leads", + "names": [ + "Connor Burtis", + "Ryan Sand", + "Will Krause" + ] + }, + { + "title": "Product Designers", + "names": [ + "Adrian Ward", + "Affe Piran", + "Débora Martins", + "Kelsey Ranallo", + "Laura Palmroth", + "Lisa Dahlström" + ] + }, + { + "title": "Graphic Designers", + "names": [ + "Adrian Leon (Formosa)", + "Caitlin Willhoite (Ten Gun Design, Inc)", + "Dalila Copeland (Formosa)", + "Javier Rodriguez (Formosa)", + "Meagan Dumford" + ] + } + ] + }, + { + "discipline": "Audio", + "titles": [ + { + "title": "Audio Directors", + "names": [ + "Peter Hont", + "Samuel Åberg" + ] + }, + { + "title": "Sound Designers", + "names": [ + "Magnus Mikander", + "Thareeq Roshan", + "Tom Koselnik Olovsson" + ] + }, + { + "title": "Music composed by", + "names": [ + "Aaron Cherof ", + "Daniel Rosenfeld", + "Kumi Tanioka", + "Lena Raine" + ] + } + ] + }, + { + "discipline": "Quality Assessment", + "titles": [ + { + "title": "Quality Manager", + "names": [ + "David Fries" + ] + }, + { + "title": "Quality Leads", + "names": [ + "Joe Whitman", + "Mimi Holmstead" + ] + }, + { + "title": "Quality Engineers", + "names": [ + "Agata Monk", + "Aidan Bower", + "Angela Ong", + "Archita Keni", + "Chris Woelfel", + "Christina Tran", + "Erik Davis", + "Lisa Porter", + "Mark McAllister", + "Melissa Moorehead", + "Mike Su", + "Tom Brisbane" + ] + }, + { + "title": "Quality Analysts", + "names": [ + "Alyssa Liu", + "Dalrek Davis", + "Tom French" + ] + }, + { + "title": "Quality Assessment Specialists", + "names": [ + "Björn Philipson", + "Kristian Björk Grimberg", + "Matthew Dryden", + "Olle Personne" + ] + }, + { + "title": "Program Managers", + "names": [ + "Bill Brewster (Experis)", + "Darren Benskin (Experis)", + "Dave Watkins (Experis)", + "Jon Doyle (Experis)", + "Lewis Read (Experis)" + ] + }, + { + "title": "Test Directors", + "names": [ + "Angelica Morris (Experis)", + "Brian Canning (Experis)" + ] + }, + { + "title": "Test Managers", + "names": [ + "Ben Farley (Experis)", + "Benjamin Sousa (Experis)", + "Ian S. Nelson (Experis)", + "Łukasz Mikusek (Lionbridge)", + "Mateusz Kałuża (Lionbridge)", + "Paweł Piekarski (Lionbridge)", + "Tyler Lovemark (Experis)" + ] + }, + { + "title": "Team Leads", + "names": [ + "Kamil Kostrzewa (Lionbridge)", + "Michał Sławek (Lionbridge)", + "Piotr Jasiński (Lionbridge)", + "Zuzanna Gieszcz (Lionbridge)" + ] + }, + { + "title": "Test Leads", + "names": [ + "Adam Ronowski (Lionbridge)", + "Alan Aclon (Insight Global, Inc)", + "Daniel March (Lionbridge)", + "Kamil Zakrzewski (Lionbridge)", + "Maria Berube (Experis)", + "Santiago Quinio (Experis)" + ] + }, + { + "title": "Test Automation Engineers", + "names": [ + "Łukasz Marek (Lionbridge)", + "Michał Nowak (Lionbridge)" + ] + }, + { + "title": "Software Test Engineers", + "names": [ + "Ada Kierzkowska (Lionbridge)", + "Adam DuBois (Experis)", + "Adam Rączkowski (Lionbridge)", + "Agata 'Tiger' Kawalec (Lionbridge)", + "Aleksandra Traczyk (Lionbridge)", + "Bartłomiej Łobocki (Lionbridge)", + "Bartłomiej Mathea (Lionbridge)", + "Błażej Rajewski (Lionbridge)", + "Cezary Romecki (Lionbridge)", + "Chris Youngs (Insight Global, Inc)", + "Daniel Tazelaar (Lionbridge)", + "David Deans (Experis)", + "Eric Izurieta (Experis)", + "Gabe Castro (Experis)", + "Henrik Ackler (Lionbridge)", + "Isaac Villagomez (Lionbridge)", + "Iwona Cieśla (Lionbridge)", + "Jakub Opaliński (Lionbridge)", + "Jared Lesczynski (Experis)", + "Jordan Heredia (Experis)", + "Joseph Cuen (Experis)", + "Julie Tucker (Experis)", + "Katarzyna Pastor (Lionbridge)", + "Kinga Izdebska (Lionbridge)", + "Konrad Czaplewski (Lionbridge)", + "Krzysztof Górski (Lionbridge)", + "Logan Marshall-Medlock (Experis)", + "Łukasz Jankowski (Lionbridge)", + "Łukasz Michalak (Lionbridge)", + "Marcin Klimek (Lionbridge)", + "Marcin Krysiak (Lionbridge)", + "Marcin Morel (Lionbridge)", + "Marcin Rosłon (Lionbridge)", + "Mateusz Janiszewski (Lionbridge)", + "Mateusz Miksa (Lionbridge)", + "Michał Tomaszewski (Lionbridge)", + "Paulina Pałdyna (Lionbridge)", + "Piotr Burkowski (Lionbridge)", + "Piotr Gruszczyński (Lionbridge)", + "Piotr Orłowski (Lionbridge)", + "Richard Withrow (Experis)", + "Robert Alvarez (Experis)", + "Robert Bergeron (Experis)", + "Ryan Weant (Experis)", + "Sebastian Polanica (Lionbridge)", + "Sviatoslav Porubanskyi (Lionbridge)", + "Tevis Campbell (Experis)", + "Witold Januszewski-Skup (Lionbridge)", + "Witold Matejewski (Lionbridge)" + ] + }, + { + "title": "Test Associates", + "names": [ + "Adam Czajkowski (Lionbridge)", + "Adrian Jakóbczak (Lionbridge)", + "Agata Stelmach (Lionbridge)", + "Agnieszka Sobieszuk (Lionbridge)", + "Aibat Yelemes (Lionbridge)", + "Alan Kotowski (Lionbridge)", + "Albert Wujkowski (Lionbridge)", + "Aleksander Borysiak (Lionbridge)", + "Aleksandra Jakubowska (Lionbridge)", + "Aleksandra Stelmach (Lionbridge)", + "Alexey Solopov (Lionbridge)", + "Amelia Rozborska (Lionbridge)", + "Andrew McFarland (Lionbridge)", + "Andżelika Kurek (Lionbridge)", + "Anna Gordon (Lionbridge)", + "Anna Gutowska (Lionbridge)", + "Anna Zachara (Lionbridge)", + "Anthony Lopez (Lionbridge)", + "Anthony Zehm (Lionbridge)", + "Arkadiusz Grzanka (Lionbridge)", + "Arkadiusz Grzesiński (Lionbridge)", + "Artem Matvieievskyi (Lionbridge)", + "Ata Helvacioglu (Lionbridge)", + "Barbara Rutkowska (Lionbridge)", + "Bartłomiej Krupiński (Lionbridge)", + "Bartłomiej Słodkowski (Lionbridge)", + "Bartosz Kacprzak (Lionbridge)", + "Bartosz Pikutin (Lionbridge)", + "Bartosz Sowiński (Lionbridge)", + "Bartosz Świderski (Lionbridge)", + "Bartosz Waleśkiewicz (Lionbridge)", + "Brady Smith (Lionbridge)", + "Burton Groves (Lionbridge)", + "Casey Nelson (Lionbridge)", + "Cassan François (Lionbridge)", + "Damian Bartak (Lionbridge)", + "Damian Galicki (Lionbridge)", + "Damian Spysiński (Lionbridge)", + "Damian Sztyk (Lionbridge)", + "Daniel Niewiadomski (Lionbridge)", + "Daniel Posiadała (Lionbridge)", + "Dominik Zwoliński (Lionbridge)", + "Evan Armstrong (Experis)", + "Ewa Merska (Lionbridge)", + "Filip Busłowicz (Lionbridge)", + "Filip Firlej (Lionbridge)", + "Franciszek Ścirka (Lionbridge)", + "Gabriel Mróz (Lionbridge)", + "Gabriel Wiśniowski (Lionbridge)", + "Heorhii Lystopad (Lionbridge)", + "Hubert Uberman (Lionbridge)", + "Ignacy Kukliński (Lionbridge)", + "Igor Bogusiewicz (Lionbridge)", + "Jacek Misztal (Lionbridge)", + "Jacob Childers (Experis)", + "Jacob Otto (Lionbridge)", + "Jakub Bobiński (Lionbridge)", + "Jakub Górnicki (Lionbridge)", + "Jakub Grzebisz (Lionbridge)", + "Jakub Istynowicz (Lionbridge)", + "Jakub Kliś (Lionbridge)", + "Jakub Malinowski (Lionbridge)", + "Jakub Mierzejewski (Lionbridge)", + "Jakub Mihułka (Lionbridge)", + "Jakub Obstawski (Lionbridge)", + "Jakub Owczarzak (Lionbridge)", + "Jakub Więch (Lionbridge)", + "Jakub Wojciechowski (Lionbridge)", + "Jan Kamiński (Lionbridge)", + "Jan Owczarczyk (Lionbridge)", + "Jan Tomaszewski (Lionbridge)", + "Joanna Kossut (Lionbridge)", + "John Castro Chico", + "Julia Fischbach (Lionbridge)", + "Kacper Gosławski (Lionbridge)", + "Kacper Lędzion (Lionbridge)", + "Kacper Pławny (Lionbridge)", + "Kacper Pućka (Lionbridge)", + "Kacper Senkowicz (Lionbridge)", + "Kacper Stalewski (Lionbridge)", + "Kamil Szymański (Lionbridge)", + "Kamil Wiktorowski (Lionbridge)", + "Kamran Akhundov (Lionbridge)", + "Kansas Spence (Experis)", + "Karol Mikusek (Lionbridge)", + "Karolina Prekurat (Lionbridge)", + "Kinga Banasiuk (Lionbridge)", + "Klim Kuznetsov (Lionbridge)", + "Konrad Justyński (Lionbridge)", + "Konrad Kruszyński (Lionbridge)", + "Konrad Pyrzanowski (Lionbridge)", + "Krzysztof Bajor (Lionbridge)", + "Kuba Karakula (Lionbridge)", + "Laura Androsiuk (Lionbridge)", + "Łukasz Sterna (Lionbridge)", + "Maciej Ginter (Lionbridge)", + "Maciej Waszczuk (Lionbridge)", + "Maciej Wnuk (Lionbridge)", + "Magdalena Orzyłowska (Lionbridge)", + "Magdalena Wardak (Lionbridge)", + "Maja Piątek (Lionbridge)", + "Maksymilian Fabjańczuk-Niemirski (Lionbridge)", + "Maksymilian Kubiak (Lionbridge)", + "Maksymilian Skalski (Lionbridge)", + "Maksymilian Szydlik (Lionbridge)", + "Maliki Wilson (Lionbridge)", + "Marceli Naskrętski (Lionbridge)", + "Marcin Cudny (Lionbridge)", + "Marcin Kubicki (Lionbridge)", + "Marcin Paszkiewicz (Lionbridge)", + "Marharyta Yelsukova (Lionbridge)", + "Marion Bojarski (Lionbridge)", + "Marta Czwarnóg (Lionbridge)", + "Martyna Szczepańska (Lionbridge)", + "Mateusz Koriat (Lionbridge)", + "Mateusz Panek (Lionbridge)", + "Mateusz Radzyński (Lionbridge)", + "Mateusz Świecki (Lionbridge)", + "Max Stein (Experis)", + "Michał Kierzkowski (Lionbridge)", + "Michał Kowalik (Lionbridge)", + "Michał Przystup (Lionbridge)", + "Michał Sobianek (Lionbridge)", + "Mikołaj Błażejewski (Lionbridge)", + "Mikołaj Gruźliński (Lionbridge)", + "Mikołaj Pawlak (Lionbridge)", + "Mykhailo Prokhorov (Lionbridge)", + "Nicholas Latino", + "Nikola Janiak (Lionbridge)", + "Oleksandr Lohin (Lionbridge)", + "Oleksii Hrabovskyi (Lionbridge)", + "Oskar Wiktorowicz (Lionbridge)", + "Oskar Żurawski (Lionbridge)", + "Patryk Karwowski (Lionbridge)", + "Patryk Kubiszewski (Lionbridge)", + "Patryk Piekarski (Lionbridge)", + "Paweł Kaleta (Lionbridge)", + "Paweł Wójcik (Lionbridge)", + "Paweł Zwoliński (Lionbridge)", + "Piotr Adamiak (Lionbridge)", + "Piotr Gałecki (Lionbridge)", + "Piotr Kompa (Lionbridge)", + "Piotr Szafranowski (Lionbridge)", + "Przemysław Rybicki (Lionbridge)", + "Przemysław Wojtaszek (Lionbridge)", + "Radosław Czerniszewski (Lionbridge)", + "Rafał Adamski (Lionbridge)", + "Rafał Gołębiewski (Lionbridge)", + "Rafał Owsa (Lionbridge)", + "Rafał Żulewski (Lionbridge)", + "Rion Cox (Lionbridge)", + "Rob Thomas", + "Robert Zabłocki (Lionbridge)", + "Robert Żulewski (Lionbridge)", + "Sebastian Biegaj (Lionbridge)", + "Sebastian Esqueda (Experis)", + "Sebastian Łuczak (Lionbridge)", + "Sebastian Michalski (Lionbridge)", + "Sophie James (Lionbridge)", + "Stanisław Świderski (Lionbridge)", + "Szymon Barciś (Lionbridge)", + "Szymon Pielacha (Lionbridge)", + "Szymon Studencki (Lionbridge)", + "Thomas Jessup (Lionbridge)", + "Tim Radoń-Dubiniecki (Lionbridge)", + "Tomasz Pyszczek (Lionbridge)", + "Uladzislau Kakhniuk (Lionbridge)", + "Viktoryia Liashkevich (Lionbridge)", + "Weronika Szajnfeld (Lionbridge)", + "Wiktoria Książek (Lionbridge)", + "Wiktoria Zatyka (Lionbridge)", + "Wojciech Olszewski (Lionbridge)", + "Wojciech Przewdziecki (Lionbridge)", + "Yuliia Stefurak (Lionbridge)", + "Zofia Kossarzecka (Lionbridge)" + ] + } + ] + }, + { + "discipline": "User Research", + "titles": [ + { + "title": "User Research Lead", + "names": [ + "Deanne Adams" + ] + }, + { + "title": "User Researcher", + "names": [ + "Sarah Santiago" + ] + } + ] + }, + { + "discipline": "Operations", + "titles": [ + { + "title": "Player Operations Director", + "names": [ + "Deanna Hearns" + ] + }, + { + "title": "Operations Directors, Global", + "names": [ + "Shanlenn B. Colby", + "Yassal Sundman" + ] + }, + { + "title": "Operations Manager, Global", + "names": [ + "Ellen Hahm" + ] + }, + { + "title": "Operations Managers", + "names": [ + "Karolina Nylén", + "Mikaela Illanes", + "Renee Wikander", + "Stephanie Golden (Insight Global, Inc)" + ] + }, + { + "title": "Operations Coordinator", + "names": [ + "Stefanie Forsberg" + ] + }, + { + "title": "Creative Operations Director", + "names": [ + "Ulrika Silfverstolpe" + ] + }, + { + "title": "Creative Operations Manager", + "names": [ + "Isabella Balk" + ] + }, + { + "title": "People Operations Managers", + "names": [ + "Adam Lemcio", + "Ani Grey", + "Brittney Pettway", + "Catherine Hendrix", + "Georgia Marra", + "Ludwig Moberg Edenbäck", + "Mira Aboulhoson" + ] + }, + { + "title": "HR Directors", + "names": [ + "Darcy Harpel", + "Natalie Graham" + ] + }, + { + "title": "Human Resources", + "names": [ + "Aleksandra Ola Zajac", + "Alexandra Ward", + "Jonas Bergelli", + "Katarina Starendal", + "Linn Holmertz", + "Marie Tolf", + "Milica Tesic Stojanovic", + "Richard Nelleus", + "Sheila Ho", + "Ulrika Wörding" + ] + }, + { + "title": "Talent Acquisition", + "names": [ + "Elnaz Tajahmadi Tabrizi", + "Eman Lakhani (Insight Global, Inc)", + "Jeff Guyton (Insight Global, Inc)", + "Scott MacPherson (Insight Global, Inc)" + ] + }, + { + "title": "Office Manager", + "names": [ + "Joël Älveroth" + ] + }, + { + "title": "Executive Business Administrators", + "names": [ + "Erin Decker", + "Francine Jordan (Simplicity Consulting Inc)", + "Lovisa Grindelius" + ] + }, + { + "title": "IT Managers", + "names": [ + "Adam MacDowall", + "Jason Perry Minard", + "Rene Astorga" + ] + }, + { + "title": "IT", + "names": [ + "Anton Wu", + "Cesar Sima Falck", + "Dacke Blixt", + "Morris Kellokoski", + "Shoghi Cervantes Pueyo", + "Zelda Karttunen" + ] + }, + { + "title": "Lead Automation Support", + "names": [ + "Matthew C. Moreno" + ] + }, + { + "title": "Automation Support", + "names": [ + "Bill Erhard (Insight Global, Inc)" + ] + } + ] + }, + { + "discipline": "Player Care", + "titles": [ + { + "title": "Director of Player Care", + "names": [ + "Anne Quaranta" + ] + }, + { + "title": "Player Support Program Leads", + "names": [ + "Jake Rexus", + "Jen Pedersen" + ] + }, + { + "title": "Player Support", + "names": [ + "Dan Coronel (Apex Systems, Inc)", + "Justin Putnam (Apex Systems, Inc)" + ] + } + ] + }, + { + "discipline": "Data Analytics", + "titles": [ + { + "title": "Player Analytics and Insights Director", + "names": [ + "Francisco Rius" + ] + }, + { + "title": "Data Science and Analytics Manager", + "names": [ + "Abby Gaddis" + ] + }, + { + "title": "Data Engineering Manager", + "names": [ + "Bill Chism" + ] + }, + { + "title": "Analytics Environment Manager", + "names": [ + "Troy Henke" + ] + }, + { + "title": "Analytics Environment Engineering", + "names": [ + "Saif Adeeb (Ascendion, Inc)", + "Sebastian Soffici" + ] + }, + { + "title": "Data Science", + "names": [ + "Aaron Johnson", + "Alvaro Gil Moradillo", + "Bhrigu Shree", + "Christer Norstrom", + "Erin Michet", + "Grant Poinsatte", + "Jonathan Bush (KellyMitchell Group, LLC)", + "Julianne Toto (Kelly Management Services, Inc)", + "Matilda Eriksson", + "Matthew Skirvin", + "Max Davidson", + "Miguel Fierro", + "Pujeethaa Jakka (Apex Systems, Inc)", + "Ramitha Kotarkonda", + "Ricardo Silva Oquendo (KellyMitchell Group, LLC)", + "Scott Graham", + "Swathi Sivadas", + "Xuan Ting Liu" + ] + }, + { + "title": "Data Engineering", + "names": [ + "Bill Klees", + "Deepthi Rajashekar", + "Dhiraj Nilange", + "Olusola Timothy Olojede", + "Sachin Dekate", + "Smitha Menon" + ] + } + ] + }, + { + "discipline": "Business Management & Licensing", + "titles": [ + { + "title": "Strategy Director", + "names": [ + "Jonas Martensson" + ] + }, + { + "title": "Program Director, China Consumer & Global Partnerships", + "names": [ + "Jeremy Snook" + ] + }, + { + "title": "Program Director, Consumer Products", + "names": [ + "Federico San Martin" + ] + }, + { + "title": "Program Directors", + "names": [ + "Ava Volandes", + "Bob Brennecke", + "Eileen Lee", + "Gaylon Blank", + "Stephanie Louie Craig" + ] + }, + { + "title": "Business Director, Franchise", + "names": [ + "Anthony Murphy" + ] + }, + { + "title": "Business Director, Japan & Market Expansion", + "names": [ + "Yutaka Noma" + ] + }, + { + "title": "Business Director, Operations", + "names": [ + "Bill Lindell" + ] + }, + { + "title": "Business Directors", + "names": [ + "Dan Zou", + "Hanna Willis", + "Michelle Hua", + "Patrick Geuder", + "Shabnam Elmi" + ] + }, + { + "title": "Business Development Managers", + "names": [ + "Christy Weckner", + "Inga Chamberlain", + "Maru Zamora", + "Nick Gallagher (Digital Intelligence Systems, LLC)", + "Rebecca A Miller", + "Ryan Eng (Aerotek, Inc)" + ] + }, + { + "title": "Program Managers", + "names": [ + "Aaron Hughes (Insight Global, Inc)", + "Adam Conder (Insight Global, Inc)", + "Aria Azizi", + "Bobby Ou (my3Twelve, LLC)", + "Brett Coleman (Apex Systems, Inc)", + "David Jho (my3Twelve, LLC)", + "Emily Carlson", + "Felix Huang Jr. (Insight Global, Inc)", + "Garbo Chan (my3Twelve, LLC)", + "Greg Walls (Insight Global, Inc)", + "John Mercil (Insight Global, Inc)", + "Josh Ayala (Insight Global, Inc)", + "Julie Olden", + "Liz Leo", + "Mabel Chan (my3Twelve, LLC)", + "Micky Yamaguchi", + "Monica Burba (Apex Systems, Inc)", + "Morgan Farrar", + "Nedra Wilson", + "Stuart U (my3Twelve, LLC)", + "Susie Tinker", + "Vince Davis Espino (Insight Global, Inc)" + ] + }, + { + "title": "Business Managers", + "names": [ + "Audrey Searcy", + "Brandon H Kim (Insight Global, Inc)", + "Christopher Johnsen (Allegis Group Services, Inc)", + "Dana Friesen (Insight Global, Inc)", + "David K Lau", + "Elizabeth Link (Aquent, LLC)", + "Ellen Wu", + "Eve Vashkus", + "Fredrika Wessman", + "Janet Cunningham (Harvey Nash, Inc)", + "Kristin Grein", + "Matt Morgan", + "Natalia Ellenson", + "Nichole Green", + "Sarah Souza (Epitec Inc)", + "Stephanie Turl (JeffreyM Consulting, LLC)" + ] + } + ] + }, + { + "discipline": "Brand Management", + "titles": [ + { + "title": "Brand Director", + "names": [ + "Thomas Falkenstrom" + ] + }, + { + "title": "Brand Manager", + "names": [ + "Harry Elonen" + ] + } + ] + }, + { + "discipline": "Communications", + "titles": [ + { + "title": "Chief Storyteller", + "names": [ + "Lydia Winters" + ] + }, + { + "title": "Media Director", + "names": [ + "Vu Bui" + ] + }, + { + "title": "Director of Communications", + "names": [ + "Emil Rodriguez", + "Owen Jones" + ] + }, + { + "title": "Communications Managers", + "names": [ + "Addie Coronado", + "Alexis Crofts (Assembly Media, Inc)", + "Hollis Wacker-Leja", + "Holly Amber Smith", + "Katie Guo (Assembly Media, Inc)", + "Maysan Zubi (Assembly Media, Inc)", + "Michael Rougeau (Assembly Media, Inc)", + "Petra Tell", + "Ramona Suris (Assembly Media, Inc)", + "Wesley Gore (Assembly Media, Inc)", + "Zulai Serrano" + ] + }, + { + "title": "Creative Writers", + "names": [ + "Cristina Anderca", + "Linn Wiberg", + "Per Landin", + "Sophie Austin" + ] + }, + { + "title": "Director of Community", + "names": [ + "Nea Aime Rollan" + ] + }, + { + "title": "Social Media Lead", + "names": [ + "Sean Flanery" + ] + }, + { + "title": "Social Media Managers", + "names": [ + "Anthony Toczek", + "Chad Oetken (Troy Consulting LLC)", + "Matt Pearsall (Aston Carter, Inc)", + "Paulina Espinoza-Gonzalez (Kforce, Inc)", + "Sarah Beecroft (JeffreyM Consulting, LLC)", + "Will Chang (Randstad)" + ] + }, + { + "title": "Community Management Lead", + "names": [ + "Joel Sasaki" + ] + }, + { + "title": "Community Managers", + "names": [ + "DèJa Easter (Apex Systems, Inc)", + "Gustav Höglund", + "Jay Wells", + "Kristina Horner", + "Lindsey Schaal", + "Matt Gartzke", + "Michelle Archer Waterman", + "Nadine Ebri (Apex Systems, Inc)" + ] + }, + { + "title": "Content Manager", + "names": [ + "Oskar Thysell" + ] + }, + { + "title": "Publishing Editors", + "names": [ + "Giuseppe Libonati (Insight Global, Inc)", + "Kyle Wood (Insight Global, Inc)", + "Lauren Marklund" + ] + } + ] + }, + { + "discipline": "Marketing", + "titles": [ + { + "title": "Head of Marketing", + "names": [ + "Jessica Freeman" + ] + }, + { + "title": "Marketing Directors", + "names": [ + "Fergus Lynch", + "Jeanie DuMont", + "Katie Penza" + ] + }, + { + "title": "Marketing Managers", + "names": [ + "Anton Maslennikov", + "Arkadiy Goldenshtern", + "Barrett Livingston (Apex Systems, Inc)", + "Bradley Cummings", + "Cori Anne Montero", + "Egil Gloersen", + "Gaylord Escalona", + "Halley Chang", + "Irene Ahn", + "Jaime Limon", + "Janis Fein (Ascendion Inc)", + "Jeff Rivait", + "Jen Barry (Ten Gun Design, Inc)", + "Lauren Schuur (Ten Gun Design, Inc)", + "Lindsay Auten (Synaxis Corporation)", + "Melissa Jenkins", + "Nick Ketter", + "Sam Brody (Ten Gun Design, Inc)", + "Sara Cornish" + ] + }, + { + "title": "Web Content Manager", + "names": [ + "Joe Corrigan (Ten Gun Design, Inc)" + ] + }, + { + "title": "Web Content Authors & QA", + "names": [ + "Deepak Bahadoor (HCL Technologies)", + "Nilesh Jaiswal (HCL Technologies)", + "Tobias Bankson (Ten Gun Design, Inc)" + ] + }, + { + "title": "Project Manager", + "names": [ + "Julie Toomey (Ten Gun Design, Inc)" + ] + } + ] + }, + { + "discipline": "Legal", + "titles": [ + { + "title": "Head of Legal", + "names": [ + "Nick Morgan" + ] + }, + { + "title": "Senior Legal Counsel", + "names": [ + "Timothy Han" + ] + }, + { + "title": "Legal Counsel", + "names": [ + "Jyl Brown", + "Kari Annand (Snodgrass Annand)", + "Maya Yamazaki (Davis Wright Tremaine)" + ] + } + ] + }, + { + "discipline": "Finance", + "titles": [ + { + "title": "Finance Director", + "names": [ + "Marina Kostesic" + ] + }, + { + "title": "Finance Managers", + "names": [ + "Dennis Laviolette (Apex Systems, Inc)", + "Robert Scheibeck" + ] + }, + { + "title": "Financial Accountants", + "names": [ + "Aleksandra Dragosavljevic", + "Josefina Axelsson", + "Mikkel Flaekoy" + ] + }, + { + "title": "Financial Consultant", + "names": [ + "Ulrika Kihl" + ] + } + ] + } + ] + }, + { + "section": "Special Thanks", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "", + "names": [ + "4J Studios", + "Albert Pastore, Director of Business Development, Music and Talent", + "Dan Roque, Creature Developer", + "Gideon Driver, Zen3 Infosolutions America, Inc", + "Jannis Petersen, Creator of Blockbench", + "John 'DrZhark' Olarte, Creature Developer", + "Julian Gough, Writer", + "Kent Christian Jense, Creature Developer", + "Michele \"skypjack\" Caini, Senior Software Engineer", + "Microsoft Gaming Safety Team", + "Microsoft Magic Team", + "Reza Elghazi, Developer Account Manager", + "Sprung Studios, Ltd.", + "The PlayFab Team", + "The Xbox Live Team", + "Vishnu Nalagangula, Zen3 Infosolutions America, Inc", + "Xbox Games Studios" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Blackbird Interactive", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Technical Director", + "names": [ + "James Fairweather" + ] + }, + { + "title": "Programmers", + "names": [ + "Aaron Freytag", + "Ben Jones", + "Curtis Hodgins", + "Darren Grant", + "David Galloway", + "Devon Plourde", + "Dylan Reviczky", + "Jacky Cai", + "Jakob Trounce", + "Michelle Rocha", + "Mike Biddlecombe", + "Stevie Giovanni", + "Tim Stump", + "Zehao Lu" + ] + }, + { + "title": "Producers", + "names": [ + "Matt Kernachan", + "Paul Pera" + ] + }, + { + "title": "UI Artist", + "names": [ + "Richelle Brunt" + ] + }, + { + "title": "UX Designer", + "names": [ + "Sam Flores" + ] + }, + { + "title": "Quality Assurance Director", + "names": [ + "Max McNiven" + ] + }, + { + "title": "Quality Assurance Analysts", + "names": [ + "Jamie Cheung", + "Jonathan Lin", + "Kelsey Gottschlich" + ] + }, + { + "title": "Vice President, Stategic Projects", + "names": [ + "Lee McKinnon Pederson" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - CSI Interfusion Inc", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Software Engineers", + "names": [ + "Alfred Wang", + "Dowen Zhu", + "Fernly Li", + "Jeremy Robinson", + "Johnny Guo Xiao", + "Michael Braley", + "Neo Yu", + "Robert Wang", + "Robin Lu" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Disbelief", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "President", + "names": [ + "Steve Ellmore" + ] + }, + { + "title": "CTO", + "names": [ + "Steve Anichini" + ] + }, + { + "title": "Producer", + "names": [ + "Andre Gracias" + ] + }, + { + "title": "Additional Production", + "names": [ + "Glenn Zomchek" + ] + }, + { + "title": "Technical Director", + "names": [ + "Kristofel Munson" + ] + }, + { + "title": "Lead Programmer", + "names": [ + "Tim Hagberg" + ] + }, + { + "title": "Senior Programmer", + "names": [ + "Torin Wiebelt" + ] + }, + { + "title": "Programmers", + "names": [ + "Caden Parker", + "David Stout", + "Dylan Borg", + "Emmaline Kelly", + "Joey Montgomery", + "Micah Johnston" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Red Lens", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "President", + "names": [ + "Jared Noftle" + ] + }, + { + "title": "Dev Lead", + "names": [ + "Veasna Chhaysy-Park" + ] + }, + { + "title": "Tech Lead", + "names": [ + "Lily Leblanc" + ] + }, + { + "title": "Producer", + "names": [ + "Nova Barlow" + ] + }, + { + "title": "Software Engineers", + "names": [ + "Johnathan Liu", + "Grady Wright", + "Jon Castro", + "Joshua Greene", + "Mitchell Lee", + "Minji Chhaysy-Park", + "Elgin Ciani", + "Skyler Powers" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Skybox", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Founders", + "names": [ + "Derek MacNeil", + "Shyang Kong", + "Steven Silvester" + ] + }, + { + "title": "Production", + "names": [ + "Casey White", + "Dayna Cassidy", + "Dee Rueter", + "Isaac Calon", + "Jai Kristjan", + "Jason Obertas", + "Jennifer Barron", + "Keegan Dillman", + "Madeeha Ahmad", + "Yaw Obiri-Yeboah" + ] + }, + { + "title": "Quality Assurance", + "names": [ + "Chuan Shi Yu", + "Faith Chow", + "Felipe Mauricio", + "Franka Mostert", + "Ivan Yemelianov", + "Leo Hewitt", + "Mark Ball", + "Vicky Huang", + "Jimmy Chen", + "Valeriia Kirka", + "Zack Hutchinson" + ] + }, + { + "title": "Software Developers", + "names": [ + "Adrien Givry", + "Alex Denford", + "Alexandra Kabak", + "Amy Liu", + "Amy Zhao", + "Andrew Halabourda", + "Anthony Wong", + "Aidan Dearing", + "Benny Wang", + "Carsten Hooker", + "Chris Spyropoulos", + "Cody Clattenburg", + "Cody Ward", + "Colin Basnett", + "Dan Wesley", + "Daniel Shim", + "Delling Ingvaldson", + "Derek Bell", + "Eser Kokturk", + "Fred Zhang", + "Glen Conolly", + "Gordon Tisher", + "Graham Park", + "Gustav Louw", + "Hamza Khachan", + "Hao Tian", + "Hayden Hur", + "Houman Gholami", + "Jaegar Sarauer", + "Jaidon van Herwaarden", + "Jake Roman-Barnes", + "Jeffrey Chou", + "Jian Bang Xu", + "Jiazhi Chang", + "John Ferguson", + "Jon Head", + "Jonathan Yim", + "Jordan Lacey", + "Jordan Millar", + "Joseph Cameron", + "Justin Tim", + "Kelsey Zirk", + "Kirill Bizin", + "Kyle Roblin", + "Leonardo Stark", + "Mauricio A. P. Burdelis", + "Max Fanning", + "Michael Di Spirito", + "Michel Morin", + "Mike Demone", + "Mitch Lockhart", + "Mukund Agarwal", + "Nathan Lacey", + "Niamh Cuileann", + "Remy Truong", + "Richard Hawkes", + "Richard Walker", + "Rick Huang", + "Robert Felizardo", + "Ronald Ariel Kamanga", + "Shreyas Babu", + "Thomas Le Gerroue-Drevillon", + "Todd Saharchuk", + "Ty Lauriente", + "Vassil Anguelov", + "Yong Hou", + "Younggi Kim", + "Zach Campbell", + "Zaid Rauf" + ] + } + ] + } + ] + }, + { + "section": "Mojang Studios Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Original Creator of Minecraft", + "names": [ + "Markus Persson" + ] + }, + { + "title": "Studio Head of Mojang Studios", + "names": [ + "Helen Chiang" + ] + }, + { + "title": "Head of Minecraft", + "names": [ + "Matt Booty" + ] + }, + { + "title": "Head of Stockholm Studio", + "names": [ + "Ulrika Hojgard" + ] + }, + { + "title": "Chief Executive Officer", + "names": [ + "Carl Manneh" + ] + }, + { + "title": "Chief Technology Officer", + "names": [ + "Rikard Herlitz" + ] + }, + { + "title": "Chief of Staff", + "names": [ + "Andrew J. Adamyk" + ] + }, + { + "title": "Chief Creative Officer", + "names": [ + "Saxs Persson" + ] + }, + { + "title": "Head of Franchise Operations", + "names": [ + "Josh Bliggenstorfer" + ] + }, + { + "title": "Franchise Technical Director", + "names": [ + "Michael Weilbacher" + ] + }, + { + "title": "Head of Games", + "names": [ + "Patrick Liu", + "Sara Jansson Bach" + ] + }, + { + "title": "Game Director", + "names": [ + "Henrik Pettersson" + ] + }, + { + "title": "Creative Director", + "names": [ + "John Hendricks" + ] + }, + { + "title": "Creative Lead", + "names": [ + "Jesse Merriam" + ] + }, + { + "title": "Design Managers", + "names": [ + "Peter Diar Friman", + "Rabi Afram" + ] + }, + { + "title": "Game Designers", + "names": [ + "Brandon Franklin (Insight Global, Inc)", + "Colten Murphy (TEKsystems, Inc.)", + "Daniel Brynolf", + "H Jones", + "Henrik Kniberg", + "Jared Greiner", + "Jesse A Hibbs (TEKsystems, Inc.)", + "Justin Van Oort", + "Lauren E. Careccia", + "Melissa Andrews (Insight Global, Inc)", + "Miko Charbonneau", + "Nikolaj Kledzik", + "Pontus Hammarberg", + "Pradnesh Patil" + ] + }, + { + "title": "Narrative Designer", + "names": [ + "Max Herngren" + ] + }, + { + "title": "Head of Creator Platform Engineering", + "names": [ + "Jason Cahill" + ] + }, + { + "title": "Technical Directors", + "names": [ + "Christopher Östlund", + "Jason Major", + "Kristoffer Jelbring" + ] + }, + { + "title": "Engineering Managers", + "names": [ + "Erik Rahm", + "Giulio 'Mac' Maistrelli", + "Johan Williams", + "Martin Almgren", + "Michael Scott", + "Peter Olsson", + "Selma Hosni", + "Wenlan Yang" + ] + }, + { + "title": "Lead Software Engineers", + "names": [ + "Aaron Heysse", + "Adrian LaVallee", + "Henry Golding", + "Jeff Ott", + "John Copic", + "John Seghers", + "Mark D. Andersen", + "Mark Grinols", + "Michael D McGrath", + "Nathan Miller", + "Niklas Börestam", + "Piotr Kundu", + "Sebastian Hindefelt", + "Steve Robinson", + "Syrgak Turgumbaev", + "Timothy J Schutz", + "Tom Miles", + "Tyler Laing" + ] + }, + { + "title": "Technical Leads", + "names": [ + "Anton Nikolaienko", + "Fernando Via Canel" + ] + }, + { + "title": "Software Engineers", + "names": [ + "Aaron Woodward", + "Adam Ramberg", + "Adam Schoelz (Ascendion, Inc)", + "Adrian T Orszulak", + "Adrian Toncean", + "Afeez Olusegun K Bello", + "Albin Odervall", + "Alex Baird (Collabera, LLC) (Software Development)", + "Alex Wennström", + "Alexander Johansson", + "Alexander Kandalaft (Insight Global, Inc)", + "Alexander Östman", + "Alexander Sandor", + "Alexander Wilkinson", + "Amir Moulavi", + "Anders Gärdenäs", + "Anders Martini", + "Andreas Von Gegerfelt", + "Andrew Chien (Insight Global, Inc)", + "Andrew Hewitson", + "Andy Hill", + "Anna Pearson (Insight Global, Inc)", + "Anthony Cloudy", + "Archana Singh (Collabera, LLC)", + "Arindam Goswami (Ascendion, Inc)", + "Arman Vatandoust", + "Aron Nieminen", + "Arunkumar Jeganathan (Artech Consulting, LLC)", + "Ashley Rentz (Insight Global, Inc)", + "Astrid Gunne", + "Astrid Rehn", + "Austin Jensen (Insight Global, Inc)", + "Austin Larkin (Insight Global, Inc)", + "Benjamin Arnold (Insight Global, Inc)", + "Benny Hellström", + "Brendan Lauck (Insight Global, Inc)", + "Campbell Tran", + "Cezary Tomczak", + "Chris Barrett (Apex Systems, Inc)", + "Christian Westman", + "Christoffer Hammarström", + "Clayton Vaught", + "Coseo Frerichs (Insight Global, Inc)", + "Cullen Waters", + "Curtis Michael Eichner", + "Dag Oldenburg", + "Daniel Feldt", + "Daniel Frisk", + "Daniel Wustenhoff", + "Danila Dergachev", + "Dario Vodopivec", + "Dartangan Jackson (Ascendion, Inc)", + "Dave Stevens", + "David Dalström", + "David 'Lion' Kimbro (Insight Global, Inc)", + "David Marby", + "David Reiley (Collabera, LLC)", + "David Roberts (Insight Global, Inc)", + "Dimitri Kishmareishvili (CSI Interfusion, Inc)", + "Dodge Lafnitzegger (Insight Global, Inc)", + "Dolly Mackwan", + "Don S Frazier II", + "Drew Okenfuss", + "Elijah J Emerson", + "Emelie Sidesiö", + "Emil Hedemalm", + "Emily Black", + "Emily Mattlin", + "Emily Rizzo (Insight Global, Inc)", + "Eric Grimsborn", + "Erik Bylund", + "Erik Soderberg", + "Esteban Richey (Insight Global, Inc)", + "Evelyn Collier (Insight Global, Inc)", + "Fenil Shah (Collabera, LLC)", + "Filip Hedenskog", + "Fredrik Bergstrand", + "Gage Way (Insight Global, Inc)", + "Guillaume Le Chenadec", + "Håkan Wallin", + "Haley Eisenshtadt", + "Hampus Fristedt", + "Hannes Heijkenskjöld", + "Hazen Miller (Insight Global, Inc)", + "Heather Mace", + "Henrik Barratt-Due", + "Irina Koulinitch", + "Isaac de la Vega", + "Jacob Bergdahl", + "Jakob Horndahl", + "Jakob Pogulis", + "James Klock (Collabera, LLC)", + "James Linden (Insight Global, Inc)", + "James McNatton", + "Jason Orion Burch", + "Jeff 'Dextor' Blazier", + "Jeff Yanick (Ascendion, Inc)", + "Jeffery Yanick (Collabera, LLC)", + "Jeffrey J Jou (Insight Global, Inc)", + "Jeison Salazar (Insight Global, Inc)", + "Jimmy Almkvist", + "Jimmy Janow (Agility Partners, LLC)", + "Joachim Larsson", + "Joakim Ejenstam", + "Joakim Norberg", + "Johan Bernhardsson", + "Johannes Sundqvist", + "John Davis (Collabera, LLC)", + "John Estess (Randstad)", + "John Haynes", + "John Littlewood", + "John Wordsworth", + "Johnny Sjöö", + "Jonas Bergström", + "Jonathan M Ortiz", + "Jonathan R Hoof", + "Jorge Antonio Jimenez (Design Laboratory, Inc)", + "Josh Letellier", + "Joshua B Davis", + "Joshua Letellier", + "Joshua Owens (Collabera, LLC)", + "Joy Cedor (Ascendion, Inc)", + "Jun Fu (Ascendion, Inc)", + "Karim A Luccin", + "Kaylee Benoit (Randstad)", + "Kelly Fox (Insight Global Inc)", + "Kelly Keniston (Insight Global, Inc)", + "Kento Murawski (Insight Global, Inc)", + "Kirill Mikhel", + "Kristin A Siu", + "Kristoffer Kobosko", + "Larry Ukaoma", + "Leonard Gram", + "Lesia Osovska", + "Levi Stoddard (Insight Global, Inc)", + "Linus Cumselius", + "Lisa Sturm", + "Lizaveta Rubinava (Collabera, LLC)", + "Loïc Benet", + "Loren Merriman (Kalvi Consulting Services, Inc)", + "Louis A Castaneda (Insight Global, Inc)", + "Lucas Carpenter (Collabera, LLC)", + "Lucy Lauzon (Collabera, LLC)", + "Luis A Angel Mex", + "Magnus Bentling", + "Magnus Jäderberg", + "Maksim Ivanov", + "Manoj Manoharan (Ascendion, Inc)", + "Marc Neander", + "Márcio de Oliveira da Silva", + "Marcus Olofsson", + "Maria Katsourani", + "Maria Lemón", + "Markus Arvidsson", + "Markus Magnusson", + "Mårten Helander", + "Martin Hag", + "Martin Hesselborn", + "Martin Nilsson", + "Martin Odhelius", + "Martin Pola", + "Mats Henricson", + "Matthew Guze (WaferWire Cloud Technologies)", + "Maxwell Orth (Insight Global, Inc)", + "Maxxwell Plum (Insight Global, Inc)", + "Michael Andersson", + "Michael Chambers (Insight Global, Inc)", + "Michael Klopfenstein (Insight Global, Inc)", + "Michael Malmqvist", + "Michael 'Mikaus' Whiteley", + "Michael Novén", + "Miguel Menindez Segura (Ascendion, Inc)", + "Mikael Malmqvist", + "Mike Marven (Insight Global, Inc)", + "Mohamed Fouad Saga", + "Nathan Gilbert", + "Nathan Sosnovske", + "Nicholas Draper (Insight Global, Inc)", + "Norman Skinner (Insight Global, Inc)", + "Osama Balkasem (Collabera, LLC)", + "Oskar Carlbaum", + "Pär Berge", + "Patrick O'Leary", + "Patrik Hillgren", + "Paula Roth", + "Petr Mrázek", + "Philip Vieira", + "Poojitha Ponakala", + "Radha Kotamarti", + "Randy Gonzalez-Murillo (Collabera, LLC)", + "Rashad Murray (Insight Global, Inc)", + "Richard Pihlcrantz", + "Rob Austin", + "Robert Thresher (Collabera, LLC)", + "Robyn R To", + "Roman Timurson (Insight Global, Inc)", + "Rui Ma", + "Rui Xie (Insight Global, Inc)", + "Ryan Holtz", + "Ryan Seaman (Collabera, LLC)", + "Ryan Tyler Rae", + "Scott Edsall (Collabera, LLC)", + "Sebasian Hindefeldt", + "Semih Energin", + "Sina Tamanna", + "Spencer Peterson (Insight Global, Inc)", + "Srinivasa Rao Chatala (Ascendion, Inc)", + "Stacy J Chen", + "Sumith Kumar (Virtuosity)", + "Tanner Pearson (Insight Global, Inc)", + "Taylor M Riviera", + "Theodor Fleming", + "Thomas Guimbretière", + "Thomas Järvstrand", + "Thomas Spalter (Insight Global, Inc)", + "Tim Lindeberg", + "Tobias Möllstam", + "Tomas Alaeus", + "Tomer Braff (Collabera, LLC)", + "Travis Gates (Insight Global, Inc)", + "Uma Senthil Raj (Virtuosity)", + "Victor Connor", + "Vignesh Masilamani (Virtuosity)", + "Viktor Bergehall", + "Virgilio Jr Blones", + "Vitalii Sych", + "Vladimir Repcak (Collabera, LLC)", + "Ying Guo (TEKsystems, Inc.)", + "Zack Moxley (Insight Global, Inc)", + "Zane Hintzman" + ] + }, + { + "title": "Lead Architects", + "names": [ + "Greg Snook", + "Peter M. Wiest" + ] + }, + { + "title": "Architects", + "names": [ + "Dom Humphrey", + "Michael Seydl", + "Mike Frost", + "Tommaso Checchi" + ] + }, + { + "title": "Launcher", + "names": [ + "Anders Rosén", + "Carl Westin", + "David Zevallos" + ] + }, + { + "title": "Additional Programming", + "names": [ + "Elliot Segal", + "Paul Spooner", + "Ryan Hitchman" + ] + }, + { + "title": "Chief Product Officer", + "names": [ + "Olof Carlson Sandvik" + ] + }, + { + "title": "Head of Minecraft Atlas", + "names": [ + "Deirdre Quarnstrom" + ] + }, + { + "title": "Production Director", + "names": [ + "Daniel Kaplan" + ] + }, + { + "title": "Executive Producers", + "names": [ + "Erin Krell", + "Gama Aguilar-Gamez", + "Roger Carpenter" + ] + }, + { + "title": "Production Manager", + "names": [ + "Shah Rahman" + ] + }, + { + "title": "Production Leads", + "names": [ + "Charlotte Backer", + "Christine Platon", + "Sofie Lundberg" + ] + }, + { + "title": "Producers", + "names": [ + "Aaron Culbreth (Insight Global, Inc)", + "Adele Major", + "Alen Voljevica", + "Anna Holdosi-Simon", + "Anna Jensen", + "Anna Zakipour", + "Annie Desimone (Insight Global, Inc)", + "Ann-Kristin Adwent", + "Anthony Hanses (Insight Global, Inc)", + "Antonina Y Khazova", + "Åsa Skogström", + "Austin Maestre", + "Best Liang", + "Carina Kovacs Lockhart", + "Carina Pettersson", + "Caylin Kaunas (Randstad)", + "Chris Casanova", + "Chris Massena (Insight Global, Inc)", + "Christina-Antoinette Neofotistou", + "Christopher Dalid", + "Damian Finn (Lionbridge)", + "Dani Flores (Insight Global, Inc)", + "David Iooss (Randstad)", + "Dayana Sharshukova (Aquent, LLC)", + "Decker Geddes (Insight Global, Inc)", + "Elizabeth Batson (Insight Global, Inc)", + "Ellen Karlsten", + "Emma Erixson", + "Ethan Koltz (Insight Global, Inc)", + "Foluso Akerele", + "Gabrielle Riggir", + "Hampus Nilsson", + "Hedwig Laza", + "Hugo Lang", + "Isabella Arningsmark", + "Jason Rice", + "Jeffrey Carlo (Apex Systems, Inc)", + "Jennifer Lee (Insight Global, Inc)", + "Jewel Chukwufumn, Ifeguni", + "Jillian Brown (TEKsystems, Inc)", + "Johan Grunden", + "Johannes Fridd", + "John Garcia (Collabera, LLC)", + "Jonas Olaussen", + "Juan Gril", + "Julian Tunru", + "Justin So (Randstad)", + "Justin Woods", + "Justine Loong", + "Kasia Swica", + "Kelly Henckel", + "Kevin Katona (Design Laboratory, Inc)", + "Kyle Lawton", + "Lina Hagman", + "Lisa Bryer", + "Loudon St Hill (Insight Global, Inc)", + "Marcus Rundström", + "Marie Stålkrantz", + "Markus Waltré", + "Martin Kurtovic", + "Matt Rodgers (eXcell, a division of CompuCom)", + "Michael Welch (Insight Global, Inc)", + "Moira Ingeltun", + "Nathan Tompkins (Randstad)", + "Negin Javanmardi", + "Nick Severson", + "Nicole Alers", + "Patrik Hamsten", + "Pontus Åselius", + "Robin Linder", + "Sara Lidberg", + "Sloane Delancer", + "Sofia Orrheim", + "Sofie Lekkas", + "Stephanie Chen (Collabera, LLC)", + "Thomas Feng", + "Tien-Hung Nguyen (TEKsystems, Inc.)", + "Tilde Westrup", + "Trevor McCann (Yoh Services LLC)", + "William C Meyer (Pivotal Consulting, LLC)", + "William Cooper", + "Yesenia Cisneros" + ] + }, + { + "title": "Assistant Producer", + "names": [ + "Warren Loo" + ] + }, + { + "title": "Product Manager", + "names": [ + "Halishia Chugani" + ] + }, + { + "title": "Organizational Coaches", + "names": [ + "Jonas Ekstrand", + "Karin Hagren", + "Linda Ahlström Nilsson", + "Martin Bloomstine" + ] + }, + { + "title": "Release Managers", + "names": [ + "Beth Murphy (Kforce, Inc)", + "Dustin Wood (Design Laboratory, Inc)", + "Kyle Rogers (Randstad)", + "Robert Williamson (Apex Systems, Inc)" + ] + }, + { + "title": "Technical Writers", + "names": [ + "Bryce Bortree (Insight Global, Inc)", + "Jeff Kim (Insight Global, Inc)", + "Joshua Jones (Insight Global, Inc)", + "Nate Mackie (TEKsystems, Inc.)" + ] + }, + { + "title": "Technical Program Managers", + "names": [ + "Andy Puntahachart", + "Emily Price", + "Holly Pollock", + "Morgan J. East (Randstad)", + "Ryan Seymour (TEKsystems, Inc.)" + ] + }, + { + "title": "Playtest Coordinators", + "names": [ + "Liam Allman (Aquent, LLC)", + "Ricky White (Randstad)" + ] + }, + { + "title": "Art Directors", + "names": [ + "Alexis Holmqvist", + "Andy Zibits", + "Brad Shuber", + "Daniel Björkefors", + "Kim Petersen", + "Logan Lubera", + "Ola Lanteli", + "Wiktor Persson" + ] + }, + { + "title": "Artist Leads", + "names": [ + "Christine Gutierrez", + "Gustav Embretsen", + "Lisa Hazen", + "Sarah Kisor" + ] + }, + { + "title": "Artists", + "names": [ + "Amanda Cook (Harvey Nash, Inc)", + "Bart Kaufman (Randstad)", + "Branden Brushett (Aquent, LLC)", + "Dylan Sunkel (Collabera, LLC)", + "Elin Ölund Forsling", + "Erin Caswell (eXcell, a division of CompuCom)", + "Heath Night (Aquent, LLC)", + "Husein Kurbegovic", + "Jakob Gavelli", + "Jei G Ling (Allegis Group Services, Inc)", + "Jerica Harada (TEKsystems, Inc.)", + "Jesper Hallin", + "Jonatan Pöljö", + "Jules Norcross (Aquent, LLC)", + "Kelly Greene (CompuCom Systems, Inc)", + "Kristen Malone (Randstad)", + "Kristoffer Zetterstrand", + "Lilei Yu (Collabera, LLC)", + "Liliia Chorna", + "Linus Chan (TEKsystems, Inc.)", + "Marco Vale", + "Mariana Graham Ramirez", + "Mark Hershberger (Apex Systems, Inc)", + "Michael R Fiedler (Insight Global, Inc)", + "Miki Bishop (Randstad)", + "Phoebe Piepenbrok", + "Poi Poi Chen", + "Richard Worley" + ] + }, + { + "title": "Product Designers", + "names": [ + "Jennifer Hammervald", + "Jonathan Gallina" + ] + }, + { + "title": "Graphic Designer", + "names": [ + "Yong-Namm Lee" + ] + }, + { + "title": "Motion Graphics Designer", + "names": [ + "Gabe Philbin (Randstad)" + ] + }, + { + "title": "Sound Designers", + "names": [ + "Johan Pettersson", + "Kevin Martinez", + "Rostislav Trifonov", + "Shauny Jang (Insight Global, Inc)" + ] + }, + { + "title": "Technical Audio Developer", + "names": [ + "Jonatan Crafoord" + ] + }, + { + "title": "Quality Engineers", + "names": [ + "Paul Coada", + "Thommy Siverman", + "Yi Zhao (Kforce, Inc)", + "Zackarias Gustavsson" + ] + }, + { + "title": "Quality Data Analysis & Engineering", + "names": [ + "Jeff MacDermot" + ] + }, + { + "title": "Quality Assessment Specialists", + "names": [ + "Artur Foxander", + "Carl-Johan Tornberg", + "James Marchant", + "Jana Prihodko", + "Kajsa Sima Falck", + "Marcela Castaneda", + "Mimmi Boman-Borjesson" + ] + }, + { + "title": "User Experience Design Directors", + "names": [ + "Stephen Whetstine", + "Tobias Ahlin" + ] + }, + { + "title": "User Experience Designers", + "names": [ + "Connor Tompsett (CompuCom Systems, Inc)", + "Eric Alm", + "Gaby Salinas", + "Jin Shin", + "Jonathan Paton Gallina", + "Kailin Li (TEKsystems, Inc.)", + "Lily Ekman", + "Lucas Morales Sousa", + "Melissa Kay (Prieto)", + "Oscar Nilsson", + "Sabrina Cuevas-Pagoaga (Randstad)", + "Sam Paye (Aquent, LLC)", + "Sandra Bornemark", + "Timothy Lusk (Randstad)" + ] + }, + { + "title": "User Experience Intern", + "names": [ + "Axel Grefberg" + ] + }, + { + "title": "User Research Lead", + "names": [ + "Jerome Hagen" + ] + }, + { + "title": "User Researchers", + "names": [ + "Melissa Boone", + "Olga Zielinska", + "Pablo Morales" + ] + }, + { + "title": "Head of Player Operations", + "names": [ + "Aubrey Norris" + ] + }, + { + "title": "People Experience Manager", + "names": [ + "Maria Keisu Nolberg" + ] + }, + { + "title": "HR Directors", + "names": [ + "Dave Hill", + "Maja Samuelsson", + "Nia Parker" + ] + }, + { + "title": "Human Resources", + "names": [ + "Anna Lyth", + "Aron Glauser", + "Charlie Bjurström", + "Emma Bergström", + "Kristian Idehaag", + "Maria Sjöman", + "Petra Stenqvist", + "Sasa Stamenkovic", + "Simon Taylor", + "Ulrika Karlsson", + "Veronica Camaj Ericson", + "Viktoria Petersson" + ] + }, + { + "title": "Talent Acquisition", + "names": [ + "Aimée Narfström", + "Filip Hultin", + "Hanan Naamneh", + "Ida Utterström", + "Roza Kawa", + "Sofia Andersson", + "Sofia Lindquist", + "Tove Oldebäck", + "Vidar Bjurström" + ] + }, + { + "title": "Office Managers", + "names": [ + "Alex Andersson", + "Charlotte Wredesjö", + "Jill Curran", + "Linn Hultman", + "Mikaela Prim", + "Siri Hoel" + ] + }, + { + "title": "Office Coordinators", + "names": [ + "Even Hadeghe", + "Malin Strand", + "Sandra Odmark" + ] + }, + { + "title": "Executive Business Administrators", + "names": [ + "Cathy Wickersham", + "Darla J Barrett", + "Judith L. Wheeler", + "Katy Hanson", + "Lisa Liu", + "Rachael Cox", + "Theresa Chin" + ] + }, + { + "title": "Business Administrator", + "names": [ + "Shae M. Flanigan (C2S Technologies, Inc)" + ] + }, + { + "title": "Front of House", + "names": [ + "Adam Blänning", + "Chaimae Truving", + "Eliza Lancelot", + "Felicia Björn Nordling" + ] + }, + { + "title": "IT", + "names": [ + "Alexandre Pretto Nunes", + "Carl Johan Svärd", + "Daniel Miller (Insight Global, Inc)", + "Dessie Andersson (Centric Professionals AB)", + "Eetu Närhi", + "Evelina Rollfelt", + "Fabian Norlin", + "Frida Karlsson", + "Henrik Lindgren", + "John Klervad", + "Natalia Filapek", + "Ondrej Magath", + "Przemyslaw Elwart", + "Rickard Randa Hedvall", + "Shoaib Hosseini", + "Stephanie De Leeouv Markov", + "Tim Foster (Warner Marketing, Inc)", + "Vanessa Butt", + "Yaser Mosavi" + ] + }, + { + "title": "Operations Managers", + "names": [ + "Anna Hamilton", + "Barbara Acevedo Visser (Lions and Tigers)", + "Carl Kyhlberg", + "Gustav Roth", + "Kaya Hatcher", + "Sarah Grimmond" + ] + }, + { + "title": "Automation Support", + "names": [ + "Gregory D Searing (WaferWire Cloud Technologies)", + "Johnny Cocks (Collabera, LLC)", + "Jordan Crockett (TEKsystems, Inc.)", + "Matthew Gustaff (Digital Intelligence Systems, LLC)", + "Sean Connolly (Insight Global, Inc)" + ] + }, + { + "title": "DevOps Engineer", + "names": [ + "Chris Ilson (Collabera, LLC)" + ] + }, + { + "title": "Player Support Leads", + "names": [ + "Mattias Jacob Victorin", + "Mattias Victorin" + ] + }, + { + "title": "Player Support Operations Manager", + "names": [ + "Melissa Kiss" + ] + }, + { + "title": "Player Support", + "names": [ + "Amelia Lindroth Henriksson", + "Ana Barata Martins", + "Andrea Jörgensen", + "Andreas Andersson", + "Andrew Lee (Apex Systems, Inc)", + "Angehlica Walling", + "Annika Tripke-Lund", + "Anton Albiin", + "Antonia Kousathana", + "Carl Johnsson", + "Cim Borg", + "Dante Stjernberg", + "David Carlsson", + "David Stuart Dahlgren", + "Dominick Folletti (TEKsystems, Inc)", + "Elin Frykholm", + "Eliza Hearsum", + "Ellie Ashrafi", + "Erik Nordberg", + "Fredrik Henriksson", + "Fredrik Sandström", + "Freja Fors", + "Henrik Davallius", + "Henry Shi", + "Isabell Ahron", + "Jeffrey Riendeau", + "Joe Liu", + "Jonny Hair", + "Kevin Vesterlund", + "Kyle McMurtry (TEKsystems, Inc.)", + "Mike Till", + "Nasim Derakhshan", + "Nicole Jansson", + "Nima Tolouifar", + "Patrik Södergren", + "Rabi Hadad", + "Robert Miskiewicz", + "Robin Cocks", + "Robin Thunström", + "Rui Ribero", + "Samuel Gonzalez (TEKsystems, Inc)", + "Sarah Mårtensson", + "Taylor Smith (Apex Systems, Inc)", + "Theodor Colbing", + "Valérie Beaubien", + "Viktor Persson" + ] + }, + { + "title": "Data Engineering", + "names": [ + "Addy Deodikar (Design Laboratory, Inc)", + "Patrick Worthey" + ] + }, + { + "title": "Data and Analytics Lead", + "names": [ + "Warren Durrett" + ] + }, + { + "title": "Analytics Environment Engineering", + "names": [ + "Nitesh Kulkarni (Manpower Services Canada Limit)", + "Vini De Lima De Sousa (0965688 BC Ltd)" + ] + }, + { + "title": "Data Science", + "names": [ + "Abby Jaloway (National Business Innovations)", + "Akshaya Renganathan (KellyMitchell Group, LLC)", + "Anh Ying Lang (Design Laboratory, Inc)", + "Brynjólfur Erlingsson", + "Conor Maguire (KellyMitchell Group, LLC)", + "Cyrus Rustomji (KellyMitchell Group, LLC)", + "Daniel Camarena (KellyMitchell Group, LLC)", + "Darin LaSota (Design Laboratory, Inc)", + "David Heller (KellyMitchell Group, LLC)", + "Dusanka Poljak (Design Laboratory, Inc)", + "Emma Matilda Charlotte Kalzen", + "Ethan Batson (Design Laboratory, Inc)", + "Forrest Wheeler (Insight Global, Inc)", + "Gil Darves (Design Laboratory, Inc)", + "Jake Kelly", + "Jari Williams", + "Jonathan Selenkow (Allegis Group Services, Inc)", + "Joseph Bushagour (KellyMitchell Group, LLC)", + "Krishan Deo (Allegis Global Solutions)", + "Marie-Claire Kore (Agility Partners, LLC)", + "Megan Henry (KellyMitchell Group, LLC)", + "Melissa Alleyne", + "Michael Hernandez (Insight Global, Inc)", + "Murali Nagarajan (Design Laboratory, Inc)", + "Nick Martin (Design Laboratory, Inc)", + "Pawan Panaganti (Design Laboratory, Inc)", + "Simona Pirani", + "Srini Viswanatham (Design Laboratory, Inc)", + "Tejasvini Deshpande (KellyMitchell Group, LLC)", + "Tim Ross (Simplicity Consulting Inc.)", + "Tong Shen (KellyMitchell Group, LLC)", + "Yuvaraj Duraisamy (Design Laboratory, Inc)" + ] + }, + { + "title": "Head of Creator Marketplace", + "names": [ + "Aaron Buckley" + ] + }, + { + "title": "Business Director, Minecraft Game", + "names": [ + "Jesper Altren" + ] + }, + { + "title": "Directors of Business Management", + "names": [ + "Stephen McHugh" + ] + }, + { + "title": "Director of Business Planning", + "names": [ + "Adam Tratt" + ] + }, + { + "title": "Director of Business Development", + "names": [ + "Cherie D Lutz" + ] + }, + { + "title": "Project Director", + "names": [ + "Jakob Porsér" + ] + }, + { + "title": "Business Development Managers", + "names": [ + "Ellen Deng (JeffreyM Consulting, LLC)", + "Jordan Comar (Digital Intelligence Systems, LLC)" + ] + }, + { + "title": "Program Managers", + "names": [ + "Clint Baggett (Experis)", + "Helene Aku Brown", + "James Pfeiffer (Experis)", + "Jonathan Hartung-Jenkins (my3Twelve, LLC)", + "Kaiwen Li (Populus Group, LLC)", + "Liz Butowicz (Bluehawk LLC)", + "Maria Olekheyko", + "Mark Fredo (Aerotek, Inc)", + "Mary Elizabeth Pearson (Apex Systems, Inc)", + "May Qiang (my3Twelve, LLC)", + "Meenoo Rami", + "Natalie Haggin (Simplicity Consulting Inc.)", + "Phillip Wang (Digital Intelligence Systems, LLC)", + "Steven Hosey (Simplicity Consulting Inc.)", + "Tess Opincarne (Amaxra)", + "Timothy J Ross (Simplicity Consulting Inc.)", + "Todd Agnello (TEKsystems, Inc)", + "Tori Park (Cypress Human Capital)", + "Wendy Gorton" + ] + }, + { + "title": "Business Managers", + "names": [ + "Bill Wu", + "Claudine Ursino (Simplicity Consulting Inc.)", + "Daniel Beasley", + "Emily Clock", + "Jennifer Cox (Aston Carter, Inc)", + "Leslie Tullis", + "Matthew Ortegon (Rylem)", + "Vanessa Dagnino (Simplicity Consulting Inc.)" + ] + }, + { + "title": "Business Analysts", + "names": [ + "Alvin M Chin (Populus Group, LLC)", + "Keiko Ramer (Apex Systems, Inc)", + "Zheng Wang (Populus Group, LLC)" + ] + }, + { + "title": "Head of Creative Production", + "names": [ + "Katharina Hautz" + ] + }, + { + "title": "Lead Project Manager", + "names": [ + "Vera Mirchev" + ] + }, + { + "title": "Intellectual Property Enforcement Leads", + "names": [ + "Mathias Andersson", + "Teresa Lee Rodewald" + ] + }, + { + "title": "Intellectual Property Enforcement Agents", + "names": [ + "Johan Hedlund", + "Marcus Forss", + "Matilda Åkerman", + "Sylvia Chen" + ] + }, + { + "title": "Brand Director", + "names": [ + "Jonathan Symington" + ] + }, + { + "title": "Lead Producer - Brand Experience", + "names": [ + "Karim Walldén" + ] + }, + { + "title": "Media Director", + "names": [ + "Hans Abrahamsson" + ] + }, + { + "title": "Head of Creative Communications", + "names": [ + "Thomas Wiborgh" + ] + }, + { + "title": "Director of Communications", + "names": [ + "Regan O'Leary" + ] + }, + { + "title": "Communications Managers", + "names": [ + "Adam Pannel (Assembly Media, Inc)", + "Christopher de Haan (Simplicity Consulting Inc)", + "Elias Arnehall", + "Jane Billet", + "Jessica Xie", + "John Schork", + "Rebecca Gordius" + ] + }, + { + "title": "Content Coordinators", + "names": [ + "Adam Martinsson", + "Andreas Thomasson", + "Sara Lempiäinen" + ] + }, + { + "title": "Communications Editors", + "names": [ + "Marsh Davies", + "Tom Stone" + ] + }, + { + "title": "Assembly Media, Inc", + "names": [ + "Alli Cohen", + "Christian Delgado", + "Erin Dwyer", + "Jessie Steinberg", + "Richard Chen", + "Vanessa Mora" + ] + }, + { + "title": "Creative Writers", + "names": [ + "Emily Richardson", + "Sofia Dankis" + ] + }, + { + "title": "Lead Web Developer", + "names": [ + "Mark Jawad" + ] + }, + { + "title": "Web Designers", + "names": [ + "Paul Madlon (Ten Gun Design, Inc)", + "Taylor Kasony (eXcell, a division of CompuCom)" + ] + }, + { + "title": "Social Media Leads", + "names": [ + "Alice Löfgren", + "Amelia Dale", + "Sara Reiner" + ] + }, + { + "title": "Social Media Managers", + "names": [ + "Aleksander Gilyadov (Aston Carter Inc)", + "Alex Fleck (Adecco)", + "David Ramos (Collabera, LLC)", + "Jeremy Chan (Aerotek, Inc)", + "Natascha Cox", + "RJ Lesterio (Ranstad)", + "Ross Keatley" + ] + }, + { + "title": "Community Managers", + "names": [ + "Cameron Thomas", + "Glory Robinson (Experis)", + "Helen Zbihlyj", + "Matt Martin", + "Trella Rath (Corestaff)" + ] + }, + { + "title": "Content Manager", + "names": [ + "Niclas Fredriksson" + ] + }, + { + "title": "Marketing Managers", + "names": [ + "Ankita Rao", + "Ashley Davidson (Simplicity Consulting Inc.)", + "Bianca Ciotti", + "Danielle Ma", + "Delilah Liu", + "Didac Hormiga", + "Emily Orrson (Emily)", + "Eva Stefanac", + "Gabi Ibarra (Simplicity Consulting Inc.)", + "Lindsay Auten (Simplicity Consulting Inc.)", + "Nathaniel Wipfler", + "Stephanie Gielarowski (Ascendion Inc)" + ] + }, + { + "title": "Head of Legal", + "names": [ + "Carl Brant", + "Christi Davisson" + ] + }, + { + "title": "Legal Counsel", + "names": [ + "Tricia Geyer" + ] + }, + { + "title": "Finance Managers", + "names": [ + "Evan Dowdell", + "Katarina Norlander" + ] + }, + { + "title": "Financial Accountants", + "names": [ + "Camilla Brantefelt", + "Jelena Pejic", + "Karin Severinson", + "Kristina Ilic", + "Natalie Levinsson" + ] + }, + { + "title": "Financial Consultant", + "names": [ + "Stefan Lyrmark" + ] + } + ] + } + ] + }, + { + "section": "Studios Quality Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Quality Director", + "names": [ + "Tony Rado" + ] + }, + { + "title": "Quality Managers", + "names": [ + "Chris Henry", + "Rob Straavaldson", + "Tyler Moeller" + ] + }, + { + "title": "Quality Leads", + "names": [ + "Craig Marshall", + "Dan Pipinich", + "Hakim Ronaque", + "Jennifer Monaco", + "Michael McCormack", + "Rich Levy", + "Salim Jarrouge", + "Tony Harlich" + ] + }, + { + "title": "Quality Engineers", + "names": [ + "Akshata Trivedi", + "Ben Weber", + "Chelsi Hohnbaum", + "Fiona Belmont", + "Herve Iradukunda", + "Jeff MacDermot", + "Ryan Mayes" + ] + }, + { + "title": "Quality Analysts", + "names": [ + "Michelle Hyde", + "Yi Zhao (Kforce)" + ] + }, + { + "title": "Program Managers", + "names": [ + "Amador Abreu (Insight Global, Inc)", + "Justin Ice (Pivotal Consulting)", + "Misti Lommen", + "Norah Hogoboom (Insight Global, Inc)" + ] + }, + { + "title": "Software Engineers", + "names": [ + "Aaron Amlag", + "Dustin Randall", + "Henry Golding", + "Jay Baxter", + "Moodie Ghaddar", + "Paula Yuan", + "Scott Lindberg" + ] + }, + { + "title": "Data Engineers", + "names": [ + "Christian Koguchi", + "Kai VanDrunen", + "Patrick Fraioli" + ] + }, + { + "title": "Test Managers", + "names": [ + "Marcus King (Experis)" + ] + }, + { + "title": "Team Leads", + "names": [ + "Anna Wróbel (Lionbridge)", + "Kamil Bazydło (Lionbridge)", + "Michał Sławek (Lionbridge)", + "Paweł Piekarski (Lionbridge)", + "Sebastian Polanica (Lionbridge)", + "Tomasz Bokotko (Lionbridge)", + "Wojciech Kujawa (Lionbridge)" + ] + }, + { + "title": "Test Leads", + "names": [ + "Barry Doyle (Insight Global, Inc)", + "Chris James (Insight Global, Inc)", + "Christopher Wilson (Experis)", + "Robert Green (Experis)" + ] + }, + { + "title": "Software Test Engineers", + "names": [ + "Agata Dzideczek (Lionbridge)", + "Antoine Brown (Experis)", + "Brendan McElroy (Insight Global, Inc)", + "Brian Lareau (Experis)", + "Brooke Chapman (Experis)", + "Cameron Harris (Experis)", + "Crystal Edwards (Insight Global, Inc)", + "Dan Parker (Insight Global, Inc)", + "Eric Saxon (Experis)", + "Eugeniusz Kosieradzki (Lionbridge)", + "Isaac Dudley (Insight Global, Inc)", + "Jack Ellis (Experis)", + "Jakub Kwiatkowski (Lionbridge)", + "James Lawrence (Experis)", + "Jessica Armstrong (Experis)", + "John Ehresmann (Experis)", + "Kaitlyn Grace (Experis)", + "Katarzyna Moskalewicz (Lionbridge)", + "Kevin Gittens (Experis)", + "Kyle Rennie (Experis)", + "Leon Langston (Insight Global, Inc.)", + "Maciej Łajszczak (Lionbridge)", + "Marcin Słoniewski (Lionbridge)", + "Mariusz Gil (Lionbridge)", + "Mariusz Podgórski (Lionbridge)", + "Mateusz Janiszewski (Lionbridge)", + "Michał Cieślak (Lionbridge)", + "Michelle Elbert (Experis)", + "Miłosz Kahlan (Lionbridge)", + "Patryk Telus (Lionbridge)", + "Robert Cleveland (Experis)", + "Rochishni Kolli (Experis)", + "Samuel Tharp (Experis)", + "Sean Colbert (Experis)", + "Sean Dugan (Experis)", + "Tess E Krimchansky (Experis)", + "Traci Jenkins (Experis)", + "Zofia Lenarczyk (Lionbridge)" + ] + }, + { + "title": "Test Associates", + "names": [ + "Adam Krasieńko (Lionbridge)", + "Adam Prażmo (Lionbridge)", + "Adrianna Zalewska (Lionbridge)", + "Agata Bidelska (Lionbridge)", + "Alaric Trevers (Experis)", + "Aleksander Skiba (Lionbridge)", + "Alex Richardson (Lionbridge)", + "Andrzej Wojciechowski (Lionbridge)", + "Austin Keeling (Experis)", + "Bartłomiej Dziurżyński (Lionbridge)", + "Bartłomiej Figiel (Lionbridge)", + "Bartłomiej Mareczko (Lionbridge)", + "Bartosz Brzeziński (Lionbridge)", + "Bartosz Kuchta (Lionbridge)", + "Bartosz Szklarzyński (Lionbridge)", + "Bartosz Urbankowski (Lionbridge)", + "Brian Sears (Experis)", + "Casper Sparks (Insight Global, Inc.)", + "Cezary Kociński (Lionbridge)", + "Cezary Wojewoda (Lionbridge)", + "Damian Golik (Lionbridge)", + "Daniel Justyna (Lionbridge)", + "Daniel Wystyrk (Lionbridge)", + "Eliza Duda (Lionbridge)", + "Emmanuelle Rodrigues Nunes (Lionbridge)", + "Eryk Czerski (Lionbridge)", + "Eva Horvath (Lionbridge)", + "Filip Gwarda (Lionbridge)", + "Filip Muchin (Lionbridge)", + "Grzegorz Irek (Lionbridge)", + "Grzegorz Wilkołek (Lionbridge)", + "Jacek Petela (Lionbridge)", + "Jan Gąsiorowski (Lionbridge)", + "Jan Prejs (Lionbridge)", + "Jan Zozman (Lionbridge)", + "Jared Arbaugh (Experis)", + "Jocylyn Engstrom (Experis)", + "Jonathan Garcia (Experis)", + "Jonathon Ervin (Experis)", + "Jordan Leeper (Lionbridge)", + "Justin Jones (Lionbridge)", + "Justin Smick (Experis)", + "Kacper Bujakowski (Lionbridge)", + "Kacper Kobyliński (Lionbridge)", + "Kacper Krupa (Lionbridge)", + "Kamil Konarski (Lionbridge)", + "Kamil Marut (Lionbridge)", + "Kamil Owczarczyk (Lionbridge)", + "Karol Kotowicz (Lionbridge)", + "Karol Mikusek (Lionbridge)", + "Karol Sobotka (Lionbridge)", + "Karolina Otłowska (Lionbridge)", + "Katarzyna Jaworska (Lionbridge)", + "Katarzyna Smektalska (Lionbridge)", + "Konrad Meysztowicz-Wiśniewski (Lionbridge)", + "Krzysztof Jeżak (Lionbridge)", + "Krzysztof Połomski (Lionbridge)", + "Łukasz Gołąb (Lionbridge)", + "Łukasz Sajnóg (Lionbridge)", + "Łukasz Walczyński (Lionbridge)", + "Maciej Brzeziński (Lionbridge)", + "Maciej Kienig (Lionbridge)", + "Magdalena Ścisłowska (Lionbridge)", + "Magdalena Tomaszewska (Lionbridge)", + "Maksymilian Kałucki (Lionbridge)", + "Maksymilian Kowalski (Lionbridge)", + "Małgorzata Janiszewska (Lionbridge)", + "Marcin Papadopoulos-Gajda (Lionbridge)", + "Marcin Szałek (Lionbridge)", + "Marco Paparella (Lionbridge)", + "Marek Urbański (Lionbridge)", + "Maria Wypych (Lionbridge)", + "Marvin Melitante (Experis)", + "Mateusz Kaliszewski (Lionbridge)", + "Mateusz Majewski (Lionbridge)", + "Mateusz Miturski (Lionbridge)", + "Mateusz Tran Van (Lionbridge)", + "Melchior Lewandowski-Wołosz (Lionbridge)", + "Michał Antosiak (Lionbridge)", + "Michał Młynek (Lionbridge)", + "Michał Szewczyk (Lionbridge)", + "Michał Woś (Lionbridge)", + "Monika Elandt (Lionbridge)", + "Nijat Aghamali (Lionbridge)", + "Patrick Chigges (Experis)", + "Patryk Rosiński (Lionbridge)", + "Paweł Chruszczewski (Lionbridge)", + "Paweł Kumanowski (Lionbridge)", + "Paweł Neścior (Lionbridge)", + "Piotr Biernacki (Lionbridge)", + "Piotr Gryczan (Lionbridge)", + "Piotr Jurek (Lionbridge)", + "Piotr Kolendo (Lionbridge)", + "Piotr Łowin (Lionbridge)", + "Piotr Retel (Lionbridge)", + "Piotr Słomka (Lionbridge)", + "Piotr Zieliński (Lionbridge)", + "Przemysław Goch (Lionbridge)", + "Przemysław Malinowski (Lionbridge)", + "Przemysław Wróbel (Lionbridge)", + "Rafał Brzostowski (Lionbridge)", + "Rafał Pruszkowski (Lionbridge)", + "Rafał Sapała (Lionbridge)", + "Rajkumar Kulandaivelu (Lionbridge)", + "Robert Thomas (Experis)", + "Robert Wypasek (Lionbridge)", + "Ryan Atwater (Experis)", + "Ryszard Kowalczyk (Lionbridge)", + "Sandra Meister (Lionbridge)", + "Sedona Storks (Lionbridge)", + "Šimon Kravár (Lionbridge)", + "Stanisław Dmowski (Lionbridge)", + "Stephanie Lara (Experis)", + "Szymon Mazurek (Lionbridge)", + "Szymon Okoń (Lionbridge)", + "Taylor Branim (Experis)", + "Tomasz Mirkiewicz (Lionbridge)", + "Tomasz Orlecki (Lionbridge)", + "Tomasz Selwat (Lionbridge)", + "Tomasz Sporczyk (Lionbridge)", + "Tomasz Zdrzalik (Lionbridge)", + "Tori Gasca (Experis)", + "Tyler Gladstone (Experis)", + "Tyler Riojas (Experis)", + "Weronika Smoleń (Lionbridge)", + "Wiktor Wrona (Lionbridge)", + "Wojciech Komada (Lionbridge)", + "Wojciech Nieckarz (Lionbridge)", + "Zuzanna Wielkopolan (Lionbridge)" + ] + }, + { + "title": "Studios Quality Special Thanks", + "names": [ + "Aaron Brindell (Experis)", + "Aaron Ingram (Experis)", + "Adrian Brown – Data Science Manager", + "Alex Luschen – Executive Business Administrator", + "Andrew Franklin – Outsourcing Manager", + "Brian Canning (Experis) – Test Manager, Tempe", + "Carol Stearns (Experis)", + "Chad Rankin – Client Account Director (Experis)", + "Dante Carrasco – Business Manager", + "David Boker – Director XGS Business Operations", + "Gavin Kennedy (Experis)", + "James Fry – Quality Director, Studios Quality UK", + "Jimmy Bischoff – Director of Quality, Studios Quality", + "Julie Loucks (Experis)", + "Kenna Gillooly – Executive Business Administrator", + "Lucas Rathburn (Experis)", + "Matthew Call – Software Engineering Manager", + "Ryan Burns – Software Engineering Lead", + "Zachary Bohnenkamp – Center of Excellence (Experis)" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Blackbird Interactive Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Programmers", + "names": [ + "Andrew Yuennan", + "Anish Shenwai", + "Bhavesh Gupta", + "Branko Bajcetic", + "Christina Oh", + "Christopher Whitman", + "Daniel Gold", + "Duarte Maia", + "Elizabeth Pieters", + "Eric Dahl", + "Erick Tavares", + "Gupta Bhavesh", + "Hugo Burd", + "Kevin Yu", + "Koki Pan", + "Riley Godard", + "Sandro Furini", + "Thomas Paterson", + "Umut Polat", + "Vlad Ryzhov", + "Youhan Guan" + ] + }, + { + "title": "Producers", + "names": [ + "Alex Sharp", + "David McKay", + "Kelsey Primar", + "Russell White" + ] + }, + { + "title": "Designers", + "names": [ + "Tyler Nilsson", + "Vidhi Shah" + ] + }, + { + "title": "Lead Quality Assurance Analysts", + "names": [ + "JP Canita", + "Ryan LeMesurier" + ] + }, + { + "title": "Quality Assurance Analysts", + "names": [ + "Richard Kim", + "Wes Trevor" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - CSI Interfusion Inc Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Software Engineers", + "names": [ + "Aidan Gao", + "Alan Fu", + "Albert Jin", + "Alex Chen", + "Alexey Qian", + "Arvin Zhang", + "Bob Wang", + "Eric Jia", + "Harris Zhou", + "Hong Chao Fang", + "Jana Rogers", + "Jason Zhang", + "Jeff Zhang", + "Kiren Li", + "Leon Wang", + "Martin Zhen" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Disbelief Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Producers", + "names": [ + "Grue Robinson", + "Robin Billadeau", + "Stacey Gray" + ] + }, + { + "title": "Associate Producer", + "names": [ + "Andrew Sharp" + ] + }, + { + "title": "Senior Programmer", + "names": [ + "Andrew Durnford" + ] + }, + { + "title": "Programmers", + "names": [ + "Eric Nguyen", + "Kainin Tankersley", + "Luke Mayo", + "Tanner Willis", + "Yuhan Wu" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Red Lens Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "GM & Development Director", + "names": [ + "Kyle Walsh" + ] + }, + { + "title": "Dev Leads", + "names": [ + "Stephen Chiavelli", + "Arend Danielek" + ] + }, + { + "title": "Tech Leads", + "names": [ + "André Tremblay", + "Henry Lisowski III", + "Kelby Lawson", + "Nathan Carlson", + "Ryan Edgemon" + ] + }, + { + "title": "Production Director", + "names": [ + "Allie Murdock" + ] + }, + { + "title": "Producer", + "names": [ + "Hollie Brown" + ] + }, + { + "title": "Software Engineers", + "names": [ + "Alan Nelson", + "Alex Green", + "Alex Gregory", + "Anna Semenets", + "Christopher Kohnert", + "Dane Curbow", + "Dylan Washburne", + "Sapphira Riza", + "Grant Wynn", + "Joshua Claeys", + "Kyle Schwaneke", + "Lorenzo DeMaine", + "Ryan Davison", + "Ryota Dan", + "Tim Royal", + "Tyler Perry", + "Zach Bowman", + "Zeke Lasater" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - SiProgs Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Software Engineer", + "names": [ + "Anton Mateasik" + ] + }, + { + "title": "Software Engineers", + "names": [ + "Martin Kusnier", + "Milos Bazelides", + "Vladimir Sisolak" + ] + }, + { + "title": "Software Test Engineers", + "names": [ + "Frantisek Beke", + "Marianna Sunova" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Skybox Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Quality Assurance", + "names": [ + "Lera Kirka", + "Jake Megrian" + ] + }, + { + "title": "Software Developers", + "names": [ + "Baktash Abdollah-Shamshir-saz", + "Cole Pollock", + "Cyro Paulino da Costa Jr", + "Eugene Kuznetsov", + "Guillermo Trejo Torres", + "Gursaanj Singh Bajaj", + "Jacob Jensen", + "Mitch Filmer", + "Russell Gillette", + "Sean Siemens", + "Supriya Singh", + "William Sherif", + "Yang Zhao", + "Yen-Chun Wang" + ] + }, + { + "title": "", + "names": [ + "Ace Cheung", + "Adam Bryant", + "Adrian Smith", + "Alex MacKay", + "Alfonso Muñoz", + "Alina Varela", + "Amandeep Malhi", + "Ashlyn Gadow", + "Arta Seify", + "Blair Hitchens", + "Bren Lynne", + "Chander Siddarth", + "Chris Klassen", + "Dave MacLean", + "David Getley", + "Diana Jutras", + "Gabriel J. Gonzalez", + "Gary Shaw", + "Gary Texmo", + "Ghafur Remtulla", + "Graham Laverty", + "Hiren Amin", + "Ilya Solnyshkin", + "Jagger Nast", + "Jason Allen", + "Jeffrey Yamasaki", + "Jesse Taylor", + "Jessica Muniz", + "Joel Stack", + "Jorge Amengol", + "Jordan Pongracz", + "Josue Pacheco", + "Jun Luo", + "Justin Moon", + "Keven Nguyen", + "Kevin Hsu", + "Kris Morness", + "Kyra Yung", + "Marc Faulise", + "Marcel Brake", + "Matheus Depra Gudergues", + "Matt Klassen", + "Mitch Armstrong", + "Mitch Dawdy", + "Oliver Cannon", + "Olivia Chung", + "Orhun Erkilic", + "Oscar Yang", + "Paul Baker", + "Pedro Kauti", + "Peter Martin", + "Peter Zhang", + "Pope Kim", + "Piotr Wiacek", + "Prithiraj Ghosh", + "Rex Bai", + "Rey Brassard", + "Rohit Moni", + "Sam Martens", + "Serge Lansiquot", + "Shaun Foley", + "Shiva Gupta", + "Sim Sahin", + "Simon Gleizes", + "Stefan Sarnev", + "Steven Wong", + "Thiago Braga", + "Tim Bruecker", + "Tim Hinds", + "Tina Dhaliwal", + "Ting-Chun Sun", + "Tom Baird", + "Trevin Wong", + "Tyler Da Costa", + "Vivian Ortenzi", + "Yuri Fomenko", + "Zach Chan", + "Zike Wu" + ] + } + ] + } + ] + }, + { + "section": "Development Partner - Virtuosity Alumni", + "disciplines": [ + { + "discipline": "", + "titles": [ + { + "title": "Game Developers", + "names": [ + "Aishwarya Jayabal", + "Janani Senrayaperumal", + "Maha Srinivasan", + "Packiyanath Sivathanu", + "Prabhu Venkatraman Iyer", + "Shagun Sharma Tamta", + "Shanmugam Sanjay", + "Sheena Mathew", + "Sriram Sreenivasan", + "Sumit Kumar Suman", + "Vivek Kumar", + "Jagannathan Mannu", + "Subramani Ramanathan" + ] + }, + { + "title": "Services Developers", + "names": [ + "Ganesh Sethy", + "Nandha Arulanandam", + "Barani Dharan", + "Brogan Irwin", + "Shanthi Kanchibhotla", + "Vasanth Kumar", + "Jake Van Hyning", + "Mahesh Kumar Badam Venkata", + "Nathan VanHouten", + "Keerthana Hariharan", + "Malliga Muthuraj", + "Lenin Kumar", + "Tanmay Kamath", + "Srinivasan Kandhallu Gnanamoorthy" + ] + }, + { + "title": "Web Developers", + "names": [ + "Nazia Nazia", + "Sripriya Gunasekaran", + "Aravindan Aarumugam", + "Rakshith Murthy", + "Arockia Stanly" + ] + }, + { + "title": "Producers", + "names": [ + "Swati S Thakar", + "Chokkalingam Ramu Kuppaswamy" + ] + } + ] + } + ] + } +] \ No newline at end of file diff --git a/assets/minecraft/texts/end.txt b/assets/minecraft/texts/end.txt new file mode 100644 index 00000000..72775248 --- /dev/null +++ b/assets/minecraft/texts/end.txt @@ -0,0 +1,151 @@ +§3I see the player you mean. + +§2PLAYERNAME? + +§3Yes. Take care. It has reached a higher level now. It can read our thoughts. + +§2That doesn't matter. It thinks we are part of the game. + +§3I like this player. It played well. It did not give up. + +§2It is reading our thoughts as though they were words on a screen. + +§3That is how it chooses to imagine many things, when it is deep in the dream of a game. + +§2Words make a wonderful interface. Very flexible. And less terrifying than staring at the reality behind the screen. + +§3They used to hear voices. Before players could read. Back in the days when those who did not play called the players witches, and warlocks. And players dreamed they flew through the air, on sticks powered by demons. + +§2What did this player dream? + +§3This player dreamed of sunlight and trees. Of fire and water. It dreamed it created. And it dreamed it destroyed. It dreamed it hunted, and was hunted. It dreamed of shelter. + +§2Hah, the original interface. A million years old, and it still works. But what true structure did this player create, in the reality behind the screen? + +§3It worked, with a million others, to sculpt a true world in a fold of the §f§k§a§b§3, and created a §f§k§a§b§3 for §f§k§a§b§3, in the §f§k§a§b§3. + +§2It cannot read that thought. + +§3No. It has not yet achieved the highest level. That, it must achieve in the long dream of life, not the short dream of a game. + +§2Does it know that we love it? That the universe is kind? + +§3Sometimes, through the noise of its thoughts, it hears the universe, yes. + +§2But there are times it is sad, in the long dream. It creates worlds that have no summer, and it shivers under a black sun, and it takes its sad creation for reality. + +§3To cure it of sorrow would destroy it. The sorrow is part of its own private task. We cannot interfere. + +§2Sometimes when they are deep in dreams, I want to tell them, they are building true worlds in reality. Sometimes I want to tell them of their importance to the universe. Sometimes, when they have not made a true connection in a while, I want to help them to speak the word they fear. + +§3It reads our thoughts. + +§2Sometimes I do not care. Sometimes I wish to tell them, this world you take for truth is merely §f§k§a§b§2 and §f§k§a§b§2, I wish to tell them that they are §f§k§a§b§2 in the §f§k§a§b§2. They see so little of reality, in their long dream. + +§3And yet they play the game. + +§2But it would be so easy to tell them... + +§3Too strong for this dream. To tell them how to live is to prevent them living. + +§2I will not tell the player how to live. + +§3The player is growing restless. + +§2I will tell the player a story. + +§3But not the truth. + +§2No. A story that contains the truth safely, in a cage of words. Not the naked truth that can burn over any distance. + +§3Give it a body, again. + +§2Yes. Player... + +§3Use its name. + +§2PLAYERNAME. Player of games. + +§3Good. + +§2Take a breath, now. Take another. Feel air in your lungs. Let your limbs return. Yes, move your fingers. Have a body again, under gravity, in air. Respawn in the long dream. There you are. Your body touching the universe again at every point, as though you were separate things. As though we were separate things. + +§3Who are we? Once we were called the spirit of the mountain. Father sun, mother moon. Ancestral spirits, animal spirits. Jinn. Ghosts. The green man. Then gods, demons. Angels. Poltergeists. Aliens, extraterrestrials. Leptons, quarks. The words change. We do not change. + +§2We are the universe. We are everything you think isn't you. You are looking at us now, through your skin and your eyes. And why does the universe touch your skin, and throw light on you? To see you, player. To know you. And to be known. I shall tell you a story. + +§2Once upon a time, there was a player. + +§3The player was you, PLAYERNAME. + +§2Sometimes it thought itself human, on the thin crust of a spinning globe of molten rock. The ball of molten rock circled a ball of blazing gas that was three hundred and thirty thousand times more massive than it. They were so far apart that light took eight minutes to cross the gap. The light was information from a star, and it could burn your skin from a hundred and fifty million kilometres away. + +§2Sometimes the player dreamed it was a miner, on the surface of a world that was flat, and infinite. The sun was a square of white. The days were short; there was much to do; and death was a temporary inconvenience. + +§3Sometimes the player dreamed it was lost in a story. + +§2Sometimes the player dreamed it was other things, in other places. Sometimes these dreams were disturbing. Sometimes very beautiful indeed. Sometimes the player woke from one dream into another, then woke from that into a third. + +§3Sometimes the player dreamed it watched words on a screen. + +§2Let's go back. + +§2The atoms of the player were scattered in the grass, in the rivers, in the air, in the ground. A woman gathered the atoms; she drank and ate and inhaled; and the woman assembled the player, in her body. + +§2And the player awoke, from the warm, dark world of its mother's body, into the long dream. + +§2And the player was a new story, never told before, written in letters of DNA. And the player was a new program, never run before, generated by a sourcecode a billion years old. And the player was a new human, never alive before, made from nothing but milk and love. + +§3You are the player. The story. The program. The human. Made from nothing but milk and love. + +§2Let's go further back. + +§2The seven billion billion billion atoms of the player's body were created, long before this game, in the heart of a star. So the player, too, is information from a star. And the player moves through a story, which is a forest of information planted by a man called Julian, on a flat, infinite world created by a man called Markus, that exists inside a small, private world created by the player, who inhabits a universe created by... + +§3Shush. Sometimes the player created a small, private world that was soft and warm and simple. Sometimes hard, and cold, and complicated. Sometimes it built a model of the universe in its head; flecks of energy, moving through vast empty spaces. Sometimes it called those flecks "electrons" and "protons". + +§2Sometimes it called them "planets" and "stars". + +§2Sometimes it believed it was in a universe that was made of energy that was made of offs and ons; zeros and ones; lines of code. Sometimes it believed it was playing a game. Sometimes it believed it was reading words on a screen. + +§3You are the player, reading words... + +§2Shush... Sometimes the player read lines of code on a screen. Decoded them into words; decoded words into meaning; decoded meaning into feelings, emotions, theories, ideas, and the player started to breathe faster and deeper and realised it was alive, it was alive, those thousand deaths had not been real, the player was alive + +§3You. You. You are alive. + +§2and sometimes the player believed the universe had spoken to it through the sunlight that came through the shuffling leaves of the summer trees + +§3and sometimes the player believed the universe had spoken to it through the light that fell from the crisp night sky of winter, where a fleck of light in the corner of the player's eye might be a star a million times as massive as the sun, boiling its planets to plasma in order to be visible for a moment to the player, walking home at the far side of the universe, suddenly smelling food, almost at the familiar door, about to dream again + +§2and sometimes the player believed the universe had spoken to it through the zeros and ones, through the electricity of the world, through the scrolling words on a screen at the end of a dream + +§3and the universe said I love you + +§2and the universe said you have played the game well + +§3and the universe said everything you need is within you + +§2and the universe said you are stronger than you know + +§3and the universe said you are the daylight + +§2and the universe said you are the night + +§3and the universe said the darkness you fight is within you + +§2and the universe said the light you seek is within you + +§3and the universe said you are not alone + +§2and the universe said you are not separate from every other thing + +§3and the universe said you are the universe tasting itself, talking to itself, reading its own code + +§2and the universe said I love you because you are love. + +§3And the game was over and the player woke up from the dream. And the player began a new dream. And the player dreamed again, dreamed better. And the player was the universe. And the player was love. + +§3You are the player. + +§2Wake up. diff --git a/assets/minecraft/texts/postcredits.txt b/assets/minecraft/texts/postcredits.txt new file mode 100644 index 00000000..aa01cebd --- /dev/null +++ b/assets/minecraft/texts/postcredits.txt @@ -0,0 +1,6 @@ + + + + + +§f"Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover." §7- Unknown diff --git a/assets/minecraft/texts/splashes.txt b/assets/minecraft/texts/splashes.txt new file mode 100644 index 00000000..b71e723f --- /dev/null +++ b/assets/minecraft/texts/splashes.txt @@ -0,0 +1,446 @@ +As seen on TV! +Awesome! +100% pure! +May contain nuts! +More polygons! +Moderately attractive! +Limited edition! +Flashing letters! +It's here! +Best in class! +It's finished! +Kind of dragon free! +Excitement! +More than 500 sold! +One of a kind! +Heaps of hits on YouTube! +Indev! +Spiders everywhere! +Check it out! +Holy cow, man! +It's a game! +Made in Sweden! +Uses LWJGL! +Reticulating splines! +Minecraft! +Yaaay! +Singleplayer! +Keyboard compatible! +Ingots! +Exploding creepers! +That's no moon! +l33t! +Create! +Survive! +Dungeon! +Exclusive! +The bee's knees! +Closed source! +Classy! +Wow! +Not on steam! +Oh man! +Awesome community! +Pixels! +Teetsuuuuoooo! +Kaaneeeedaaaa! +Now with difficulty! +Enhanced! +90% bug free! +Pretty! +12 herbs and spices! +Fat free! +Absolutely no memes! +Free dental! +Ask your doctor! +Minors welcome! +Cloud computing! +Legal in Finland! +Hard to label! +Technically good! +Bringing home the bacon! +Indie! +GOTY! +Ceci n'est pas une title screen! +Euclidian! +Now in 3D! +Inspirational! +Herregud! +Complex cellular automata! +Yes, sir! +Played by cowboys! +Now on OpenGL 3.2 core profile! +Thousands of colors! +Try it! +Age of Wonders is better! +Try the mushroom stew! +Sensational! +Hot tamale, hot hot tamale! +Play him off, keyboard cat! +Guaranteed! +Macroscopic! +Bring it on! +Random splash! +Call your mother! +Monster infighting! +Loved by millions! +Ultimate edition! +Freaky! +You've got a brand new key! +Water proof! +Uninflammable! +Whoa, dude! +All inclusive! +Tell your friends! +NP is not in P! +Music by C418! +Livestreamed! +Haunted! +Polynomial! +Terrestrial! +All is full of love! +Full of stars! +Scientific! +Not as cool as Spock! +Collaborate and listen! +Never dig down! +Take frequent breaks! +Not linear! +Han shot first! +Nice to meet you! +Buckets of lava! +Ride the pig! +Larger than Earth! +sqrt(-1) love you! +Phobos anomaly! +Punching wood! +Falling off cliffs! +1% sugar! +150% hyperbole! +Synecdoche! +Let's danec! +Seecret Friday update! +Reference implementation! +Kiss the sky! +20 GOTO 10! +Verlet integration! +Peter Griffin! +Do not distribute! +Cogito ergo sum! +4815162342 lines of code! +A skeleton popped out! +The sum of its parts! +BTAF used to be good! +I miss ADOM! +umop-apisdn! +OICU812! +Bring me Ray Cokes! +Finger-licking! +Thematic! +Pneumatic! +Sublime! +Octagonal! +Une baguette! +Gargamel plays it! +Rita is the new top dog! +SWM forever! +Representing Edsbyn! +Matt Damon! +Supercalifragilisticexpialidocious! +Consummate V's! +Cow Tools! +Double buffered! +Fan fiction! +Flaxkikare! +Jason! Jason! Jason! +Hotter than the sun! +Internet enabled! +Autonomous! +Engage! +Fantasy! +DRR! DRR! DRR! +Kick it root down! +Regional resources! +Woo, facepunch! +Woo, somethingawful! +Woo, tigsource! +Woo, worldofminecraft! +Woo, reddit! +Woo, 2pp! +Google anlyticsed! +Now supports åäö! +Give us Gordon! +Tip your waiter! +Very fun! +12345 is a bad password! +Vote for net neutrality! +Lives in a pineapple under the sea! +MAP11 has two names! +Omnipotent! +Gasp! +...! +Bees, bees, bees, bees! +Jag känner en bot! +This text is hard to read if you play the game at the default resolution, but at 1080p it's fine! +Haha, LOL! +Hampsterdance! +Menger sponge! +idspispopd! +Eple (original edit)! +So fresh, so clean! +Slow acting portals! +Try the Nether! +Don't look directly at the bugs! +Oh, ok, Pigmen! +Finally with ladders! +Scary! +Play Minecraft, Watch Topgear, Get Pig! +Twittered about! +Jump up, jump up, and get down! +Joel is neat! +A riddle, wrapped in a mystery! +This parrot is no more! It has ceased to be! +Welcome to your Doom! +Stay a while, stay forever! +Stay a while and listen! +Treatment for your rash! +"Autological" is! +Information wants to be free! +"Almost never" is an interesting concept! +Lots of truthiness! +The creeper is a spy! +Turing complete! +It's groundbreaking! +Let our battle's begin! +The sky is the limit! +Jeb has amazing hair! +Ryan also has amazing hair! +Casual gaming! +Undefeated! +Kinda like Lemmings! +Follow the train, CJ! +Leveraging synergy! +This message will never appear on the splash screen, isn't that weird? +DungeonQuest is unfair! +90210! +Check out the far lands! +Tyrion would love it! +Also try VVVVVV! +Also try Super Meat Boy! +Also try Terraria! +Also try Mount And Blade! +Also try Project Zomboid! +Also try World of Goo! +Also try Limbo! +Also try Pixeljunk Shooter! +Also try Braid! +That's super! +Bread is pain! +Read more books! +Khaaaaaaaaan! +Less addictive than TV Tropes! +More addictive than lemonade! +Bigger than a bread box! +Millions of peaches! +Fnord! +This is my true form! +Don't bother with the clones! +Pumpkinhead! +Made by Jeb! +Has an ending! +Finally complete! +Feature packed! +Boots with the fur! +Stop, hammertime! +Testificates! +Conventional! +Homeomorphic to a 3-sphere! +Doesn't avoid double negatives! +Place ALL the blocks! +Does barrel rolls! +Meeting expectations! +PC gaming since 1873! +Ghoughpteighbteau tchoghs! +Déjà vu! +Déjà vu! +Got your nose! +Haley loves Elan! +Afraid of the big, black bat! +Doesn't use the U-word! +Child's play! +See you next Friday or so! +From the streets of Södermalm! +150 bpm for 400000 minutes! +Technologic! +Funk soul brother! +Pumpa kungen! +日本ハロー! +한국 안녕하세요! +Helo Cymru! +Cześć Polsko! +你好中国! +Γεια σου Ελλάδα! +My life for Aiur! +Lennart lennart = new Lennart(); +I see your vocabulary has improved! +Who put it there? +You can't explain that! +if not ok then return end +§1C§2o§3l§4o§5r§6m§7a§8t§9i§ac +§kFUNKY LOL +Big Pointy Teeth! +Bekarton guards the gate! +Mmmph, mmph! +Don't feed avocados to parrots! +Swords for everyone! +Plz reply to my tweet! +.party()! +Take her pillow! +Put that cookie down! +Pretty scary! +I have a suggestion. +Now with extra hugs! +Java 16 + 1 + 4 = 21! +Woah. +HURNERJSGER? +What's up, Doc? +Now contains 32 random daily cats! +That's Numberwang! +pls rt +Do you want to join my server? +Put a little fence around it! +Throw a blanket over it! +One day, somewhere in the future, my work will be quoted! +Now with additional stuff! +Extra things! +Yay, puppies for everyone! +So sweet, like a nice bon bon! +Very influential in its circle! +Now With Multiplayer! +Rise from your grave! +Warning! A huge battleship "STEVE" is approaching fast! +Blue warrior shot the food! +Run, coward! I hunger! +Flavor with no seasoning! +Strange, but not a stranger! +Tougher than diamonds, rich like cream! +It swings, it jives! +Cruising streets for gold! +Take an eggbeater and beat it against a skillet! +Make me a table, a funky table! +Take the elevator to the mezzanine! +Stop being reasonable, this is the Internet! +/give @a hugs 64 +This is good for Realms. +Any computer is a laptop if you're brave enough! +Do it all, everything! +Where there is not light, there can spider! +GNU Terry Pratchett +More Digital! +doot doot +Falling with style! +There's no stopping the Trollmaso +Throw yourself at the ground and miss +Rule #1: it's never my fault +Replaced molten cheese with blood? +Absolutely fixed relatively broken coordinates +Boats FTW +Javalicious edition +Should not be played while driving +You're going too fast! +Don't feed chocolate to parrots! +The true meaning of covfefe +An illusion! What are you hiding? +Something's not quite right... +Thank you for the fish! +All rumors are true! +Truly gone fishing! +Rainbow turtle? +Something funny! +I need more context. +Ahhhhhh! +Don't worry, be happy! +Water bottle! +What's the question? +Plant a tree! +Go to the dentist! +What do you expect? +Look mum, I'm in a splash! +It came from space. +Awesome game design right there! +Ph1lza had a good run! +10 years of Mining and Crafting! +Ping the human! +In case it isn't obvious, foxes aren't players. +Buzzy Bees! +Minecraft Java Edition presents: Disgusting Bugs +Wash your hands! +Soap and water! +Support local businesses! +Stay home and play games! +Stay safe! +Stay strong! +Cough or sneeze into your elbow! +Don’t touch your face! +Support elderly relatives and friends! +Prepare, but don’t hoard! +Gamers unite – separately in your own homes! +Save the world – stay inside! +Shop for your elders! +Hang out with your friends online! +Honey, I grew the bees! +Find your claw! +Everybody do the Leif! +<3 Max & 99 & Ducky! +Bushy eyebrows! +Edit is a name! +From free range developers! +Music by Lena Raine! +Aww man! +#minecraftfarms +And my pickaxe! +Envision! Create! Share! +Fabulous graphics! +Also try Minecraft Dungeons! +Vanilla! +May contain traces of citrus! +Zoglin!? +Black lives matter! +Be anti-racist! +Learn about allyship! +Speak OUT against injustice and UP for equality! +Amplify and listen to BIPOC voices! +Educate your friends on anti-racism! +Support the BIPOC community and creators! +Stand up for equality in your community! +[this splash text is now available] +Contains simulated goats! +Home-made! +There's < concurrentLinkedQueue = pipeline.getRecordingQueue(); + } + + public static void render(RenderPipeline pipeline, float unknown) { + ConcurrentLinkedQueue concurrentLinkedQueue = pipeline.getProcessedQueue(); + } + + public static void youJustLostTheGame() { + MemoryUtil.memSet(0L, 0, 1L); + } + + public static double getTime() { + return GLFW.glfwGetTime(); + } +} diff --git a/com/mojang/blaze3d/DontObfuscate.java b/com/mojang/blaze3d/DontObfuscate.java new file mode 100644 index 00000000..1b50595c --- /dev/null +++ b/com/mojang/blaze3d/DontObfuscate.java @@ -0,0 +1,14 @@ +package com.mojang.blaze3d; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.annotation.meta.TypeQualifierDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@TypeQualifierDefault({ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.CLASS) +@Environment(EnvType.CLIENT) +public @interface DontObfuscate { +} diff --git a/com/mojang/blaze3d/FieldsAreNonnullByDefault.java b/com/mojang/blaze3d/FieldsAreNonnullByDefault.java new file mode 100644 index 00000000..219b7bed --- /dev/null +++ b/com/mojang/blaze3d/FieldsAreNonnullByDefault.java @@ -0,0 +1,16 @@ +package com.mojang.blaze3d; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.annotation.meta.TypeQualifierDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.NotNull; + +@NotNull +@TypeQualifierDefault({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Environment(EnvType.CLIENT) +public @interface FieldsAreNonnullByDefault { +} diff --git a/com/mojang/blaze3d/MethodsReturnNonnullByDefault.java b/com/mojang/blaze3d/MethodsReturnNonnullByDefault.java new file mode 100644 index 00000000..5fb039fb --- /dev/null +++ b/com/mojang/blaze3d/MethodsReturnNonnullByDefault.java @@ -0,0 +1,16 @@ +package com.mojang.blaze3d; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.annotation.meta.TypeQualifierDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.NotNull; + +@NotNull +@TypeQualifierDefault({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Environment(EnvType.CLIENT) +public @interface MethodsReturnNonnullByDefault { +} diff --git a/com/mojang/blaze3d/audio/Channel.java b/com/mojang/blaze3d/audio/Channel.java new file mode 100644 index 00000000..78db13b6 --- /dev/null +++ b/com/mojang/blaze3d/audio/Channel.java @@ -0,0 +1,266 @@ +package com.mojang.blaze3d.audio; + +import com.mojang.logging.LogUtils; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.concurrent.atomic.AtomicBoolean; +import javax.sound.sampled.AudioFormat; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.sounds.AudioStream; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.openal.AL10; +import org.slf4j.Logger; + +/** + * Represents an OpenAL audio channel. + */ +@Environment(EnvType.CLIENT) +public class Channel { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final int QUEUED_BUFFER_COUNT = 4; + public static final int BUFFER_DURATION_SECONDS = 1; + private final int source; + private final AtomicBoolean initialized = new AtomicBoolean(true); + private int streamingBufferSize = 16384; + @Nullable + private AudioStream stream; + + /** + * Creates a new OpenAL audio channel. + * {@return a new OpenAL audio channel or {@code null} if its creation failed} + */ + @Nullable + static Channel create() { + int[] is = new int[1]; + AL10.alGenSources(is); + return OpenAlUtil.checkALError("Allocate new source") ? null : new Channel(is[0]); + } + + private Channel(int source) { + this.source = source; + } + + /** + * Stops the audio channel and releases resources. + */ + public void destroy() { + if (this.initialized.compareAndSet(true, false)) { + AL10.alSourceStop(this.source); + OpenAlUtil.checkALError("Stop"); + if (this.stream != null) { + try { + this.stream.close(); + } catch (IOException var2) { + LOGGER.error("Failed to close audio stream", (Throwable)var2); + } + + this.removeProcessedBuffers(); + this.stream = null; + } + + AL10.alDeleteSources(new int[]{this.source}); + OpenAlUtil.checkALError("Cleanup"); + } + } + + /** + * Starts playing the audio channel. + */ + public void play() { + AL10.alSourcePlay(this.source); + } + + /** + * {@return the state of the audio channel} + */ + private int getState() { + return !this.initialized.get() ? 4116 : AL10.alGetSourcei(this.source, 4112); + } + + /** + * Pauses the audio channel. + */ + public void pause() { + if (this.getState() == 4114) { + AL10.alSourcePause(this.source); + } + } + + /** + * Resumes playing the audio channel if it was paused. + */ + public void unpause() { + if (this.getState() == 4115) { + AL10.alSourcePlay(this.source); + } + } + + /** + * Stops playing the audio channel. + */ + public void stop() { + if (this.initialized.get()) { + AL10.alSourceStop(this.source); + OpenAlUtil.checkALError("Stop"); + } + } + + /** + * {@return {@code true} if the audio channel is currently playing, {@code false} otherwise} + */ + public boolean playing() { + return this.getState() == 4114; + } + + /** + * {@return {@code true} if the audio channel is stopped, {@code false} otherwise} + */ + public boolean stopped() { + return this.getState() == 4116; + } + + /** + * Sets the position of the audio channel. + * + * @param source the position of the audio channel + */ + public void setSelfPosition(Vec3 source) { + AL10.alSourcefv(this.source, 4100, new float[]{(float)source.x, (float)source.y, (float)source.z}); + } + + /** + * Sets the pitch of the audio channel. + * + * @param pitch the pitch of the audio channel + */ + public void setPitch(float pitch) { + AL10.alSourcef(this.source, 4099, pitch); + } + + /** + * Sets whether the audio channel should loop. + * + * @param looping {@code true} if the audio channel should loop, {@code false} otherwise + */ + public void setLooping(boolean looping) { + AL10.alSourcei(this.source, 4103, looping ? 1 : 0); + } + + /** + * Sets the volume of the audio channel. + * + * @param volume the volume of the audio channel + */ + public void setVolume(float volume) { + AL10.alSourcef(this.source, 4106, volume); + } + + /** + * Disables attenuation for the audio channel. + */ + public void disableAttenuation() { + AL10.alSourcei(this.source, 53248, 0); + } + + /** + * Sets linear attenuation for the audio channel. + * + * @param linearAttenuation the linear attenuation of the audio channel + */ + public void linearAttenuation(float linearAttenuation) { + AL10.alSourcei(this.source, 53248, 53251); + AL10.alSourcef(this.source, 4131, linearAttenuation); + AL10.alSourcef(this.source, 4129, 1.0F); + AL10.alSourcef(this.source, 4128, 0.0F); + } + + /** + * Sets whether the audio channel should be relative to the listener's position. + * + * @param relative {@code true} if the audio channel should be relative, {@code false} otherwise + */ + public void setRelative(boolean relative) { + AL10.alSourcei(this.source, 514, relative ? 1 : 0); + } + + /** + * Attaches a static buffer to the audio channel. + * + * @param buffer the buffer to attach + */ + public void attachStaticBuffer(SoundBuffer buffer) { + buffer.getAlBuffer().ifPresent(i -> AL10.alSourcei(this.source, 4105, i)); + } + + /** + * Attaches a buffer stream to the audio channel. + * + * @param stream the stream to attach + */ + public void attachBufferStream(AudioStream stream) { + this.stream = stream; + AudioFormat audioFormat = stream.getFormat(); + this.streamingBufferSize = calculateBufferSize(audioFormat, 1); + this.pumpBuffers(4); + } + + /** + * Calculates the buffer size for an audio stream. + * @return the buffer size + * + * @param format the audio format of the stream + * @param sampleAmount the number of samples to buffer + */ + private static int calculateBufferSize(AudioFormat format, int sampleAmount) { + return (int)(sampleAmount * format.getSampleSizeInBits() / 8.0F * format.getChannels() * format.getSampleRate()); + } + + /** + * Reads and queues audio buffers from the stream. + * + * @param readCount the number of buffers to read and queue + */ + private void pumpBuffers(int readCount) { + if (this.stream != null) { + try { + for (int i = 0; i < readCount; i++) { + ByteBuffer byteBuffer = this.stream.read(this.streamingBufferSize); + if (byteBuffer != null) { + new SoundBuffer(byteBuffer, this.stream.getFormat()).releaseAlBuffer().ifPresent(ix -> AL10.alSourceQueueBuffers(this.source, new int[]{ix})); + } + } + } catch (IOException var4) { + LOGGER.error("Failed to read from audio stream", (Throwable)var4); + } + } + } + + /** + * Updates the audio stream by removing processed buffers and queuing new ones. + */ + public void updateStream() { + if (this.stream != null) { + int i = this.removeProcessedBuffers(); + this.pumpBuffers(i); + } + } + + /** + * Removes processed audio buffers from the audio channel. + * @return the number of processed buffers removed + */ + private int removeProcessedBuffers() { + int i = AL10.alGetSourcei(this.source, 4118); + if (i > 0) { + int[] is = new int[i]; + AL10.alSourceUnqueueBuffers(this.source, is); + OpenAlUtil.checkALError("Unqueue buffers"); + AL10.alDeleteBuffers(is); + OpenAlUtil.checkALError("Remove processed buffers"); + } + + return i; + } +} diff --git a/com/mojang/blaze3d/audio/Library.java b/com/mojang/blaze3d/audio/Library.java new file mode 100644 index 00000000..beae77f2 --- /dev/null +++ b/com/mojang/blaze3d/audio/Library.java @@ -0,0 +1,391 @@ +package com.mojang.blaze3d.audio; + +import com.google.common.collect.Sets; +import com.mojang.logging.LogUtils; +import java.nio.IntBuffer; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.Objects; +import java.util.OptionalLong; +import java.util.Set; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.SharedConstants; +import net.minecraft.util.Mth; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.openal.AL; +import org.lwjgl.openal.AL10; +import org.lwjgl.openal.ALC; +import org.lwjgl.openal.ALC10; +import org.lwjgl.openal.ALC11; +import org.lwjgl.openal.ALCCapabilities; +import org.lwjgl.openal.ALCapabilities; +import org.lwjgl.openal.ALUtil; +import org.lwjgl.openal.SOFTHRTF; +import org.lwjgl.system.MemoryStack; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class Library { + static final Logger LOGGER = LogUtils.getLogger(); + private static final int NO_DEVICE = 0; + private static final int DEFAULT_CHANNEL_COUNT = 30; + private long currentDevice; + private long context; + private boolean supportsDisconnections; + @Nullable + private String defaultDeviceName; + private static final Library.ChannelPool EMPTY = new Library.ChannelPool() { + @Nullable + @Override + public Channel acquire() { + return null; + } + + @Override + public boolean release(Channel channel) { + return false; + } + + @Override + public void cleanup() { + } + + @Override + public int getMaxCount() { + return 0; + } + + @Override + public int getUsedCount() { + return 0; + } + }; + private Library.ChannelPool staticChannels = EMPTY; + private Library.ChannelPool streamingChannels = EMPTY; + private final Listener listener = new Listener(); + + public Library() { + this.defaultDeviceName = getDefaultDeviceName(); + } + + /** + * Initializes the OpenAL device and context. + * @throws IllegalStateException if an error occurs during initialization. + * + * @param deviceSpecifier A string specifying the name of the audio device to use, or null to use the default device. + * @param enableHrtf Whether to enable HRTF (head-related transfer function) for spatial audio. + */ + public void init(@Nullable String deviceSpecifier, boolean enableHrtf) { + this.currentDevice = openDeviceOrFallback(deviceSpecifier); + this.supportsDisconnections = false; + ALCCapabilities aLCCapabilities = ALC.createCapabilities(this.currentDevice); + if (OpenAlUtil.checkALCError(this.currentDevice, "Get capabilities")) { + throw new IllegalStateException("Failed to get OpenAL capabilities"); + } else if (!aLCCapabilities.OpenALC11) { + throw new IllegalStateException("OpenAL 1.1 not supported"); + } else { + this.setHrtf(aLCCapabilities.ALC_SOFT_HRTF && enableHrtf); + + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + IntBuffer intBuffer = memoryStack.callocInt(3).put(6554).put(1).put(0).flip(); + this.context = ALC10.alcCreateContext(this.currentDevice, intBuffer); + } + + if (OpenAlUtil.checkALCError(this.currentDevice, "Create context")) { + throw new IllegalStateException("Unable to create OpenAL context"); + } else { + ALC10.alcMakeContextCurrent(this.context); + int i = this.getChannelCount(); + int j = Mth.clamp((int)Mth.sqrt(i), 2, 8); + int k = Mth.clamp(i - j, 8, 255); + this.staticChannels = new Library.CountingChannelPool(k); + this.streamingChannels = new Library.CountingChannelPool(j); + ALCapabilities aLCapabilities = AL.createCapabilities(aLCCapabilities); + OpenAlUtil.checkALError("Initialization"); + if (!aLCapabilities.AL_EXT_source_distance_model) { + throw new IllegalStateException("AL_EXT_source_distance_model is not supported"); + } else { + AL10.alEnable(512); + if (!aLCapabilities.AL_EXT_LINEAR_DISTANCE) { + throw new IllegalStateException("AL_EXT_LINEAR_DISTANCE is not supported"); + } else { + OpenAlUtil.checkALError("Enable per-source distance models"); + LOGGER.info("OpenAL initialized on device {}", this.getCurrentDeviceName()); + this.supportsDisconnections = ALC10.alcIsExtensionPresent(this.currentDevice, "ALC_EXT_disconnect"); + } + } + } + } + } + + /** + * Sets the HRTF (head-related transfer function) for spatial audio, if it is supported by the current device. + * + * @param enableHrtf Whether to enable HRTF. + */ + private void setHrtf(boolean enableHrtf) { + int i = ALC10.alcGetInteger(this.currentDevice, 6548); + if (i > 0) { + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + IntBuffer intBuffer = memoryStack.callocInt(10).put(6546).put(enableHrtf ? 1 : 0).put(6550).put(0).put(0).flip(); + if (!SOFTHRTF.alcResetDeviceSOFT(this.currentDevice, intBuffer)) { + LOGGER.warn("Failed to reset device: {}", ALC10.alcGetString(this.currentDevice, ALC10.alcGetError(this.currentDevice))); + } + } + } + } + + /** + * {@return the number of channels available for audio playback} + */ + private int getChannelCount() { + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + int i = ALC10.alcGetInteger(this.currentDevice, 4098); + if (OpenAlUtil.checkALCError(this.currentDevice, "Get attributes size")) { + throw new IllegalStateException("Failed to get OpenAL attributes"); + } + + IntBuffer intBuffer = memoryStack.mallocInt(i); + ALC10.alcGetIntegerv(this.currentDevice, 4099, intBuffer); + if (OpenAlUtil.checkALCError(this.currentDevice, "Get attributes")) { + throw new IllegalStateException("Failed to get OpenAL attributes"); + } + + int j = 0; + + while (j < i) { + int k = intBuffer.get(j++); + if (k == 0) { + break; + } + + int l = intBuffer.get(j++); + if (k == 4112) { + return l; + } + } + } + + return 30; + } + + /** + * {@return the name of the currently selected audio device, or {@code Unknown} if it cannot be determined} + */ + @Nullable + public static String getDefaultDeviceName() { + if (!ALC10.alcIsExtensionPresent(0L, "ALC_ENUMERATE_ALL_EXT")) { + return null; + } else { + ALUtil.getStringList(0L, 4115); + return ALC10.alcGetString(0L, 4114); + } + } + + /** + * {@return the name of the default audio device, or {@code null} if it cannot be determined} + */ + public String getCurrentDeviceName() { + String string = ALC10.alcGetString(this.currentDevice, 4115); + if (string == null) { + string = ALC10.alcGetString(this.currentDevice, 4101); + } + + if (string == null) { + string = "Unknown"; + } + + return string; + } + + /** + * Checks if the default audio device has changed since the last time this method was called. + *

+ * If the default device has changed, updates the stored default device name accordingly. + * @return {@code true} if the default device has changed since the last time this method was called, {@code false} otherwise + */ + public synchronized boolean hasDefaultDeviceChanged() { + String string = getDefaultDeviceName(); + if (Objects.equals(this.defaultDeviceName, string)) { + return false; + } else { + this.defaultDeviceName = string; + return true; + } + } + + /** + * Opens the specified audio device, or the default device if the specifier is null. + * @return The handle of the opened device. + * @throws IllegalStateException if the device cannot be opened. + * + * @param deviceSpecifier The name of the audio device to open, or null to open the default device. + */ + private static long openDeviceOrFallback(@Nullable String deviceSpecifier) { + OptionalLong optionalLong = OptionalLong.empty(); + if (deviceSpecifier != null) { + optionalLong = tryOpenDevice(deviceSpecifier); + } + + if (optionalLong.isEmpty()) { + optionalLong = tryOpenDevice(getDefaultDeviceName()); + } + + if (optionalLong.isEmpty()) { + optionalLong = tryOpenDevice(null); + } + + if (optionalLong.isEmpty()) { + throw new IllegalStateException("Failed to open OpenAL device"); + } else { + return optionalLong.getAsLong(); + } + } + + /** + * Attempts to open the specified audio device. + * @return an {@linkplain OptionalLong} containing the handle of the opened device if successful, or empty if the device could not be opened + * + * @param deviceSpecifier A string specifying the name of the audio device to open, or null to use the default device. + */ + private static OptionalLong tryOpenDevice(@Nullable String deviceSpecifier) { + long l = ALC10.alcOpenDevice(deviceSpecifier); + return l != 0L && !OpenAlUtil.checkALCError(l, "Open device") ? OptionalLong.of(l) : OptionalLong.empty(); + } + + /** + * Cleans up all resources used by the library. + */ + public void cleanup() { + this.staticChannels.cleanup(); + this.streamingChannels.cleanup(); + ALC10.alcDestroyContext(this.context); + if (this.currentDevice != 0L) { + ALC10.alcCloseDevice(this.currentDevice); + } + } + + public Listener getListener() { + return this.listener; + } + + /** + * Acquires a sound channel based on the given mode. + */ + @Nullable + public Channel acquireChannel(Library.Pool pool) { + return (pool == Library.Pool.STREAMING ? this.streamingChannels : this.staticChannels).acquire(); + } + + /** + * Releases a channel. + * @return whether the channel was successfully released + * + * @param channel The channel to release. + */ + public void releaseChannel(Channel channel) { + if (!this.staticChannels.release(channel) && !this.streamingChannels.release(channel)) { + throw new IllegalStateException("Tried to release unknown channel"); + } + } + + public String getDebugString() { + return String.format( + Locale.ROOT, + "Sounds: %d/%d + %d/%d", + this.staticChannels.getUsedCount(), + this.staticChannels.getMaxCount(), + this.streamingChannels.getUsedCount(), + this.streamingChannels.getMaxCount() + ); + } + + /** + * {@return A list of strings representing the names of available sound devices, or an empty list if no devices are available.} + */ + public List getAvailableSoundDevices() { + List list = ALUtil.getStringList(0L, 4115); + return list == null ? Collections.emptyList() : list; + } + + public boolean isCurrentDeviceDisconnected() { + return this.supportsDisconnections && ALC11.alcGetInteger(this.currentDevice, 787) == 0; + } + + @Environment(EnvType.CLIENT) + interface ChannelPool { + @Nullable + Channel acquire(); + + boolean release(Channel channel); + + void cleanup(); + + int getMaxCount(); + + int getUsedCount(); + } + + @Environment(EnvType.CLIENT) + static class CountingChannelPool implements Library.ChannelPool { + private final int limit; + private final Set activeChannels = Sets.newIdentityHashSet(); + + public CountingChannelPool(int limit) { + this.limit = limit; + } + + @Nullable + @Override + public Channel acquire() { + if (this.activeChannels.size() >= this.limit) { + if (SharedConstants.IS_RUNNING_IN_IDE) { + Library.LOGGER.warn("Maximum sound pool size {} reached", this.limit); + } + + return null; + } else { + Channel channel = Channel.create(); + if (channel != null) { + this.activeChannels.add(channel); + } + + return channel; + } + } + + @Override + public boolean release(Channel channel) { + if (!this.activeChannels.remove(channel)) { + return false; + } else { + channel.destroy(); + return true; + } + } + + @Override + public void cleanup() { + this.activeChannels.forEach(Channel::destroy); + this.activeChannels.clear(); + } + + @Override + public int getMaxCount() { + return this.limit; + } + + @Override + public int getUsedCount() { + return this.activeChannels.size(); + } + } + + @Environment(EnvType.CLIENT) + public static enum Pool { + STATIC, + STREAMING; + } +} diff --git a/com/mojang/blaze3d/audio/Listener.java b/com/mojang/blaze3d/audio/Listener.java new file mode 100644 index 00000000..52d0e089 --- /dev/null +++ b/com/mojang/blaze3d/audio/Listener.java @@ -0,0 +1,54 @@ +package com.mojang.blaze3d.audio; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.world.phys.Vec3; +import org.lwjgl.openal.AL10; + +/** + * The Listener class represents the listener in a 3D audio environment. + * + * The listener's position and orientation determine how sounds are perceived by the listener. + */ +@Environment(EnvType.CLIENT) +public class Listener { + private float gain = 1.0F; + private ListenerTransform transform = ListenerTransform.INITIAL; + + public void setTransform(ListenerTransform transform) { + this.transform = transform; + Vec3 vec3 = transform.position(); + Vec3 vec32 = transform.forward(); + Vec3 vec33 = transform.up(); + AL10.alListener3f(4100, (float)vec3.x, (float)vec3.y, (float)vec3.z); + AL10.alListenerfv(4111, new float[]{(float)vec32.x, (float)vec32.y, (float)vec32.z, (float)vec33.x(), (float)vec33.y(), (float)vec33.z()}); + } + + /** + * Sets the listener's gain. + * + * @param gain The gain to set for the listener. + */ + public void setGain(float gain) { + AL10.alListenerf(4106, gain); + this.gain = gain; + } + + /** + * {@return the current gain value of the listener} + */ + public float getGain() { + return this.gain; + } + + /** + * Resets the listener's position and orientation to default values. + */ + public void reset() { + this.setTransform(ListenerTransform.INITIAL); + } + + public ListenerTransform getTransform() { + return this.transform; + } +} diff --git a/com/mojang/blaze3d/audio/ListenerTransform.java b/com/mojang/blaze3d/audio/ListenerTransform.java new file mode 100644 index 00000000..1966e856 --- /dev/null +++ b/com/mojang/blaze3d/audio/ListenerTransform.java @@ -0,0 +1,14 @@ +package com.mojang.blaze3d.audio; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.world.phys.Vec3; + +@Environment(EnvType.CLIENT) +public record ListenerTransform(Vec3 position, Vec3 forward, Vec3 up) { + public static final ListenerTransform INITIAL = new ListenerTransform(Vec3.ZERO, new Vec3(0.0, 0.0, -1.0), new Vec3(0.0, 1.0, 0.0)); + + public Vec3 right() { + return this.forward.cross(this.up); + } +} diff --git a/com/mojang/blaze3d/audio/OpenAlUtil.java b/com/mojang/blaze3d/audio/OpenAlUtil.java new file mode 100644 index 00000000..82c2ff6e --- /dev/null +++ b/com/mojang/blaze3d/audio/OpenAlUtil.java @@ -0,0 +1,131 @@ +package com.mojang.blaze3d.audio; + +import com.mojang.logging.LogUtils; +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioFormat.Encoding; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.lwjgl.openal.AL10; +import org.lwjgl.openal.ALC10; +import org.slf4j.Logger; + +/** + * The OpenALUtil class provides utility functions for working with OpenAL audio. + */ +@Environment(EnvType.CLIENT) +public class OpenAlUtil { + private static final Logger LOGGER = LogUtils.getLogger(); + + /** + * Converts an OpenAL error code to a human-readable error message. + * @return A String representing the error message for the given error code. + * + * @param errorCode The OpenAL error code to convert + */ + private static String alErrorToString(int errorCode) { + switch (errorCode) { + case 40961: + return "Invalid name parameter."; + case 40962: + return "Invalid enumerated parameter value."; + case 40963: + return "Invalid parameter parameter value."; + case 40964: + return "Invalid operation."; + case 40965: + return "Unable to allocate memory."; + default: + return "An unrecognized error occurred."; + } + } + + /** + * Checks for an OpenAL error and logs an error message if one is found. + * @return true if an OpenAL error was found, false otherwise. + * + * @param operationState A String describing the operation being performed when the error occurred + */ + static boolean checkALError(String operationState) { + int i = AL10.alGetError(); + if (i != 0) { + LOGGER.error("{}: {}", operationState, alErrorToString(i)); + return true; + } else { + return false; + } + } + + /** + * Converts an ALC error code to a human-readable error message. + * @return A String representing the error message for the given error code. + * + * @param errorCode The ALC error code to convert + */ + private static String alcErrorToString(int errorCode) { + switch (errorCode) { + case 40961: + return "Invalid device."; + case 40962: + return "Invalid context."; + case 40963: + return "Illegal enum."; + case 40964: + return "Invalid value."; + case 40965: + return "Unable to allocate memory."; + default: + return "An unrecognized error occurred."; + } + } + + /** + * Checks for an ALC error and logs an error message if one is found. + * @return true if an ALC error was found, false otherwise. + * + * @param deviceHandle The handle of the device to check for errors on + * @param operationState A String describing the operation being performed when the error occurred + */ + static boolean checkALCError(long deviceHandle, String operationState) { + int i = ALC10.alcGetError(deviceHandle); + if (i != 0) { + LOGGER.error("{} ({}): {}", operationState, deviceHandle, alcErrorToString(i)); + return true; + } else { + return false; + } + } + + /** + * Converts an AudioFormat object to the corresponding OpenAL audio format code. + * @return An integer representing the corresponding OpenAL audio format code. + * @throws IllegalArgumentException if the given AudioFormat is not a supported format. + * + * @param format The AudioFormat object to convert + */ + static int audioFormatToOpenAl(AudioFormat format) { + Encoding encoding = format.getEncoding(); + int i = format.getChannels(); + int j = format.getSampleSizeInBits(); + if (encoding.equals(Encoding.PCM_UNSIGNED) || encoding.equals(Encoding.PCM_SIGNED)) { + if (i == 1) { + if (j == 8) { + return 4352; + } + + if (j == 16) { + return 4353; + } + } else if (i == 2) { + if (j == 8) { + return 4354; + } + + if (j == 16) { + return 4355; + } + } + } + + throw new IllegalArgumentException("Invalid audio format: " + format); + } +} diff --git a/com/mojang/blaze3d/audio/SoundBuffer.java b/com/mojang/blaze3d/audio/SoundBuffer.java new file mode 100644 index 00000000..fe42503e --- /dev/null +++ b/com/mojang/blaze3d/audio/SoundBuffer.java @@ -0,0 +1,85 @@ +package com.mojang.blaze3d.audio; + +import java.nio.ByteBuffer; +import java.util.OptionalInt; +import javax.sound.sampled.AudioFormat; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.openal.AL10; + +/** + * The SoundBuffer class represents an audio buffer containing audio data in a particular format. + * + * The audio data can be used to create an OpenAL buffer, which can be played in a 3D audio environment. + */ +@Environment(EnvType.CLIENT) +public class SoundBuffer { + @Nullable + private ByteBuffer data; + private final AudioFormat format; + private boolean hasAlBuffer; + private int alBuffer; + + public SoundBuffer(ByteBuffer data, AudioFormat format) { + this.data = data; + this.format = format; + } + + /** + * Returns an OptionalInt containing the OpenAL buffer handle for this SoundBuffer. + * If the buffer has not been created yet, creates the buffer and returns the handle. + * If the buffer cannot be created, returns an empty OptionalInt. + * @return An OptionalInt containing the OpenAL buffer handle, or an empty OptionalInt if the buffer cannot be created. + */ + OptionalInt getAlBuffer() { + if (!this.hasAlBuffer) { + if (this.data == null) { + return OptionalInt.empty(); + } + + int i = OpenAlUtil.audioFormatToOpenAl(this.format); + int[] is = new int[1]; + AL10.alGenBuffers(is); + if (OpenAlUtil.checkALError("Creating buffer")) { + return OptionalInt.empty(); + } + + AL10.alBufferData(is[0], i, this.data, (int)this.format.getSampleRate()); + if (OpenAlUtil.checkALError("Assigning buffer data")) { + return OptionalInt.empty(); + } + + this.alBuffer = is[0]; + this.hasAlBuffer = true; + this.data = null; + } + + return OptionalInt.of(this.alBuffer); + } + + /** + * Deletes the OpenAL buffer associated with this SoundBuffer, if it exists. + */ + public void discardAlBuffer() { + if (this.hasAlBuffer) { + AL10.alDeleteBuffers(new int[]{this.alBuffer}); + if (OpenAlUtil.checkALError("Deleting stream buffers")) { + return; + } + } + + this.hasAlBuffer = false; + } + + /** + * Releases the OpenAL buffer associated with this SoundBuffer and returns it as an OptionalInt. + * If no buffer has been created yet, returns an empty OptionalInt. + * @return an {@linkplain OptionalInt} containing the OpenAL buffer handle, or an empty one, if the buffer has not been created + */ + public OptionalInt releaseAlBuffer() { + OptionalInt optionalInt = this.getAlBuffer(); + this.hasAlBuffer = false; + return optionalInt; + } +} diff --git a/com/mojang/blaze3d/audio/package-info.java b/com/mojang/blaze3d/audio/package-info.java new file mode 100644 index 00000000..07f8d255 --- /dev/null +++ b/com/mojang/blaze3d/audio/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.audio; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/font/GlyphInfo.java b/com/mojang/blaze3d/font/GlyphInfo.java new file mode 100644 index 00000000..b55d684e --- /dev/null +++ b/com/mojang/blaze3d/font/GlyphInfo.java @@ -0,0 +1,34 @@ +package com.mojang.blaze3d.font; + +import java.util.function.Function; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.font.glyphs.BakedGlyph; +import net.minecraft.client.gui.font.glyphs.EmptyGlyph; + +@Environment(EnvType.CLIENT) +public interface GlyphInfo { + float getAdvance(); + + default float getAdvance(boolean bold) { + return this.getAdvance() + (bold ? this.getBoldOffset() : 0.0F); + } + + default float getBoldOffset() { + return 1.0F; + } + + default float getShadowOffset() { + return 1.0F; + } + + BakedGlyph bake(Function function); + + @Environment(EnvType.CLIENT) + public interface SpaceGlyphInfo extends GlyphInfo { + @Override + default BakedGlyph bake(Function function) { + return EmptyGlyph.INSTANCE; + } + } +} diff --git a/com/mojang/blaze3d/font/GlyphProvider.java b/com/mojang/blaze3d/font/GlyphProvider.java new file mode 100644 index 00000000..37437fe8 --- /dev/null +++ b/com/mojang/blaze3d/font/GlyphProvider.java @@ -0,0 +1,29 @@ +package com.mojang.blaze3d.font; + +import it.unimi.dsi.fastutil.ints.IntSet; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.font.FontOption; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public interface GlyphProvider extends AutoCloseable { + float BASELINE = 7.0F; + + default void close() { + } + + @Nullable + default GlyphInfo getGlyph(int character) { + return null; + } + + IntSet getSupportedGlyphs(); + + @Environment(EnvType.CLIENT) + public record Conditional(GlyphProvider provider, FontOption.Filter filter) implements AutoCloseable { + public void close() { + this.provider.close(); + } + } +} diff --git a/com/mojang/blaze3d/font/SheetGlyphInfo.java b/com/mojang/blaze3d/font/SheetGlyphInfo.java new file mode 100644 index 00000000..289cf864 --- /dev/null +++ b/com/mojang/blaze3d/font/SheetGlyphInfo.java @@ -0,0 +1,41 @@ +package com.mojang.blaze3d.font; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface SheetGlyphInfo { + int getPixelWidth(); + + int getPixelHeight(); + + void upload(int xOffset, int yOffset); + + boolean isColored(); + + float getOversample(); + + default float getLeft() { + return this.getBearingLeft(); + } + + default float getRight() { + return this.getLeft() + this.getPixelWidth() / this.getOversample(); + } + + default float getTop() { + return 7.0F - this.getBearingTop(); + } + + default float getBottom() { + return this.getTop() + this.getPixelHeight() / this.getOversample(); + } + + default float getBearingLeft() { + return 0.0F; + } + + default float getBearingTop() { + return 7.0F; + } +} diff --git a/com/mojang/blaze3d/font/SpaceProvider.java b/com/mojang/blaze3d/font/SpaceProvider.java new file mode 100644 index 00000000..0b387c2e --- /dev/null +++ b/com/mojang/blaze3d/font/SpaceProvider.java @@ -0,0 +1,57 @@ +package com.mojang.blaze3d.font; + +import com.mojang.datafixers.util.Either; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.ints.IntSet; +import it.unimi.dsi.fastutil.ints.IntSets; +import java.util.Map; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.font.providers.GlyphProviderDefinition; +import net.minecraft.client.gui.font.providers.GlyphProviderType; +import net.minecraft.util.ExtraCodecs; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class SpaceProvider implements GlyphProvider { + private final Int2ObjectMap glyphs; + + public SpaceProvider(Map glyphs) { + this.glyphs = new Int2ObjectOpenHashMap<>(glyphs.size()); + glyphs.forEach((integer, float_) -> this.glyphs.put(integer.intValue(), () -> float_)); + } + + @Nullable + @Override + public GlyphInfo getGlyph(int character) { + return this.glyphs.get(character); + } + + @Override + public IntSet getSupportedGlyphs() { + return IntSets.unmodifiable(this.glyphs.keySet()); + } + + @Environment(EnvType.CLIENT) + public record Definition(Map advances) implements GlyphProviderDefinition { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group(Codec.unboundedMap(ExtraCodecs.CODEPOINT, Codec.FLOAT).fieldOf("advances").forGetter(SpaceProvider.Definition::advances)) + .apply(instance, SpaceProvider.Definition::new) + ); + + @Override + public GlyphProviderType type() { + return GlyphProviderType.SPACE; + } + + @Override + public Either unpack() { + GlyphProviderDefinition.Loader loader = resourceManager -> new SpaceProvider(this.advances); + return Either.left(loader); + } + } +} diff --git a/com/mojang/blaze3d/font/TrueTypeGlyphProvider.java b/com/mojang/blaze3d/font/TrueTypeGlyphProvider.java new file mode 100644 index 00000000..f0509eee --- /dev/null +++ b/com/mojang/blaze3d/font/TrueTypeGlyphProvider.java @@ -0,0 +1,181 @@ +package com.mojang.blaze3d.font; + +import com.mojang.blaze3d.platform.NativeImage; +import it.unimi.dsi.fastutil.ints.IntArraySet; +import it.unimi.dsi.fastutil.ints.IntOpenHashSet; +import it.unimi.dsi.fastutil.ints.IntSet; +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.util.Objects; +import java.util.function.Function; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.font.glyphs.BakedGlyph; +import net.minecraft.client.gui.font.providers.FreeTypeUtil; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.util.freetype.FT_Bitmap; +import org.lwjgl.util.freetype.FT_Face; +import org.lwjgl.util.freetype.FT_GlyphSlot; +import org.lwjgl.util.freetype.FT_Vector; +import org.lwjgl.util.freetype.FreeType; + +@Environment(EnvType.CLIENT) +public class TrueTypeGlyphProvider implements GlyphProvider { + @Nullable + private ByteBuffer fontMemory; + @Nullable + private FT_Face face; + final float oversample; + private final IntSet skip = new IntArraySet(); + + public TrueTypeGlyphProvider(ByteBuffer fontMemory, FT_Face face, float size, float oversample, float shiftX, float shiftY, String skip) { + this.fontMemory = fontMemory; + this.face = face; + this.oversample = oversample; + skip.codePoints().forEach(this.skip::add); + int i = Math.round(size * oversample); + FreeType.FT_Set_Pixel_Sizes(face, i, i); + float f = shiftX * oversample; + float g = -shiftY * oversample; + + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + FT_Vector fT_Vector = FreeTypeUtil.setVector(FT_Vector.malloc(memoryStack), f, g); + FreeType.FT_Set_Transform(face, null, fT_Vector); + } + } + + @Nullable + @Override + public GlyphInfo getGlyph(int character) { + FT_Face fT_Face = this.validateFontOpen(); + if (this.skip.contains(character)) { + return null; + } else { + int i = FreeType.FT_Get_Char_Index(fT_Face, character); + if (i == 0) { + return null; + } else { + FreeTypeUtil.assertError(FreeType.FT_Load_Glyph(fT_Face, i, 4194312), "Loading glyph"); + FT_GlyphSlot fT_GlyphSlot = (FT_GlyphSlot)Objects.requireNonNull(fT_Face.glyph(), "Glyph not initialized"); + float f = FreeTypeUtil.x(fT_GlyphSlot.advance()); + FT_Bitmap fT_Bitmap = fT_GlyphSlot.bitmap(); + int j = fT_GlyphSlot.bitmap_left(); + int k = fT_GlyphSlot.bitmap_top(); + int l = fT_Bitmap.width(); + int m = fT_Bitmap.rows(); + return (GlyphInfo)(l > 0 && m > 0 ? new TrueTypeGlyphProvider.Glyph(j, k, l, m, f, i) : () -> f / this.oversample); + } + } + } + + FT_Face validateFontOpen() { + if (this.fontMemory != null && this.face != null) { + return this.face; + } else { + throw new IllegalStateException("Provider already closed"); + } + } + + @Override + public void close() { + if (this.face != null) { + synchronized (FreeTypeUtil.LIBRARY_LOCK) { + FreeTypeUtil.checkError(FreeType.FT_Done_Face(this.face), "Deleting face"); + } + + this.face = null; + } + + MemoryUtil.memFree(this.fontMemory); + this.fontMemory = null; + } + + @Override + public IntSet getSupportedGlyphs() { + FT_Face fT_Face = this.validateFontOpen(); + IntSet intSet = new IntOpenHashSet(); + + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + IntBuffer intBuffer = memoryStack.mallocInt(1); + + for (long l = FreeType.FT_Get_First_Char(fT_Face, intBuffer); intBuffer.get(0) != 0; l = FreeType.FT_Get_Next_Char(fT_Face, l, intBuffer)) { + intSet.add((int)l); + } + } + + intSet.removeAll(this.skip); + return intSet; + } + + @Environment(EnvType.CLIENT) + class Glyph implements GlyphInfo { + final int width; + final int height; + final float bearingX; + final float bearingY; + private final float advance; + final int index; + + Glyph(final float bearingX, final float bearingY, final int width, final int height, final float advance, final int index) { + this.width = width; + this.height = height; + this.advance = advance / TrueTypeGlyphProvider.this.oversample; + this.bearingX = bearingX / TrueTypeGlyphProvider.this.oversample; + this.bearingY = bearingY / TrueTypeGlyphProvider.this.oversample; + this.index = index; + } + + @Override + public float getAdvance() { + return this.advance; + } + + @Override + public BakedGlyph bake(Function function) { + return (BakedGlyph)function.apply(new SheetGlyphInfo() { + @Override + public int getPixelWidth() { + return Glyph.this.width; + } + + @Override + public int getPixelHeight() { + return Glyph.this.height; + } + + @Override + public float getOversample() { + return TrueTypeGlyphProvider.this.oversample; + } + + @Override + public float getBearingLeft() { + return Glyph.this.bearingX; + } + + @Override + public float getBearingTop() { + return Glyph.this.bearingY; + } + + @Override + public void upload(int xOffset, int yOffset) { + FT_Face fT_Face = TrueTypeGlyphProvider.this.validateFontOpen(); + NativeImage nativeImage = new NativeImage(NativeImage.Format.LUMINANCE, Glyph.this.width, Glyph.this.height, false); + if (nativeImage.copyFromFont(fT_Face, Glyph.this.index)) { + nativeImage.upload(0, xOffset, yOffset, 0, 0, Glyph.this.width, Glyph.this.height, false, true); + } else { + nativeImage.close(); + } + } + + @Override + public boolean isColored() { + return false; + } + }); + } + } +} diff --git a/com/mojang/blaze3d/font/package-info.java b/com/mojang/blaze3d/font/package-info.java new file mode 100644 index 00000000..09d94d75 --- /dev/null +++ b/com/mojang/blaze3d/font/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.font; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/package-info.java b/com/mojang/blaze3d/package-info.java new file mode 100644 index 00000000..85550ec4 --- /dev/null +++ b/com/mojang/blaze3d/package-info.java @@ -0,0 +1,9 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/pipeline/MainTarget.java b/com/mojang/blaze3d/pipeline/MainTarget.java new file mode 100644 index 00000000..b7f173e8 --- /dev/null +++ b/com/mojang/blaze3d/pipeline/MainTarget.java @@ -0,0 +1,140 @@ +package com.mojang.blaze3d.pipeline; + +import com.google.common.collect.ImmutableList; +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.platform.TextureUtil; +import com.mojang.blaze3d.systems.RenderSystem; +import java.util.List; +import java.util.Objects; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class MainTarget extends RenderTarget { + public static final int DEFAULT_WIDTH = 854; + public static final int DEFAULT_HEIGHT = 480; + static final MainTarget.Dimension DEFAULT_DIMENSIONS = new MainTarget.Dimension(854, 480); + + public MainTarget(int width, int height) { + super(true); + this.createFrameBuffer(width, height); + } + + private void createFrameBuffer(int width, int height) { + MainTarget.Dimension dimension = this.allocateAttachments(width, height); + this.frameBufferId = GlStateManager.glGenFramebuffers(); + GlStateManager._glBindFramebuffer(36160, this.frameBufferId); + GlStateManager._bindTexture(this.colorTextureId); + GlStateManager._texParameter(3553, 10241, 9728); + GlStateManager._texParameter(3553, 10240, 9728); + GlStateManager._texParameter(3553, 10242, 33071); + GlStateManager._texParameter(3553, 10243, 33071); + GlStateManager._glFramebufferTexture2D(36160, 36064, 3553, this.colorTextureId, 0); + GlStateManager._bindTexture(this.depthBufferId); + GlStateManager._texParameter(3553, 34892, 0); + GlStateManager._texParameter(3553, 10241, 9728); + GlStateManager._texParameter(3553, 10240, 9728); + GlStateManager._texParameter(3553, 10242, 33071); + GlStateManager._texParameter(3553, 10243, 33071); + GlStateManager._glFramebufferTexture2D(36160, 36096, 3553, this.depthBufferId, 0); + GlStateManager._bindTexture(0); + this.viewWidth = dimension.width; + this.viewHeight = dimension.height; + this.width = dimension.width; + this.height = dimension.height; + this.checkStatus(); + GlStateManager._glBindFramebuffer(36160, 0); + } + + private MainTarget.Dimension allocateAttachments(int width, int height) { + RenderSystem.assertOnRenderThreadOrInit(); + this.colorTextureId = TextureUtil.generateTextureId(); + this.depthBufferId = TextureUtil.generateTextureId(); + MainTarget.AttachmentState attachmentState = MainTarget.AttachmentState.NONE; + + for (MainTarget.Dimension dimension : MainTarget.Dimension.listWithFallback(width, height)) { + attachmentState = MainTarget.AttachmentState.NONE; + if (this.allocateColorAttachment(dimension)) { + attachmentState = attachmentState.with(MainTarget.AttachmentState.COLOR); + } + + if (this.allocateDepthAttachment(dimension)) { + attachmentState = attachmentState.with(MainTarget.AttachmentState.DEPTH); + } + + if (attachmentState == MainTarget.AttachmentState.COLOR_DEPTH) { + return dimension; + } + } + + throw new RuntimeException("Unrecoverable GL_OUT_OF_MEMORY (allocated attachments = " + attachmentState.name() + ")"); + } + + private boolean allocateColorAttachment(MainTarget.Dimension dimension) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._getError(); + GlStateManager._bindTexture(this.colorTextureId); + GlStateManager._texImage2D(3553, 0, 32856, dimension.width, dimension.height, 0, 6408, 5121, null); + return GlStateManager._getError() != 1285; + } + + private boolean allocateDepthAttachment(MainTarget.Dimension dimension) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._getError(); + GlStateManager._bindTexture(this.depthBufferId); + GlStateManager._texImage2D(3553, 0, 6402, dimension.width, dimension.height, 0, 6402, 5126, null); + return GlStateManager._getError() != 1285; + } + + @Environment(EnvType.CLIENT) + static enum AttachmentState { + NONE, + COLOR, + DEPTH, + COLOR_DEPTH; + + private static final MainTarget.AttachmentState[] VALUES = values(); + + MainTarget.AttachmentState with(MainTarget.AttachmentState otherState) { + return VALUES[this.ordinal() | otherState.ordinal()]; + } + } + + @Environment(EnvType.CLIENT) + static class Dimension { + public final int width; + public final int height; + + Dimension(int width, int height) { + this.width = width; + this.height = height; + } + + static List listWithFallback(int width, int height) { + RenderSystem.assertOnRenderThreadOrInit(); + int i = RenderSystem.maxSupportedTextureSize(); + return width > 0 && width <= i && height > 0 && height <= i + ? ImmutableList.of(new MainTarget.Dimension(width, height), MainTarget.DEFAULT_DIMENSIONS) + : ImmutableList.of(MainTarget.DEFAULT_DIMENSIONS); + } + + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (object != null && this.getClass() == object.getClass()) { + MainTarget.Dimension dimension = (MainTarget.Dimension)object; + return this.width == dimension.width && this.height == dimension.height; + } else { + return false; + } + } + + public int hashCode() { + return Objects.hash(new Object[]{this.width, this.height}); + } + + public String toString() { + return this.width + "x" + this.height; + } + } +} diff --git a/com/mojang/blaze3d/pipeline/RenderCall.java b/com/mojang/blaze3d/pipeline/RenderCall.java new file mode 100644 index 00000000..957fcc11 --- /dev/null +++ b/com/mojang/blaze3d/pipeline/RenderCall.java @@ -0,0 +1,9 @@ +package com.mojang.blaze3d.pipeline; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface RenderCall { + void execute(); +} diff --git a/com/mojang/blaze3d/pipeline/RenderPipeline.java b/com/mojang/blaze3d/pipeline/RenderPipeline.java new file mode 100644 index 00000000..61a0ffdf --- /dev/null +++ b/com/mojang/blaze3d/pipeline/RenderPipeline.java @@ -0,0 +1,99 @@ +package com.mojang.blaze3d.pipeline; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import java.util.concurrent.ConcurrentLinkedQueue; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RenderPipeline { + private final List> renderCalls = ImmutableList.of( + new ConcurrentLinkedQueue(), new ConcurrentLinkedQueue(), new ConcurrentLinkedQueue(), new ConcurrentLinkedQueue() + ); + private volatile boolean isRecording; + private volatile int recordingBuffer; + private volatile boolean isProcessing; + private volatile int processedBuffer; + private volatile int renderingBuffer; + + public RenderPipeline() { + this.recordingBuffer = this.processedBuffer = this.renderingBuffer + 1; + } + + public boolean canBeginRecording() { + return !this.isRecording && this.recordingBuffer == this.processedBuffer; + } + + public boolean beginRecording() { + if (this.isRecording) { + throw new RuntimeException("ALREADY RECORDING !!!"); + } else if (this.canBeginRecording()) { + this.recordingBuffer = (this.processedBuffer + 1) % this.renderCalls.size(); + this.isRecording = true; + return true; + } else { + return false; + } + } + + public void recordRenderCall(RenderCall renderCall) { + if (!this.isRecording) { + throw new RuntimeException("NOT RECORDING !!!"); + } else { + ConcurrentLinkedQueue concurrentLinkedQueue = this.getRecordingQueue(); + concurrentLinkedQueue.add(renderCall); + } + } + + public void endRecording() { + if (this.isRecording) { + this.isRecording = false; + } else { + throw new RuntimeException("NOT RECORDING !!!"); + } + } + + public boolean canBeginProcessing() { + return !this.isProcessing && this.recordingBuffer != this.processedBuffer; + } + + public boolean beginProcessing() { + if (this.isProcessing) { + throw new RuntimeException("ALREADY PROCESSING !!!"); + } else if (this.canBeginProcessing()) { + this.isProcessing = true; + return true; + } else { + return false; + } + } + + public void processRecordedQueue() { + if (!this.isProcessing) { + throw new RuntimeException("NOT PROCESSING !!!"); + } + } + + public void endProcessing() { + if (this.isProcessing) { + this.isProcessing = false; + this.renderingBuffer = this.processedBuffer; + this.processedBuffer = this.recordingBuffer; + } else { + throw new RuntimeException("NOT PROCESSING !!!"); + } + } + + public ConcurrentLinkedQueue startRendering() { + return (ConcurrentLinkedQueue)this.renderCalls.get(this.renderingBuffer); + } + + public ConcurrentLinkedQueue getRecordingQueue() { + return (ConcurrentLinkedQueue)this.renderCalls.get(this.recordingBuffer); + } + + public ConcurrentLinkedQueue getProcessedQueue() { + return (ConcurrentLinkedQueue)this.renderCalls.get(this.processedBuffer); + } +} diff --git a/com/mojang/blaze3d/pipeline/RenderTarget.java b/com/mojang/blaze3d/pipeline/RenderTarget.java new file mode 100644 index 00000000..ff41f856 --- /dev/null +++ b/com/mojang/blaze3d/pipeline/RenderTarget.java @@ -0,0 +1,261 @@ +package com.mojang.blaze3d.pipeline; + +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.platform.TextureUtil; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.BufferUploader; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.VertexFormat; +import java.util.Objects; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ShaderInstance; + +@Environment(EnvType.CLIENT) +public abstract class RenderTarget { + private static final int RED_CHANNEL = 0; + private static final int GREEN_CHANNEL = 1; + private static final int BLUE_CHANNEL = 2; + private static final int ALPHA_CHANNEL = 3; + public int width; + public int height; + public int viewWidth; + public int viewHeight; + public final boolean useDepth; + public int frameBufferId; + protected int colorTextureId; + protected int depthBufferId; + private final float[] clearChannels = Util.make(() -> new float[]{1.0F, 1.0F, 1.0F, 0.0F}); + public int filterMode; + + public RenderTarget(boolean useDepth) { + this.useDepth = useDepth; + this.frameBufferId = -1; + this.colorTextureId = -1; + this.depthBufferId = -1; + } + + public void resize(int width, int height, boolean clearError) { + if (!RenderSystem.isOnRenderThread()) { + RenderSystem.recordRenderCall(() -> this._resize(width, height, clearError)); + } else { + this._resize(width, height, clearError); + } + } + + private void _resize(int width, int height, boolean clearError) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._enableDepthTest(); + if (this.frameBufferId >= 0) { + this.destroyBuffers(); + } + + this.createBuffers(width, height, clearError); + GlStateManager._glBindFramebuffer(36160, 0); + } + + public void destroyBuffers() { + RenderSystem.assertOnRenderThreadOrInit(); + this.unbindRead(); + this.unbindWrite(); + if (this.depthBufferId > -1) { + TextureUtil.releaseTextureId(this.depthBufferId); + this.depthBufferId = -1; + } + + if (this.colorTextureId > -1) { + TextureUtil.releaseTextureId(this.colorTextureId); + this.colorTextureId = -1; + } + + if (this.frameBufferId > -1) { + GlStateManager._glBindFramebuffer(36160, 0); + GlStateManager._glDeleteFramebuffers(this.frameBufferId); + this.frameBufferId = -1; + } + } + + public void copyDepthFrom(RenderTarget otherTarget) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._glBindFramebuffer(36008, otherTarget.frameBufferId); + GlStateManager._glBindFramebuffer(36009, this.frameBufferId); + GlStateManager._glBlitFrameBuffer(0, 0, otherTarget.width, otherTarget.height, 0, 0, this.width, this.height, 256, 9728); + GlStateManager._glBindFramebuffer(36160, 0); + } + + public void createBuffers(int width, int height, boolean clearError) { + RenderSystem.assertOnRenderThreadOrInit(); + int i = RenderSystem.maxSupportedTextureSize(); + if (width > 0 && width <= i && height > 0 && height <= i) { + this.viewWidth = width; + this.viewHeight = height; + this.width = width; + this.height = height; + this.frameBufferId = GlStateManager.glGenFramebuffers(); + this.colorTextureId = TextureUtil.generateTextureId(); + if (this.useDepth) { + this.depthBufferId = TextureUtil.generateTextureId(); + GlStateManager._bindTexture(this.depthBufferId); + GlStateManager._texParameter(3553, 10241, 9728); + GlStateManager._texParameter(3553, 10240, 9728); + GlStateManager._texParameter(3553, 34892, 0); + GlStateManager._texParameter(3553, 10242, 33071); + GlStateManager._texParameter(3553, 10243, 33071); + GlStateManager._texImage2D(3553, 0, 6402, this.width, this.height, 0, 6402, 5126, null); + } + + this.setFilterMode(9728, true); + GlStateManager._bindTexture(this.colorTextureId); + GlStateManager._texParameter(3553, 10242, 33071); + GlStateManager._texParameter(3553, 10243, 33071); + GlStateManager._texImage2D(3553, 0, 32856, this.width, this.height, 0, 6408, 5121, null); + GlStateManager._glBindFramebuffer(36160, this.frameBufferId); + GlStateManager._glFramebufferTexture2D(36160, 36064, 3553, this.colorTextureId, 0); + if (this.useDepth) { + GlStateManager._glFramebufferTexture2D(36160, 36096, 3553, this.depthBufferId, 0); + } + + this.checkStatus(); + this.clear(clearError); + this.unbindRead(); + } else { + throw new IllegalArgumentException("Window " + width + "x" + height + " size out of bounds (max. size: " + i + ")"); + } + } + + public void setFilterMode(int filterMode) { + this.setFilterMode(filterMode, false); + } + + private void setFilterMode(int filterMode, boolean force) { + RenderSystem.assertOnRenderThreadOrInit(); + if (force || filterMode != this.filterMode) { + this.filterMode = filterMode; + GlStateManager._bindTexture(this.colorTextureId); + GlStateManager._texParameter(3553, 10241, filterMode); + GlStateManager._texParameter(3553, 10240, filterMode); + GlStateManager._bindTexture(0); + } + } + + public void checkStatus() { + RenderSystem.assertOnRenderThreadOrInit(); + int i = GlStateManager.glCheckFramebufferStatus(36160); + if (i != 36053) { + if (i == 36054) { + throw new RuntimeException("GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"); + } else if (i == 36055) { + throw new RuntimeException("GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"); + } else if (i == 36059) { + throw new RuntimeException("GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"); + } else if (i == 36060) { + throw new RuntimeException("GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"); + } else if (i == 36061) { + throw new RuntimeException("GL_FRAMEBUFFER_UNSUPPORTED"); + } else if (i == 1285) { + throw new RuntimeException("GL_OUT_OF_MEMORY"); + } else { + throw new RuntimeException("glCheckFramebufferStatus returned unknown status:" + i); + } + } + } + + public void bindRead() { + RenderSystem.assertOnRenderThread(); + GlStateManager._bindTexture(this.colorTextureId); + } + + public void unbindRead() { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._bindTexture(0); + } + + public void bindWrite(boolean setViewport) { + if (!RenderSystem.isOnRenderThread()) { + RenderSystem.recordRenderCall(() -> this._bindWrite(setViewport)); + } else { + this._bindWrite(setViewport); + } + } + + private void _bindWrite(boolean setViewport) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._glBindFramebuffer(36160, this.frameBufferId); + if (setViewport) { + GlStateManager._viewport(0, 0, this.viewWidth, this.viewHeight); + } + } + + public void unbindWrite() { + if (!RenderSystem.isOnRenderThread()) { + RenderSystem.recordRenderCall(() -> GlStateManager._glBindFramebuffer(36160, 0)); + } else { + GlStateManager._glBindFramebuffer(36160, 0); + } + } + + public void setClearColor(float red, float green, float blue, float alpha) { + this.clearChannels[0] = red; + this.clearChannels[1] = green; + this.clearChannels[2] = blue; + this.clearChannels[3] = alpha; + } + + public void blitToScreen(int width, int height) { + this.blitToScreen(width, height, true); + } + + public void blitToScreen(int width, int height, boolean disableBlend) { + this._blitToScreen(width, height, disableBlend); + } + + private void _blitToScreen(int width, int height, boolean disableBlend) { + RenderSystem.assertOnRenderThread(); + GlStateManager._colorMask(true, true, true, false); + GlStateManager._disableDepthTest(); + GlStateManager._depthMask(false); + GlStateManager._viewport(0, 0, width, height); + if (disableBlend) { + GlStateManager._disableBlend(); + } + + Minecraft minecraft = Minecraft.getInstance(); + ShaderInstance shaderInstance = (ShaderInstance)Objects.requireNonNull(minecraft.gameRenderer.blitShader, "Blit shader not loaded"); + shaderInstance.setSampler("DiffuseSampler", this.colorTextureId); + shaderInstance.apply(); + BufferBuilder bufferBuilder = RenderSystem.renderThreadTesselator().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.BLIT_SCREEN); + bufferBuilder.addVertex(0.0F, 0.0F, 0.0F); + bufferBuilder.addVertex(1.0F, 0.0F, 0.0F); + bufferBuilder.addVertex(1.0F, 1.0F, 0.0F); + bufferBuilder.addVertex(0.0F, 1.0F, 0.0F); + BufferUploader.draw(bufferBuilder.buildOrThrow()); + shaderInstance.clear(); + GlStateManager._depthMask(true); + GlStateManager._colorMask(true, true, true, true); + } + + public void clear(boolean clearError) { + RenderSystem.assertOnRenderThreadOrInit(); + this.bindWrite(true); + GlStateManager._clearColor(this.clearChannels[0], this.clearChannels[1], this.clearChannels[2], this.clearChannels[3]); + int i = 16384; + if (this.useDepth) { + GlStateManager._clearDepth(1.0); + i |= 256; + } + + GlStateManager._clear(i, clearError); + this.unbindWrite(); + } + + public int getColorTextureId() { + return this.colorTextureId; + } + + public int getDepthTextureId() { + return this.depthBufferId; + } +} diff --git a/com/mojang/blaze3d/pipeline/TextureTarget.java b/com/mojang/blaze3d/pipeline/TextureTarget.java new file mode 100644 index 00000000..567b720a --- /dev/null +++ b/com/mojang/blaze3d/pipeline/TextureTarget.java @@ -0,0 +1,14 @@ +package com.mojang.blaze3d.pipeline; + +import com.mojang.blaze3d.systems.RenderSystem; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class TextureTarget extends RenderTarget { + public TextureTarget(int width, int height, boolean useDepth, boolean clearError) { + super(useDepth); + RenderSystem.assertOnRenderThreadOrInit(); + this.resize(width, height, clearError); + } +} diff --git a/com/mojang/blaze3d/pipeline/package-info.java b/com/mojang/blaze3d/pipeline/package-info.java new file mode 100644 index 00000000..f753a988 --- /dev/null +++ b/com/mojang/blaze3d/pipeline/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.pipeline; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/platform/ClipboardManager.java b/com/mojang/blaze3d/platform/ClipboardManager.java new file mode 100644 index 00000000..173e91bc --- /dev/null +++ b/com/mojang/blaze3d/platform/ClipboardManager.java @@ -0,0 +1,54 @@ +package com.mojang.blaze3d.platform; + +import com.google.common.base.Charsets; +import java.nio.ByteBuffer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.StringDecomposer; +import org.lwjgl.BufferUtils; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.glfw.GLFWErrorCallback; +import org.lwjgl.glfw.GLFWErrorCallbackI; +import org.lwjgl.system.MemoryUtil; + +@Environment(EnvType.CLIENT) +public class ClipboardManager { + public static final int FORMAT_UNAVAILABLE = 65545; + private final ByteBuffer clipboardScratchBuffer = BufferUtils.createByteBuffer(8192); + + public String getClipboard(long window, GLFWErrorCallbackI errorCallback) { + GLFWErrorCallback gLFWErrorCallback = GLFW.glfwSetErrorCallback(errorCallback); + String string = GLFW.glfwGetClipboardString(window); + string = string != null ? StringDecomposer.filterBrokenSurrogates(string) : ""; + GLFWErrorCallback gLFWErrorCallback2 = GLFW.glfwSetErrorCallback(gLFWErrorCallback); + if (gLFWErrorCallback2 != null) { + gLFWErrorCallback2.free(); + } + + return string; + } + + private static void pushClipboard(long window, ByteBuffer buffer, byte[] clipboardContent) { + buffer.clear(); + buffer.put(clipboardContent); + buffer.put((byte)0); + buffer.flip(); + GLFW.glfwSetClipboardString(window, buffer); + } + + public void setClipboard(long window, String clipboardContent) { + byte[] bs = clipboardContent.getBytes(Charsets.UTF_8); + int i = bs.length + 1; + if (i < this.clipboardScratchBuffer.capacity()) { + pushClipboard(window, this.clipboardScratchBuffer, bs); + } else { + ByteBuffer byteBuffer = MemoryUtil.memAlloc(i); + + try { + pushClipboard(window, byteBuffer, bs); + } finally { + MemoryUtil.memFree(byteBuffer); + } + } + } +} diff --git a/com/mojang/blaze3d/platform/DebugMemoryUntracker.java b/com/mojang/blaze3d/platform/DebugMemoryUntracker.java new file mode 100644 index 00000000..2d81b602 --- /dev/null +++ b/com/mojang/blaze3d/platform/DebugMemoryUntracker.java @@ -0,0 +1,44 @@ +package com.mojang.blaze3d.platform; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodHandles.Lookup; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.system.Pointer; + +@Environment(EnvType.CLIENT) +public class DebugMemoryUntracker { + @Nullable + private static final MethodHandle UNTRACK = GLX.make(() -> { + try { + Lookup lookup = MethodHandles.lookup(); + Class class_ = Class.forName("org.lwjgl.system.MemoryManage$DebugAllocator"); + Method method = class_.getDeclaredMethod("untrack", long.class); + method.setAccessible(true); + Field field = Class.forName("org.lwjgl.system.MemoryUtil$LazyInit").getDeclaredField("ALLOCATOR"); + field.setAccessible(true); + Object object = field.get(null); + return class_.isInstance(object) ? lookup.unreflect(method) : null; + } catch (NoSuchMethodException | NoSuchFieldException | IllegalAccessException | ClassNotFoundException var5) { + throw new RuntimeException(var5); + } + }); + + public static void untrack(long memAddr) { + if (UNTRACK != null) { + try { + UNTRACK.invoke(memAddr); + } catch (Throwable var3) { + throw new RuntimeException(var3); + } + } + } + + public static void untrack(Pointer pointer) { + untrack(pointer.address()); + } +} diff --git a/com/mojang/blaze3d/platform/DisplayData.java b/com/mojang/blaze3d/platform/DisplayData.java new file mode 100644 index 00000000..b1db3451 --- /dev/null +++ b/com/mojang/blaze3d/platform/DisplayData.java @@ -0,0 +1,22 @@ +package com.mojang.blaze3d.platform; + +import java.util.OptionalInt; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class DisplayData { + public final int width; + public final int height; + public final OptionalInt fullscreenWidth; + public final OptionalInt fullscreenHeight; + public final boolean isFullscreen; + + public DisplayData(int width, int height, OptionalInt fullscreenWidth, OptionalInt fullscreenHeight, boolean isFullscreen) { + this.width = width; + this.height = height; + this.fullscreenWidth = fullscreenWidth; + this.fullscreenHeight = fullscreenHeight; + this.isFullscreen = isFullscreen; + } +} diff --git a/com/mojang/blaze3d/platform/GLX.java b/com/mojang/blaze3d/platform/GLX.java new file mode 100644 index 00000000..e8afa9fc --- /dev/null +++ b/com/mojang/blaze3d/platform/GLX.java @@ -0,0 +1,165 @@ +package com.mojang.blaze3d.platform; + +import com.google.common.base.Joiner; +import com.google.common.collect.Lists; +import com.mojang.blaze3d.DontObfuscate; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.BufferUploader; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.logging.LogUtils; +import java.util.List; +import java.util.Locale; +import java.util.function.Consumer; +import java.util.function.LongSupplier; +import java.util.function.Supplier; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.renderer.GameRenderer; +import org.lwjgl.Version; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.glfw.GLFWErrorCallback; +import org.lwjgl.glfw.GLFWErrorCallbackI; +import org.lwjgl.glfw.GLFWVidMode; +import org.lwjgl.system.MemoryUtil; +import org.slf4j.Logger; +import oshi.SystemInfo; +import oshi.hardware.CentralProcessor; + +@Environment(EnvType.CLIENT) +@DontObfuscate +public class GLX { + private static final Logger LOGGER = LogUtils.getLogger(); + private static String cpuInfo; + + public static String getOpenGLVersionString() { + RenderSystem.assertOnRenderThread(); + return GLFW.glfwGetCurrentContext() == 0L + ? "NO CONTEXT" + : GlStateManager._getString(7937) + " GL version " + GlStateManager._getString(7938) + ", " + GlStateManager._getString(7936); + } + + public static int _getRefreshRate(Window window) { + RenderSystem.assertOnRenderThread(); + long l = GLFW.glfwGetWindowMonitor(window.getWindow()); + if (l == 0L) { + l = GLFW.glfwGetPrimaryMonitor(); + } + + GLFWVidMode gLFWVidMode = l == 0L ? null : GLFW.glfwGetVideoMode(l); + return gLFWVidMode == null ? 0 : gLFWVidMode.refreshRate(); + } + + public static String _getLWJGLVersion() { + return Version.getVersion(); + } + + public static LongSupplier _initGlfw() { + Window.checkGlfwError((integer, stringx) -> { + throw new IllegalStateException(String.format(Locale.ROOT, "GLFW error before init: [0x%X]%s", integer, stringx)); + }); + List list = Lists.newArrayList(); + GLFWErrorCallback gLFWErrorCallback = GLFW.glfwSetErrorCallback((i, l) -> { + String stringx = l == 0L ? "" : MemoryUtil.memUTF8(l); + list.add(String.format(Locale.ROOT, "GLFW error during init: [0x%X]%s", i, stringx)); + }); + if (!GLFW.glfwInit()) { + throw new IllegalStateException("Failed to initialize GLFW, errors: " + Joiner.on(",").join(list)); + } else { + LongSupplier longSupplier = () -> (long)(GLFW.glfwGetTime() * 1.0E9); + + for (String string : list) { + LOGGER.error("GLFW error collected during initialization: {}", string); + } + + RenderSystem.setErrorCallback(gLFWErrorCallback); + return longSupplier; + } + } + + public static void _setGlfwErrorCallback(GLFWErrorCallbackI gLFWErrorCallbackI) { + GLFWErrorCallback gLFWErrorCallback = GLFW.glfwSetErrorCallback(gLFWErrorCallbackI); + if (gLFWErrorCallback != null) { + gLFWErrorCallback.free(); + } + } + + public static boolean _shouldClose(Window window) { + return GLFW.glfwWindowShouldClose(window.getWindow()); + } + + public static void _init(int i, boolean bl) { + try { + CentralProcessor centralProcessor = new SystemInfo().getHardware().getProcessor(); + cpuInfo = String.format(Locale.ROOT, "%dx %s", centralProcessor.getLogicalProcessorCount(), centralProcessor.getProcessorIdentifier().getName()) + .replaceAll("\\s+", " "); + } catch (Throwable var3) { + } + + GlDebug.enableDebugCallback(i, bl); + } + + public static String _getCpuInfo() { + return cpuInfo == null ? "" : cpuInfo; + } + + public static void _renderCrosshair(int i, boolean bl, boolean bl2, boolean bl3) { + if (bl || bl2 || bl3) { + RenderSystem.assertOnRenderThread(); + GlStateManager._depthMask(false); + GlStateManager._disableCull(); + RenderSystem.setShader(GameRenderer::getRendertypeLinesShader); + Tesselator tesselator = RenderSystem.renderThreadTesselator(); + BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL); + RenderSystem.lineWidth(4.0F); + if (bl) { + bufferBuilder.addVertex(0.0F, 0.0F, 0.0F).setColor(-16777216).setNormal(1.0F, 0.0F, 0.0F); + bufferBuilder.addVertex(i, 0.0F, 0.0F).setColor(-16777216).setNormal(1.0F, 0.0F, 0.0F); + } + + if (bl2) { + bufferBuilder.addVertex(0.0F, 0.0F, 0.0F).setColor(-16777216).setNormal(0.0F, 1.0F, 0.0F); + bufferBuilder.addVertex(0.0F, i, 0.0F).setColor(-16777216).setNormal(0.0F, 1.0F, 0.0F); + } + + if (bl3) { + bufferBuilder.addVertex(0.0F, 0.0F, 0.0F).setColor(-16777216).setNormal(0.0F, 0.0F, 1.0F); + bufferBuilder.addVertex(0.0F, 0.0F, i).setColor(-16777216).setNormal(0.0F, 0.0F, 1.0F); + } + + BufferUploader.drawWithShader(bufferBuilder.buildOrThrow()); + RenderSystem.lineWidth(2.0F); + bufferBuilder = tesselator.begin(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL); + if (bl) { + bufferBuilder.addVertex(0.0F, 0.0F, 0.0F).setColor(-65536).setNormal(1.0F, 0.0F, 0.0F); + bufferBuilder.addVertex(i, 0.0F, 0.0F).setColor(-65536).setNormal(1.0F, 0.0F, 0.0F); + } + + if (bl2) { + bufferBuilder.addVertex(0.0F, 0.0F, 0.0F).setColor(-16711936).setNormal(0.0F, 1.0F, 0.0F); + bufferBuilder.addVertex(0.0F, i, 0.0F).setColor(-16711936).setNormal(0.0F, 1.0F, 0.0F); + } + + if (bl3) { + bufferBuilder.addVertex(0.0F, 0.0F, 0.0F).setColor(-8421377).setNormal(0.0F, 0.0F, 1.0F); + bufferBuilder.addVertex(0.0F, 0.0F, i).setColor(-8421377).setNormal(0.0F, 0.0F, 1.0F); + } + + BufferUploader.drawWithShader(bufferBuilder.buildOrThrow()); + RenderSystem.lineWidth(1.0F); + GlStateManager._enableCull(); + GlStateManager._depthMask(true); + } + } + + public static T make(Supplier supplier) { + return (T)supplier.get(); + } + + public static T make(T object, Consumer consumer) { + consumer.accept(object); + return object; + } +} diff --git a/com/mojang/blaze3d/platform/GlConst.java b/com/mojang/blaze3d/platform/GlConst.java new file mode 100644 index 00000000..b4cd2cb1 --- /dev/null +++ b/com/mojang/blaze3d/platform/GlConst.java @@ -0,0 +1,109 @@ +package com.mojang.blaze3d.platform; + +import com.mojang.blaze3d.DontObfuscate; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +@DontObfuscate +public class GlConst { + public static final int GL_READ_FRAMEBUFFER = 36008; + public static final int GL_DRAW_FRAMEBUFFER = 36009; + public static final int GL_TRUE = 1; + public static final int GL_FALSE = 0; + public static final int GL_NONE = 0; + public static final int GL_LINES = 1; + public static final int GL_LINE_STRIP = 3; + public static final int GL_TRIANGLE_STRIP = 5; + public static final int GL_TRIANGLE_FAN = 6; + public static final int GL_TRIANGLES = 4; + public static final int GL_WRITE_ONLY = 35001; + public static final int GL_EQUAL = 514; + public static final int GL_LEQUAL = 515; + public static final int GL_GREATER = 516; + public static final int GL_GEQUAL = 518; + public static final int GL_ALWAYS = 519; + public static final int GL_TEXTURE_MAG_FILTER = 10240; + public static final int GL_TEXTURE_MIN_FILTER = 10241; + public static final int GL_TEXTURE_WRAP_S = 10242; + public static final int GL_TEXTURE_WRAP_T = 10243; + public static final int GL_NEAREST = 9728; + public static final int GL_LINEAR = 9729; + public static final int GL_NEAREST_MIPMAP_LINEAR = 9986; + public static final int GL_LINEAR_MIPMAP_LINEAR = 9987; + public static final int GL_CLAMP_TO_EDGE = 33071; + public static final int GL_FRONT = 1028; + public static final int GL_FRONT_AND_BACK = 1032; + public static final int GL_LINE = 6913; + public static final int GL_FILL = 6914; + public static final int GL_BYTE = 5120; + public static final int GL_UNSIGNED_BYTE = 5121; + public static final int GL_SHORT = 5122; + public static final int GL_UNSIGNED_SHORT = 5123; + public static final int GL_INT = 5124; + public static final int GL_UNSIGNED_INT = 5125; + public static final int GL_FLOAT = 5126; + public static final int GL_ZERO = 0; + public static final int GL_ONE = 1; + public static final int GL_SRC_COLOR = 768; + public static final int GL_ONE_MINUS_SRC_COLOR = 769; + public static final int GL_SRC_ALPHA = 770; + public static final int GL_ONE_MINUS_SRC_ALPHA = 771; + public static final int GL_DST_ALPHA = 772; + public static final int GL_ONE_MINUS_DST_ALPHA = 773; + public static final int GL_DST_COLOR = 774; + public static final int GL_ONE_MINUS_DST_COLOR = 775; + public static final int GL_REPLACE = 7681; + public static final int GL_DEPTH_BUFFER_BIT = 256; + public static final int GL_COLOR_BUFFER_BIT = 16384; + public static final int GL_RGBA8 = 32856; + public static final int GL_PROXY_TEXTURE_2D = 32868; + public static final int GL_RGBA = 6408; + public static final int GL_TEXTURE_WIDTH = 4096; + public static final int GL_BGR = 32992; + public static final int GL_FUNC_ADD = 32774; + public static final int GL_MIN = 32775; + public static final int GL_MAX = 32776; + public static final int GL_FUNC_SUBTRACT = 32778; + public static final int GL_FUNC_REVERSE_SUBTRACT = 32779; + public static final int GL_DEPTH_COMPONENT24 = 33190; + public static final int GL_STATIC_DRAW = 35044; + public static final int GL_DYNAMIC_DRAW = 35048; + public static final int GL_UNPACK_SWAP_BYTES = 3312; + public static final int GL_UNPACK_LSB_FIRST = 3313; + public static final int GL_UNPACK_ROW_LENGTH = 3314; + public static final int GL_UNPACK_SKIP_ROWS = 3315; + public static final int GL_UNPACK_SKIP_PIXELS = 3316; + public static final int GL_UNPACK_ALIGNMENT = 3317; + public static final int GL_PACK_ALIGNMENT = 3333; + public static final int GL_MAX_TEXTURE_SIZE = 3379; + public static final int GL_TEXTURE_2D = 3553; + public static final int GL_DEPTH_COMPONENT = 6402; + public static final int GL_DEPTH_COMPONENT32 = 33191; + public static final int GL_FRAMEBUFFER = 36160; + public static final int GL_RENDERBUFFER = 36161; + public static final int GL_COLOR_ATTACHMENT0 = 36064; + public static final int GL_DEPTH_ATTACHMENT = 36096; + public static final int GL_FRAMEBUFFER_COMPLETE = 36053; + public static final int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054; + public static final int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055; + public static final int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 36059; + public static final int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 36060; + public static final int GL_FRAMEBUFFER_UNSUPPORTED = 36061; + public static final int GL_LINK_STATUS = 35714; + public static final int GL_COMPILE_STATUS = 35713; + public static final int GL_VERTEX_SHADER = 35633; + public static final int GL_FRAGMENT_SHADER = 35632; + public static final int GL_TEXTURE0 = 33984; + public static final int GL_TEXTURE1 = 33985; + public static final int GL_TEXTURE2 = 33986; + public static final int GL_DEPTH_TEXTURE_MODE = 34891; + public static final int GL_TEXTURE_COMPARE_MODE = 34892; + public static final int GL_ARRAY_BUFFER = 34962; + public static final int GL_ELEMENT_ARRAY_BUFFER = 34963; + public static final int GL_ALPHA_BIAS = 3357; + public static final int GL_RGB = 6407; + public static final int GL_RG = 33319; + public static final int GL_RED = 6403; + public static final int GL_OUT_OF_MEMORY = 1285; +} diff --git a/com/mojang/blaze3d/platform/GlDebug.java b/com/mojang/blaze3d/platform/GlDebug.java new file mode 100644 index 00000000..22bad349 --- /dev/null +++ b/com/mojang/blaze3d/platform/GlDebug.java @@ -0,0 +1,200 @@ +package com.mojang.blaze3d.platform; + +import com.google.common.collect.EvictingQueue; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import com.mojang.logging.LogUtils; +import java.util.List; +import java.util.Queue; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.opengl.ARBDebugOutput; +import org.lwjgl.opengl.GL; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GLCapabilities; +import org.lwjgl.opengl.GLDebugMessageARBCallback; +import org.lwjgl.opengl.GLDebugMessageCallback; +import org.lwjgl.opengl.KHRDebug; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class GlDebug { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final int CIRCULAR_LOG_SIZE = 10; + private static final Queue MESSAGE_BUFFER = EvictingQueue.create(10); + @Nullable + private static volatile GlDebug.LogEntry lastEntry; + private static final List DEBUG_LEVELS = ImmutableList.of(37190, 37191, 37192, 33387); + private static final List DEBUG_LEVELS_ARB = ImmutableList.of(37190, 37191, 37192); + private static boolean debugEnabled; + + private static String printUnknownToken(int token) { + return "Unknown (0x" + Integer.toHexString(token).toUpperCase() + ")"; + } + + public static String sourceToString(int source) { + switch (source) { + case 33350: + return "API"; + case 33351: + return "WINDOW SYSTEM"; + case 33352: + return "SHADER COMPILER"; + case 33353: + return "THIRD PARTY"; + case 33354: + return "APPLICATION"; + case 33355: + return "OTHER"; + default: + return printUnknownToken(source); + } + } + + public static String typeToString(int type) { + switch (type) { + case 33356: + return "ERROR"; + case 33357: + return "DEPRECATED BEHAVIOR"; + case 33358: + return "UNDEFINED BEHAVIOR"; + case 33359: + return "PORTABILITY"; + case 33360: + return "PERFORMANCE"; + case 33361: + return "OTHER"; + case 33384: + return "MARKER"; + default: + return printUnknownToken(type); + } + } + + public static String severityToString(int severity) { + switch (severity) { + case 33387: + return "NOTIFICATION"; + case 37190: + return "HIGH"; + case 37191: + return "MEDIUM"; + case 37192: + return "LOW"; + default: + return printUnknownToken(severity); + } + } + + /** + * @param source The GLenum source represented as an ordinal integer. + * @param type The GLenum type represented as an ordinal integer. + * @param id The unbounded integer id of the message callback. + * @param severity The GLenum severity represented as an ordinal integer. + * @param messageLength The {@link org.lwjgl.opengl.GLDebugMessageCallback} length argument. + * @param message The {@link org.lwjgl.opengl.GLDebugMessageCallback} message argument + * @param userParam A user supplied pointer that will be passed on each invocation of callback. + */ + private static void printDebugLog(int source, int type, int id, int severity, int messageLength, long message, long userParam) { + String string = GLDebugMessageCallback.getMessage(messageLength, message); + GlDebug.LogEntry logEntry; + synchronized (MESSAGE_BUFFER) { + logEntry = lastEntry; + if (logEntry != null && logEntry.isSame(source, type, id, severity, string)) { + logEntry.count++; + } else { + logEntry = new GlDebug.LogEntry(source, type, id, severity, string); + MESSAGE_BUFFER.add(logEntry); + lastEntry = logEntry; + } + } + + LOGGER.info("OpenGL debug message: {}", logEntry); + } + + public static List getLastOpenGlDebugMessages() { + synchronized (MESSAGE_BUFFER) { + List list = Lists.newArrayListWithCapacity(MESSAGE_BUFFER.size()); + + for (GlDebug.LogEntry logEntry : MESSAGE_BUFFER) { + list.add(logEntry + " x " + logEntry.count); + } + + return list; + } + } + + public static boolean isDebugEnabled() { + return debugEnabled; + } + + public static void enableDebugCallback(int debugVerbosity, boolean synchronous) { + if (debugVerbosity > 0) { + GLCapabilities gLCapabilities = GL.getCapabilities(); + if (gLCapabilities.GL_KHR_debug) { + debugEnabled = true; + GL11.glEnable(37600); + if (synchronous) { + GL11.glEnable(33346); + } + + for (int i = 0; i < DEBUG_LEVELS.size(); i++) { + boolean bl = i < debugVerbosity; + KHRDebug.glDebugMessageControl(4352, 4352, (Integer)DEBUG_LEVELS.get(i), (int[])null, bl); + } + + KHRDebug.glDebugMessageCallback(GLX.make(GLDebugMessageCallback.create(GlDebug::printDebugLog), DebugMemoryUntracker::untrack), 0L); + } else if (gLCapabilities.GL_ARB_debug_output) { + debugEnabled = true; + if (synchronous) { + GL11.glEnable(33346); + } + + for (int i = 0; i < DEBUG_LEVELS_ARB.size(); i++) { + boolean bl = i < debugVerbosity; + ARBDebugOutput.glDebugMessageControlARB(4352, 4352, (Integer)DEBUG_LEVELS_ARB.get(i), (int[])null, bl); + } + + ARBDebugOutput.glDebugMessageCallbackARB(GLX.make(GLDebugMessageARBCallback.create(GlDebug::printDebugLog), DebugMemoryUntracker::untrack), 0L); + } + } + } + + @Environment(EnvType.CLIENT) + static class LogEntry { + private final int id; + private final int source; + private final int type; + private final int severity; + private final String message; + int count = 1; + + LogEntry(int source, int type, int id, int severity, String message) { + this.id = id; + this.source = source; + this.type = type; + this.severity = severity; + this.message = message; + } + + boolean isSame(int source, int type, int id, int severity, String message) { + return type == this.type && source == this.source && id == this.id && severity == this.severity && message.equals(this.message); + } + + public String toString() { + return "id=" + + this.id + + ", source=" + + GlDebug.sourceToString(this.source) + + ", type=" + + GlDebug.typeToString(this.type) + + ", severity=" + + GlDebug.severityToString(this.severity) + + ", message='" + + this.message + + "'"; + } + } +} diff --git a/com/mojang/blaze3d/platform/GlStateManager.java b/com/mojang/blaze3d/platform/GlStateManager.java new file mode 100644 index 00000000..59c628f7 --- /dev/null +++ b/com/mojang/blaze3d/platform/GlStateManager.java @@ -0,0 +1,924 @@ +package com.mojang.blaze3d.platform; + +import com.google.common.base.Charsets; +import com.mojang.blaze3d.DontObfuscate; +import com.mojang.blaze3d.systems.RenderSystem; +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.util.List; +import java.util.function.Consumer; +import java.util.stream.IntStream; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; +import org.joml.Vector3f; +import org.lwjgl.PointerBuffer; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL13; +import org.lwjgl.opengl.GL14; +import org.lwjgl.opengl.GL15; +import org.lwjgl.opengl.GL20; +import org.lwjgl.opengl.GL20C; +import org.lwjgl.opengl.GL30; +import org.lwjgl.opengl.GL32C; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; + +@Environment(EnvType.CLIENT) +@DontObfuscate +public class GlStateManager { + private static final boolean ON_LINUX = Util.getPlatform() == Util.OS.LINUX; + public static final int TEXTURE_COUNT = 12; + private static final GlStateManager.BlendState BLEND = new GlStateManager.BlendState(); + private static final GlStateManager.DepthState DEPTH = new GlStateManager.DepthState(); + private static final GlStateManager.CullState CULL = new GlStateManager.CullState(); + private static final GlStateManager.PolygonOffsetState POLY_OFFSET = new GlStateManager.PolygonOffsetState(); + private static final GlStateManager.ColorLogicState COLOR_LOGIC = new GlStateManager.ColorLogicState(); + private static final GlStateManager.StencilState STENCIL = new GlStateManager.StencilState(); + private static final GlStateManager.ScissorState SCISSOR = new GlStateManager.ScissorState(); + private static int activeTexture; + private static final GlStateManager.TextureState[] TEXTURES = (GlStateManager.TextureState[])IntStream.range(0, 12) + .mapToObj(i -> new GlStateManager.TextureState()) + .toArray(GlStateManager.TextureState[]::new); + private static final GlStateManager.ColorMask COLOR_MASK = new GlStateManager.ColorMask(); + + public static void _disableScissorTest() { + RenderSystem.assertOnRenderThreadOrInit(); + SCISSOR.mode.disable(); + } + + public static void _enableScissorTest() { + RenderSystem.assertOnRenderThreadOrInit(); + SCISSOR.mode.enable(); + } + + public static void _scissorBox(int i, int j, int k, int l) { + RenderSystem.assertOnRenderThreadOrInit(); + GL20.glScissor(i, j, k, l); + } + + public static void _disableDepthTest() { + RenderSystem.assertOnRenderThreadOrInit(); + DEPTH.mode.disable(); + } + + public static void _enableDepthTest() { + RenderSystem.assertOnRenderThreadOrInit(); + DEPTH.mode.enable(); + } + + public static void _depthFunc(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + if (i != DEPTH.func) { + DEPTH.func = i; + GL11.glDepthFunc(i); + } + } + + public static void _depthMask(boolean bl) { + RenderSystem.assertOnRenderThread(); + if (bl != DEPTH.mask) { + DEPTH.mask = bl; + GL11.glDepthMask(bl); + } + } + + public static void _disableBlend() { + RenderSystem.assertOnRenderThread(); + BLEND.mode.disable(); + } + + public static void _enableBlend() { + RenderSystem.assertOnRenderThread(); + BLEND.mode.enable(); + } + + public static void _blendFunc(int i, int j) { + RenderSystem.assertOnRenderThread(); + if (i != BLEND.srcRgb || j != BLEND.dstRgb) { + BLEND.srcRgb = i; + BLEND.dstRgb = j; + GL11.glBlendFunc(i, j); + } + } + + public static void _blendFuncSeparate(int i, int j, int k, int l) { + RenderSystem.assertOnRenderThread(); + if (i != BLEND.srcRgb || j != BLEND.dstRgb || k != BLEND.srcAlpha || l != BLEND.dstAlpha) { + BLEND.srcRgb = i; + BLEND.dstRgb = j; + BLEND.srcAlpha = k; + BLEND.dstAlpha = l; + glBlendFuncSeparate(i, j, k, l); + } + } + + public static void _blendEquation(int i) { + RenderSystem.assertOnRenderThread(); + GL14.glBlendEquation(i); + } + + public static int glGetProgrami(int i, int j) { + RenderSystem.assertOnRenderThread(); + return GL20.glGetProgrami(i, j); + } + + public static void glAttachShader(int i, int j) { + RenderSystem.assertOnRenderThread(); + GL20.glAttachShader(i, j); + } + + public static void glDeleteShader(int i) { + RenderSystem.assertOnRenderThread(); + GL20.glDeleteShader(i); + } + + public static int glCreateShader(int i) { + RenderSystem.assertOnRenderThread(); + return GL20.glCreateShader(i); + } + + public static void glShaderSource(int i, List list) { + RenderSystem.assertOnRenderThread(); + StringBuilder stringBuilder = new StringBuilder(); + + for (String string : list) { + stringBuilder.append(string); + } + + byte[] bs = stringBuilder.toString().getBytes(Charsets.UTF_8); + ByteBuffer byteBuffer = MemoryUtil.memAlloc(bs.length + 1); + byteBuffer.put(bs); + byteBuffer.put((byte)0); + byteBuffer.flip(); + + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + PointerBuffer pointerBuffer = memoryStack.mallocPointer(1); + pointerBuffer.put(byteBuffer); + GL20C.nglShaderSource(i, 1, pointerBuffer.address0(), 0L); + } finally { + MemoryUtil.memFree(byteBuffer); + } + } + + public static void glCompileShader(int i) { + RenderSystem.assertOnRenderThread(); + GL20.glCompileShader(i); + } + + public static int glGetShaderi(int i, int j) { + RenderSystem.assertOnRenderThread(); + return GL20.glGetShaderi(i, j); + } + + public static void _glUseProgram(int i) { + RenderSystem.assertOnRenderThread(); + GL20.glUseProgram(i); + } + + public static int glCreateProgram() { + RenderSystem.assertOnRenderThread(); + return GL20.glCreateProgram(); + } + + public static void glDeleteProgram(int i) { + RenderSystem.assertOnRenderThread(); + GL20.glDeleteProgram(i); + } + + public static void glLinkProgram(int i) { + RenderSystem.assertOnRenderThread(); + GL20.glLinkProgram(i); + } + + public static int _glGetUniformLocation(int i, CharSequence charSequence) { + RenderSystem.assertOnRenderThread(); + return GL20.glGetUniformLocation(i, charSequence); + } + + public static void _glUniform1(int i, IntBuffer intBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform1iv(i, intBuffer); + } + + public static void _glUniform1i(int i, int j) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform1i(i, j); + } + + public static void _glUniform1(int i, FloatBuffer floatBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform1fv(i, floatBuffer); + } + + public static void _glUniform2(int i, IntBuffer intBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform2iv(i, intBuffer); + } + + public static void _glUniform2(int i, FloatBuffer floatBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform2fv(i, floatBuffer); + } + + public static void _glUniform3(int i, IntBuffer intBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform3iv(i, intBuffer); + } + + public static void _glUniform3(int i, FloatBuffer floatBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform3fv(i, floatBuffer); + } + + public static void _glUniform4(int i, IntBuffer intBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform4iv(i, intBuffer); + } + + public static void _glUniform4(int i, FloatBuffer floatBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniform4fv(i, floatBuffer); + } + + public static void _glUniformMatrix2(int i, boolean bl, FloatBuffer floatBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniformMatrix2fv(i, bl, floatBuffer); + } + + public static void _glUniformMatrix3(int i, boolean bl, FloatBuffer floatBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniformMatrix3fv(i, bl, floatBuffer); + } + + public static void _glUniformMatrix4(int i, boolean bl, FloatBuffer floatBuffer) { + RenderSystem.assertOnRenderThread(); + GL20.glUniformMatrix4fv(i, bl, floatBuffer); + } + + public static int _glGetAttribLocation(int i, CharSequence charSequence) { + RenderSystem.assertOnRenderThread(); + return GL20.glGetAttribLocation(i, charSequence); + } + + public static void _glBindAttribLocation(int i, int j, CharSequence charSequence) { + RenderSystem.assertOnRenderThread(); + GL20.glBindAttribLocation(i, j, charSequence); + } + + public static int _glGenBuffers() { + RenderSystem.assertOnRenderThreadOrInit(); + return GL15.glGenBuffers(); + } + + public static int _glGenVertexArrays() { + RenderSystem.assertOnRenderThreadOrInit(); + return GL30.glGenVertexArrays(); + } + + public static void _glBindBuffer(int i, int j) { + RenderSystem.assertOnRenderThreadOrInit(); + GL15.glBindBuffer(i, j); + } + + public static void _glBindVertexArray(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glBindVertexArray(i); + } + + public static void _glBufferData(int i, ByteBuffer byteBuffer, int j) { + RenderSystem.assertOnRenderThreadOrInit(); + GL15.glBufferData(i, byteBuffer, j); + } + + public static void _glBufferData(int i, long l, int j) { + RenderSystem.assertOnRenderThreadOrInit(); + GL15.glBufferData(i, l, j); + } + + @Nullable + public static ByteBuffer _glMapBuffer(int i, int j) { + RenderSystem.assertOnRenderThreadOrInit(); + return GL15.glMapBuffer(i, j); + } + + public static void _glUnmapBuffer(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + GL15.glUnmapBuffer(i); + } + + public static void _glDeleteBuffers(int i) { + RenderSystem.assertOnRenderThread(); + if (ON_LINUX) { + GL32C.glBindBuffer(34962, i); + GL32C.glBufferData(34962, 0L, 35048); + GL32C.glBindBuffer(34962, 0); + } + + GL15.glDeleteBuffers(i); + } + + public static void _glCopyTexSubImage2D(int i, int j, int k, int l, int m, int n, int o, int p) { + RenderSystem.assertOnRenderThreadOrInit(); + GL20.glCopyTexSubImage2D(i, j, k, l, m, n, o, p); + } + + public static void _glDeleteVertexArrays(int i) { + RenderSystem.assertOnRenderThread(); + GL30.glDeleteVertexArrays(i); + } + + public static void _glBindFramebuffer(int i, int j) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glBindFramebuffer(i, j); + } + + public static void _glBlitFrameBuffer(int i, int j, int k, int l, int m, int n, int o, int p, int q, int r) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glBlitFramebuffer(i, j, k, l, m, n, o, p, q, r); + } + + public static void _glBindRenderbuffer(int i, int j) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glBindRenderbuffer(i, j); + } + + public static void _glDeleteRenderbuffers(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glDeleteRenderbuffers(i); + } + + public static void _glDeleteFramebuffers(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glDeleteFramebuffers(i); + } + + public static int glGenFramebuffers() { + RenderSystem.assertOnRenderThreadOrInit(); + return GL30.glGenFramebuffers(); + } + + public static int glGenRenderbuffers() { + RenderSystem.assertOnRenderThreadOrInit(); + return GL30.glGenRenderbuffers(); + } + + public static void _glRenderbufferStorage(int i, int j, int k, int l) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glRenderbufferStorage(i, j, k, l); + } + + public static void _glFramebufferRenderbuffer(int i, int j, int k, int l) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glFramebufferRenderbuffer(i, j, k, l); + } + + public static int glCheckFramebufferStatus(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + return GL30.glCheckFramebufferStatus(i); + } + + public static void _glFramebufferTexture2D(int i, int j, int k, int l, int m) { + RenderSystem.assertOnRenderThreadOrInit(); + GL30.glFramebufferTexture2D(i, j, k, l, m); + } + + public static int getBoundFramebuffer() { + RenderSystem.assertOnRenderThread(); + return _getInteger(36006); + } + + public static void glActiveTexture(int i) { + RenderSystem.assertOnRenderThread(); + GL13.glActiveTexture(i); + } + + public static void glBlendFuncSeparate(int i, int j, int k, int l) { + RenderSystem.assertOnRenderThread(); + GL14.glBlendFuncSeparate(i, j, k, l); + } + + public static String glGetShaderInfoLog(int i, int j) { + RenderSystem.assertOnRenderThread(); + return GL20.glGetShaderInfoLog(i, j); + } + + public static String glGetProgramInfoLog(int i, int j) { + RenderSystem.assertOnRenderThread(); + return GL20.glGetProgramInfoLog(i, j); + } + + public static void setupLevelDiffuseLighting(Vector3f vector3f, Vector3f vector3f2, Matrix4f matrix4f) { + RenderSystem.assertOnRenderThread(); + RenderSystem.setShaderLights(matrix4f.transformDirection(vector3f, new Vector3f()), matrix4f.transformDirection(vector3f2, new Vector3f())); + } + + public static void setupGuiFlatDiffuseLighting(Vector3f vector3f, Vector3f vector3f2) { + RenderSystem.assertOnRenderThread(); + Matrix4f matrix4f = new Matrix4f().rotationY((float) (-Math.PI / 8)).rotateX((float) (Math.PI * 3.0 / 4.0)); + setupLevelDiffuseLighting(vector3f, vector3f2, matrix4f); + } + + public static void setupGui3DDiffuseLighting(Vector3f vector3f, Vector3f vector3f2) { + RenderSystem.assertOnRenderThread(); + Matrix4f matrix4f = new Matrix4f() + .scaling(1.0F, -1.0F, 1.0F) + .rotateYXZ(1.0821041F, 3.2375858F, 0.0F) + .rotateYXZ((float) (-Math.PI / 8), (float) (Math.PI * 3.0 / 4.0), 0.0F); + setupLevelDiffuseLighting(vector3f, vector3f2, matrix4f); + } + + public static void _enableCull() { + RenderSystem.assertOnRenderThread(); + CULL.enable.enable(); + } + + public static void _disableCull() { + RenderSystem.assertOnRenderThread(); + CULL.enable.disable(); + } + + public static void _polygonMode(int i, int j) { + RenderSystem.assertOnRenderThread(); + GL11.glPolygonMode(i, j); + } + + public static void _enablePolygonOffset() { + RenderSystem.assertOnRenderThread(); + POLY_OFFSET.fill.enable(); + } + + public static void _disablePolygonOffset() { + RenderSystem.assertOnRenderThread(); + POLY_OFFSET.fill.disable(); + } + + public static void _polygonOffset(float f, float g) { + RenderSystem.assertOnRenderThread(); + if (f != POLY_OFFSET.factor || g != POLY_OFFSET.units) { + POLY_OFFSET.factor = f; + POLY_OFFSET.units = g; + GL11.glPolygonOffset(f, g); + } + } + + public static void _enableColorLogicOp() { + RenderSystem.assertOnRenderThread(); + COLOR_LOGIC.enable.enable(); + } + + public static void _disableColorLogicOp() { + RenderSystem.assertOnRenderThread(); + COLOR_LOGIC.enable.disable(); + } + + public static void _logicOp(int i) { + RenderSystem.assertOnRenderThread(); + if (i != COLOR_LOGIC.op) { + COLOR_LOGIC.op = i; + GL11.glLogicOp(i); + } + } + + public static void _activeTexture(int i) { + RenderSystem.assertOnRenderThread(); + if (activeTexture != i - 33984) { + activeTexture = i - 33984; + glActiveTexture(i); + } + } + + public static void _texParameter(int i, int j, float f) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glTexParameterf(i, j, f); + } + + public static void _texParameter(int i, int j, int k) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glTexParameteri(i, j, k); + } + + public static int _getTexLevelParameter(int i, int j, int k) { + return GL11.glGetTexLevelParameteri(i, j, k); + } + + public static int _genTexture() { + RenderSystem.assertOnRenderThreadOrInit(); + return GL11.glGenTextures(); + } + + public static void _genTextures(int[] is) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glGenTextures(is); + } + + public static void _deleteTexture(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glDeleteTextures(i); + + for (GlStateManager.TextureState textureState : TEXTURES) { + if (textureState.binding == i) { + textureState.binding = -1; + } + } + } + + public static void _deleteTextures(int[] is) { + RenderSystem.assertOnRenderThreadOrInit(); + + for (GlStateManager.TextureState textureState : TEXTURES) { + for (int i : is) { + if (textureState.binding == i) { + textureState.binding = -1; + } + } + } + + GL11.glDeleteTextures(is); + } + + public static void _bindTexture(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + if (i != TEXTURES[activeTexture].binding) { + TEXTURES[activeTexture].binding = i; + GL11.glBindTexture(3553, i); + } + } + + public static int _getActiveTexture() { + return activeTexture + 33984; + } + + public static void _texImage2D(int i, int j, int k, int l, int m, int n, int o, int p, @Nullable IntBuffer intBuffer) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glTexImage2D(i, j, k, l, m, n, o, p, intBuffer); + } + + public static void _texSubImage2D(int i, int j, int k, int l, int m, int n, int o, int p, long q) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glTexSubImage2D(i, j, k, l, m, n, o, p, q); + } + + public static void upload(int i, int j, int k, int l, int m, NativeImage.Format format, IntBuffer intBuffer, Consumer consumer) { + if (!RenderSystem.isOnRenderThreadOrInit()) { + RenderSystem.recordRenderCall(() -> _upload(i, j, k, l, m, format, intBuffer, consumer)); + } else { + _upload(i, j, k, l, m, format, intBuffer, consumer); + } + } + + private static void _upload(int i, int j, int k, int l, int m, NativeImage.Format format, IntBuffer intBuffer, Consumer consumer) { + try { + RenderSystem.assertOnRenderThreadOrInit(); + _pixelStore(3314, l); + _pixelStore(3316, 0); + _pixelStore(3315, 0); + format.setUnpackPixelStoreState(); + GL11.glTexSubImage2D(3553, i, j, k, l, m, format.glFormat(), 5121, intBuffer); + } finally { + consumer.accept(intBuffer); + } + } + + public static void _getTexImage(int i, int j, int k, int l, long m) { + RenderSystem.assertOnRenderThread(); + GL11.glGetTexImage(i, j, k, l, m); + } + + public static void _viewport(int i, int j, int k, int l) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager.Viewport.INSTANCE.x = i; + GlStateManager.Viewport.INSTANCE.y = j; + GlStateManager.Viewport.INSTANCE.width = k; + GlStateManager.Viewport.INSTANCE.height = l; + GL11.glViewport(i, j, k, l); + } + + public static void _colorMask(boolean bl, boolean bl2, boolean bl3, boolean bl4) { + RenderSystem.assertOnRenderThread(); + if (bl != COLOR_MASK.red || bl2 != COLOR_MASK.green || bl3 != COLOR_MASK.blue || bl4 != COLOR_MASK.alpha) { + COLOR_MASK.red = bl; + COLOR_MASK.green = bl2; + COLOR_MASK.blue = bl3; + COLOR_MASK.alpha = bl4; + GL11.glColorMask(bl, bl2, bl3, bl4); + } + } + + public static void _stencilFunc(int i, int j, int k) { + RenderSystem.assertOnRenderThread(); + if (i != STENCIL.func.func || i != STENCIL.func.ref || i != STENCIL.func.mask) { + STENCIL.func.func = i; + STENCIL.func.ref = j; + STENCIL.func.mask = k; + GL11.glStencilFunc(i, j, k); + } + } + + public static void _stencilMask(int i) { + RenderSystem.assertOnRenderThread(); + if (i != STENCIL.mask) { + STENCIL.mask = i; + GL11.glStencilMask(i); + } + } + + public static void _stencilOp(int i, int j, int k) { + RenderSystem.assertOnRenderThread(); + if (i != STENCIL.fail || j != STENCIL.zfail || k != STENCIL.zpass) { + STENCIL.fail = i; + STENCIL.zfail = j; + STENCIL.zpass = k; + GL11.glStencilOp(i, j, k); + } + } + + public static void _clearDepth(double d) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glClearDepth(d); + } + + public static void _clearColor(float f, float g, float h, float i) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glClearColor(f, g, h, i); + } + + public static void _clearStencil(int i) { + RenderSystem.assertOnRenderThread(); + GL11.glClearStencil(i); + } + + public static void _clear(int i, boolean bl) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glClear(i); + if (bl) { + _getError(); + } + } + + public static void _glDrawPixels(int i, int j, int k, int l, long m) { + RenderSystem.assertOnRenderThread(); + GL11.glDrawPixels(i, j, k, l, m); + } + + public static void _vertexAttribPointer(int i, int j, int k, boolean bl, int l, long m) { + RenderSystem.assertOnRenderThread(); + GL20.glVertexAttribPointer(i, j, k, bl, l, m); + } + + public static void _vertexAttribIPointer(int i, int j, int k, int l, long m) { + RenderSystem.assertOnRenderThread(); + GL30.glVertexAttribIPointer(i, j, k, l, m); + } + + public static void _enableVertexAttribArray(int i) { + RenderSystem.assertOnRenderThread(); + GL20.glEnableVertexAttribArray(i); + } + + public static void _disableVertexAttribArray(int i) { + RenderSystem.assertOnRenderThread(); + GL20.glDisableVertexAttribArray(i); + } + + public static void _drawElements(int i, int j, int k, long l) { + RenderSystem.assertOnRenderThread(); + GL11.glDrawElements(i, j, k, l); + } + + public static void _pixelStore(int i, int j) { + RenderSystem.assertOnRenderThreadOrInit(); + GL11.glPixelStorei(i, j); + } + + public static void _readPixels(int i, int j, int k, int l, int m, int n, ByteBuffer byteBuffer) { + RenderSystem.assertOnRenderThread(); + GL11.glReadPixels(i, j, k, l, m, n, byteBuffer); + } + + public static void _readPixels(int i, int j, int k, int l, int m, int n, long o) { + RenderSystem.assertOnRenderThread(); + GL11.glReadPixels(i, j, k, l, m, n, o); + } + + public static int _getError() { + RenderSystem.assertOnRenderThread(); + return GL11.glGetError(); + } + + public static String _getString(int i) { + RenderSystem.assertOnRenderThread(); + return GL11.glGetString(i); + } + + public static int _getInteger(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + return GL11.glGetInteger(i); + } + + @Environment(EnvType.CLIENT) + static class BlendState { + public final GlStateManager.BooleanState mode = new GlStateManager.BooleanState(3042); + public int srcRgb = 1; + public int dstRgb = 0; + public int srcAlpha = 1; + public int dstAlpha = 0; + } + + @Environment(EnvType.CLIENT) + static class BooleanState { + private final int state; + private boolean enabled; + + public BooleanState(int state) { + this.state = state; + } + + public void disable() { + this.setEnabled(false); + } + + public void enable() { + this.setEnabled(true); + } + + public void setEnabled(boolean enabled) { + RenderSystem.assertOnRenderThreadOrInit(); + if (enabled != this.enabled) { + this.enabled = enabled; + if (enabled) { + GL11.glEnable(this.state); + } else { + GL11.glDisable(this.state); + } + } + } + } + + @Environment(EnvType.CLIENT) + static class ColorLogicState { + public final GlStateManager.BooleanState enable = new GlStateManager.BooleanState(3058); + public int op = 5379; + } + + @Environment(EnvType.CLIENT) + static class ColorMask { + public boolean red = true; + public boolean green = true; + public boolean blue = true; + public boolean alpha = true; + } + + @Environment(EnvType.CLIENT) + static class CullState { + public final GlStateManager.BooleanState enable = new GlStateManager.BooleanState(2884); + public int mode = 1029; + } + + @Environment(EnvType.CLIENT) + static class DepthState { + public final GlStateManager.BooleanState mode = new GlStateManager.BooleanState(2929); + public boolean mask = true; + public int func = 513; + } + + @Environment(EnvType.CLIENT) + @DontObfuscate + public static enum DestFactor { + CONSTANT_ALPHA(32771), + CONSTANT_COLOR(32769), + DST_ALPHA(772), + DST_COLOR(774), + ONE(1), + ONE_MINUS_CONSTANT_ALPHA(32772), + ONE_MINUS_CONSTANT_COLOR(32770), + ONE_MINUS_DST_ALPHA(773), + ONE_MINUS_DST_COLOR(775), + ONE_MINUS_SRC_ALPHA(771), + ONE_MINUS_SRC_COLOR(769), + SRC_ALPHA(770), + SRC_COLOR(768), + ZERO(0); + + public final int value; + + private DestFactor(final int value) { + this.value = value; + } + } + + @Environment(EnvType.CLIENT) + public static enum LogicOp { + AND(5377), + AND_INVERTED(5380), + AND_REVERSE(5378), + CLEAR(5376), + COPY(5379), + COPY_INVERTED(5388), + EQUIV(5385), + INVERT(5386), + NAND(5390), + NOOP(5381), + NOR(5384), + OR(5383), + OR_INVERTED(5389), + OR_REVERSE(5387), + SET(5391), + XOR(5382); + + public final int value; + + private LogicOp(final int value) { + this.value = value; + } + } + + @Environment(EnvType.CLIENT) + static class PolygonOffsetState { + public final GlStateManager.BooleanState fill = new GlStateManager.BooleanState(32823); + public final GlStateManager.BooleanState line = new GlStateManager.BooleanState(10754); + public float factor; + public float units; + } + + @Environment(EnvType.CLIENT) + static class ScissorState { + public final GlStateManager.BooleanState mode = new GlStateManager.BooleanState(3089); + } + + @Environment(EnvType.CLIENT) + @DontObfuscate + public static enum SourceFactor { + CONSTANT_ALPHA(32771), + CONSTANT_COLOR(32769), + DST_ALPHA(772), + DST_COLOR(774), + ONE(1), + ONE_MINUS_CONSTANT_ALPHA(32772), + ONE_MINUS_CONSTANT_COLOR(32770), + ONE_MINUS_DST_ALPHA(773), + ONE_MINUS_DST_COLOR(775), + ONE_MINUS_SRC_ALPHA(771), + ONE_MINUS_SRC_COLOR(769), + SRC_ALPHA(770), + SRC_ALPHA_SATURATE(776), + SRC_COLOR(768), + ZERO(0); + + public final int value; + + private SourceFactor(final int value) { + this.value = value; + } + } + + @Environment(EnvType.CLIENT) + static class StencilFunc { + public int func = 519; + public int ref; + public int mask = -1; + } + + @Environment(EnvType.CLIENT) + static class StencilState { + public final GlStateManager.StencilFunc func = new GlStateManager.StencilFunc(); + public int mask = -1; + public int fail = 7680; + public int zfail = 7680; + public int zpass = 7680; + } + + @Environment(EnvType.CLIENT) + static class TextureState { + public int binding; + } + + @Environment(EnvType.CLIENT) + public static enum Viewport { + INSTANCE; + + protected int x; + protected int y; + protected int width; + protected int height; + + public static int x() { + return INSTANCE.x; + } + + public static int y() { + return INSTANCE.y; + } + + public static int width() { + return INSTANCE.width; + } + + public static int height() { + return INSTANCE.height; + } + } +} diff --git a/com/mojang/blaze3d/platform/GlUtil.java b/com/mojang/blaze3d/platform/GlUtil.java new file mode 100644 index 00000000..024ab096 --- /dev/null +++ b/com/mojang/blaze3d/platform/GlUtil.java @@ -0,0 +1,34 @@ +package com.mojang.blaze3d.platform; + +import java.nio.Buffer; +import java.nio.ByteBuffer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.lwjgl.system.MemoryUtil; + +@Environment(EnvType.CLIENT) +public class GlUtil { + public static ByteBuffer allocateMemory(int size) { + return MemoryUtil.memAlloc(size); + } + + public static void freeMemory(Buffer buffer) { + MemoryUtil.memFree(buffer); + } + + public static String getVendor() { + return GlStateManager._getString(7936); + } + + public static String getCpuInfo() { + return GLX._getCpuInfo(); + } + + public static String getRenderer() { + return GlStateManager._getString(7937); + } + + public static String getOpenGLVersion() { + return GlStateManager._getString(7938); + } +} diff --git a/com/mojang/blaze3d/platform/IconSet.java b/com/mojang/blaze3d/platform/IconSet.java new file mode 100644 index 00000000..3b40b2d1 --- /dev/null +++ b/com/mojang/blaze3d/platform/IconSet.java @@ -0,0 +1,47 @@ +package com.mojang.blaze3d.platform; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.resources.IoSupplier; +import org.apache.commons.lang3.ArrayUtils; + +@Environment(EnvType.CLIENT) +public enum IconSet { + RELEASE("icons"), + SNAPSHOT("icons", "snapshot"); + + private final String[] path; + + private IconSet(final String... path) { + this.path = path; + } + + public List> getStandardIcons(PackResources resources) throws IOException { + return List.of( + this.getFile(resources, "icon_16x16.png"), + this.getFile(resources, "icon_32x32.png"), + this.getFile(resources, "icon_48x48.png"), + this.getFile(resources, "icon_128x128.png"), + this.getFile(resources, "icon_256x256.png") + ); + } + + public IoSupplier getMacIcon(PackResources resources) throws IOException { + return this.getFile(resources, "minecraft.icns"); + } + + private IoSupplier getFile(PackResources resources, String filename) throws IOException { + String[] strings = ArrayUtils.add(this.path, filename); + IoSupplier ioSupplier = resources.getRootResource(strings); + if (ioSupplier == null) { + throw new FileNotFoundException(String.join("/", strings)); + } else { + return ioSupplier; + } + } +} diff --git a/com/mojang/blaze3d/platform/InputConstants.java b/com/mojang/blaze3d/platform/InputConstants.java new file mode 100644 index 00000000..d95942c5 --- /dev/null +++ b/com/mojang/blaze3d/platform/InputConstants.java @@ -0,0 +1,484 @@ +package com.mojang.blaze3d.platform; + +import com.google.common.collect.Maps; +import it.unimi.dsi.fastutil.ints.Int2ObjectFunction; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.lang.invoke.MethodHandles.Lookup; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.OptionalInt; +import java.util.function.BiFunction; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.locale.Language; +import net.minecraft.network.chat.Component; +import net.minecraft.util.LazyLoadedValue; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.glfw.GLFWCharModsCallbackI; +import org.lwjgl.glfw.GLFWCursorPosCallbackI; +import org.lwjgl.glfw.GLFWDropCallbackI; +import org.lwjgl.glfw.GLFWKeyCallbackI; +import org.lwjgl.glfw.GLFWMouseButtonCallbackI; +import org.lwjgl.glfw.GLFWScrollCallbackI; + +@Environment(EnvType.CLIENT) +public class InputConstants { + @Nullable + private static final MethodHandle GLFW_RAW_MOUSE_MOTION_SUPPORTED; + private static final int GLFW_RAW_MOUSE_MOTION; + public static final int KEY_0 = 48; + public static final int KEY_1 = 49; + public static final int KEY_2 = 50; + public static final int KEY_3 = 51; + public static final int KEY_4 = 52; + public static final int KEY_5 = 53; + public static final int KEY_6 = 54; + public static final int KEY_7 = 55; + public static final int KEY_8 = 56; + public static final int KEY_9 = 57; + public static final int KEY_A = 65; + public static final int KEY_B = 66; + public static final int KEY_C = 67; + public static final int KEY_D = 68; + public static final int KEY_E = 69; + public static final int KEY_F = 70; + public static final int KEY_G = 71; + public static final int KEY_H = 72; + public static final int KEY_I = 73; + public static final int KEY_J = 74; + public static final int KEY_K = 75; + public static final int KEY_L = 76; + public static final int KEY_M = 77; + public static final int KEY_N = 78; + public static final int KEY_O = 79; + public static final int KEY_P = 80; + public static final int KEY_Q = 81; + public static final int KEY_R = 82; + public static final int KEY_S = 83; + public static final int KEY_T = 84; + public static final int KEY_U = 85; + public static final int KEY_V = 86; + public static final int KEY_W = 87; + public static final int KEY_X = 88; + public static final int KEY_Y = 89; + public static final int KEY_Z = 90; + public static final int KEY_F1 = 290; + public static final int KEY_F2 = 291; + public static final int KEY_F3 = 292; + public static final int KEY_F4 = 293; + public static final int KEY_F5 = 294; + public static final int KEY_F6 = 295; + public static final int KEY_F7 = 296; + public static final int KEY_F8 = 297; + public static final int KEY_F9 = 298; + public static final int KEY_F10 = 299; + public static final int KEY_F11 = 300; + public static final int KEY_F12 = 301; + public static final int KEY_F13 = 302; + public static final int KEY_F14 = 303; + public static final int KEY_F15 = 304; + public static final int KEY_F16 = 305; + public static final int KEY_F17 = 306; + public static final int KEY_F18 = 307; + public static final int KEY_F19 = 308; + public static final int KEY_F20 = 309; + public static final int KEY_F21 = 310; + public static final int KEY_F22 = 311; + public static final int KEY_F23 = 312; + public static final int KEY_F24 = 313; + public static final int KEY_F25 = 314; + public static final int KEY_NUMLOCK = 282; + public static final int KEY_NUMPAD0 = 320; + public static final int KEY_NUMPAD1 = 321; + public static final int KEY_NUMPAD2 = 322; + public static final int KEY_NUMPAD3 = 323; + public static final int KEY_NUMPAD4 = 324; + public static final int KEY_NUMPAD5 = 325; + public static final int KEY_NUMPAD6 = 326; + public static final int KEY_NUMPAD7 = 327; + public static final int KEY_NUMPAD8 = 328; + public static final int KEY_NUMPAD9 = 329; + public static final int KEY_NUMPADCOMMA = 330; + public static final int KEY_NUMPADENTER = 335; + public static final int KEY_NUMPADEQUALS = 336; + public static final int KEY_DOWN = 264; + public static final int KEY_LEFT = 263; + public static final int KEY_RIGHT = 262; + public static final int KEY_UP = 265; + public static final int KEY_ADD = 334; + public static final int KEY_APOSTROPHE = 39; + public static final int KEY_BACKSLASH = 92; + public static final int KEY_COMMA = 44; + public static final int KEY_EQUALS = 61; + public static final int KEY_GRAVE = 96; + public static final int KEY_LBRACKET = 91; + public static final int KEY_MINUS = 45; + public static final int KEY_MULTIPLY = 332; + public static final int KEY_PERIOD = 46; + public static final int KEY_RBRACKET = 93; + public static final int KEY_SEMICOLON = 59; + public static final int KEY_SLASH = 47; + public static final int KEY_SPACE = 32; + public static final int KEY_TAB = 258; + public static final int KEY_LALT = 342; + public static final int KEY_LCONTROL = 341; + public static final int KEY_LSHIFT = 340; + public static final int KEY_LWIN = 343; + public static final int KEY_RALT = 346; + public static final int KEY_RCONTROL = 345; + public static final int KEY_RSHIFT = 344; + public static final int KEY_RWIN = 347; + public static final int KEY_RETURN = 257; + public static final int KEY_ESCAPE = 256; + public static final int KEY_BACKSPACE = 259; + public static final int KEY_DELETE = 261; + public static final int KEY_END = 269; + public static final int KEY_HOME = 268; + public static final int KEY_INSERT = 260; + public static final int KEY_PAGEDOWN = 267; + public static final int KEY_PAGEUP = 266; + public static final int KEY_CAPSLOCK = 280; + public static final int KEY_PAUSE = 284; + public static final int KEY_SCROLLLOCK = 281; + public static final int KEY_PRINTSCREEN = 283; + public static final int PRESS = 1; + public static final int RELEASE = 0; + public static final int REPEAT = 2; + public static final int MOUSE_BUTTON_LEFT = 0; + public static final int MOUSE_BUTTON_MIDDLE = 2; + public static final int MOUSE_BUTTON_RIGHT = 1; + public static final int MOD_CONTROL = 2; + public static final int CURSOR = 208897; + public static final int CURSOR_DISABLED = 212995; + public static final int CURSOR_NORMAL = 212993; + public static final InputConstants.Key UNKNOWN; + + public static InputConstants.Key getKey(int keyCode, int scanCode) { + return keyCode == -1 ? InputConstants.Type.SCANCODE.getOrCreate(scanCode) : InputConstants.Type.KEYSYM.getOrCreate(keyCode); + } + + public static InputConstants.Key getKey(String name) { + if (InputConstants.Key.NAME_MAP.containsKey(name)) { + return (InputConstants.Key)InputConstants.Key.NAME_MAP.get(name); + } else { + for (InputConstants.Type type : InputConstants.Type.values()) { + if (name.startsWith(type.defaultPrefix)) { + String string = name.substring(type.defaultPrefix.length() + 1); + int i = Integer.parseInt(string); + if (type == InputConstants.Type.MOUSE) { + i--; + } + + return type.getOrCreate(i); + } + } + + throw new IllegalArgumentException("Unknown key name: " + name); + } + } + + public static boolean isKeyDown(long window, int key) { + return GLFW.glfwGetKey(window, key) == 1; + } + + public static void setupKeyboardCallbacks(long window, GLFWKeyCallbackI keyCallback, GLFWCharModsCallbackI charModifierCallback) { + GLFW.glfwSetKeyCallback(window, keyCallback); + GLFW.glfwSetCharModsCallback(window, charModifierCallback); + } + + public static void setupMouseCallbacks( + long window, + GLFWCursorPosCallbackI cursorPositionCallback, + GLFWMouseButtonCallbackI mouseButtonCallback, + GLFWScrollCallbackI scrollCallback, + GLFWDropCallbackI dragAndDropCallback + ) { + GLFW.glfwSetCursorPosCallback(window, cursorPositionCallback); + GLFW.glfwSetMouseButtonCallback(window, mouseButtonCallback); + GLFW.glfwSetScrollCallback(window, scrollCallback); + GLFW.glfwSetDropCallback(window, dragAndDropCallback); + } + + public static void grabOrReleaseMouse(long window, int cursorValue, double xPos, double yPos) { + GLFW.glfwSetCursorPos(window, xPos, yPos); + GLFW.glfwSetInputMode(window, 208897, cursorValue); + } + + public static boolean isRawMouseInputSupported() { + try { + return GLFW_RAW_MOUSE_MOTION_SUPPORTED != null && (boolean)GLFW_RAW_MOUSE_MOTION_SUPPORTED.invokeExact(); + } catch (Throwable var1) { + throw new RuntimeException(var1); + } + } + + public static void updateRawMouseInput(long window, boolean enableRawMouseMotion) { + if (isRawMouseInputSupported()) { + GLFW.glfwSetInputMode(window, GLFW_RAW_MOUSE_MOTION, enableRawMouseMotion ? 1 : 0); + } + } + + static { + Lookup lookup = MethodHandles.lookup(); + MethodType methodType = MethodType.methodType(boolean.class); + MethodHandle methodHandle = null; + int i = 0; + + try { + methodHandle = lookup.findStatic(GLFW.class, "glfwRawMouseMotionSupported", methodType); + MethodHandle methodHandle2 = lookup.findStaticGetter(GLFW.class, "GLFW_RAW_MOUSE_MOTION", int.class); + i = (int)methodHandle2.invokeExact(); + } catch (NoSuchFieldException | NoSuchMethodException var5) { + } catch (Throwable var6) { + throw new RuntimeException(var6); + } + + GLFW_RAW_MOUSE_MOTION_SUPPORTED = methodHandle; + GLFW_RAW_MOUSE_MOTION = i; + UNKNOWN = InputConstants.Type.KEYSYM.getOrCreate(-1); + } + + @Environment(EnvType.CLIENT) + public static final class Key { + private final String name; + private final InputConstants.Type type; + private final int value; + private final LazyLoadedValue displayName; + static final Map NAME_MAP = Maps.newHashMap(); + + Key(String name, InputConstants.Type type, int value) { + this.name = name; + this.type = type; + this.value = value; + this.displayName = new LazyLoadedValue<>(() -> (Component)type.displayTextSupplier.apply(value, name)); + NAME_MAP.put(name, this); + } + + public InputConstants.Type getType() { + return this.type; + } + + public int getValue() { + return this.value; + } + + public String getName() { + return this.name; + } + + public Component getDisplayName() { + return this.displayName.get(); + } + + public OptionalInt getNumericKeyValue() { + if (this.value >= 48 && this.value <= 57) { + return OptionalInt.of(this.value - 48); + } else { + return this.value >= 320 && this.value <= 329 ? OptionalInt.of(this.value - 320) : OptionalInt.empty(); + } + } + + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (object != null && this.getClass() == object.getClass()) { + InputConstants.Key key = (InputConstants.Key)object; + return this.value == key.value && this.type == key.type; + } else { + return false; + } + } + + public int hashCode() { + return Objects.hash(new Object[]{this.type, this.value}); + } + + public String toString() { + return this.name; + } + } + + @Environment(EnvType.CLIENT) + public static enum Type { + KEYSYM("key.keyboard", (integer, string) -> { + if ("key.keyboard.unknown".equals(string)) { + return Component.translatable(string); + } else { + String string2 = GLFW.glfwGetKeyName(integer, -1); + return string2 != null ? Component.literal(string2.toUpperCase(Locale.ROOT)) : Component.translatable(string); + } + }), + SCANCODE("scancode", (integer, string) -> { + String string2 = GLFW.glfwGetKeyName(-1, integer); + return string2 != null ? Component.literal(string2) : Component.translatable(string); + }), + MOUSE( + "key.mouse", (integer, string) -> Language.getInstance().has(string) ? Component.translatable(string) : Component.translatable("key.mouse", integer + 1) + ); + + private static final String KEY_KEYBOARD_UNKNOWN = "key.keyboard.unknown"; + private final Int2ObjectMap map = new Int2ObjectOpenHashMap<>(); + final String defaultPrefix; + final BiFunction displayTextSupplier; + + private static void addKey(InputConstants.Type type, String name, int keyCode) { + InputConstants.Key key = new InputConstants.Key(name, type, keyCode); + type.map.put(keyCode, key); + } + + private Type(final String defaultPrefix, final BiFunction displayTextSupplier) { + this.defaultPrefix = defaultPrefix; + this.displayTextSupplier = displayTextSupplier; + } + + public InputConstants.Key getOrCreate(int keyCode) { + return this.map.computeIfAbsent(keyCode, (Int2ObjectFunction)(i -> { + int j = i; + if (this == MOUSE) { + j = i + 1; + } + + String string = this.defaultPrefix + "." + j; + return new InputConstants.Key(string, this, i); + })); + } + + static { + addKey(KEYSYM, "key.keyboard.unknown", -1); + addKey(MOUSE, "key.mouse.left", 0); + addKey(MOUSE, "key.mouse.right", 1); + addKey(MOUSE, "key.mouse.middle", 2); + addKey(MOUSE, "key.mouse.4", 3); + addKey(MOUSE, "key.mouse.5", 4); + addKey(MOUSE, "key.mouse.6", 5); + addKey(MOUSE, "key.mouse.7", 6); + addKey(MOUSE, "key.mouse.8", 7); + addKey(KEYSYM, "key.keyboard.0", 48); + addKey(KEYSYM, "key.keyboard.1", 49); + addKey(KEYSYM, "key.keyboard.2", 50); + addKey(KEYSYM, "key.keyboard.3", 51); + addKey(KEYSYM, "key.keyboard.4", 52); + addKey(KEYSYM, "key.keyboard.5", 53); + addKey(KEYSYM, "key.keyboard.6", 54); + addKey(KEYSYM, "key.keyboard.7", 55); + addKey(KEYSYM, "key.keyboard.8", 56); + addKey(KEYSYM, "key.keyboard.9", 57); + addKey(KEYSYM, "key.keyboard.a", 65); + addKey(KEYSYM, "key.keyboard.b", 66); + addKey(KEYSYM, "key.keyboard.c", 67); + addKey(KEYSYM, "key.keyboard.d", 68); + addKey(KEYSYM, "key.keyboard.e", 69); + addKey(KEYSYM, "key.keyboard.f", 70); + addKey(KEYSYM, "key.keyboard.g", 71); + addKey(KEYSYM, "key.keyboard.h", 72); + addKey(KEYSYM, "key.keyboard.i", 73); + addKey(KEYSYM, "key.keyboard.j", 74); + addKey(KEYSYM, "key.keyboard.k", 75); + addKey(KEYSYM, "key.keyboard.l", 76); + addKey(KEYSYM, "key.keyboard.m", 77); + addKey(KEYSYM, "key.keyboard.n", 78); + addKey(KEYSYM, "key.keyboard.o", 79); + addKey(KEYSYM, "key.keyboard.p", 80); + addKey(KEYSYM, "key.keyboard.q", 81); + addKey(KEYSYM, "key.keyboard.r", 82); + addKey(KEYSYM, "key.keyboard.s", 83); + addKey(KEYSYM, "key.keyboard.t", 84); + addKey(KEYSYM, "key.keyboard.u", 85); + addKey(KEYSYM, "key.keyboard.v", 86); + addKey(KEYSYM, "key.keyboard.w", 87); + addKey(KEYSYM, "key.keyboard.x", 88); + addKey(KEYSYM, "key.keyboard.y", 89); + addKey(KEYSYM, "key.keyboard.z", 90); + addKey(KEYSYM, "key.keyboard.f1", 290); + addKey(KEYSYM, "key.keyboard.f2", 291); + addKey(KEYSYM, "key.keyboard.f3", 292); + addKey(KEYSYM, "key.keyboard.f4", 293); + addKey(KEYSYM, "key.keyboard.f5", 294); + addKey(KEYSYM, "key.keyboard.f6", 295); + addKey(KEYSYM, "key.keyboard.f7", 296); + addKey(KEYSYM, "key.keyboard.f8", 297); + addKey(KEYSYM, "key.keyboard.f9", 298); + addKey(KEYSYM, "key.keyboard.f10", 299); + addKey(KEYSYM, "key.keyboard.f11", 300); + addKey(KEYSYM, "key.keyboard.f12", 301); + addKey(KEYSYM, "key.keyboard.f13", 302); + addKey(KEYSYM, "key.keyboard.f14", 303); + addKey(KEYSYM, "key.keyboard.f15", 304); + addKey(KEYSYM, "key.keyboard.f16", 305); + addKey(KEYSYM, "key.keyboard.f17", 306); + addKey(KEYSYM, "key.keyboard.f18", 307); + addKey(KEYSYM, "key.keyboard.f19", 308); + addKey(KEYSYM, "key.keyboard.f20", 309); + addKey(KEYSYM, "key.keyboard.f21", 310); + addKey(KEYSYM, "key.keyboard.f22", 311); + addKey(KEYSYM, "key.keyboard.f23", 312); + addKey(KEYSYM, "key.keyboard.f24", 313); + addKey(KEYSYM, "key.keyboard.f25", 314); + addKey(KEYSYM, "key.keyboard.num.lock", 282); + addKey(KEYSYM, "key.keyboard.keypad.0", 320); + addKey(KEYSYM, "key.keyboard.keypad.1", 321); + addKey(KEYSYM, "key.keyboard.keypad.2", 322); + addKey(KEYSYM, "key.keyboard.keypad.3", 323); + addKey(KEYSYM, "key.keyboard.keypad.4", 324); + addKey(KEYSYM, "key.keyboard.keypad.5", 325); + addKey(KEYSYM, "key.keyboard.keypad.6", 326); + addKey(KEYSYM, "key.keyboard.keypad.7", 327); + addKey(KEYSYM, "key.keyboard.keypad.8", 328); + addKey(KEYSYM, "key.keyboard.keypad.9", 329); + addKey(KEYSYM, "key.keyboard.keypad.add", 334); + addKey(KEYSYM, "key.keyboard.keypad.decimal", 330); + addKey(KEYSYM, "key.keyboard.keypad.enter", 335); + addKey(KEYSYM, "key.keyboard.keypad.equal", 336); + addKey(KEYSYM, "key.keyboard.keypad.multiply", 332); + addKey(KEYSYM, "key.keyboard.keypad.divide", 331); + addKey(KEYSYM, "key.keyboard.keypad.subtract", 333); + addKey(KEYSYM, "key.keyboard.down", 264); + addKey(KEYSYM, "key.keyboard.left", 263); + addKey(KEYSYM, "key.keyboard.right", 262); + addKey(KEYSYM, "key.keyboard.up", 265); + addKey(KEYSYM, "key.keyboard.apostrophe", 39); + addKey(KEYSYM, "key.keyboard.backslash", 92); + addKey(KEYSYM, "key.keyboard.comma", 44); + addKey(KEYSYM, "key.keyboard.equal", 61); + addKey(KEYSYM, "key.keyboard.grave.accent", 96); + addKey(KEYSYM, "key.keyboard.left.bracket", 91); + addKey(KEYSYM, "key.keyboard.minus", 45); + addKey(KEYSYM, "key.keyboard.period", 46); + addKey(KEYSYM, "key.keyboard.right.bracket", 93); + addKey(KEYSYM, "key.keyboard.semicolon", 59); + addKey(KEYSYM, "key.keyboard.slash", 47); + addKey(KEYSYM, "key.keyboard.space", 32); + addKey(KEYSYM, "key.keyboard.tab", 258); + addKey(KEYSYM, "key.keyboard.left.alt", 342); + addKey(KEYSYM, "key.keyboard.left.control", 341); + addKey(KEYSYM, "key.keyboard.left.shift", 340); + addKey(KEYSYM, "key.keyboard.left.win", 343); + addKey(KEYSYM, "key.keyboard.right.alt", 346); + addKey(KEYSYM, "key.keyboard.right.control", 345); + addKey(KEYSYM, "key.keyboard.right.shift", 344); + addKey(KEYSYM, "key.keyboard.right.win", 347); + addKey(KEYSYM, "key.keyboard.enter", 257); + addKey(KEYSYM, "key.keyboard.escape", 256); + addKey(KEYSYM, "key.keyboard.backspace", 259); + addKey(KEYSYM, "key.keyboard.delete", 261); + addKey(KEYSYM, "key.keyboard.end", 269); + addKey(KEYSYM, "key.keyboard.home", 268); + addKey(KEYSYM, "key.keyboard.insert", 260); + addKey(KEYSYM, "key.keyboard.page.down", 267); + addKey(KEYSYM, "key.keyboard.page.up", 266); + addKey(KEYSYM, "key.keyboard.caps.lock", 280); + addKey(KEYSYM, "key.keyboard.pause", 284); + addKey(KEYSYM, "key.keyboard.scroll.lock", 281); + addKey(KEYSYM, "key.keyboard.menu", 348); + addKey(KEYSYM, "key.keyboard.print.screen", 283); + addKey(KEYSYM, "key.keyboard.world.1", 161); + addKey(KEYSYM, "key.keyboard.world.2", 162); + } + } +} diff --git a/com/mojang/blaze3d/platform/Lighting.java b/com/mojang/blaze3d/platform/Lighting.java new file mode 100644 index 00000000..0738d552 --- /dev/null +++ b/com/mojang/blaze3d/platform/Lighting.java @@ -0,0 +1,41 @@ +package com.mojang.blaze3d.platform; + +import com.mojang.blaze3d.systems.RenderSystem; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +@Environment(EnvType.CLIENT) +public class Lighting { + private static final Vector3f DIFFUSE_LIGHT_0 = new Vector3f(0.2F, 1.0F, -0.7F).normalize(); + private static final Vector3f DIFFUSE_LIGHT_1 = new Vector3f(-0.2F, 1.0F, 0.7F).normalize(); + private static final Vector3f NETHER_DIFFUSE_LIGHT_0 = new Vector3f(0.2F, 1.0F, -0.7F).normalize(); + private static final Vector3f NETHER_DIFFUSE_LIGHT_1 = new Vector3f(-0.2F, -1.0F, 0.7F).normalize(); + private static final Vector3f INVENTORY_DIFFUSE_LIGHT_0 = new Vector3f(0.2F, -1.0F, 1.0F).normalize(); + private static final Vector3f INVENTORY_DIFFUSE_LIGHT_1 = new Vector3f(-0.2F, -1.0F, 0.0F).normalize(); + + public static void setupNetherLevel() { + RenderSystem.setupLevelDiffuseLighting(NETHER_DIFFUSE_LIGHT_0, NETHER_DIFFUSE_LIGHT_1); + } + + public static void setupLevel() { + RenderSystem.setupLevelDiffuseLighting(DIFFUSE_LIGHT_0, DIFFUSE_LIGHT_1); + } + + public static void setupForFlatItems() { + RenderSystem.setupGuiFlatDiffuseLighting(DIFFUSE_LIGHT_0, DIFFUSE_LIGHT_1); + } + + public static void setupFor3DItems() { + RenderSystem.setupGui3DDiffuseLighting(DIFFUSE_LIGHT_0, DIFFUSE_LIGHT_1); + } + + public static void setupForEntityInInventory() { + RenderSystem.setShaderLights(INVENTORY_DIFFUSE_LIGHT_0, INVENTORY_DIFFUSE_LIGHT_1); + } + + public static void setupForEntityInInventory(Quaternionf quaternion) { + RenderSystem.setShaderLights(quaternion.transform(INVENTORY_DIFFUSE_LIGHT_0, new Vector3f()), quaternion.transform(INVENTORY_DIFFUSE_LIGHT_1, new Vector3f())); + } +} diff --git a/com/mojang/blaze3d/platform/MacosUtil.java b/com/mojang/blaze3d/platform/MacosUtil.java new file mode 100644 index 00000000..97b08253 --- /dev/null +++ b/com/mojang/blaze3d/platform/MacosUtil.java @@ -0,0 +1,73 @@ +package com.mojang.blaze3d.platform; + +import ca.weblite.objc.Client; +import ca.weblite.objc.NSObject; +import com.sun.jna.Pointer; +import java.io.IOException; +import java.io.InputStream; +import java.util.Base64; +import java.util.Optional; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.server.packs.resources.IoSupplier; +import org.lwjgl.glfw.GLFWNativeCocoa; + +@Environment(EnvType.CLIENT) +public class MacosUtil { + private static final int NS_RESIZABLE_WINDOW_MASK = 8; + private static final int NS_FULL_SCREEN_WINDOW_MASK = 16384; + + public static void exitNativeFullscreen(long windowId) { + getNsWindow(windowId).filter(MacosUtil::isInNativeFullscreen).ifPresent(MacosUtil::toggleNativeFullscreen); + } + + public static void clearResizableBit(long windowId) { + getNsWindow(windowId).ifPresent(nSObject -> { + long l = getStyleMask(nSObject); + nSObject.send("setStyleMask:", new Object[]{l & -9L}); + }); + } + + private static Optional getNsWindow(long windowId) { + long l = GLFWNativeCocoa.glfwGetCocoaWindow(windowId); + return l != 0L ? Optional.of(new NSObject(new Pointer(l))) : Optional.empty(); + } + + private static boolean isInNativeFullscreen(NSObject nsWindow) { + return (getStyleMask(nsWindow) & 16384L) != 0L; + } + + private static long getStyleMask(NSObject nsWindow) { + return (Long)nsWindow.sendRaw("styleMask", new Object[0]); + } + + private static void toggleNativeFullscreen(NSObject nsWindow) { + nsWindow.send("toggleFullScreen:", new Object[]{Pointer.NULL}); + } + + public static void loadIcon(IoSupplier iconStreamSupplier) throws IOException { + InputStream inputStream = iconStreamSupplier.get(); + + try { + String string = Base64.getEncoder().encodeToString(inputStream.readAllBytes()); + Client client = Client.getInstance(); + Object object = client.sendProxy("NSData", "alloc", new Object[0]).send("initWithBase64Encoding:", new Object[]{string}); + Object object2 = client.sendProxy("NSImage", "alloc", new Object[0]).send("initWithData:", new Object[]{object}); + client.sendProxy("NSApplication", "sharedApplication", new Object[0]).send("setApplicationIconImage:", new Object[]{object2}); + } catch (Throwable var7) { + if (inputStream != null) { + try { + inputStream.close(); + } catch (Throwable var6) { + var7.addSuppressed(var6); + } + } + + throw var7; + } + + if (inputStream != null) { + inputStream.close(); + } + } +} diff --git a/com/mojang/blaze3d/platform/Monitor.java b/com/mojang/blaze3d/platform/Monitor.java new file mode 100644 index 00000000..4f814dc1 --- /dev/null +++ b/com/mojang/blaze3d/platform/Monitor.java @@ -0,0 +1,93 @@ +package com.mojang.blaze3d.platform; + +import com.google.common.collect.Lists; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.glfw.GLFWVidMode; +import org.lwjgl.glfw.GLFWVidMode.Buffer; + +@Environment(EnvType.CLIENT) +public final class Monitor { + private final long monitor; + private final List videoModes; + private VideoMode currentMode; + private int x; + private int y; + + public Monitor(long monitor) { + this.monitor = monitor; + this.videoModes = Lists.newArrayList(); + this.refreshVideoModes(); + } + + public void refreshVideoModes() { + this.videoModes.clear(); + Buffer buffer = GLFW.glfwGetVideoModes(this.monitor); + + for (int i = buffer.limit() - 1; i >= 0; i--) { + buffer.position(i); + VideoMode videoMode = new VideoMode(buffer); + if (videoMode.getRedBits() >= 8 && videoMode.getGreenBits() >= 8 && videoMode.getBlueBits() >= 8) { + this.videoModes.add(videoMode); + } + } + + int[] is = new int[1]; + int[] js = new int[1]; + GLFW.glfwGetMonitorPos(this.monitor, is, js); + this.x = is[0]; + this.y = js[0]; + GLFWVidMode gLFWVidMode = GLFW.glfwGetVideoMode(this.monitor); + this.currentMode = new VideoMode(gLFWVidMode); + } + + public VideoMode getPreferredVidMode(Optional videoMode) { + if (videoMode.isPresent()) { + VideoMode videoMode2 = (VideoMode)videoMode.get(); + + for (VideoMode videoMode3 : this.videoModes) { + if (videoMode3.equals(videoMode2)) { + return videoMode3; + } + } + } + + return this.getCurrentMode(); + } + + public int getVideoModeIndex(VideoMode videoMode) { + return this.videoModes.indexOf(videoMode); + } + + public VideoMode getCurrentMode() { + return this.currentMode; + } + + public int getX() { + return this.x; + } + + public int getY() { + return this.y; + } + + public VideoMode getMode(int index) { + return (VideoMode)this.videoModes.get(index); + } + + public int getModeCount() { + return this.videoModes.size(); + } + + public long getMonitor() { + return this.monitor; + } + + public String toString() { + return String.format(Locale.ROOT, "Monitor[%s %sx%s %s]", this.monitor, this.x, this.y, this.currentMode); + } +} diff --git a/com/mojang/blaze3d/platform/MonitorCreator.java b/com/mojang/blaze3d/platform/MonitorCreator.java new file mode 100644 index 00000000..a887c3f4 --- /dev/null +++ b/com/mojang/blaze3d/platform/MonitorCreator.java @@ -0,0 +1,9 @@ +package com.mojang.blaze3d.platform; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface MonitorCreator { + Monitor createMonitor(long l); +} diff --git a/com/mojang/blaze3d/platform/NativeImage.java b/com/mojang/blaze3d/platform/NativeImage.java new file mode 100644 index 00000000..298e372d --- /dev/null +++ b/com/mojang/blaze3d/platform/NativeImage.java @@ -0,0 +1,898 @@ +package com.mojang.blaze3d.platform; + +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.logging.LogUtils; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.nio.channels.Channels; +import java.nio.channels.WritableByteChannel; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.EnumSet; +import java.util.Locale; +import java.util.Objects; +import java.util.Set; +import java.util.function.IntUnaryOperator; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.font.providers.FreeTypeUtil; +import net.minecraft.util.FastColor; +import net.minecraft.util.PngInfo; +import org.apache.commons.io.IOUtils; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.stb.STBIWriteCallback; +import org.lwjgl.stb.STBImage; +import org.lwjgl.stb.STBImageResize; +import org.lwjgl.stb.STBImageWrite; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.util.freetype.FT_Bitmap; +import org.lwjgl.util.freetype.FT_Face; +import org.lwjgl.util.freetype.FT_GlyphSlot; +import org.lwjgl.util.freetype.FreeType; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public final class NativeImage implements AutoCloseable { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Set OPEN_OPTIONS = EnumSet.of( + StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING + ); + private final NativeImage.Format format; + private final int width; + private final int height; + private final boolean useStbFree; + private long pixels; + private final long size; + + public NativeImage(int width, int height, boolean useCalloc) { + this(NativeImage.Format.RGBA, width, height, useCalloc); + } + + public NativeImage(NativeImage.Format format, int width, int height, boolean useCalloc) { + if (width > 0 && height > 0) { + this.format = format; + this.width = width; + this.height = height; + this.size = (long)width * height * format.components(); + this.useStbFree = false; + if (useCalloc) { + this.pixels = MemoryUtil.nmemCalloc(1L, this.size); + } else { + this.pixels = MemoryUtil.nmemAlloc(this.size); + } + + if (this.pixels == 0L) { + throw new IllegalStateException("Unable to allocate texture of size " + width + "x" + height + " (" + format.components() + " channels)"); + } + } else { + throw new IllegalArgumentException("Invalid texture size: " + width + "x" + height); + } + } + + private NativeImage(NativeImage.Format format, int width, int height, boolean useStbFree, long pixels) { + if (width > 0 && height > 0) { + this.format = format; + this.width = width; + this.height = height; + this.useStbFree = useStbFree; + this.pixels = pixels; + this.size = (long)width * height * format.components(); + } else { + throw new IllegalArgumentException("Invalid texture size: " + width + "x" + height); + } + } + + public String toString() { + return "NativeImage[" + this.format + " " + this.width + "x" + this.height + "@" + this.pixels + (this.useStbFree ? "S" : "N") + "]"; + } + + private boolean isOutsideBounds(int x, int y) { + return x < 0 || x >= this.width || y < 0 || y >= this.height; + } + + public static NativeImage read(InputStream textureStream) throws IOException { + return read(NativeImage.Format.RGBA, textureStream); + } + + public static NativeImage read(@Nullable NativeImage.Format format, InputStream textureStream) throws IOException { + ByteBuffer byteBuffer = null; + + NativeImage var3; + try { + byteBuffer = TextureUtil.readResource(textureStream); + byteBuffer.rewind(); + var3 = read(format, byteBuffer); + } finally { + MemoryUtil.memFree(byteBuffer); + IOUtils.closeQuietly(textureStream); + } + + return var3; + } + + public static NativeImage read(ByteBuffer textureData) throws IOException { + return read(NativeImage.Format.RGBA, textureData); + } + + public static NativeImage read(byte[] bytes) throws IOException { + NativeImage var3; + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + ByteBuffer byteBuffer = memoryStack.malloc(bytes.length); + byteBuffer.put(bytes); + byteBuffer.rewind(); + var3 = read(byteBuffer); + } + + return var3; + } + + public static NativeImage read(@Nullable NativeImage.Format format, ByteBuffer textureData) throws IOException { + if (format != null && !format.supportedByStb()) { + throw new UnsupportedOperationException("Don't know how to read format " + format); + } else if (MemoryUtil.memAddress(textureData) == 0L) { + throw new IllegalArgumentException("Invalid buffer"); + } else { + PngInfo.validateHeader(textureData); + + NativeImage var7; + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + IntBuffer intBuffer = memoryStack.mallocInt(1); + IntBuffer intBuffer2 = memoryStack.mallocInt(1); + IntBuffer intBuffer3 = memoryStack.mallocInt(1); + ByteBuffer byteBuffer = STBImage.stbi_load_from_memory(textureData, intBuffer, intBuffer2, intBuffer3, format == null ? 0 : format.components); + if (byteBuffer == null) { + throw new IOException("Could not load image: " + STBImage.stbi_failure_reason()); + } + + var7 = new NativeImage( + format == null ? NativeImage.Format.getStbFormat(intBuffer3.get(0)) : format, intBuffer.get(0), intBuffer2.get(0), true, MemoryUtil.memAddress(byteBuffer) + ); + } + + return var7; + } + } + + private static void setFilter(boolean linear, boolean mipmap) { + RenderSystem.assertOnRenderThreadOrInit(); + if (linear) { + GlStateManager._texParameter(3553, 10241, mipmap ? 9987 : 9729); + GlStateManager._texParameter(3553, 10240, 9729); + } else { + GlStateManager._texParameter(3553, 10241, mipmap ? 9986 : 9728); + GlStateManager._texParameter(3553, 10240, 9728); + } + } + + private void checkAllocated() { + if (this.pixels == 0L) { + throw new IllegalStateException("Image is not allocated."); + } + } + + public void close() { + if (this.pixels != 0L) { + if (this.useStbFree) { + STBImage.nstbi_image_free(this.pixels); + } else { + MemoryUtil.nmemFree(this.pixels); + } + } + + this.pixels = 0L; + } + + public int getWidth() { + return this.width; + } + + public int getHeight() { + return this.height; + } + + public NativeImage.Format format() { + return this.format; + } + + public int getPixelRGBA(int x, int y) { + if (this.format != NativeImage.Format.RGBA) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "getPixelRGBA only works on RGBA images; have %s", this.format)); + } else if (this.isOutsideBounds(x, y)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "(%s, %s) outside of image bounds (%s, %s)", x, y, this.width, this.height)); + } else { + this.checkAllocated(); + long l = (x + (long)y * this.width) * 4L; + return MemoryUtil.memGetInt(this.pixels + l); + } + } + + public void setPixelRGBA(int x, int y, int abgrColor) { + if (this.format != NativeImage.Format.RGBA) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "setPixelRGBA only works on RGBA images; have %s", this.format)); + } else if (this.isOutsideBounds(x, y)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "(%s, %s) outside of image bounds (%s, %s)", x, y, this.width, this.height)); + } else { + this.checkAllocated(); + long l = (x + (long)y * this.width) * 4L; + MemoryUtil.memPutInt(this.pixels + l, abgrColor); + } + } + + public NativeImage mappedCopy(IntUnaryOperator function) { + if (this.format != NativeImage.Format.RGBA) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "function application only works on RGBA images; have %s", this.format)); + } else { + this.checkAllocated(); + NativeImage nativeImage = new NativeImage(this.width, this.height, false); + int i = this.width * this.height; + IntBuffer intBuffer = MemoryUtil.memIntBuffer(this.pixels, i); + IntBuffer intBuffer2 = MemoryUtil.memIntBuffer(nativeImage.pixels, i); + + for (int j = 0; j < i; j++) { + intBuffer2.put(j, function.applyAsInt(intBuffer.get(j))); + } + + return nativeImage; + } + } + + public void applyToAllPixels(IntUnaryOperator function) { + if (this.format != NativeImage.Format.RGBA) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "function application only works on RGBA images; have %s", this.format)); + } else { + this.checkAllocated(); + int i = this.width * this.height; + IntBuffer intBuffer = MemoryUtil.memIntBuffer(this.pixels, i); + + for (int j = 0; j < i; j++) { + intBuffer.put(j, function.applyAsInt(intBuffer.get(j))); + } + } + } + + public int[] getPixelsRGBA() { + if (this.format != NativeImage.Format.RGBA) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "getPixelsRGBA only works on RGBA images; have %s", this.format)); + } else { + this.checkAllocated(); + int[] is = new int[this.width * this.height]; + MemoryUtil.memIntBuffer(this.pixels, this.width * this.height).get(is); + return is; + } + } + + public void setPixelLuminance(int x, int y, byte luminance) { + RenderSystem.assertOnRenderThread(); + if (!this.format.hasLuminance()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "setPixelLuminance only works on image with luminance; have %s", this.format)); + } else if (this.isOutsideBounds(x, y)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "(%s, %s) outside of image bounds (%s, %s)", x, y, this.width, this.height)); + } else { + this.checkAllocated(); + long l = (x + (long)y * this.width) * this.format.components() + this.format.luminanceOffset() / 8; + MemoryUtil.memPutByte(this.pixels + l, luminance); + } + } + + public byte getRedOrLuminance(int x, int y) { + RenderSystem.assertOnRenderThread(); + if (!this.format.hasLuminanceOrRed()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "no red or luminance in %s", this.format)); + } else if (this.isOutsideBounds(x, y)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "(%s, %s) outside of image bounds (%s, %s)", x, y, this.width, this.height)); + } else { + int i = (x + y * this.width) * this.format.components() + this.format.luminanceOrRedOffset() / 8; + return MemoryUtil.memGetByte(this.pixels + i); + } + } + + public byte getGreenOrLuminance(int x, int y) { + RenderSystem.assertOnRenderThread(); + if (!this.format.hasLuminanceOrGreen()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "no green or luminance in %s", this.format)); + } else if (this.isOutsideBounds(x, y)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "(%s, %s) outside of image bounds (%s, %s)", x, y, this.width, this.height)); + } else { + int i = (x + y * this.width) * this.format.components() + this.format.luminanceOrGreenOffset() / 8; + return MemoryUtil.memGetByte(this.pixels + i); + } + } + + public byte getBlueOrLuminance(int x, int y) { + RenderSystem.assertOnRenderThread(); + if (!this.format.hasLuminanceOrBlue()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "no blue or luminance in %s", this.format)); + } else if (this.isOutsideBounds(x, y)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "(%s, %s) outside of image bounds (%s, %s)", x, y, this.width, this.height)); + } else { + int i = (x + y * this.width) * this.format.components() + this.format.luminanceOrBlueOffset() / 8; + return MemoryUtil.memGetByte(this.pixels + i); + } + } + + public byte getLuminanceOrAlpha(int x, int y) { + if (!this.format.hasLuminanceOrAlpha()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "no luminance or alpha in %s", this.format)); + } else if (this.isOutsideBounds(x, y)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "(%s, %s) outside of image bounds (%s, %s)", x, y, this.width, this.height)); + } else { + int i = (x + y * this.width) * this.format.components() + this.format.luminanceOrAlphaOffset() / 8; + return MemoryUtil.memGetByte(this.pixels + i); + } + } + + public void blendPixel(int x, int y, int abgrColor) { + if (this.format != NativeImage.Format.RGBA) { + throw new UnsupportedOperationException("Can only call blendPixel with RGBA format"); + } else { + int i = this.getPixelRGBA(x, y); + float f = FastColor.ABGR32.alpha(abgrColor) / 255.0F; + float g = FastColor.ABGR32.blue(abgrColor) / 255.0F; + float h = FastColor.ABGR32.green(abgrColor) / 255.0F; + float j = FastColor.ABGR32.red(abgrColor) / 255.0F; + float k = FastColor.ABGR32.alpha(i) / 255.0F; + float l = FastColor.ABGR32.blue(i) / 255.0F; + float m = FastColor.ABGR32.green(i) / 255.0F; + float n = FastColor.ABGR32.red(i) / 255.0F; + float p = 1.0F - f; + float q = f * f + k * p; + float r = g * f + l * p; + float s = h * f + m * p; + float t = j * f + n * p; + if (q > 1.0F) { + q = 1.0F; + } + + if (r > 1.0F) { + r = 1.0F; + } + + if (s > 1.0F) { + s = 1.0F; + } + + if (t > 1.0F) { + t = 1.0F; + } + + int u = (int)(q * 255.0F); + int v = (int)(r * 255.0F); + int w = (int)(s * 255.0F); + int z = (int)(t * 255.0F); + this.setPixelRGBA(x, y, FastColor.ABGR32.color(u, v, w, z)); + } + } + + @Deprecated + public int[] makePixelArray() { + if (this.format != NativeImage.Format.RGBA) { + throw new UnsupportedOperationException("can only call makePixelArray for RGBA images."); + } else { + this.checkAllocated(); + int[] is = new int[this.getWidth() * this.getHeight()]; + + for (int i = 0; i < this.getHeight(); i++) { + for (int j = 0; j < this.getWidth(); j++) { + int k = this.getPixelRGBA(j, i); + is[j + i * this.getWidth()] = FastColor.ARGB32.color( + FastColor.ABGR32.alpha(k), FastColor.ABGR32.red(k), FastColor.ABGR32.green(k), FastColor.ABGR32.blue(k) + ); + } + } + + return is; + } + } + + public void upload(int level, int xOffset, int yOffset, boolean mipmap) { + this.upload(level, xOffset, yOffset, 0, 0, this.width, this.height, false, mipmap); + } + + public void upload(int level, int xOffset, int yOffset, int unpackSkipPixels, int unpackSkipRows, int width, int height, boolean mipmap, boolean autoClose) { + this.upload(level, xOffset, yOffset, unpackSkipPixels, unpackSkipRows, width, height, false, false, mipmap, autoClose); + } + + public void upload( + int level, + int xOffset, + int yOffset, + int unpackSkipPixels, + int unpackSkipRows, + int width, + int height, + boolean blur, + boolean clamp, + boolean mipmap, + boolean autoClose + ) { + if (!RenderSystem.isOnRenderThreadOrInit()) { + RenderSystem.recordRenderCall(() -> this._upload(level, xOffset, yOffset, unpackSkipPixels, unpackSkipRows, width, height, blur, clamp, mipmap, autoClose)); + } else { + this._upload(level, xOffset, yOffset, unpackSkipPixels, unpackSkipRows, width, height, blur, clamp, mipmap, autoClose); + } + } + + private void _upload( + int level, + int xOffset, + int yOffset, + int unpackSkipPixels, + int unpackSkipRows, + int width, + int height, + boolean blur, + boolean clamp, + boolean mipmap, + boolean autoClose + ) { + try { + RenderSystem.assertOnRenderThreadOrInit(); + this.checkAllocated(); + setFilter(blur, mipmap); + if (width == this.getWidth()) { + GlStateManager._pixelStore(3314, 0); + } else { + GlStateManager._pixelStore(3314, this.getWidth()); + } + + GlStateManager._pixelStore(3316, unpackSkipPixels); + GlStateManager._pixelStore(3315, unpackSkipRows); + this.format.setUnpackPixelStoreState(); + GlStateManager._texSubImage2D(3553, level, xOffset, yOffset, width, height, this.format.glFormat(), 5121, this.pixels); + if (clamp) { + GlStateManager._texParameter(3553, 10242, 33071); + GlStateManager._texParameter(3553, 10243, 33071); + } + } finally { + if (autoClose) { + this.close(); + } + } + } + + public void downloadTexture(int level, boolean opaque) { + RenderSystem.assertOnRenderThread(); + this.checkAllocated(); + this.format.setPackPixelStoreState(); + GlStateManager._getTexImage(3553, level, this.format.glFormat(), 5121, this.pixels); + if (opaque && this.format.hasAlpha()) { + for (int i = 0; i < this.getHeight(); i++) { + for (int j = 0; j < this.getWidth(); j++) { + this.setPixelRGBA(j, i, this.getPixelRGBA(j, i) | 255 << this.format.alphaOffset()); + } + } + } + } + + public void downloadDepthBuffer(float unused) { + RenderSystem.assertOnRenderThread(); + if (this.format.components() != 1) { + throw new IllegalStateException("Depth buffer must be stored in NativeImage with 1 component."); + } else { + this.checkAllocated(); + this.format.setPackPixelStoreState(); + GlStateManager._readPixels(0, 0, this.width, this.height, 6402, 5121, this.pixels); + } + } + + public void drawPixels() { + RenderSystem.assertOnRenderThread(); + this.format.setUnpackPixelStoreState(); + GlStateManager._glDrawPixels(this.width, this.height, this.format.glFormat(), 5121, this.pixels); + } + + public void writeToFile(File file) throws IOException { + this.writeToFile(file.toPath()); + } + + public boolean copyFromFont(FT_Face face, int index) { + if (this.format.components() != 1) { + throw new IllegalArgumentException("Can only write fonts into 1-component images."); + } else if (FreeTypeUtil.checkError(FreeType.FT_Load_Glyph(face, index, 4), "Loading glyph")) { + return false; + } else { + FT_GlyphSlot fT_GlyphSlot = (FT_GlyphSlot)Objects.requireNonNull(face.glyph(), "Glyph not initialized"); + FT_Bitmap fT_Bitmap = fT_GlyphSlot.bitmap(); + if (fT_Bitmap.pixel_mode() != 2) { + throw new IllegalStateException("Rendered glyph was not 8-bit grayscale"); + } else if (fT_Bitmap.width() == this.getWidth() && fT_Bitmap.rows() == this.getHeight()) { + int i = fT_Bitmap.width() * fT_Bitmap.rows(); + ByteBuffer byteBuffer = (ByteBuffer)Objects.requireNonNull(fT_Bitmap.buffer(i), "Glyph has no bitmap"); + MemoryUtil.memCopy(MemoryUtil.memAddress(byteBuffer), this.pixels, i); + return true; + } else { + throw new IllegalArgumentException( + String.format( + Locale.ROOT, "Glyph bitmap of size %sx%s does not match image of size: %sx%s", fT_Bitmap.width(), fT_Bitmap.rows(), this.getWidth(), this.getHeight() + ) + ); + } + } + } + + public void writeToFile(Path path) throws IOException { + if (!this.format.supportedByStb()) { + throw new UnsupportedOperationException("Don't know how to write format " + this.format); + } else { + this.checkAllocated(); + WritableByteChannel writableByteChannel = Files.newByteChannel(path, OPEN_OPTIONS); + + try { + if (!this.writeToChannel(writableByteChannel)) { + throw new IOException("Could not write image to the PNG file \"" + path.toAbsolutePath() + "\": " + STBImage.stbi_failure_reason()); + } + } catch (Throwable var6) { + if (writableByteChannel != null) { + try { + writableByteChannel.close(); + } catch (Throwable var5) { + var6.addSuppressed(var5); + } + } + + throw var6; + } + + if (writableByteChannel != null) { + writableByteChannel.close(); + } + } + } + + public byte[] asByteArray() throws IOException { + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + + byte[] var3; + try { + WritableByteChannel writableByteChannel = Channels.newChannel(byteArrayOutputStream); + + try { + if (!this.writeToChannel(writableByteChannel)) { + throw new IOException("Could not write image to byte array: " + STBImage.stbi_failure_reason()); + } + + var3 = byteArrayOutputStream.toByteArray(); + } catch (Throwable var7) { + if (writableByteChannel != null) { + try { + writableByteChannel.close(); + } catch (Throwable var6) { + var7.addSuppressed(var6); + } + } + + throw var7; + } + + if (writableByteChannel != null) { + writableByteChannel.close(); + } + } catch (Throwable var8) { + try { + byteArrayOutputStream.close(); + } catch (Throwable var5) { + var8.addSuppressed(var5); + } + + throw var8; + } + + byteArrayOutputStream.close(); + return var3; + } + + private boolean writeToChannel(WritableByteChannel channel) throws IOException { + NativeImage.WriteCallback writeCallback = new NativeImage.WriteCallback(channel); + + boolean var4; + try { + int i = Math.min(this.getHeight(), Integer.MAX_VALUE / this.getWidth() / this.format.components()); + if (i < this.getHeight()) { + LOGGER.warn("Dropping image height from {} to {} to fit the size into 32-bit signed int", this.getHeight(), i); + } + + if (STBImageWrite.nstbi_write_png_to_func(writeCallback.address(), 0L, this.getWidth(), i, this.format.components(), this.pixels, 0) != 0) { + writeCallback.throwIfException(); + return true; + } + + var4 = false; + } finally { + writeCallback.free(); + } + + return var4; + } + + public void copyFrom(NativeImage other) { + if (other.format() != this.format) { + throw new UnsupportedOperationException("Image formats don't match."); + } else { + int i = this.format.components(); + this.checkAllocated(); + other.checkAllocated(); + if (this.width == other.width) { + MemoryUtil.memCopy(other.pixels, this.pixels, Math.min(this.size, other.size)); + } else { + int j = Math.min(this.getWidth(), other.getWidth()); + int k = Math.min(this.getHeight(), other.getHeight()); + + for (int l = 0; l < k; l++) { + int m = l * other.getWidth() * i; + int n = l * this.getWidth() * i; + MemoryUtil.memCopy(other.pixels + m, this.pixels + n, j); + } + } + } + } + + public void fillRect(int x, int y, int width, int height, int value) { + for (int i = y; i < y + height; i++) { + for (int j = x; j < x + width; j++) { + this.setPixelRGBA(j, i, value); + } + } + } + + public void copyRect(int xFrom, int yFrom, int xToDelta, int yToDelta, int width, int height, boolean mirrorX, boolean mirrorY) { + this.copyRect(this, xFrom, yFrom, xFrom + xToDelta, yFrom + yToDelta, width, height, mirrorX, mirrorY); + } + + public void copyRect(NativeImage source, int xFrom, int yFrom, int xTo, int yTo, int width, int height, boolean mirrorX, boolean mirrorY) { + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + int k = mirrorX ? width - 1 - j : j; + int l = mirrorY ? height - 1 - i : i; + int m = this.getPixelRGBA(xFrom + j, yFrom + i); + source.setPixelRGBA(xTo + k, yTo + l, m); + } + } + } + + public void flipY() { + this.checkAllocated(); + int i = this.format.components(); + int j = this.getWidth() * i; + long l = MemoryUtil.nmemAlloc(j); + + try { + for (int k = 0; k < this.getHeight() / 2; k++) { + int m = k * this.getWidth() * i; + int n = (this.getHeight() - 1 - k) * this.getWidth() * i; + MemoryUtil.memCopy(this.pixels + m, l, j); + MemoryUtil.memCopy(this.pixels + n, this.pixels + m, j); + MemoryUtil.memCopy(l, this.pixels + n, j); + } + } finally { + MemoryUtil.nmemFree(l); + } + } + + public void resizeSubRectTo(int x, int y, int width, int height, NativeImage image) { + this.checkAllocated(); + if (image.format() != this.format) { + throw new UnsupportedOperationException("resizeSubRectTo only works for images of the same format."); + } else { + int i = this.format.components(); + STBImageResize.nstbir_resize_uint8( + this.pixels + (x + y * this.getWidth()) * i, width, height, this.getWidth() * i, image.pixels, image.getWidth(), image.getHeight(), 0, i + ); + } + } + + public void untrack() { + DebugMemoryUntracker.untrack(this.pixels); + } + + @Environment(EnvType.CLIENT) + public static enum Format { + RGBA(4, 6408, true, true, true, false, true, 0, 8, 16, 255, 24, true), + RGB(3, 6407, true, true, true, false, false, 0, 8, 16, 255, 255, true), + LUMINANCE_ALPHA(2, 33319, false, false, false, true, true, 255, 255, 255, 0, 8, true), + LUMINANCE(1, 6403, false, false, false, true, false, 0, 0, 0, 0, 255, true); + + final int components; + private final int glFormat; + private final boolean hasRed; + private final boolean hasGreen; + private final boolean hasBlue; + private final boolean hasLuminance; + private final boolean hasAlpha; + private final int redOffset; + private final int greenOffset; + private final int blueOffset; + private final int luminanceOffset; + private final int alphaOffset; + private final boolean supportedByStb; + + private Format( + final int components, + final int glFormat, + final boolean hasRed, + final boolean hasGreen, + final boolean hasBlue, + final boolean hasLuminance, + final boolean hasAlpha, + final int redOffset, + final int greenOffset, + final int blueOffset, + final int luminanceOffset, + final int alphaOffset, + final boolean supportedByStb + ) { + this.components = components; + this.glFormat = glFormat; + this.hasRed = hasRed; + this.hasGreen = hasGreen; + this.hasBlue = hasBlue; + this.hasLuminance = hasLuminance; + this.hasAlpha = hasAlpha; + this.redOffset = redOffset; + this.greenOffset = greenOffset; + this.blueOffset = blueOffset; + this.luminanceOffset = luminanceOffset; + this.alphaOffset = alphaOffset; + this.supportedByStb = supportedByStb; + } + + public int components() { + return this.components; + } + + public void setPackPixelStoreState() { + RenderSystem.assertOnRenderThread(); + GlStateManager._pixelStore(3333, this.components()); + } + + public void setUnpackPixelStoreState() { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._pixelStore(3317, this.components()); + } + + public int glFormat() { + return this.glFormat; + } + + public boolean hasRed() { + return this.hasRed; + } + + public boolean hasGreen() { + return this.hasGreen; + } + + public boolean hasBlue() { + return this.hasBlue; + } + + public boolean hasLuminance() { + return this.hasLuminance; + } + + public boolean hasAlpha() { + return this.hasAlpha; + } + + public int redOffset() { + return this.redOffset; + } + + public int greenOffset() { + return this.greenOffset; + } + + public int blueOffset() { + return this.blueOffset; + } + + public int luminanceOffset() { + return this.luminanceOffset; + } + + public int alphaOffset() { + return this.alphaOffset; + } + + public boolean hasLuminanceOrRed() { + return this.hasLuminance || this.hasRed; + } + + public boolean hasLuminanceOrGreen() { + return this.hasLuminance || this.hasGreen; + } + + public boolean hasLuminanceOrBlue() { + return this.hasLuminance || this.hasBlue; + } + + public boolean hasLuminanceOrAlpha() { + return this.hasLuminance || this.hasAlpha; + } + + public int luminanceOrRedOffset() { + return this.hasLuminance ? this.luminanceOffset : this.redOffset; + } + + public int luminanceOrGreenOffset() { + return this.hasLuminance ? this.luminanceOffset : this.greenOffset; + } + + public int luminanceOrBlueOffset() { + return this.hasLuminance ? this.luminanceOffset : this.blueOffset; + } + + public int luminanceOrAlphaOffset() { + return this.hasLuminance ? this.luminanceOffset : this.alphaOffset; + } + + public boolean supportedByStb() { + return this.supportedByStb; + } + + static NativeImage.Format getStbFormat(int channels) { + switch (channels) { + case 1: + return LUMINANCE; + case 2: + return LUMINANCE_ALPHA; + case 3: + return RGB; + case 4: + default: + return RGBA; + } + } + } + + @Environment(EnvType.CLIENT) + public static enum InternalGlFormat { + RGBA(6408), + RGB(6407), + RG(33319), + RED(6403); + + private final int glFormat; + + private InternalGlFormat(final int glFormat) { + this.glFormat = glFormat; + } + + public int glFormat() { + return this.glFormat; + } + } + + @Environment(EnvType.CLIENT) + static class WriteCallback extends STBIWriteCallback { + private final WritableByteChannel output; + @Nullable + private IOException exception; + + WriteCallback(WritableByteChannel output) { + this.output = output; + } + + @Override + public void invoke(long l, long m, int i) { + ByteBuffer byteBuffer = getData(m, i); + + try { + this.output.write(byteBuffer); + } catch (IOException var8) { + this.exception = var8; + } + } + + public void throwIfException() throws IOException { + if (this.exception != null) { + throw this.exception; + } + } + } +} diff --git a/com/mojang/blaze3d/platform/ScreenManager.java b/com/mojang/blaze3d/platform/ScreenManager.java new file mode 100644 index 00000000..b1bdaa8f --- /dev/null +++ b/com/mojang/blaze3d/platform/ScreenManager.java @@ -0,0 +1,105 @@ +package com.mojang.blaze3d.platform; + +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.logging.LogUtils; +import it.unimi.dsi.fastutil.longs.Long2ObjectMap; +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.PointerBuffer; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.glfw.GLFWMonitorCallback; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class ScreenManager { + private static final Logger LOGGER = LogUtils.getLogger(); + private final Long2ObjectMap monitors = new Long2ObjectOpenHashMap<>(); + private final MonitorCreator monitorCreator; + + public ScreenManager(MonitorCreator monitorCreator) { + this.monitorCreator = monitorCreator; + GLFW.glfwSetMonitorCallback(this::onMonitorChange); + PointerBuffer pointerBuffer = GLFW.glfwGetMonitors(); + if (pointerBuffer != null) { + for (int i = 0; i < pointerBuffer.limit(); i++) { + long l = pointerBuffer.get(i); + this.monitors.put(l, monitorCreator.createMonitor(l)); + } + } + } + + private void onMonitorChange(long monitorID, int opCode) { + RenderSystem.assertOnRenderThread(); + if (opCode == 262145) { + this.monitors.put(monitorID, this.monitorCreator.createMonitor(monitorID)); + LOGGER.debug("Monitor {} connected. Current monitors: {}", monitorID, this.monitors); + } else if (opCode == 262146) { + this.monitors.remove(monitorID); + LOGGER.debug("Monitor {} disconnected. Current monitors: {}", monitorID, this.monitors); + } + } + + @Nullable + public Monitor getMonitor(long monitorID) { + return this.monitors.get(monitorID); + } + + @Nullable + public Monitor findBestMonitor(Window window) { + long l = GLFW.glfwGetWindowMonitor(window.getWindow()); + if (l != 0L) { + return this.getMonitor(l); + } else { + int i = window.getX(); + int j = i + window.getScreenWidth(); + int k = window.getY(); + int m = k + window.getScreenHeight(); + int n = -1; + Monitor monitor = null; + long o = GLFW.glfwGetPrimaryMonitor(); + LOGGER.debug("Selecting monitor - primary: {}, current monitors: {}", o, this.monitors); + + for (Monitor monitor2 : this.monitors.values()) { + int p = monitor2.getX(); + int q = p + monitor2.getCurrentMode().getWidth(); + int r = monitor2.getY(); + int s = r + monitor2.getCurrentMode().getHeight(); + int t = clamp(i, p, q); + int u = clamp(j, p, q); + int v = clamp(k, r, s); + int w = clamp(m, r, s); + int x = Math.max(0, u - t); + int y = Math.max(0, w - v); + int z = x * y; + if (z > n) { + monitor = monitor2; + n = z; + } else if (z == n && o == monitor2.getMonitor()) { + LOGGER.debug("Primary monitor {} is preferred to monitor {}", monitor2, monitor); + monitor = monitor2; + } + } + + LOGGER.debug("Selected monitor: {}", monitor); + return monitor; + } + } + + public static int clamp(int value, int min, int max) { + if (value < min) { + return min; + } else { + return value > max ? max : value; + } + } + + public void shutdown() { + RenderSystem.assertOnRenderThread(); + GLFWMonitorCallback gLFWMonitorCallback = GLFW.glfwSetMonitorCallback(null); + if (gLFWMonitorCallback != null) { + gLFWMonitorCallback.free(); + } + } +} diff --git a/com/mojang/blaze3d/platform/TextureUtil.java b/com/mojang/blaze3d/platform/TextureUtil.java new file mode 100644 index 00000000..9c8983bc --- /dev/null +++ b/com/mojang/blaze3d/platform/TextureUtil.java @@ -0,0 +1,137 @@ +package com.mojang.blaze3d.platform; + +import com.mojang.blaze3d.DontObfuscate; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.logging.LogUtils; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.SeekableByteChannel; +import java.nio.file.Path; +import java.util.concurrent.ThreadLocalRandom; +import java.util.function.IntUnaryOperator; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.SharedConstants; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.system.MemoryUtil; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +@DontObfuscate +public class TextureUtil { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final int MIN_MIPMAP_LEVEL = 0; + private static final int DEFAULT_IMAGE_BUFFER_SIZE = 8192; + + public static int generateTextureId() { + RenderSystem.assertOnRenderThreadOrInit(); + if (SharedConstants.IS_RUNNING_IN_IDE) { + int[] is = new int[ThreadLocalRandom.current().nextInt(15) + 1]; + GlStateManager._genTextures(is); + int i = GlStateManager._genTexture(); + GlStateManager._deleteTextures(is); + return i; + } else { + return GlStateManager._genTexture(); + } + } + + public static void releaseTextureId(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._deleteTexture(i); + } + + public static void prepareImage(int i, int j, int k) { + prepareImage(NativeImage.InternalGlFormat.RGBA, i, 0, j, k); + } + + public static void prepareImage(NativeImage.InternalGlFormat internalGlFormat, int i, int j, int k) { + prepareImage(internalGlFormat, i, 0, j, k); + } + + public static void prepareImage(int i, int j, int k, int l) { + prepareImage(NativeImage.InternalGlFormat.RGBA, i, j, k, l); + } + + public static void prepareImage(NativeImage.InternalGlFormat internalGlFormat, int i, int j, int k, int l) { + RenderSystem.assertOnRenderThreadOrInit(); + bind(i); + if (j >= 0) { + GlStateManager._texParameter(3553, 33085, j); + GlStateManager._texParameter(3553, 33082, 0); + GlStateManager._texParameter(3553, 33083, j); + GlStateManager._texParameter(3553, 34049, 0.0F); + } + + for (int m = 0; m <= j; m++) { + GlStateManager._texImage2D(3553, m, internalGlFormat.glFormat(), k >> m, l >> m, 0, 6408, 5121, null); + } + } + + private static void bind(int i) { + RenderSystem.assertOnRenderThreadOrInit(); + GlStateManager._bindTexture(i); + } + + public static ByteBuffer readResource(InputStream inputStream) throws IOException { + ReadableByteChannel readableByteChannel = Channels.newChannel(inputStream); + return readableByteChannel instanceof SeekableByteChannel seekableByteChannel + ? readResource(readableByteChannel, (int)seekableByteChannel.size() + 1) + : readResource(readableByteChannel, 8192); + } + + private static ByteBuffer readResource(ReadableByteChannel readableByteChannel, int i) throws IOException { + ByteBuffer byteBuffer = MemoryUtil.memAlloc(i); + + try { + while (readableByteChannel.read(byteBuffer) != -1) { + if (!byteBuffer.hasRemaining()) { + byteBuffer = MemoryUtil.memRealloc(byteBuffer, byteBuffer.capacity() * 2); + } + } + + return byteBuffer; + } catch (IOException var4) { + MemoryUtil.memFree(byteBuffer); + throw var4; + } + } + + public static void writeAsPNG(Path path, String string, int i, int j, int k, int l) { + writeAsPNG(path, string, i, j, k, l, null); + } + + public static void writeAsPNG(Path path, String string, int i, int j, int k, int l, @Nullable IntUnaryOperator intUnaryOperator) { + RenderSystem.assertOnRenderThread(); + bind(i); + + for (int m = 0; m <= j; m++) { + int n = k >> m; + int o = l >> m; + + try (NativeImage nativeImage = new NativeImage(n, o, false)) { + nativeImage.downloadTexture(m, false); + if (intUnaryOperator != null) { + nativeImage.applyToAllPixels(intUnaryOperator); + } + + Path path2 = path.resolve(string + "_" + m + ".png"); + nativeImage.writeToFile(path2); + LOGGER.debug("Exported png to: {}", path2.toAbsolutePath()); + } catch (IOException var15) { + LOGGER.debug("Unable to write: ", (Throwable)var15); + } + } + } + + public static Path getDebugTexturePath(Path path) { + return path.resolve("screenshots").resolve("debug"); + } + + public static Path getDebugTexturePath() { + return getDebugTexturePath(Path.of(".")); + } +} diff --git a/com/mojang/blaze3d/platform/VideoMode.java b/com/mojang/blaze3d/platform/VideoMode.java new file mode 100644 index 00000000..32f19226 --- /dev/null +++ b/com/mojang/blaze3d/platform/VideoMode.java @@ -0,0 +1,137 @@ +package com.mojang.blaze3d.platform; + +import java.util.Locale; +import java.util.Objects; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.glfw.GLFWVidMode; +import org.lwjgl.glfw.GLFWVidMode.Buffer; + +@Environment(EnvType.CLIENT) +public final class VideoMode { + private final int width; + private final int height; + private final int redBits; + private final int greenBits; + private final int blueBits; + private final int refreshRate; + private static final Pattern PATTERN = Pattern.compile("(\\d+)x(\\d+)(?:@(\\d+)(?::(\\d+))?)?"); + + public VideoMode(int width, int height, int redBits, int greenBits, int blueBits, int refreshRate) { + this.width = width; + this.height = height; + this.redBits = redBits; + this.greenBits = greenBits; + this.blueBits = blueBits; + this.refreshRate = refreshRate; + } + + public VideoMode(Buffer bufferVideoMode) { + this.width = bufferVideoMode.width(); + this.height = bufferVideoMode.height(); + this.redBits = bufferVideoMode.redBits(); + this.greenBits = bufferVideoMode.greenBits(); + this.blueBits = bufferVideoMode.blueBits(); + this.refreshRate = bufferVideoMode.refreshRate(); + } + + public VideoMode(GLFWVidMode glfwVideoMode) { + this.width = glfwVideoMode.width(); + this.height = glfwVideoMode.height(); + this.redBits = glfwVideoMode.redBits(); + this.greenBits = glfwVideoMode.greenBits(); + this.blueBits = glfwVideoMode.blueBits(); + this.refreshRate = glfwVideoMode.refreshRate(); + } + + public int getWidth() { + return this.width; + } + + public int getHeight() { + return this.height; + } + + public int getRedBits() { + return this.redBits; + } + + public int getGreenBits() { + return this.greenBits; + } + + public int getBlueBits() { + return this.blueBits; + } + + public int getRefreshRate() { + return this.refreshRate; + } + + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (object != null && this.getClass() == object.getClass()) { + VideoMode videoMode = (VideoMode)object; + return this.width == videoMode.width + && this.height == videoMode.height + && this.redBits == videoMode.redBits + && this.greenBits == videoMode.greenBits + && this.blueBits == videoMode.blueBits + && this.refreshRate == videoMode.refreshRate; + } else { + return false; + } + } + + public int hashCode() { + return Objects.hash(new Object[]{this.width, this.height, this.redBits, this.greenBits, this.blueBits, this.refreshRate}); + } + + public String toString() { + return String.format(Locale.ROOT, "%sx%s@%s (%sbit)", this.width, this.height, this.refreshRate, this.redBits + this.greenBits + this.blueBits); + } + + public static Optional read(@Nullable String videoMode) { + if (videoMode == null) { + return Optional.empty(); + } else { + try { + Matcher matcher = PATTERN.matcher(videoMode); + if (matcher.matches()) { + int i = Integer.parseInt(matcher.group(1)); + int j = Integer.parseInt(matcher.group(2)); + String string = matcher.group(3); + int k; + if (string == null) { + k = 60; + } else { + k = Integer.parseInt(string); + } + + String string2 = matcher.group(4); + int l; + if (string2 == null) { + l = 24; + } else { + l = Integer.parseInt(string2); + } + + int m = l / 3; + return Optional.of(new VideoMode(i, j, m, m, m, k)); + } + } catch (Exception var9) { + } + + return Optional.empty(); + } + } + + public String write() { + return String.format(Locale.ROOT, "%sx%s@%s:%s", this.width, this.height, this.refreshRate, this.redBits + this.greenBits + this.blueBits); + } +} diff --git a/com/mojang/blaze3d/platform/Window.java b/com/mojang/blaze3d/platform/Window.java new file mode 100644 index 00000000..ceaa18b1 --- /dev/null +++ b/com/mojang/blaze3d/platform/Window.java @@ -0,0 +1,480 @@ +package com.mojang.blaze3d.platform; + +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.logging.LogUtils; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import java.util.function.BiConsumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.main.SilentInitException; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.resources.IoSupplier; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.PointerBuffer; +import org.lwjgl.glfw.Callbacks; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.glfw.GLFWErrorCallback; +import org.lwjgl.glfw.GLFWImage; +import org.lwjgl.glfw.GLFWImage.Buffer; +import org.lwjgl.opengl.GL; +import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.util.tinyfd.TinyFileDialogs; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public final class Window implements AutoCloseable { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final int BASE_WIDTH = 320; + public static final int BASE_HEIGHT = 240; + private final GLFWErrorCallback defaultErrorCallback = GLFWErrorCallback.create(this::defaultErrorCallback); + private final WindowEventHandler eventHandler; + private final ScreenManager screenManager; + private final long window; + private int windowedX; + private int windowedY; + private int windowedWidth; + private int windowedHeight; + private Optional preferredFullscreenVideoMode; + private boolean fullscreen; + private boolean actuallyFullscreen; + private int x; + private int y; + private int width; + private int height; + private int framebufferWidth; + private int framebufferHeight; + private int guiScaledWidth; + private int guiScaledHeight; + private double guiScale; + private String errorSection = ""; + private boolean dirty; + private int framerateLimit; + private boolean vsync; + + public Window( + WindowEventHandler eventHandler, ScreenManager screenManager, DisplayData displayData, @Nullable String preferredFullscreenVideoMode, String title + ) { + this.screenManager = screenManager; + this.setBootErrorCallback(); + this.setErrorSection("Pre startup"); + this.eventHandler = eventHandler; + Optional optional = VideoMode.read(preferredFullscreenVideoMode); + if (optional.isPresent()) { + this.preferredFullscreenVideoMode = optional; + } else if (displayData.fullscreenWidth.isPresent() && displayData.fullscreenHeight.isPresent()) { + this.preferredFullscreenVideoMode = Optional.of(new VideoMode(displayData.fullscreenWidth.getAsInt(), displayData.fullscreenHeight.getAsInt(), 8, 8, 8, 60)); + } else { + this.preferredFullscreenVideoMode = Optional.empty(); + } + + this.actuallyFullscreen = this.fullscreen = displayData.isFullscreen; + Monitor monitor = screenManager.getMonitor(GLFW.glfwGetPrimaryMonitor()); + this.windowedWidth = this.width = displayData.width > 0 ? displayData.width : 1; + this.windowedHeight = this.height = displayData.height > 0 ? displayData.height : 1; + GLFW.glfwDefaultWindowHints(); + GLFW.glfwWindowHint(139265, 196609); + GLFW.glfwWindowHint(139275, 221185); + GLFW.glfwWindowHint(139266, 3); + GLFW.glfwWindowHint(139267, 2); + GLFW.glfwWindowHint(139272, 204801); + GLFW.glfwWindowHint(139270, 1); + this.window = GLFW.glfwCreateWindow(this.width, this.height, title, this.fullscreen && monitor != null ? monitor.getMonitor() : 0L, 0L); + if (monitor != null) { + VideoMode videoMode = monitor.getPreferredVidMode(this.fullscreen ? this.preferredFullscreenVideoMode : Optional.empty()); + this.windowedX = this.x = monitor.getX() + videoMode.getWidth() / 2 - this.width / 2; + this.windowedY = this.y = monitor.getY() + videoMode.getHeight() / 2 - this.height / 2; + } else { + int[] is = new int[1]; + int[] js = new int[1]; + GLFW.glfwGetWindowPos(this.window, is, js); + this.windowedX = this.x = is[0]; + this.windowedY = this.y = js[0]; + } + + GLFW.glfwMakeContextCurrent(this.window); + GL.createCapabilities(); + int i = RenderSystem.maxSupportedTextureSize(); + GLFW.glfwSetWindowSizeLimits(this.window, -1, -1, i, i); + this.setMode(); + this.refreshFramebufferSize(); + GLFW.glfwSetFramebufferSizeCallback(this.window, this::onFramebufferResize); + GLFW.glfwSetWindowPosCallback(this.window, this::onMove); + GLFW.glfwSetWindowSizeCallback(this.window, this::onResize); + GLFW.glfwSetWindowFocusCallback(this.window, this::onFocus); + GLFW.glfwSetCursorEnterCallback(this.window, this::onEnter); + } + + public static String getPlatform() { + int i = GLFW.glfwGetPlatform(); + + return switch (i) { + case 0 -> ""; + case 393217 -> "win32"; + case 393218 -> "cocoa"; + case 393219 -> "wayland"; + case 393220 -> "x11"; + case 393221 -> "null"; + default -> String.format(Locale.ROOT, "unknown (%08X)", i); + }; + } + + public int getRefreshRate() { + RenderSystem.assertOnRenderThread(); + return GLX._getRefreshRate(this); + } + + public boolean shouldClose() { + return GLX._shouldClose(this); + } + + public static void checkGlfwError(BiConsumer errorConsumer) { + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + PointerBuffer pointerBuffer = memoryStack.mallocPointer(1); + int i = GLFW.glfwGetError(pointerBuffer); + if (i != 0) { + long l = pointerBuffer.get(); + String string = l == 0L ? "" : MemoryUtil.memUTF8(l); + errorConsumer.accept(i, string); + } + } + } + + public void setIcon(PackResources packResources, IconSet iconSet) throws IOException { + int i = GLFW.glfwGetPlatform(); + switch (i) { + case 393217: + case 393220: + List> list = iconSet.getStandardIcons(packResources); + List list2 = new ArrayList(list.size()); + + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + Buffer buffer = GLFWImage.malloc(list.size(), memoryStack); + + for (int j = 0; j < list.size(); j++) { + try (NativeImage nativeImage = NativeImage.read((InputStream)((IoSupplier)list.get(j)).get())) { + ByteBuffer byteBuffer = MemoryUtil.memAlloc(nativeImage.getWidth() * nativeImage.getHeight() * 4); + list2.add(byteBuffer); + byteBuffer.asIntBuffer().put(nativeImage.getPixelsRGBA()); + buffer.position(j); + buffer.width(nativeImage.getWidth()); + buffer.height(nativeImage.getHeight()); + buffer.pixels(byteBuffer); + } + } + + GLFW.glfwSetWindowIcon(this.window, buffer.position(0)); + break; + } finally { + list2.forEach(MemoryUtil::memFree); + } + case 393218: + MacosUtil.loadIcon(iconSet.getMacIcon(packResources)); + case 393219: + case 393221: + break; + default: + LOGGER.warn("Not setting icon for unrecognized platform: {}", i); + } + } + + public void setErrorSection(String errorSection) { + this.errorSection = errorSection; + } + + private void setBootErrorCallback() { + GLFW.glfwSetErrorCallback(Window::bootCrash); + } + + private static void bootCrash(int error, long description) { + String string = "GLFW error " + error + ": " + MemoryUtil.memUTF8(description); + TinyFileDialogs.tinyfd_messageBox( + "Minecraft", string + ".\n\nPlease make sure you have up-to-date drivers (see aka.ms/mcdriver for instructions).", "ok", "error", false + ); + throw new Window.WindowInitFailed(string); + } + + public void defaultErrorCallback(int error, long description) { + RenderSystem.assertOnRenderThread(); + String string = MemoryUtil.memUTF8(description); + LOGGER.error("########## GL ERROR ##########"); + LOGGER.error("@ {}", this.errorSection); + LOGGER.error("{}: {}", error, string); + } + + public void setDefaultErrorCallback() { + GLFWErrorCallback gLFWErrorCallback = GLFW.glfwSetErrorCallback(this.defaultErrorCallback); + if (gLFWErrorCallback != null) { + gLFWErrorCallback.free(); + } + } + + public void updateVsync(boolean vsync) { + RenderSystem.assertOnRenderThreadOrInit(); + this.vsync = vsync; + GLFW.glfwSwapInterval(vsync ? 1 : 0); + } + + public void close() { + RenderSystem.assertOnRenderThread(); + Callbacks.glfwFreeCallbacks(this.window); + this.defaultErrorCallback.close(); + GLFW.glfwDestroyWindow(this.window); + GLFW.glfwTerminate(); + } + + private void onMove(long window, int x, int y) { + this.x = x; + this.y = y; + } + + private void onFramebufferResize(long window, int framebufferWidth, int framebufferHeight) { + if (window == this.window) { + int i = this.getWidth(); + int j = this.getHeight(); + if (framebufferWidth != 0 && framebufferHeight != 0) { + this.framebufferWidth = framebufferWidth; + this.framebufferHeight = framebufferHeight; + if (this.getWidth() != i || this.getHeight() != j) { + this.eventHandler.resizeDisplay(); + } + } + } + } + + private void refreshFramebufferSize() { + int[] is = new int[1]; + int[] js = new int[1]; + GLFW.glfwGetFramebufferSize(this.window, is, js); + this.framebufferWidth = is[0] > 0 ? is[0] : 1; + this.framebufferHeight = js[0] > 0 ? js[0] : 1; + } + + private void onResize(long window, int width, int height) { + this.width = width; + this.height = height; + } + + private void onFocus(long window, boolean hasFocus) { + if (window == this.window) { + this.eventHandler.setWindowActive(hasFocus); + } + } + + /** + * @param cursorEntered {@code true} if the cursor entered the window, {@code false} if the cursor left + */ + private void onEnter(long window, boolean cursorEntered) { + if (cursorEntered) { + this.eventHandler.cursorEntered(); + } + } + + public void setFramerateLimit(int limit) { + this.framerateLimit = limit; + } + + public int getFramerateLimit() { + return this.framerateLimit; + } + + public void updateDisplay() { + RenderSystem.flipFrame(this.window); + if (this.fullscreen != this.actuallyFullscreen) { + this.actuallyFullscreen = this.fullscreen; + this.updateFullscreen(this.vsync); + } + } + + public Optional getPreferredFullscreenVideoMode() { + return this.preferredFullscreenVideoMode; + } + + public void setPreferredFullscreenVideoMode(Optional preferredFullscreenVideoMode) { + boolean bl = !preferredFullscreenVideoMode.equals(this.preferredFullscreenVideoMode); + this.preferredFullscreenVideoMode = preferredFullscreenVideoMode; + if (bl) { + this.dirty = true; + } + } + + public void changeFullscreenVideoMode() { + if (this.fullscreen && this.dirty) { + this.dirty = false; + this.setMode(); + this.eventHandler.resizeDisplay(); + } + } + + private void setMode() { + boolean bl = GLFW.glfwGetWindowMonitor(this.window) != 0L; + if (this.fullscreen) { + Monitor monitor = this.screenManager.findBestMonitor(this); + if (monitor == null) { + LOGGER.warn("Failed to find suitable monitor for fullscreen mode"); + this.fullscreen = false; + } else { + if (Minecraft.ON_OSX) { + MacosUtil.exitNativeFullscreen(this.window); + } + + VideoMode videoMode = monitor.getPreferredVidMode(this.preferredFullscreenVideoMode); + if (!bl) { + this.windowedX = this.x; + this.windowedY = this.y; + this.windowedWidth = this.width; + this.windowedHeight = this.height; + } + + this.x = 0; + this.y = 0; + this.width = videoMode.getWidth(); + this.height = videoMode.getHeight(); + GLFW.glfwSetWindowMonitor(this.window, monitor.getMonitor(), this.x, this.y, this.width, this.height, videoMode.getRefreshRate()); + if (Minecraft.ON_OSX) { + MacosUtil.clearResizableBit(this.window); + } + } + } else { + this.x = this.windowedX; + this.y = this.windowedY; + this.width = this.windowedWidth; + this.height = this.windowedHeight; + GLFW.glfwSetWindowMonitor(this.window, 0L, this.x, this.y, this.width, this.height, -1); + } + } + + public void toggleFullScreen() { + this.fullscreen = !this.fullscreen; + } + + public void setWindowed(int windowedWidth, int windowedHeight) { + this.windowedWidth = windowedWidth; + this.windowedHeight = windowedHeight; + this.fullscreen = false; + this.setMode(); + } + + private void updateFullscreen(boolean vsyncEnabled) { + RenderSystem.assertOnRenderThread(); + + try { + this.setMode(); + this.eventHandler.resizeDisplay(); + this.updateVsync(vsyncEnabled); + this.updateDisplay(); + } catch (Exception var3) { + LOGGER.error("Couldn't toggle fullscreen", (Throwable)var3); + } + } + + public int calculateScale(int guiScale, boolean forceUnicode) { + int i = 1; + + while ( + i != guiScale + && i < this.framebufferWidth + && i < this.framebufferHeight + && this.framebufferWidth / (i + 1) >= 320 + && this.framebufferHeight / (i + 1) >= 240 + ) { + i++; + } + + if (forceUnicode && i % 2 != 0) { + i++; + } + + return i; + } + + public void setGuiScale(double scaleFactor) { + this.guiScale = scaleFactor; + int i = (int)(this.framebufferWidth / scaleFactor); + this.guiScaledWidth = this.framebufferWidth / scaleFactor > i ? i + 1 : i; + int j = (int)(this.framebufferHeight / scaleFactor); + this.guiScaledHeight = this.framebufferHeight / scaleFactor > j ? j + 1 : j; + } + + public void setTitle(String title) { + GLFW.glfwSetWindowTitle(this.window, title); + } + + /** + * Gets a pointer to the native window object that is passed to GLFW. + */ + public long getWindow() { + return this.window; + } + + public boolean isFullscreen() { + return this.fullscreen; + } + + public int getWidth() { + return this.framebufferWidth; + } + + public int getHeight() { + return this.framebufferHeight; + } + + public void setWidth(int framebufferWidth) { + this.framebufferWidth = framebufferWidth; + } + + public void setHeight(int framebufferHeight) { + this.framebufferHeight = framebufferHeight; + } + + public int getScreenWidth() { + return this.width; + } + + public int getScreenHeight() { + return this.height; + } + + public int getGuiScaledWidth() { + return this.guiScaledWidth; + } + + public int getGuiScaledHeight() { + return this.guiScaledHeight; + } + + public int getX() { + return this.x; + } + + public int getY() { + return this.y; + } + + public double getGuiScale() { + return this.guiScale; + } + + @Nullable + public Monitor findBestMonitor() { + return this.screenManager.findBestMonitor(this); + } + + public void updateRawMouseInput(boolean enableRawMouseMotion) { + InputConstants.updateRawMouseInput(this.window, enableRawMouseMotion); + } + + @Environment(EnvType.CLIENT) + public static class WindowInitFailed extends SilentInitException { + WindowInitFailed(String string) { + super(string); + } + } +} diff --git a/com/mojang/blaze3d/platform/WindowEventHandler.java b/com/mojang/blaze3d/platform/WindowEventHandler.java new file mode 100644 index 00000000..5100ee4f --- /dev/null +++ b/com/mojang/blaze3d/platform/WindowEventHandler.java @@ -0,0 +1,13 @@ +package com.mojang.blaze3d.platform; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface WindowEventHandler { + void setWindowActive(boolean windowActive); + + void resizeDisplay(); + + void cursorEntered(); +} diff --git a/com/mojang/blaze3d/platform/package-info.java b/com/mojang/blaze3d/platform/package-info.java new file mode 100644 index 00000000..82916b6b --- /dev/null +++ b/com/mojang/blaze3d/platform/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.platform; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/preprocessor/GlslPreprocessor.java b/com/mojang/blaze3d/preprocessor/GlslPreprocessor.java new file mode 100644 index 00000000..75d8cb60 --- /dev/null +++ b/com/mojang/blaze3d/preprocessor/GlslPreprocessor.java @@ -0,0 +1,133 @@ +package com.mojang.blaze3d.preprocessor; + +import com.google.common.base.Strings; +import com.google.common.collect.Lists; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FileUtil; +import net.minecraft.util.StringUtil; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public abstract class GlslPreprocessor { + private static final String C_COMMENT = "/\\*(?:[^*]|\\*+[^*/])*\\*+/"; + private static final String LINE_COMMENT = "//[^\\v]*"; + private static final Pattern REGEX_MOJ_IMPORT = Pattern.compile( + "(#(?:/\\*(?:[^*]|\\*+[^*/])*\\*+/|\\h)*moj_import(?:/\\*(?:[^*]|\\*+[^*/])*\\*+/|\\h)*(?:\"(.*)\"|<(.*)>))" + ); + private static final Pattern REGEX_VERSION = Pattern.compile("(#(?:/\\*(?:[^*]|\\*+[^*/])*\\*+/|\\h)*version(?:/\\*(?:[^*]|\\*+[^*/])*\\*+/|\\h)*(\\d+))\\b"); + private static final Pattern REGEX_ENDS_WITH_WHITESPACE = Pattern.compile("(?:^|\\v)(?:\\s|/\\*(?:[^*]|\\*+[^*/])*\\*+/|(//[^\\v]*))*\\z"); + + public List process(String shaderData) { + GlslPreprocessor.Context context = new GlslPreprocessor.Context(); + List list = this.processImports(shaderData, context, ""); + list.set(0, this.setVersion((String)list.get(0), context.glslVersion)); + return list; + } + + private List processImports(String shaderData, GlslPreprocessor.Context context, String includeDirectory) { + int i = context.sourceId; + int j = 0; + String string = ""; + List list = Lists.newArrayList(); + Matcher matcher = REGEX_MOJ_IMPORT.matcher(shaderData); + + while (matcher.find()) { + if (!isDirectiveDisabled(shaderData, matcher, j)) { + String string2 = matcher.group(2); + boolean bl = string2 != null; + if (!bl) { + string2 = matcher.group(3); + } + + if (string2 != null) { + String string3 = shaderData.substring(j, matcher.start(1)); + String string4 = includeDirectory + string2; + String string5 = this.applyImport(bl, string4); + if (!Strings.isNullOrEmpty(string5)) { + if (!StringUtil.endsWithNewLine(string5)) { + string5 = string5 + System.lineSeparator(); + } + + context.sourceId++; + int k = context.sourceId; + List list2 = this.processImports(string5, context, bl ? FileUtil.getFullResourcePath(string4) : ""); + list2.set(0, String.format(Locale.ROOT, "#line %d %d\n%s", 0, k, this.processVersions((String)list2.get(0), context))); + if (!StringUtil.isBlank(string3)) { + list.add(string3); + } + + list.addAll(list2); + } else { + String string6 = bl ? String.format(Locale.ROOT, "/*#moj_import \"%s\"*/", string2) : String.format(Locale.ROOT, "/*#moj_import <%s>*/", string2); + list.add(string + string3 + string6); + } + + int k = StringUtil.lineCount(shaderData.substring(0, matcher.end(1))); + string = String.format(Locale.ROOT, "#line %d %d", k, i); + j = matcher.end(1); + } + } + } + + String string2x = shaderData.substring(j); + if (!StringUtil.isBlank(string2x)) { + list.add(string + string2x); + } + + return list; + } + + private String processVersions(String versionData, GlslPreprocessor.Context context) { + Matcher matcher = REGEX_VERSION.matcher(versionData); + if (matcher.find() && isDirectiveEnabled(versionData, matcher)) { + context.glslVersion = Math.max(context.glslVersion, Integer.parseInt(matcher.group(2))); + return versionData.substring(0, matcher.start(1)) + + "/*" + + versionData.substring(matcher.start(1), matcher.end(1)) + + "*/" + + versionData.substring(matcher.end(1)); + } else { + return versionData; + } + } + + private String setVersion(String versionData, int glslVersion) { + Matcher matcher = REGEX_VERSION.matcher(versionData); + return matcher.find() && isDirectiveEnabled(versionData, matcher) + ? versionData.substring(0, matcher.start(2)) + Math.max(glslVersion, Integer.parseInt(matcher.group(2))) + versionData.substring(matcher.end(2)) + : versionData; + } + + private static boolean isDirectiveEnabled(String shaderData, Matcher matcher) { + return !isDirectiveDisabled(shaderData, matcher, 0); + } + + private static boolean isDirectiveDisabled(String shaderData, Matcher matcher, int offset) { + int i = matcher.start() - offset; + if (i == 0) { + return false; + } else { + Matcher matcher2 = REGEX_ENDS_WITH_WHITESPACE.matcher(shaderData.substring(offset, matcher.start())); + if (!matcher2.find()) { + return true; + } else { + int j = matcher2.end(1); + return j == matcher.start(); + } + } + } + + @Nullable + public abstract String applyImport(boolean useFullPath, String directory); + + @Environment(EnvType.CLIENT) + static final class Context { + int glslVersion; + int sourceId; + } +} diff --git a/com/mojang/blaze3d/preprocessor/package-info.java b/com/mojang/blaze3d/preprocessor/package-info.java new file mode 100644 index 00000000..f7ddc2d5 --- /dev/null +++ b/com/mojang/blaze3d/preprocessor/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.preprocessor; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/shaders/AbstractUniform.java b/com/mojang/blaze3d/shaders/AbstractUniform.java new file mode 100644 index 00000000..9f4c00c6 --- /dev/null +++ b/com/mojang/blaze3d/shaders/AbstractUniform.java @@ -0,0 +1,100 @@ +package com.mojang.blaze3d.shaders; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.joml.Matrix3f; +import org.joml.Matrix4f; +import org.joml.Vector3f; +import org.joml.Vector4f; + +@Environment(EnvType.CLIENT) +public class AbstractUniform { + public void set(float x) { + } + + public void set(float x, float y) { + } + + public void set(float x, float y, float z) { + } + + public void set(float x, float y, float z, float w) { + } + + public void setSafe(float x, float y, float z, float w) { + } + + public void setSafe(int x, int y, int z, int w) { + } + + public void set(int x) { + } + + public void set(int x, int y) { + } + + public void set(int x, int y, int z) { + } + + public void set(int x, int y, int z, int w) { + } + + public void set(float[] valueArray) { + } + + public void set(Vector3f vector) { + } + + public void set(Vector4f vector) { + } + + public void setMat2x2(float m00, float m01, float m10, float m11) { + } + + public void setMat2x3(float m00, float m01, float m02, float m10, float m11, float m12) { + } + + public void setMat2x4(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13) { + } + + public void setMat3x2(float m00, float m01, float m10, float m11, float m20, float m21) { + } + + public void setMat3x3(float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22) { + } + + public void setMat3x4(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23) { + } + + public void setMat4x2(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13) { + } + + public void setMat4x3(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23) { + } + + public void setMat4x4( + float m00, + float m01, + float m02, + float m03, + float m10, + float m11, + float m12, + float m13, + float m20, + float m21, + float m22, + float m23, + float m30, + float m31, + float m32, + float m33 + ) { + } + + public void set(Matrix4f matrix) { + } + + public void set(Matrix3f matrix) { + } +} diff --git a/com/mojang/blaze3d/shaders/BlendMode.java b/com/mojang/blaze3d/shaders/BlendMode.java new file mode 100644 index 00000000..35c21ee8 --- /dev/null +++ b/com/mojang/blaze3d/shaders/BlendMode.java @@ -0,0 +1,146 @@ +package com.mojang.blaze3d.shaders; + +import com.mojang.blaze3d.systems.RenderSystem; +import java.util.Locale; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class BlendMode { + @Nullable + private static BlendMode lastApplied; + private final int srcColorFactor; + private final int srcAlphaFactor; + private final int dstColorFactor; + private final int dstAlphaFactor; + private final int blendFunc; + private final boolean separateBlend; + private final boolean opaque; + + private BlendMode(boolean separateBlend, boolean opaque, int srcColorFactor, int dstColorFactor, int srcAlphaFactor, int dstAlphaFactor, int blendFunc) { + this.separateBlend = separateBlend; + this.srcColorFactor = srcColorFactor; + this.dstColorFactor = dstColorFactor; + this.srcAlphaFactor = srcAlphaFactor; + this.dstAlphaFactor = dstAlphaFactor; + this.opaque = opaque; + this.blendFunc = blendFunc; + } + + public BlendMode() { + this(false, true, 1, 0, 1, 0, 32774); + } + + public BlendMode(int srcFactor, int dstFactor, int blendFunc) { + this(false, false, srcFactor, dstFactor, srcFactor, dstFactor, blendFunc); + } + + public BlendMode(int srcColorFactor, int dstColorFactor, int srcAlphaFactor, int dstAlphaFactor, int blendFunc) { + this(true, false, srcColorFactor, dstColorFactor, srcAlphaFactor, dstAlphaFactor, blendFunc); + } + + public void apply() { + if (!this.equals(lastApplied)) { + if (lastApplied == null || this.opaque != lastApplied.isOpaque()) { + lastApplied = this; + if (this.opaque) { + RenderSystem.disableBlend(); + return; + } + + RenderSystem.enableBlend(); + } + + RenderSystem.blendEquation(this.blendFunc); + if (this.separateBlend) { + RenderSystem.blendFuncSeparate(this.srcColorFactor, this.dstColorFactor, this.srcAlphaFactor, this.dstAlphaFactor); + } else { + RenderSystem.blendFunc(this.srcColorFactor, this.dstColorFactor); + } + } + } + + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (!(object instanceof BlendMode blendMode)) { + return false; + } else if (this.blendFunc != blendMode.blendFunc) { + return false; + } else if (this.dstAlphaFactor != blendMode.dstAlphaFactor) { + return false; + } else if (this.dstColorFactor != blendMode.dstColorFactor) { + return false; + } else if (this.opaque != blendMode.opaque) { + return false; + } else if (this.separateBlend != blendMode.separateBlend) { + return false; + } else { + return this.srcAlphaFactor != blendMode.srcAlphaFactor ? false : this.srcColorFactor == blendMode.srcColorFactor; + } + } + + public int hashCode() { + int i = this.srcColorFactor; + i = 31 * i + this.srcAlphaFactor; + i = 31 * i + this.dstColorFactor; + i = 31 * i + this.dstAlphaFactor; + i = 31 * i + this.blendFunc; + i = 31 * i + (this.separateBlend ? 1 : 0); + return 31 * i + (this.opaque ? 1 : 0); + } + + public boolean isOpaque() { + return this.opaque; + } + + /** + * Converts a blend function name to an id, returning add (32774) if not recognized. + */ + public static int stringToBlendFunc(String funcName) { + String string = funcName.trim().toLowerCase(Locale.ROOT); + if ("add".equals(string)) { + return 32774; + } else if ("subtract".equals(string)) { + return 32778; + } else if ("reversesubtract".equals(string)) { + return 32779; + } else if ("reverse_subtract".equals(string)) { + return 32779; + } else if ("min".equals(string)) { + return 32775; + } else { + return "max".equals(string) ? 32776 : 32774; + } + } + + public static int stringToBlendFactor(String factorName) { + String string = factorName.trim().toLowerCase(Locale.ROOT); + string = string.replaceAll("_", ""); + string = string.replaceAll("one", "1"); + string = string.replaceAll("zero", "0"); + string = string.replaceAll("minus", "-"); + if ("0".equals(string)) { + return 0; + } else if ("1".equals(string)) { + return 1; + } else if ("srccolor".equals(string)) { + return 768; + } else if ("1-srccolor".equals(string)) { + return 769; + } else if ("dstcolor".equals(string)) { + return 774; + } else if ("1-dstcolor".equals(string)) { + return 775; + } else if ("srcalpha".equals(string)) { + return 770; + } else if ("1-srcalpha".equals(string)) { + return 771; + } else if ("dstalpha".equals(string)) { + return 772; + } else { + return "1-dstalpha".equals(string) ? 773 : -1; + } + } +} diff --git a/com/mojang/blaze3d/shaders/Effect.java b/com/mojang/blaze3d/shaders/Effect.java new file mode 100644 index 00000000..7ec2624c --- /dev/null +++ b/com/mojang/blaze3d/shaders/Effect.java @@ -0,0 +1,8 @@ +package com.mojang.blaze3d.shaders; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface Effect extends Shader { +} diff --git a/com/mojang/blaze3d/shaders/EffectProgram.java b/com/mojang/blaze3d/shaders/EffectProgram.java new file mode 100644 index 00000000..782a1bc5 --- /dev/null +++ b/com/mojang/blaze3d/shaders/EffectProgram.java @@ -0,0 +1,46 @@ +package com.mojang.blaze3d.shaders; + +import com.mojang.blaze3d.preprocessor.GlslPreprocessor; +import com.mojang.blaze3d.systems.RenderSystem; +import java.io.IOException; +import java.io.InputStream; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class EffectProgram extends Program { + private static final GlslPreprocessor PREPROCESSOR = new GlslPreprocessor() { + @Override + public String applyImport(boolean useFullPath, String directory) { + return "#error Import statement not supported"; + } + }; + private int references; + + private EffectProgram(Program.Type type, int id, String name) { + super(type, id, name); + } + + public void attachToEffect(Effect effect) { + RenderSystem.assertOnRenderThread(); + this.references++; + this.attachToShader(effect); + } + + @Override + public void close() { + RenderSystem.assertOnRenderThread(); + this.references--; + if (this.references <= 0) { + super.close(); + } + } + + public static EffectProgram compileShader(Program.Type type, String name, InputStream shaderData, String sourceName) throws IOException { + RenderSystem.assertOnRenderThread(); + int i = compileShaderInternal(type, name, shaderData, sourceName, PREPROCESSOR); + EffectProgram effectProgram = new EffectProgram(type, i, name); + type.getPrograms().put(name, effectProgram); + return effectProgram; + } +} diff --git a/com/mojang/blaze3d/shaders/FogShape.java b/com/mojang/blaze3d/shaders/FogShape.java new file mode 100644 index 00000000..bd94aa7d --- /dev/null +++ b/com/mojang/blaze3d/shaders/FogShape.java @@ -0,0 +1,20 @@ +package com.mojang.blaze3d.shaders; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public enum FogShape { + SPHERE(0), + CYLINDER(1); + + private final int index; + + private FogShape(final int index) { + this.index = index; + } + + public int getIndex() { + return this.index; + } +} diff --git a/com/mojang/blaze3d/shaders/Program.java b/com/mojang/blaze3d/shaders/Program.java new file mode 100644 index 00000000..d5eeecd9 --- /dev/null +++ b/com/mojang/blaze3d/shaders/Program.java @@ -0,0 +1,108 @@ +package com.mojang.blaze3d.shaders; + +import com.google.common.collect.Maps; +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.preprocessor.GlslPreprocessor; +import com.mojang.blaze3d.systems.RenderSystem; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.Map; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; + +@Environment(EnvType.CLIENT) +public class Program { + private static final int MAX_LOG_LENGTH = 32768; + private final Program.Type type; + private final String name; + private int id; + + protected Program(Program.Type type, int id, String name) { + this.type = type; + this.id = id; + this.name = name; + } + + public void attachToShader(Shader shader) { + RenderSystem.assertOnRenderThread(); + GlStateManager.glAttachShader(shader.getId(), this.getId()); + } + + public void close() { + if (this.id != -1) { + RenderSystem.assertOnRenderThread(); + GlStateManager.glDeleteShader(this.id); + this.id = -1; + this.type.getPrograms().remove(this.name); + } + } + + public String getName() { + return this.name; + } + + public static Program compileShader(Program.Type type, String name, InputStream shaderData, String sourceName, GlslPreprocessor preprocessor) throws IOException { + RenderSystem.assertOnRenderThread(); + int i = compileShaderInternal(type, name, shaderData, sourceName, preprocessor); + Program program = new Program(type, i, name); + type.getPrograms().put(name, program); + return program; + } + + protected static int compileShaderInternal(Program.Type type, String name, InputStream shaderData, String sourceName, GlslPreprocessor preprocessor) throws IOException { + String string = IOUtils.toString(shaderData, StandardCharsets.UTF_8); + if (string == null) { + throw new IOException("Could not load program " + type.getName()); + } else { + int i = GlStateManager.glCreateShader(type.getGlType()); + GlStateManager.glShaderSource(i, preprocessor.process(string)); + GlStateManager.glCompileShader(i); + if (GlStateManager.glGetShaderi(i, 35713) == 0) { + String string2 = StringUtils.trim(GlStateManager.glGetShaderInfoLog(i, 32768)); + throw new IOException("Couldn't compile " + type.getName() + " program (" + sourceName + ", " + name + ") : " + string2); + } else { + return i; + } + } + } + + protected int getId() { + return this.id; + } + + @Environment(EnvType.CLIENT) + public static enum Type { + VERTEX("vertex", ".vsh", 35633), + FRAGMENT("fragment", ".fsh", 35632); + + private final String name; + private final String extension; + private final int glType; + private final Map programs = Maps.newHashMap(); + + private Type(final String name, final String extension, final int glType) { + this.name = name; + this.extension = extension; + this.glType = glType; + } + + public String getName() { + return this.name; + } + + public String getExtension() { + return this.extension; + } + + int getGlType() { + return this.glType; + } + + public Map getPrograms() { + return this.programs; + } + } +} diff --git a/com/mojang/blaze3d/shaders/ProgramManager.java b/com/mojang/blaze3d/shaders/ProgramManager.java new file mode 100644 index 00000000..9f3e6950 --- /dev/null +++ b/com/mojang/blaze3d/shaders/ProgramManager.java @@ -0,0 +1,51 @@ +package com.mojang.blaze3d.shaders; + +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.logging.LogUtils; +import java.io.IOException; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class ProgramManager { + private static final Logger LOGGER = LogUtils.getLogger(); + + public static void glUseProgram(int program) { + RenderSystem.assertOnRenderThread(); + GlStateManager._glUseProgram(program); + } + + public static void releaseProgram(Shader shader) { + RenderSystem.assertOnRenderThread(); + shader.getFragmentProgram().close(); + shader.getVertexProgram().close(); + GlStateManager.glDeleteProgram(shader.getId()); + } + + public static int createProgram() throws IOException { + RenderSystem.assertOnRenderThread(); + int i = GlStateManager.glCreateProgram(); + if (i <= 0) { + throw new IOException("Could not create shader program (returned program ID " + i + ")"); + } else { + return i; + } + } + + public static void linkShader(Shader shader) { + RenderSystem.assertOnRenderThread(); + shader.attachToProgram(); + GlStateManager.glLinkProgram(shader.getId()); + int i = GlStateManager.glGetProgrami(shader.getId(), 35714); + if (i == 0) { + LOGGER.warn( + "Error encountered when linking program containing VS {} and FS {}. Log output:", + shader.getVertexProgram().getName(), + shader.getFragmentProgram().getName() + ); + LOGGER.warn(GlStateManager.glGetProgramInfoLog(shader.getId(), 32768)); + } + } +} diff --git a/com/mojang/blaze3d/shaders/Shader.java b/com/mojang/blaze3d/shaders/Shader.java new file mode 100644 index 00000000..3239b8d5 --- /dev/null +++ b/com/mojang/blaze3d/shaders/Shader.java @@ -0,0 +1,17 @@ +package com.mojang.blaze3d.shaders; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface Shader { + int getId(); + + void markDirty(); + + Program getVertexProgram(); + + Program getFragmentProgram(); + + void attachToProgram(); +} diff --git a/com/mojang/blaze3d/shaders/Uniform.java b/com/mojang/blaze3d/shaders/Uniform.java new file mode 100644 index 00000000..2218e5bf --- /dev/null +++ b/com/mojang/blaze3d/shaders/Uniform.java @@ -0,0 +1,521 @@ +package com.mojang.blaze3d.shaders; + +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.logging.LogUtils; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.joml.Matrix3f; +import org.joml.Matrix4f; +import org.joml.Vector3f; +import org.joml.Vector4f; +import org.lwjgl.system.MemoryUtil; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class Uniform extends AbstractUniform implements AutoCloseable { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final int UT_INT1 = 0; + public static final int UT_INT2 = 1; + public static final int UT_INT3 = 2; + public static final int UT_INT4 = 3; + public static final int UT_FLOAT1 = 4; + public static final int UT_FLOAT2 = 5; + public static final int UT_FLOAT3 = 6; + public static final int UT_FLOAT4 = 7; + public static final int UT_MAT2 = 8; + public static final int UT_MAT3 = 9; + public static final int UT_MAT4 = 10; + private static final boolean TRANSPOSE_MATRICIES = false; + private int location; + private final int count; + private final int type; + private final IntBuffer intValues; + private final FloatBuffer floatValues; + private final String name; + private boolean dirty; + private final Shader parent; + + public Uniform(String name, int type, int count, Shader parent) { + this.name = name; + this.count = count; + this.type = type; + this.parent = parent; + if (type <= 3) { + this.intValues = MemoryUtil.memAllocInt(count); + this.floatValues = null; + } else { + this.intValues = null; + this.floatValues = MemoryUtil.memAllocFloat(count); + } + + this.location = -1; + this.markDirty(); + } + + public static int glGetUniformLocation(int program, CharSequence name) { + return GlStateManager._glGetUniformLocation(program, name); + } + + public static void uploadInteger(int location, int value) { + RenderSystem.glUniform1i(location, value); + } + + public static int glGetAttribLocation(int program, CharSequence name) { + return GlStateManager._glGetAttribLocation(program, name); + } + + public static void glBindAttribLocation(int program, int index, CharSequence name) { + GlStateManager._glBindAttribLocation(program, index, name); + } + + public void close() { + if (this.intValues != null) { + MemoryUtil.memFree(this.intValues); + } + + if (this.floatValues != null) { + MemoryUtil.memFree(this.floatValues); + } + } + + private void markDirty() { + this.dirty = true; + if (this.parent != null) { + this.parent.markDirty(); + } + } + + public static int getTypeFromString(String typeName) { + int i = -1; + if ("int".equals(typeName)) { + i = 0; + } else if ("float".equals(typeName)) { + i = 4; + } else if (typeName.startsWith("matrix")) { + if (typeName.endsWith("2x2")) { + i = 8; + } else if (typeName.endsWith("3x3")) { + i = 9; + } else if (typeName.endsWith("4x4")) { + i = 10; + } + } + + return i; + } + + public void setLocation(int location) { + this.location = location; + } + + public String getName() { + return this.name; + } + + @Override + public final void set(float x) { + this.floatValues.position(0); + this.floatValues.put(0, x); + this.markDirty(); + } + + @Override + public final void set(float x, float y) { + this.floatValues.position(0); + this.floatValues.put(0, x); + this.floatValues.put(1, y); + this.markDirty(); + } + + public final void set(int index, float value) { + this.floatValues.position(0); + this.floatValues.put(index, value); + this.markDirty(); + } + + @Override + public final void set(float x, float y, float z) { + this.floatValues.position(0); + this.floatValues.put(0, x); + this.floatValues.put(1, y); + this.floatValues.put(2, z); + this.markDirty(); + } + + @Override + public final void set(Vector3f vector) { + this.floatValues.position(0); + vector.get(this.floatValues); + this.markDirty(); + } + + @Override + public final void set(float x, float y, float z, float w) { + this.floatValues.position(0); + this.floatValues.put(x); + this.floatValues.put(y); + this.floatValues.put(z); + this.floatValues.put(w); + this.floatValues.flip(); + this.markDirty(); + } + + @Override + public final void set(Vector4f vector) { + this.floatValues.position(0); + vector.get(this.floatValues); + this.markDirty(); + } + + @Override + public final void setSafe(float x, float y, float z, float w) { + this.floatValues.position(0); + if (this.type >= 4) { + this.floatValues.put(0, x); + } + + if (this.type >= 5) { + this.floatValues.put(1, y); + } + + if (this.type >= 6) { + this.floatValues.put(2, z); + } + + if (this.type >= 7) { + this.floatValues.put(3, w); + } + + this.markDirty(); + } + + @Override + public final void setSafe(int x, int y, int z, int w) { + this.intValues.position(0); + if (this.type >= 0) { + this.intValues.put(0, x); + } + + if (this.type >= 1) { + this.intValues.put(1, y); + } + + if (this.type >= 2) { + this.intValues.put(2, z); + } + + if (this.type >= 3) { + this.intValues.put(3, w); + } + + this.markDirty(); + } + + @Override + public final void set(int x) { + this.intValues.position(0); + this.intValues.put(0, x); + this.markDirty(); + } + + @Override + public final void set(int x, int y) { + this.intValues.position(0); + this.intValues.put(0, x); + this.intValues.put(1, y); + this.markDirty(); + } + + @Override + public final void set(int x, int y, int z) { + this.intValues.position(0); + this.intValues.put(0, x); + this.intValues.put(1, y); + this.intValues.put(2, z); + this.markDirty(); + } + + @Override + public final void set(int x, int y, int z, int w) { + this.intValues.position(0); + this.intValues.put(0, x); + this.intValues.put(1, y); + this.intValues.put(2, z); + this.intValues.put(3, w); + this.markDirty(); + } + + @Override + public final void set(float[] valueArray) { + if (valueArray.length < this.count) { + LOGGER.warn("Uniform.set called with a too-small value array (expected {}, got {}). Ignoring.", this.count, valueArray.length); + } else { + this.floatValues.position(0); + this.floatValues.put(valueArray); + this.floatValues.position(0); + this.markDirty(); + } + } + + @Override + public final void setMat2x2(float m00, float m01, float m10, float m11) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m10); + this.floatValues.put(3, m11); + this.markDirty(); + } + + @Override + public final void setMat2x3(float m00, float m01, float m02, float m10, float m11, float m12) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m02); + this.floatValues.put(3, m10); + this.floatValues.put(4, m11); + this.floatValues.put(5, m12); + this.markDirty(); + } + + @Override + public final void setMat2x4(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m02); + this.floatValues.put(3, m03); + this.floatValues.put(4, m10); + this.floatValues.put(5, m11); + this.floatValues.put(6, m12); + this.floatValues.put(7, m13); + this.markDirty(); + } + + @Override + public final void setMat3x2(float m00, float m01, float m10, float m11, float m20, float m21) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m10); + this.floatValues.put(3, m11); + this.floatValues.put(4, m20); + this.floatValues.put(5, m21); + this.markDirty(); + } + + @Override + public final void setMat3x3(float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m02); + this.floatValues.put(3, m10); + this.floatValues.put(4, m11); + this.floatValues.put(5, m12); + this.floatValues.put(6, m20); + this.floatValues.put(7, m21); + this.floatValues.put(8, m22); + this.markDirty(); + } + + @Override + public final void setMat3x4(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m02); + this.floatValues.put(3, m03); + this.floatValues.put(4, m10); + this.floatValues.put(5, m11); + this.floatValues.put(6, m12); + this.floatValues.put(7, m13); + this.floatValues.put(8, m20); + this.floatValues.put(9, m21); + this.floatValues.put(10, m22); + this.floatValues.put(11, m23); + this.markDirty(); + } + + @Override + public final void setMat4x2(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m02); + this.floatValues.put(3, m03); + this.floatValues.put(4, m10); + this.floatValues.put(5, m11); + this.floatValues.put(6, m12); + this.floatValues.put(7, m13); + this.markDirty(); + } + + @Override + public final void setMat4x3(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m02); + this.floatValues.put(3, m03); + this.floatValues.put(4, m10); + this.floatValues.put(5, m11); + this.floatValues.put(6, m12); + this.floatValues.put(7, m13); + this.floatValues.put(8, m20); + this.floatValues.put(9, m21); + this.floatValues.put(10, m22); + this.floatValues.put(11, m23); + this.markDirty(); + } + + @Override + public final void setMat4x4( + float m00, + float m01, + float m02, + float m03, + float m10, + float m11, + float m12, + float m13, + float m20, + float m21, + float m22, + float m23, + float m30, + float m31, + float m32, + float m33 + ) { + this.floatValues.position(0); + this.floatValues.put(0, m00); + this.floatValues.put(1, m01); + this.floatValues.put(2, m02); + this.floatValues.put(3, m03); + this.floatValues.put(4, m10); + this.floatValues.put(5, m11); + this.floatValues.put(6, m12); + this.floatValues.put(7, m13); + this.floatValues.put(8, m20); + this.floatValues.put(9, m21); + this.floatValues.put(10, m22); + this.floatValues.put(11, m23); + this.floatValues.put(12, m30); + this.floatValues.put(13, m31); + this.floatValues.put(14, m32); + this.floatValues.put(15, m33); + this.markDirty(); + } + + @Override + public final void set(Matrix4f matrix) { + this.floatValues.position(0); + matrix.get(this.floatValues); + this.markDirty(); + } + + @Override + public final void set(Matrix3f matrix) { + this.floatValues.position(0); + matrix.get(this.floatValues); + this.markDirty(); + } + + public void upload() { + if (!this.dirty) { + } + + this.dirty = false; + if (this.type <= 3) { + this.uploadAsInteger(); + } else if (this.type <= 7) { + this.uploadAsFloat(); + } else { + if (this.type > 10) { + LOGGER.warn("Uniform.upload called, but type value ({}) is not a valid type. Ignoring.", this.type); + return; + } + + this.uploadAsMatrix(); + } + } + + private void uploadAsInteger() { + this.intValues.rewind(); + switch (this.type) { + case 0: + RenderSystem.glUniform1(this.location, this.intValues); + break; + case 1: + RenderSystem.glUniform2(this.location, this.intValues); + break; + case 2: + RenderSystem.glUniform3(this.location, this.intValues); + break; + case 3: + RenderSystem.glUniform4(this.location, this.intValues); + break; + default: + LOGGER.warn("Uniform.upload called, but count value ({}) is not in the range of 1 to 4. Ignoring.", this.count); + } + } + + private void uploadAsFloat() { + this.floatValues.rewind(); + switch (this.type) { + case 4: + RenderSystem.glUniform1(this.location, this.floatValues); + break; + case 5: + RenderSystem.glUniform2(this.location, this.floatValues); + break; + case 6: + RenderSystem.glUniform3(this.location, this.floatValues); + break; + case 7: + RenderSystem.glUniform4(this.location, this.floatValues); + break; + default: + LOGGER.warn("Uniform.upload called, but count value ({}) is not in the range of 1 to 4. Ignoring.", this.count); + } + } + + private void uploadAsMatrix() { + this.floatValues.clear(); + switch (this.type) { + case 8: + RenderSystem.glUniformMatrix2(this.location, false, this.floatValues); + break; + case 9: + RenderSystem.glUniformMatrix3(this.location, false, this.floatValues); + break; + case 10: + RenderSystem.glUniformMatrix4(this.location, false, this.floatValues); + } + } + + public int getLocation() { + return this.location; + } + + public int getCount() { + return this.count; + } + + public int getType() { + return this.type; + } + + public IntBuffer getIntBuffer() { + return this.intValues; + } + + public FloatBuffer getFloatBuffer() { + return this.floatValues; + } +} diff --git a/com/mojang/blaze3d/shaders/package-info.java b/com/mojang/blaze3d/shaders/package-info.java new file mode 100644 index 00000000..90d702c2 --- /dev/null +++ b/com/mojang/blaze3d/shaders/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.shaders; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/systems/RenderSystem.java b/com/mojang/blaze3d/systems/RenderSystem.java new file mode 100644 index 00000000..bea05d69 --- /dev/null +++ b/com/mojang/blaze3d/systems/RenderSystem.java @@ -0,0 +1,935 @@ +package com.mojang.blaze3d.systems; + +import com.google.common.collect.Queues; +import com.mojang.blaze3d.DontObfuscate; +import com.mojang.blaze3d.pipeline.RenderCall; +import com.mojang.blaze3d.platform.GLX; +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.shaders.FogShape; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.VertexSorting; +import com.mojang.logging.LogUtils; +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.util.Locale; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; +import java.util.function.Consumer; +import java.util.function.IntConsumer; +import java.util.function.Supplier; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.GraphicsStatus; +import net.minecraft.client.Minecraft; +import net.minecraft.client.OptionInstance; +import net.minecraft.client.renderer.ShaderInstance; +import net.minecraft.client.renderer.texture.AbstractTexture; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.util.TimeSource; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; +import org.joml.Matrix4fStack; +import org.joml.Vector3f; +import org.lwjgl.glfw.GLFW; +import org.lwjgl.glfw.GLFWErrorCallbackI; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +@DontObfuscate +public class RenderSystem { + static final Logger LOGGER = LogUtils.getLogger(); + private static final ConcurrentLinkedQueue recordingQueue = Queues.newConcurrentLinkedQueue(); + private static final Tesselator RENDER_THREAD_TESSELATOR = new Tesselator(1536); + private static final int MINIMUM_ATLAS_TEXTURE_SIZE = 1024; + @Nullable + private static Thread renderThread; + private static int MAX_SUPPORTED_TEXTURE_SIZE = -1; + private static boolean isInInit; + private static double lastDrawTime = Double.MIN_VALUE; + private static final RenderSystem.AutoStorageIndexBuffer sharedSequential = new RenderSystem.AutoStorageIndexBuffer(1, 1, IntConsumer::accept); + private static final RenderSystem.AutoStorageIndexBuffer sharedSequentialQuad = new RenderSystem.AutoStorageIndexBuffer(4, 6, (intConsumer, i) -> { + intConsumer.accept(i + 0); + intConsumer.accept(i + 1); + intConsumer.accept(i + 2); + intConsumer.accept(i + 2); + intConsumer.accept(i + 3); + intConsumer.accept(i + 0); + }); + private static final RenderSystem.AutoStorageIndexBuffer sharedSequentialLines = new RenderSystem.AutoStorageIndexBuffer(4, 6, (intConsumer, i) -> { + intConsumer.accept(i + 0); + intConsumer.accept(i + 1); + intConsumer.accept(i + 2); + intConsumer.accept(i + 3); + intConsumer.accept(i + 2); + intConsumer.accept(i + 1); + }); + private static Matrix4f projectionMatrix = new Matrix4f(); + private static Matrix4f savedProjectionMatrix = new Matrix4f(); + private static VertexSorting vertexSorting = VertexSorting.DISTANCE_TO_ORIGIN; + private static VertexSorting savedVertexSorting = VertexSorting.DISTANCE_TO_ORIGIN; + private static final Matrix4fStack modelViewStack = new Matrix4fStack(16); + private static Matrix4f modelViewMatrix = new Matrix4f(); + private static Matrix4f textureMatrix = new Matrix4f(); + private static final int[] shaderTextures = new int[12]; + private static final float[] shaderColor = new float[]{1.0F, 1.0F, 1.0F, 1.0F}; + private static float shaderGlintAlpha = 1.0F; + private static float shaderFogStart; + private static float shaderFogEnd = 1.0F; + private static final float[] shaderFogColor = new float[]{0.0F, 0.0F, 0.0F, 0.0F}; + private static FogShape shaderFogShape = FogShape.SPHERE; + private static final Vector3f[] shaderLightDirections = new Vector3f[2]; + private static float shaderGameTime; + private static float shaderLineWidth = 1.0F; + private static String apiDescription = "Unknown"; + @Nullable + private static ShaderInstance shader; + private static final AtomicLong pollEventsWaitStart = new AtomicLong(); + private static final AtomicBoolean pollingEvents = new AtomicBoolean(false); + + public static void initRenderThread() { + if (renderThread != null) { + throw new IllegalStateException("Could not initialize render thread"); + } else { + renderThread = Thread.currentThread(); + } + } + + public static boolean isOnRenderThread() { + return Thread.currentThread() == renderThread; + } + + public static boolean isOnRenderThreadOrInit() { + return isInInit || isOnRenderThread(); + } + + public static void assertOnRenderThreadOrInit() { + if (!isInInit && !isOnRenderThread()) { + throw constructThreadException(); + } + } + + public static void assertOnRenderThread() { + if (!isOnRenderThread()) { + throw constructThreadException(); + } + } + + private static IllegalStateException constructThreadException() { + return new IllegalStateException("Rendersystem called from wrong thread"); + } + + public static void recordRenderCall(RenderCall renderCall) { + recordingQueue.add(renderCall); + } + + private static void pollEvents() { + pollEventsWaitStart.set(Util.getMillis()); + pollingEvents.set(true); + GLFW.glfwPollEvents(); + pollingEvents.set(false); + } + + public static boolean isFrozenAtPollEvents() { + return pollingEvents.get() && Util.getMillis() - pollEventsWaitStart.get() > 200L; + } + + public static void flipFrame(long l) { + pollEvents(); + replayQueue(); + Tesselator.getInstance().clear(); + GLFW.glfwSwapBuffers(l); + pollEvents(); + } + + public static void replayQueue() { + while (!recordingQueue.isEmpty()) { + RenderCall renderCall = (RenderCall)recordingQueue.poll(); + renderCall.execute(); + } + } + + public static void limitDisplayFPS(int i) { + double d = lastDrawTime + 1.0 / i; + + double e; + for (e = GLFW.glfwGetTime(); e < d; e = GLFW.glfwGetTime()) { + GLFW.glfwWaitEventsTimeout(d - e); + } + + lastDrawTime = e; + } + + public static void disableDepthTest() { + assertOnRenderThread(); + GlStateManager._disableDepthTest(); + } + + public static void enableDepthTest() { + GlStateManager._enableDepthTest(); + } + + public static void enableScissor(int i, int j, int k, int l) { + GlStateManager._enableScissorTest(); + GlStateManager._scissorBox(i, j, k, l); + } + + public static void disableScissor() { + GlStateManager._disableScissorTest(); + } + + public static void depthFunc(int i) { + assertOnRenderThread(); + GlStateManager._depthFunc(i); + } + + public static void depthMask(boolean bl) { + assertOnRenderThread(); + GlStateManager._depthMask(bl); + } + + public static void enableBlend() { + assertOnRenderThread(); + GlStateManager._enableBlend(); + } + + public static void disableBlend() { + assertOnRenderThread(); + GlStateManager._disableBlend(); + } + + public static void blendFunc(GlStateManager.SourceFactor sourceFactor, GlStateManager.DestFactor destFactor) { + assertOnRenderThread(); + GlStateManager._blendFunc(sourceFactor.value, destFactor.value); + } + + public static void blendFunc(int i, int j) { + assertOnRenderThread(); + GlStateManager._blendFunc(i, j); + } + + public static void blendFuncSeparate( + GlStateManager.SourceFactor sourceFactor, + GlStateManager.DestFactor destFactor, + GlStateManager.SourceFactor sourceFactor2, + GlStateManager.DestFactor destFactor2 + ) { + assertOnRenderThread(); + GlStateManager._blendFuncSeparate(sourceFactor.value, destFactor.value, sourceFactor2.value, destFactor2.value); + } + + public static void blendFuncSeparate(int i, int j, int k, int l) { + assertOnRenderThread(); + GlStateManager._blendFuncSeparate(i, j, k, l); + } + + public static void blendEquation(int i) { + assertOnRenderThread(); + GlStateManager._blendEquation(i); + } + + public static void enableCull() { + assertOnRenderThread(); + GlStateManager._enableCull(); + } + + public static void disableCull() { + assertOnRenderThread(); + GlStateManager._disableCull(); + } + + public static void polygonMode(int i, int j) { + assertOnRenderThread(); + GlStateManager._polygonMode(i, j); + } + + public static void enablePolygonOffset() { + assertOnRenderThread(); + GlStateManager._enablePolygonOffset(); + } + + public static void disablePolygonOffset() { + assertOnRenderThread(); + GlStateManager._disablePolygonOffset(); + } + + public static void polygonOffset(float f, float g) { + assertOnRenderThread(); + GlStateManager._polygonOffset(f, g); + } + + public static void enableColorLogicOp() { + assertOnRenderThread(); + GlStateManager._enableColorLogicOp(); + } + + public static void disableColorLogicOp() { + assertOnRenderThread(); + GlStateManager._disableColorLogicOp(); + } + + public static void logicOp(GlStateManager.LogicOp logicOp) { + assertOnRenderThread(); + GlStateManager._logicOp(logicOp.value); + } + + public static void activeTexture(int i) { + assertOnRenderThread(); + GlStateManager._activeTexture(i); + } + + public static void texParameter(int i, int j, int k) { + GlStateManager._texParameter(i, j, k); + } + + public static void deleteTexture(int i) { + GlStateManager._deleteTexture(i); + } + + public static void bindTextureForSetup(int i) { + bindTexture(i); + } + + public static void bindTexture(int i) { + GlStateManager._bindTexture(i); + } + + public static void viewport(int i, int j, int k, int l) { + GlStateManager._viewport(i, j, k, l); + } + + public static void colorMask(boolean bl, boolean bl2, boolean bl3, boolean bl4) { + assertOnRenderThread(); + GlStateManager._colorMask(bl, bl2, bl3, bl4); + } + + public static void stencilFunc(int i, int j, int k) { + assertOnRenderThread(); + GlStateManager._stencilFunc(i, j, k); + } + + public static void stencilMask(int i) { + assertOnRenderThread(); + GlStateManager._stencilMask(i); + } + + public static void stencilOp(int i, int j, int k) { + assertOnRenderThread(); + GlStateManager._stencilOp(i, j, k); + } + + public static void clearDepth(double d) { + GlStateManager._clearDepth(d); + } + + public static void clearColor(float f, float g, float h, float i) { + GlStateManager._clearColor(f, g, h, i); + } + + public static void clearStencil(int i) { + assertOnRenderThread(); + GlStateManager._clearStencil(i); + } + + public static void clear(int i, boolean bl) { + GlStateManager._clear(i, bl); + } + + public static void setShaderFogStart(float f) { + assertOnRenderThread(); + shaderFogStart = f; + } + + public static float getShaderFogStart() { + assertOnRenderThread(); + return shaderFogStart; + } + + public static void setShaderGlintAlpha(double d) { + setShaderGlintAlpha((float)d); + } + + public static void setShaderGlintAlpha(float f) { + assertOnRenderThread(); + shaderGlintAlpha = f; + } + + public static float getShaderGlintAlpha() { + assertOnRenderThread(); + return shaderGlintAlpha; + } + + public static void setShaderFogEnd(float f) { + assertOnRenderThread(); + shaderFogEnd = f; + } + + public static float getShaderFogEnd() { + assertOnRenderThread(); + return shaderFogEnd; + } + + public static void setShaderFogColor(float f, float g, float h, float i) { + assertOnRenderThread(); + shaderFogColor[0] = f; + shaderFogColor[1] = g; + shaderFogColor[2] = h; + shaderFogColor[3] = i; + } + + public static void setShaderFogColor(float f, float g, float h) { + setShaderFogColor(f, g, h, 1.0F); + } + + public static float[] getShaderFogColor() { + assertOnRenderThread(); + return shaderFogColor; + } + + public static void setShaderFogShape(FogShape fogShape) { + assertOnRenderThread(); + shaderFogShape = fogShape; + } + + public static FogShape getShaderFogShape() { + assertOnRenderThread(); + return shaderFogShape; + } + + public static void setShaderLights(Vector3f vector3f, Vector3f vector3f2) { + assertOnRenderThread(); + shaderLightDirections[0] = vector3f; + shaderLightDirections[1] = vector3f2; + } + + public static void setupShaderLights(ShaderInstance shaderInstance) { + assertOnRenderThread(); + if (shaderInstance.LIGHT0_DIRECTION != null) { + shaderInstance.LIGHT0_DIRECTION.set(shaderLightDirections[0]); + } + + if (shaderInstance.LIGHT1_DIRECTION != null) { + shaderInstance.LIGHT1_DIRECTION.set(shaderLightDirections[1]); + } + } + + public static void setShaderColor(float f, float g, float h, float i) { + if (!isOnRenderThread()) { + recordRenderCall(() -> _setShaderColor(f, g, h, i)); + } else { + _setShaderColor(f, g, h, i); + } + } + + private static void _setShaderColor(float f, float g, float h, float i) { + shaderColor[0] = f; + shaderColor[1] = g; + shaderColor[2] = h; + shaderColor[3] = i; + } + + public static float[] getShaderColor() { + assertOnRenderThread(); + return shaderColor; + } + + public static void drawElements(int i, int j, int k) { + assertOnRenderThread(); + GlStateManager._drawElements(i, j, k, 0L); + } + + public static void lineWidth(float f) { + if (!isOnRenderThread()) { + recordRenderCall(() -> shaderLineWidth = f); + } else { + shaderLineWidth = f; + } + } + + public static float getShaderLineWidth() { + assertOnRenderThread(); + return shaderLineWidth; + } + + public static void pixelStore(int i, int j) { + GlStateManager._pixelStore(i, j); + } + + public static void readPixels(int i, int j, int k, int l, int m, int n, ByteBuffer byteBuffer) { + assertOnRenderThread(); + GlStateManager._readPixels(i, j, k, l, m, n, byteBuffer); + } + + public static void getString(int i, Consumer consumer) { + assertOnRenderThread(); + consumer.accept(GlStateManager._getString(i)); + } + + public static String getBackendDescription() { + return String.format(Locale.ROOT, "LWJGL version %s", GLX._getLWJGLVersion()); + } + + public static String getApiDescription() { + return apiDescription; + } + + public static TimeSource.NanoTimeSource initBackendSystem() { + return GLX._initGlfw()::getAsLong; + } + + public static void initRenderer(int i, boolean bl) { + GLX._init(i, bl); + apiDescription = GLX.getOpenGLVersionString(); + } + + public static void setErrorCallback(GLFWErrorCallbackI gLFWErrorCallbackI) { + GLX._setGlfwErrorCallback(gLFWErrorCallbackI); + } + + public static void renderCrosshair(int i) { + assertOnRenderThread(); + GLX._renderCrosshair(i, true, true, true); + } + + public static String getCapsString() { + assertOnRenderThread(); + return "Using framebuffer using OpenGL 3.2"; + } + + public static void setupDefaultState(int i, int j, int k, int l) { + GlStateManager._clearDepth(1.0); + GlStateManager._enableDepthTest(); + GlStateManager._depthFunc(515); + projectionMatrix.identity(); + savedProjectionMatrix.identity(); + modelViewMatrix.identity(); + textureMatrix.identity(); + GlStateManager._viewport(i, j, k, l); + } + + public static int maxSupportedTextureSize() { + if (MAX_SUPPORTED_TEXTURE_SIZE == -1) { + assertOnRenderThreadOrInit(); + int i = GlStateManager._getInteger(3379); + + for (int j = Math.max(32768, i); j >= 1024; j >>= 1) { + GlStateManager._texImage2D(32868, 0, 6408, j, j, 0, 6408, 5121, null); + int k = GlStateManager._getTexLevelParameter(32868, 0, 4096); + if (k != 0) { + MAX_SUPPORTED_TEXTURE_SIZE = j; + return j; + } + } + + MAX_SUPPORTED_TEXTURE_SIZE = Math.max(i, 1024); + LOGGER.info("Failed to determine maximum texture size by probing, trying GL_MAX_TEXTURE_SIZE = {}", MAX_SUPPORTED_TEXTURE_SIZE); + } + + return MAX_SUPPORTED_TEXTURE_SIZE; + } + + public static void glBindBuffer(int i, int j) { + GlStateManager._glBindBuffer(i, j); + } + + public static void glBindVertexArray(int i) { + GlStateManager._glBindVertexArray(i); + } + + public static void glBufferData(int i, ByteBuffer byteBuffer, int j) { + assertOnRenderThreadOrInit(); + GlStateManager._glBufferData(i, byteBuffer, j); + } + + public static void glDeleteBuffers(int i) { + assertOnRenderThread(); + GlStateManager._glDeleteBuffers(i); + } + + public static void glDeleteVertexArrays(int i) { + assertOnRenderThread(); + GlStateManager._glDeleteVertexArrays(i); + } + + public static void glUniform1i(int i, int j) { + assertOnRenderThread(); + GlStateManager._glUniform1i(i, j); + } + + public static void glUniform1(int i, IntBuffer intBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform1(i, intBuffer); + } + + public static void glUniform2(int i, IntBuffer intBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform2(i, intBuffer); + } + + public static void glUniform3(int i, IntBuffer intBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform3(i, intBuffer); + } + + public static void glUniform4(int i, IntBuffer intBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform4(i, intBuffer); + } + + public static void glUniform1(int i, FloatBuffer floatBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform1(i, floatBuffer); + } + + public static void glUniform2(int i, FloatBuffer floatBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform2(i, floatBuffer); + } + + public static void glUniform3(int i, FloatBuffer floatBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform3(i, floatBuffer); + } + + public static void glUniform4(int i, FloatBuffer floatBuffer) { + assertOnRenderThread(); + GlStateManager._glUniform4(i, floatBuffer); + } + + public static void glUniformMatrix2(int i, boolean bl, FloatBuffer floatBuffer) { + assertOnRenderThread(); + GlStateManager._glUniformMatrix2(i, bl, floatBuffer); + } + + public static void glUniformMatrix3(int i, boolean bl, FloatBuffer floatBuffer) { + assertOnRenderThread(); + GlStateManager._glUniformMatrix3(i, bl, floatBuffer); + } + + public static void glUniformMatrix4(int i, boolean bl, FloatBuffer floatBuffer) { + assertOnRenderThread(); + GlStateManager._glUniformMatrix4(i, bl, floatBuffer); + } + + public static void setupOverlayColor(int i, int j) { + assertOnRenderThread(); + setShaderTexture(1, i); + } + + public static void teardownOverlayColor() { + assertOnRenderThread(); + setShaderTexture(1, 0); + } + + public static void setupLevelDiffuseLighting(Vector3f vector3f, Vector3f vector3f2) { + assertOnRenderThread(); + setShaderLights(vector3f, vector3f2); + } + + public static void setupGuiFlatDiffuseLighting(Vector3f vector3f, Vector3f vector3f2) { + assertOnRenderThread(); + GlStateManager.setupGuiFlatDiffuseLighting(vector3f, vector3f2); + } + + public static void setupGui3DDiffuseLighting(Vector3f vector3f, Vector3f vector3f2) { + assertOnRenderThread(); + GlStateManager.setupGui3DDiffuseLighting(vector3f, vector3f2); + } + + public static void beginInitialization() { + isInInit = true; + } + + public static void finishInitialization() { + isInInit = false; + if (!recordingQueue.isEmpty()) { + replayQueue(); + } + + if (!recordingQueue.isEmpty()) { + throw new IllegalStateException("Recorded to render queue during initialization"); + } + } + + public static void glGenBuffers(Consumer consumer) { + if (!isOnRenderThread()) { + recordRenderCall(() -> consumer.accept(GlStateManager._glGenBuffers())); + } else { + consumer.accept(GlStateManager._glGenBuffers()); + } + } + + public static void glGenVertexArrays(Consumer consumer) { + if (!isOnRenderThread()) { + recordRenderCall(() -> consumer.accept(GlStateManager._glGenVertexArrays())); + } else { + consumer.accept(GlStateManager._glGenVertexArrays()); + } + } + + public static Tesselator renderThreadTesselator() { + assertOnRenderThread(); + return RENDER_THREAD_TESSELATOR; + } + + public static void defaultBlendFunc() { + blendFuncSeparate( + GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO + ); + } + + @Deprecated + public static void runAsFancy(Runnable runnable) { + boolean bl = Minecraft.useShaderTransparency(); + if (!bl) { + runnable.run(); + } else { + OptionInstance optionInstance = Minecraft.getInstance().options.graphicsMode(); + GraphicsStatus graphicsStatus = optionInstance.get(); + optionInstance.set(GraphicsStatus.FANCY); + runnable.run(); + optionInstance.set(graphicsStatus); + } + } + + public static void setShader(Supplier supplier) { + if (!isOnRenderThread()) { + recordRenderCall(() -> shader = (ShaderInstance)supplier.get()); + } else { + shader = (ShaderInstance)supplier.get(); + } + } + + @Nullable + public static ShaderInstance getShader() { + assertOnRenderThread(); + return shader; + } + + public static void setShaderTexture(int i, ResourceLocation resourceLocation) { + if (!isOnRenderThread()) { + recordRenderCall(() -> _setShaderTexture(i, resourceLocation)); + } else { + _setShaderTexture(i, resourceLocation); + } + } + + public static void _setShaderTexture(int i, ResourceLocation resourceLocation) { + if (i >= 0 && i < shaderTextures.length) { + TextureManager textureManager = Minecraft.getInstance().getTextureManager(); + AbstractTexture abstractTexture = textureManager.getTexture(resourceLocation); + shaderTextures[i] = abstractTexture.getId(); + } + } + + public static void setShaderTexture(int i, int j) { + if (!isOnRenderThread()) { + recordRenderCall(() -> _setShaderTexture(i, j)); + } else { + _setShaderTexture(i, j); + } + } + + public static void _setShaderTexture(int i, int j) { + if (i >= 0 && i < shaderTextures.length) { + shaderTextures[i] = j; + } + } + + public static int getShaderTexture(int i) { + assertOnRenderThread(); + return i >= 0 && i < shaderTextures.length ? shaderTextures[i] : 0; + } + + public static void setProjectionMatrix(Matrix4f matrix4f, VertexSorting vertexSorting) { + Matrix4f matrix4f2 = new Matrix4f(matrix4f); + if (!isOnRenderThread()) { + recordRenderCall(() -> { + projectionMatrix = matrix4f2; + RenderSystem.vertexSorting = vertexSorting; + }); + } else { + projectionMatrix = matrix4f2; + RenderSystem.vertexSorting = vertexSorting; + } + } + + public static void setTextureMatrix(Matrix4f matrix4f) { + Matrix4f matrix4f2 = new Matrix4f(matrix4f); + if (!isOnRenderThread()) { + recordRenderCall(() -> textureMatrix = matrix4f2); + } else { + textureMatrix = matrix4f2; + } + } + + public static void resetTextureMatrix() { + if (!isOnRenderThread()) { + recordRenderCall(() -> textureMatrix.identity()); + } else { + textureMatrix.identity(); + } + } + + public static void applyModelViewMatrix() { + Matrix4f matrix4f = new Matrix4f(modelViewStack); + if (!isOnRenderThread()) { + recordRenderCall(() -> modelViewMatrix = matrix4f); + } else { + modelViewMatrix = matrix4f; + } + } + + public static void backupProjectionMatrix() { + if (!isOnRenderThread()) { + recordRenderCall(() -> _backupProjectionMatrix()); + } else { + _backupProjectionMatrix(); + } + } + + private static void _backupProjectionMatrix() { + savedProjectionMatrix = projectionMatrix; + savedVertexSorting = vertexSorting; + } + + public static void restoreProjectionMatrix() { + if (!isOnRenderThread()) { + recordRenderCall(() -> _restoreProjectionMatrix()); + } else { + _restoreProjectionMatrix(); + } + } + + private static void _restoreProjectionMatrix() { + projectionMatrix = savedProjectionMatrix; + vertexSorting = savedVertexSorting; + } + + public static Matrix4f getProjectionMatrix() { + assertOnRenderThread(); + return projectionMatrix; + } + + public static Matrix4f getModelViewMatrix() { + assertOnRenderThread(); + return modelViewMatrix; + } + + public static Matrix4fStack getModelViewStack() { + return modelViewStack; + } + + public static Matrix4f getTextureMatrix() { + assertOnRenderThread(); + return textureMatrix; + } + + public static RenderSystem.AutoStorageIndexBuffer getSequentialBuffer(VertexFormat.Mode mode) { + assertOnRenderThread(); + + return switch (mode) { + case QUADS -> sharedSequentialQuad; + case LINES -> sharedSequentialLines; + default -> sharedSequential; + }; + } + + public static void setShaderGameTime(long l, float f) { + float g = ((float)(l % 24000L) + f) / 24000.0F; + if (!isOnRenderThread()) { + recordRenderCall(() -> shaderGameTime = g); + } else { + shaderGameTime = g; + } + } + + public static float getShaderGameTime() { + assertOnRenderThread(); + return shaderGameTime; + } + + public static VertexSorting getVertexSorting() { + assertOnRenderThread(); + return vertexSorting; + } + + @Environment(EnvType.CLIENT) + public static final class AutoStorageIndexBuffer { + private final int vertexStride; + private final int indexStride; + private final RenderSystem.AutoStorageIndexBuffer.IndexGenerator generator; + private int name; + private VertexFormat.IndexType type = VertexFormat.IndexType.SHORT; + private int indexCount; + + AutoStorageIndexBuffer(int vertexStride, int indexStride, RenderSystem.AutoStorageIndexBuffer.IndexGenerator generator) { + this.vertexStride = vertexStride; + this.indexStride = indexStride; + this.generator = generator; + } + + public boolean hasStorage(int index) { + return index <= this.indexCount; + } + + public void bind(int index) { + if (this.name == 0) { + this.name = GlStateManager._glGenBuffers(); + } + + GlStateManager._glBindBuffer(34963, this.name); + this.ensureStorage(index); + } + + private void ensureStorage(int neededIndexCount) { + if (!this.hasStorage(neededIndexCount)) { + neededIndexCount = Mth.roundToward(neededIndexCount * 2, this.indexStride); + RenderSystem.LOGGER.debug("Growing IndexBuffer: Old limit {}, new limit {}.", this.indexCount, neededIndexCount); + int i = neededIndexCount / this.indexStride; + int j = i * this.vertexStride; + VertexFormat.IndexType indexType = VertexFormat.IndexType.least(j); + int k = Mth.roundToward(neededIndexCount * indexType.bytes, 4); + GlStateManager._glBufferData(34963, k, 35048); + ByteBuffer byteBuffer = GlStateManager._glMapBuffer(34963, 35001); + if (byteBuffer == null) { + throw new RuntimeException("Failed to map GL buffer"); + } else { + this.type = indexType; + it.unimi.dsi.fastutil.ints.IntConsumer intConsumer = this.intConsumer(byteBuffer); + + for (int l = 0; l < neededIndexCount; l += this.indexStride) { + this.generator.accept(intConsumer, l * this.vertexStride / this.indexStride); + } + + GlStateManager._glUnmapBuffer(34963); + this.indexCount = neededIndexCount; + } + } + } + + private it.unimi.dsi.fastutil.ints.IntConsumer intConsumer(ByteBuffer buffer) { + switch (this.type) { + case SHORT: + return i -> buffer.putShort((short)i); + case INT: + default: + return buffer::putInt; + } + } + + public VertexFormat.IndexType type() { + return this.type; + } + + @Environment(EnvType.CLIENT) + interface IndexGenerator { + void accept(it.unimi.dsi.fastutil.ints.IntConsumer intConsumer, int i); + } + } +} diff --git a/com/mojang/blaze3d/systems/TimerQuery.java b/com/mojang/blaze3d/systems/TimerQuery.java new file mode 100644 index 00000000..b9318717 --- /dev/null +++ b/com/mojang/blaze3d/systems/TimerQuery.java @@ -0,0 +1,96 @@ +package com.mojang.blaze3d.systems; + +import java.util.Optional; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.opengl.ARBTimerQuery; +import org.lwjgl.opengl.GL; +import org.lwjgl.opengl.GL32C; + +@Environment(EnvType.CLIENT) +public class TimerQuery { + private int nextQueryName; + + public static Optional getInstance() { + return TimerQuery.TimerQueryLazyLoader.INSTANCE; + } + + public void beginProfile() { + RenderSystem.assertOnRenderThread(); + if (this.nextQueryName != 0) { + throw new IllegalStateException("Current profile not ended"); + } else { + this.nextQueryName = GL32C.glGenQueries(); + GL32C.glBeginQuery(35007, this.nextQueryName); + } + } + + public TimerQuery.FrameProfile endProfile() { + RenderSystem.assertOnRenderThread(); + if (this.nextQueryName == 0) { + throw new IllegalStateException("endProfile called before beginProfile"); + } else { + GL32C.glEndQuery(35007); + TimerQuery.FrameProfile frameProfile = new TimerQuery.FrameProfile(this.nextQueryName); + this.nextQueryName = 0; + return frameProfile; + } + } + + @Environment(EnvType.CLIENT) + public static class FrameProfile { + private static final long NO_RESULT = 0L; + private static final long CANCELLED_RESULT = -1L; + private final int queryName; + private long result; + + FrameProfile(int queryName) { + this.queryName = queryName; + } + + public void cancel() { + RenderSystem.assertOnRenderThread(); + if (this.result == 0L) { + this.result = -1L; + GL32C.glDeleteQueries(this.queryName); + } + } + + public boolean isDone() { + RenderSystem.assertOnRenderThread(); + if (this.result != 0L) { + return true; + } else if (1 == GL32C.glGetQueryObjecti(this.queryName, 34919)) { + this.result = ARBTimerQuery.glGetQueryObjecti64(this.queryName, 34918); + GL32C.glDeleteQueries(this.queryName); + return true; + } else { + return false; + } + } + + public long get() { + RenderSystem.assertOnRenderThread(); + if (this.result == 0L) { + this.result = ARBTimerQuery.glGetQueryObjecti64(this.queryName, 34918); + GL32C.glDeleteQueries(this.queryName); + } + + return this.result; + } + } + + @Environment(EnvType.CLIENT) + static class TimerQueryLazyLoader { + static final Optional INSTANCE = Optional.ofNullable(instantiate()); + + private TimerQueryLazyLoader() { + } + + @Nullable + private static TimerQuery instantiate() { + return !GL.getCapabilities().GL_ARB_timer_query ? null : new TimerQuery(); + } + } +} diff --git a/com/mojang/blaze3d/systems/package-info.java b/com/mojang/blaze3d/systems/package-info.java new file mode 100644 index 00000000..59630ff8 --- /dev/null +++ b/com/mojang/blaze3d/systems/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.systems; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/blaze3d/vertex/BufferBuilder.java b/com/mojang/blaze3d/vertex/BufferBuilder.java new file mode 100644 index 00000000..d71d41ab --- /dev/null +++ b/com/mojang/blaze3d/vertex/BufferBuilder.java @@ -0,0 +1,268 @@ +package com.mojang.blaze3d.vertex; + +import java.nio.ByteOrder; +import java.util.stream.Collectors; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.FastColor; +import net.minecraft.util.Mth; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.system.MemoryUtil; + +@Environment(EnvType.CLIENT) +public class BufferBuilder implements VertexConsumer { + private static final long NOT_BUILDING = -1L; + private static final long UNKNOWN_ELEMENT = -1L; + private static final boolean IS_LITTLE_ENDIAN = ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN; + private final ByteBufferBuilder buffer; + private long vertexPointer = -1L; + private int vertices; + private final VertexFormat format; + private final VertexFormat.Mode mode; + private final boolean fastFormat; + private final boolean fullFormat; + private final int vertexSize; + private final int initialElementsToFill; + private final int[] offsetsByElement; + private int elementsToFill; + private boolean building = true; + + public BufferBuilder(ByteBufferBuilder buffer, VertexFormat.Mode mode, VertexFormat format) { + if (!format.contains(VertexFormatElement.POSITION)) { + throw new IllegalArgumentException("Cannot build mesh with no position element"); + } else { + this.buffer = buffer; + this.mode = mode; + this.format = format; + this.vertexSize = format.getVertexSize(); + this.initialElementsToFill = format.getElementsMask() & ~VertexFormatElement.POSITION.mask(); + this.offsetsByElement = format.getOffsetsByElement(); + boolean bl = format == DefaultVertexFormat.NEW_ENTITY; + boolean bl2 = format == DefaultVertexFormat.BLOCK; + this.fastFormat = bl || bl2; + this.fullFormat = bl; + } + } + + @Nullable + public MeshData build() { + this.ensureBuilding(); + this.endLastVertex(); + MeshData meshData = this.storeMesh(); + this.building = false; + this.vertexPointer = -1L; + return meshData; + } + + public MeshData buildOrThrow() { + MeshData meshData = this.build(); + if (meshData == null) { + throw new IllegalStateException("BufferBuilder was empty"); + } else { + return meshData; + } + } + + private void ensureBuilding() { + if (!this.building) { + throw new IllegalStateException("Not building!"); + } + } + + @Nullable + private MeshData storeMesh() { + if (this.vertices == 0) { + return null; + } else { + ByteBufferBuilder.Result result = this.buffer.build(); + if (result == null) { + return null; + } else { + int i = this.mode.indexCount(this.vertices); + VertexFormat.IndexType indexType = VertexFormat.IndexType.least(this.vertices); + return new MeshData(result, new MeshData.DrawState(this.format, this.vertices, i, this.mode, indexType)); + } + } + } + + private long beginVertex() { + this.ensureBuilding(); + this.endLastVertex(); + this.vertices++; + long l = this.buffer.reserve(this.vertexSize); + this.vertexPointer = l; + return l; + } + + private long beginElement(VertexFormatElement element) { + int i = this.elementsToFill; + int j = i & ~element.mask(); + if (j == i) { + return -1L; + } else { + this.elementsToFill = j; + long l = this.vertexPointer; + if (l == -1L) { + throw new IllegalArgumentException("Not currently building vertex"); + } else { + return l + this.offsetsByElement[element.id()]; + } + } + } + + private void endLastVertex() { + if (this.vertices != 0) { + if (this.elementsToFill != 0) { + String string = (String)VertexFormatElement.elementsFromMask(this.elementsToFill).map(this.format::getElementName).collect(Collectors.joining(", ")); + throw new IllegalStateException("Missing elements in vertex: " + string); + } else { + if (this.mode == VertexFormat.Mode.LINES || this.mode == VertexFormat.Mode.LINE_STRIP) { + long l = this.buffer.reserve(this.vertexSize); + MemoryUtil.memCopy(l - this.vertexSize, l, this.vertexSize); + this.vertices++; + } + } + } + } + + private static void putRgba(long pointer, int color) { + int i = FastColor.ABGR32.fromArgb32(color); + MemoryUtil.memPutInt(pointer, IS_LITTLE_ENDIAN ? i : Integer.reverseBytes(i)); + } + + private static void putPackedUv(long pointer, int packedUv) { + if (IS_LITTLE_ENDIAN) { + MemoryUtil.memPutInt(pointer, packedUv); + } else { + MemoryUtil.memPutShort(pointer, (short)(packedUv & 65535)); + MemoryUtil.memPutShort(pointer + 2L, (short)(packedUv >> 16 & 65535)); + } + } + + @Override + public VertexConsumer addVertex(float x, float y, float z) { + long l = this.beginVertex() + this.offsetsByElement[VertexFormatElement.POSITION.id()]; + this.elementsToFill = this.initialElementsToFill; + MemoryUtil.memPutFloat(l, x); + MemoryUtil.memPutFloat(l + 4L, y); + MemoryUtil.memPutFloat(l + 8L, z); + return this; + } + + @Override + public VertexConsumer setColor(int red, int green, int blue, int alpha) { + long l = this.beginElement(VertexFormatElement.COLOR); + if (l != -1L) { + MemoryUtil.memPutByte(l, (byte)red); + MemoryUtil.memPutByte(l + 1L, (byte)green); + MemoryUtil.memPutByte(l + 2L, (byte)blue); + MemoryUtil.memPutByte(l + 3L, (byte)alpha); + } + + return this; + } + + @Override + public VertexConsumer setColor(int color) { + long l = this.beginElement(VertexFormatElement.COLOR); + if (l != -1L) { + putRgba(l, color); + } + + return this; + } + + @Override + public VertexConsumer setUv(float u, float v) { + long l = this.beginElement(VertexFormatElement.UV0); + if (l != -1L) { + MemoryUtil.memPutFloat(l, u); + MemoryUtil.memPutFloat(l + 4L, v); + } + + return this; + } + + @Override + public VertexConsumer setUv1(int u, int v) { + return this.uvShort((short)u, (short)v, VertexFormatElement.UV1); + } + + @Override + public VertexConsumer setOverlay(int packedOverlay) { + long l = this.beginElement(VertexFormatElement.UV1); + if (l != -1L) { + putPackedUv(l, packedOverlay); + } + + return this; + } + + @Override + public VertexConsumer setUv2(int u, int v) { + return this.uvShort((short)u, (short)v, VertexFormatElement.UV2); + } + + @Override + public VertexConsumer setLight(int packedLight) { + long l = this.beginElement(VertexFormatElement.UV2); + if (l != -1L) { + putPackedUv(l, packedLight); + } + + return this; + } + + private VertexConsumer uvShort(short u, short v, VertexFormatElement element) { + long l = this.beginElement(element); + if (l != -1L) { + MemoryUtil.memPutShort(l, u); + MemoryUtil.memPutShort(l + 2L, v); + } + + return this; + } + + @Override + public VertexConsumer setNormal(float normalX, float normalY, float normalZ) { + long l = this.beginElement(VertexFormatElement.NORMAL); + if (l != -1L) { + MemoryUtil.memPutByte(l, normalIntValue(normalX)); + MemoryUtil.memPutByte(l + 1L, normalIntValue(normalY)); + MemoryUtil.memPutByte(l + 2L, normalIntValue(normalZ)); + } + + return this; + } + + private static byte normalIntValue(float value) { + return (byte)((int)(Mth.clamp(value, -1.0F, 1.0F) * 127.0F) & 0xFF); + } + + @Override + public void addVertex(float x, float y, float z, int color, float u, float v, int packedOverlay, int packedLight, float normalX, float normalY, float normalZ) { + if (this.fastFormat) { + long l = this.beginVertex(); + MemoryUtil.memPutFloat(l + 0L, x); + MemoryUtil.memPutFloat(l + 4L, y); + MemoryUtil.memPutFloat(l + 8L, z); + putRgba(l + 12L, color); + MemoryUtil.memPutFloat(l + 16L, u); + MemoryUtil.memPutFloat(l + 20L, v); + long m; + if (this.fullFormat) { + putPackedUv(l + 24L, packedOverlay); + m = l + 28L; + } else { + m = l + 24L; + } + + putPackedUv(m + 0L, packedLight); + MemoryUtil.memPutByte(m + 4L, normalIntValue(normalX)); + MemoryUtil.memPutByte(m + 5L, normalIntValue(normalY)); + MemoryUtil.memPutByte(m + 6L, normalIntValue(normalZ)); + } else { + VertexConsumer.super.addVertex(x, y, z, color, u, v, packedOverlay, packedLight, normalX, normalY, normalZ); + } + } +} diff --git a/com/mojang/blaze3d/vertex/BufferUploader.java b/com/mojang/blaze3d/vertex/BufferUploader.java new file mode 100644 index 00000000..2acf2b9b --- /dev/null +++ b/com/mojang/blaze3d/vertex/BufferUploader.java @@ -0,0 +1,61 @@ +package com.mojang.blaze3d.vertex; + +import com.mojang.blaze3d.systems.RenderSystem; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class BufferUploader { + @Nullable + private static VertexBuffer lastImmediateBuffer; + + public static void reset() { + if (lastImmediateBuffer != null) { + invalidate(); + VertexBuffer.unbind(); + } + } + + public static void invalidate() { + lastImmediateBuffer = null; + } + + public static void drawWithShader(MeshData meshData) { + if (!RenderSystem.isOnRenderThreadOrInit()) { + RenderSystem.recordRenderCall(() -> _drawWithShader(meshData)); + } else { + _drawWithShader(meshData); + } + } + + private static void _drawWithShader(MeshData meshData) { + VertexBuffer vertexBuffer = upload(meshData); + vertexBuffer.drawWithShader(RenderSystem.getModelViewMatrix(), RenderSystem.getProjectionMatrix(), RenderSystem.getShader()); + } + + public static void draw(MeshData meshData) { + VertexBuffer vertexBuffer = upload(meshData); + vertexBuffer.draw(); + } + + private static VertexBuffer upload(MeshData meshData) { + RenderSystem.assertOnRenderThread(); + VertexBuffer vertexBuffer = bindImmediateBuffer(meshData.drawState().format()); + vertexBuffer.upload(meshData); + return vertexBuffer; + } + + private static VertexBuffer bindImmediateBuffer(VertexFormat format) { + VertexBuffer vertexBuffer = format.getImmediateDrawVertexBuffer(); + bindImmediateBuffer(vertexBuffer); + return vertexBuffer; + } + + private static void bindImmediateBuffer(VertexBuffer buffer) { + if (buffer != lastImmediateBuffer) { + buffer.bind(); + lastImmediateBuffer = buffer; + } + } +} diff --git a/com/mojang/blaze3d/vertex/ByteBufferBuilder.java b/com/mojang/blaze3d/vertex/ByteBufferBuilder.java new file mode 100644 index 00000000..98151aff --- /dev/null +++ b/com/mojang/blaze3d/vertex/ByteBufferBuilder.java @@ -0,0 +1,154 @@ +package com.mojang.blaze3d.vertex; + +import com.mojang.logging.LogUtils; +import java.nio.ByteBuffer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.system.MemoryUtil; +import org.lwjgl.system.MemoryUtil.MemoryAllocator; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class ByteBufferBuilder implements AutoCloseable { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final MemoryAllocator ALLOCATOR = MemoryUtil.getAllocator(false); + private static final int MAX_GROWTH_SIZE = 2097152; + private static final int BUFFER_FREED_GENERATION = -1; + long pointer; + private int capacity; + private int writeOffset; + private int nextResultOffset; + private int resultCount; + private int generation; + + public ByteBufferBuilder(int capacity) { + this.capacity = capacity; + this.pointer = ALLOCATOR.malloc(capacity); + if (this.pointer == 0L) { + throw new OutOfMemoryError("Failed to allocate " + capacity + " bytes"); + } + } + + public long reserve(int bytes) { + int i = this.writeOffset; + int j = i + bytes; + this.ensureCapacity(j); + this.writeOffset = j; + return this.pointer + i; + } + + private void ensureCapacity(int size) { + if (size > this.capacity) { + int i = Math.min(this.capacity, 2097152); + int j = Math.max(this.capacity + i, size); + this.resize(j); + } + } + + private void resize(int newSize) { + this.pointer = ALLOCATOR.realloc(this.pointer, newSize); + LOGGER.debug("Needed to grow BufferBuilder buffer: Old size {} bytes, new size {} bytes.", this.capacity, newSize); + if (this.pointer == 0L) { + throw new OutOfMemoryError("Failed to resize buffer from " + this.capacity + " bytes to " + newSize + " bytes"); + } else { + this.capacity = newSize; + } + } + + @Nullable + public ByteBufferBuilder.Result build() { + this.checkOpen(); + int i = this.nextResultOffset; + int j = this.writeOffset - i; + if (j == 0) { + return null; + } else { + this.nextResultOffset = this.writeOffset; + this.resultCount++; + return new ByteBufferBuilder.Result(i, j, this.generation); + } + } + + public void clear() { + if (this.resultCount > 0) { + LOGGER.warn("Clearing BufferBuilder with unused batches"); + } + + this.discard(); + } + + public void discard() { + this.checkOpen(); + if (this.resultCount > 0) { + this.discardResults(); + this.resultCount = 0; + } + } + + boolean isValid(int generation) { + return generation == this.generation; + } + + void freeResult() { + if (--this.resultCount <= 0) { + this.discardResults(); + } + } + + private void discardResults() { + int i = this.writeOffset - this.nextResultOffset; + if (i > 0) { + MemoryUtil.memCopy(this.pointer + this.nextResultOffset, this.pointer, i); + } + + this.writeOffset = i; + this.nextResultOffset = 0; + this.generation++; + } + + public void close() { + if (this.pointer != 0L) { + ALLOCATOR.free(this.pointer); + this.pointer = 0L; + this.generation = -1; + } + } + + private void checkOpen() { + if (this.pointer == 0L) { + throw new IllegalStateException("Buffer has been freed"); + } + } + + @Environment(EnvType.CLIENT) + public class Result implements AutoCloseable { + private final int offset; + private final int capacity; + private final int generation; + private boolean closed; + + Result(final int offset, final int capacity, final int generation) { + this.offset = offset; + this.capacity = capacity; + this.generation = generation; + } + + public ByteBuffer byteBuffer() { + if (!ByteBufferBuilder.this.isValid(this.generation)) { + throw new IllegalStateException("Buffer is no longer valid"); + } else { + return MemoryUtil.memByteBuffer(ByteBufferBuilder.this.pointer + this.offset, this.capacity); + } + } + + public void close() { + if (!this.closed) { + this.closed = true; + if (ByteBufferBuilder.this.isValid(this.generation)) { + ByteBufferBuilder.this.freeResult(); + } + } + } + } +} diff --git a/com/mojang/blaze3d/vertex/DefaultVertexFormat.java b/com/mojang/blaze3d/vertex/DefaultVertexFormat.java new file mode 100644 index 00000000..56d4a443 --- /dev/null +++ b/com/mojang/blaze3d/vertex/DefaultVertexFormat.java @@ -0,0 +1,76 @@ +package com.mojang.blaze3d.vertex; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class DefaultVertexFormat { + public static final VertexFormat BLIT_SCREEN = VertexFormat.builder().add("Position", VertexFormatElement.POSITION).build(); + public static final VertexFormat BLOCK = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("Color", VertexFormatElement.COLOR) + .add("UV0", VertexFormatElement.UV0) + .add("UV2", VertexFormatElement.UV2) + .add("Normal", VertexFormatElement.NORMAL) + .padding(1) + .build(); + public static final VertexFormat NEW_ENTITY = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("Color", VertexFormatElement.COLOR) + .add("UV0", VertexFormatElement.UV0) + .add("UV1", VertexFormatElement.UV1) + .add("UV2", VertexFormatElement.UV2) + .add("Normal", VertexFormatElement.NORMAL) + .padding(1) + .build(); + public static final VertexFormat PARTICLE = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("UV0", VertexFormatElement.UV0) + .add("Color", VertexFormatElement.COLOR) + .add("UV2", VertexFormatElement.UV2) + .build(); + public static final VertexFormat POSITION = VertexFormat.builder().add("Position", VertexFormatElement.POSITION).build(); + public static final VertexFormat POSITION_COLOR = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("Color", VertexFormatElement.COLOR) + .build(); + public static final VertexFormat POSITION_COLOR_NORMAL = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("Color", VertexFormatElement.COLOR) + .add("Normal", VertexFormatElement.NORMAL) + .padding(1) + .build(); + public static final VertexFormat POSITION_COLOR_LIGHTMAP = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("Color", VertexFormatElement.COLOR) + .add("UV2", VertexFormatElement.UV2) + .build(); + public static final VertexFormat POSITION_TEX = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("UV0", VertexFormatElement.UV0) + .build(); + public static final VertexFormat POSITION_TEX_COLOR = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("UV0", VertexFormatElement.UV0) + .add("Color", VertexFormatElement.COLOR) + .build(); + public static final VertexFormat POSITION_COLOR_TEX_LIGHTMAP = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("Color", VertexFormatElement.COLOR) + .add("UV0", VertexFormatElement.UV0) + .add("UV2", VertexFormatElement.UV2) + .build(); + public static final VertexFormat POSITION_TEX_LIGHTMAP_COLOR = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("UV0", VertexFormatElement.UV0) + .add("UV2", VertexFormatElement.UV2) + .add("Color", VertexFormatElement.COLOR) + .build(); + public static final VertexFormat POSITION_TEX_COLOR_NORMAL = VertexFormat.builder() + .add("Position", VertexFormatElement.POSITION) + .add("UV0", VertexFormatElement.UV0) + .add("Color", VertexFormatElement.COLOR) + .add("Normal", VertexFormatElement.NORMAL) + .padding(1) + .build(); +} diff --git a/com/mojang/blaze3d/vertex/MeshData.java b/com/mojang/blaze3d/vertex/MeshData.java new file mode 100644 index 00000000..e0aa99e1 --- /dev/null +++ b/com/mojang/blaze3d/vertex/MeshData.java @@ -0,0 +1,117 @@ +package com.mojang.blaze3d.vertex; + +import it.unimi.dsi.fastutil.ints.IntConsumer; +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.apache.commons.lang3.mutable.MutableLong; +import org.jetbrains.annotations.Nullable; +import org.joml.Vector3f; +import org.lwjgl.system.MemoryUtil; + +@Environment(EnvType.CLIENT) +public class MeshData implements AutoCloseable { + private final ByteBufferBuilder.Result vertexBuffer; + @Nullable + private ByteBufferBuilder.Result indexBuffer; + private final MeshData.DrawState drawState; + + public MeshData(ByteBufferBuilder.Result vertexBuffer, MeshData.DrawState drawState) { + this.vertexBuffer = vertexBuffer; + this.drawState = drawState; + } + + private static Vector3f[] unpackQuadCentroids(ByteBuffer byteBuffer, int vertexCount, VertexFormat format) { + int i = format.getOffset(VertexFormatElement.POSITION); + if (i == -1) { + throw new IllegalArgumentException("Cannot identify quad centers with no position element"); + } else { + FloatBuffer floatBuffer = byteBuffer.asFloatBuffer(); + int j = format.getVertexSize() / 4; + int k = j * 4; + int l = vertexCount / 4; + Vector3f[] vector3fs = new Vector3f[l]; + + for (int m = 0; m < l; m++) { + int n = m * k + i; + int o = n + j * 2; + float f = floatBuffer.get(n + 0); + float g = floatBuffer.get(n + 1); + float h = floatBuffer.get(n + 2); + float p = floatBuffer.get(o + 0); + float q = floatBuffer.get(o + 1); + float r = floatBuffer.get(o + 2); + vector3fs[m] = new Vector3f((f + p) / 2.0F, (g + q) / 2.0F, (h + r) / 2.0F); + } + + return vector3fs; + } + } + + public ByteBuffer vertexBuffer() { + return this.vertexBuffer.byteBuffer(); + } + + @Nullable + public ByteBuffer indexBuffer() { + return this.indexBuffer != null ? this.indexBuffer.byteBuffer() : null; + } + + public MeshData.DrawState drawState() { + return this.drawState; + } + + @Nullable + public MeshData.SortState sortQuads(ByteBufferBuilder bufferBuilder, VertexSorting sorting) { + if (this.drawState.mode() != VertexFormat.Mode.QUADS) { + return null; + } else { + Vector3f[] vector3fs = unpackQuadCentroids(this.vertexBuffer.byteBuffer(), this.drawState.vertexCount(), this.drawState.format()); + MeshData.SortState sortState = new MeshData.SortState(vector3fs, this.drawState.indexType()); + this.indexBuffer = sortState.buildSortedIndexBuffer(bufferBuilder, sorting); + return sortState; + } + } + + public void close() { + this.vertexBuffer.close(); + if (this.indexBuffer != null) { + this.indexBuffer.close(); + } + } + + @Environment(EnvType.CLIENT) + public record DrawState(VertexFormat format, int vertexCount, int indexCount, VertexFormat.Mode mode, VertexFormat.IndexType indexType) { + } + + @Environment(EnvType.CLIENT) + public record SortState(Vector3f[] centroids, VertexFormat.IndexType indexType) { + @Nullable + public ByteBufferBuilder.Result buildSortedIndexBuffer(ByteBufferBuilder bufferBuilder, VertexSorting sorting) { + int[] is = sorting.sort(this.centroids); + long l = bufferBuilder.reserve(is.length * 6 * this.indexType.bytes); + IntConsumer intConsumer = this.indexWriter(l, this.indexType); + + for (int i : is) { + intConsumer.accept(i * 4 + 0); + intConsumer.accept(i * 4 + 1); + intConsumer.accept(i * 4 + 2); + intConsumer.accept(i * 4 + 2); + intConsumer.accept(i * 4 + 3); + intConsumer.accept(i * 4 + 0); + } + + return bufferBuilder.build(); + } + + private IntConsumer indexWriter(long index, VertexFormat.IndexType type) { + MutableLong mutableLong = new MutableLong(index); + + return switch (type) { + case SHORT -> i -> MemoryUtil.memPutShort(mutableLong.getAndAdd(2L), (short)i); + case INT -> i -> MemoryUtil.memPutInt(mutableLong.getAndAdd(4L), i); + }; + } + } +} diff --git a/com/mojang/blaze3d/vertex/PoseStack.java b/com/mojang/blaze3d/vertex/PoseStack.java new file mode 100644 index 00000000..dfea5aa6 --- /dev/null +++ b/com/mojang/blaze3d/vertex/PoseStack.java @@ -0,0 +1,134 @@ +package com.mojang.blaze3d.vertex; + +import com.google.common.collect.Queues; +import com.mojang.math.MatrixUtil; +import java.util.Deque; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import org.joml.Matrix3f; +import org.joml.Matrix4f; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +@Environment(EnvType.CLIENT) +public class PoseStack { + private final Deque poseStack = Util.make(Queues.newArrayDeque(), arrayDeque -> { + Matrix4f matrix4f = new Matrix4f(); + Matrix3f matrix3f = new Matrix3f(); + arrayDeque.add(new PoseStack.Pose(matrix4f, matrix3f)); + }); + + public void translate(double x, double y, double z) { + this.translate((float)x, (float)y, (float)z); + } + + public void translate(float x, float y, float z) { + PoseStack.Pose pose = (PoseStack.Pose)this.poseStack.getLast(); + pose.pose.translate(x, y, z); + } + + public void scale(float x, float y, float z) { + PoseStack.Pose pose = (PoseStack.Pose)this.poseStack.getLast(); + pose.pose.scale(x, y, z); + if (Math.abs(x) == Math.abs(y) && Math.abs(y) == Math.abs(z)) { + if (x < 0.0F || y < 0.0F || z < 0.0F) { + pose.normal.scale(Math.signum(x), Math.signum(y), Math.signum(z)); + } + } else { + pose.normal.scale(1.0F / x, 1.0F / y, 1.0F / z); + pose.trustedNormals = false; + } + } + + public void mulPose(Quaternionf quaternion) { + PoseStack.Pose pose = (PoseStack.Pose)this.poseStack.getLast(); + pose.pose.rotate(quaternion); + pose.normal.rotate(quaternion); + } + + public void rotateAround(Quaternionf quaternion, float x, float y, float z) { + PoseStack.Pose pose = (PoseStack.Pose)this.poseStack.getLast(); + pose.pose.rotateAround(quaternion, x, y, z); + pose.normal.rotate(quaternion); + } + + public void pushPose() { + this.poseStack.addLast(new PoseStack.Pose((PoseStack.Pose)this.poseStack.getLast())); + } + + public void popPose() { + this.poseStack.removeLast(); + } + + public PoseStack.Pose last() { + return (PoseStack.Pose)this.poseStack.getLast(); + } + + public boolean clear() { + return this.poseStack.size() == 1; + } + + public void setIdentity() { + PoseStack.Pose pose = (PoseStack.Pose)this.poseStack.getLast(); + pose.pose.identity(); + pose.normal.identity(); + pose.trustedNormals = true; + } + + public void mulPose(Matrix4f pose) { + PoseStack.Pose pose2 = (PoseStack.Pose)this.poseStack.getLast(); + pose2.pose.mul(pose); + if (!MatrixUtil.isPureTranslation(pose)) { + if (MatrixUtil.isOrthonormal(pose)) { + pose2.normal.mul(new Matrix3f(pose)); + } else { + pose2.computeNormalMatrix(); + } + } + } + + @Environment(EnvType.CLIENT) + public static final class Pose { + final Matrix4f pose; + final Matrix3f normal; + boolean trustedNormals = true; + + Pose(Matrix4f pose, Matrix3f normal) { + this.pose = pose; + this.normal = normal; + } + + Pose(PoseStack.Pose pose) { + this.pose = new Matrix4f(pose.pose); + this.normal = new Matrix3f(pose.normal); + this.trustedNormals = pose.trustedNormals; + } + + void computeNormalMatrix() { + this.normal.set(this.pose).invert().transpose(); + this.trustedNormals = false; + } + + public Matrix4f pose() { + return this.pose; + } + + public Matrix3f normal() { + return this.normal; + } + + public Vector3f transformNormal(Vector3f vector, Vector3f destination) { + return this.transformNormal(vector.x, vector.y, vector.z, destination); + } + + public Vector3f transformNormal(float x, float y, float z, Vector3f destination) { + Vector3f vector3f = this.normal.transform(x, y, z, destination); + return this.trustedNormals ? vector3f : vector3f.normalize(); + } + + public PoseStack.Pose copy() { + return new PoseStack.Pose(this); + } + } +} diff --git a/com/mojang/blaze3d/vertex/SheetedDecalTextureGenerator.java b/com/mojang/blaze3d/vertex/SheetedDecalTextureGenerator.java new file mode 100644 index 00000000..21c8714c --- /dev/null +++ b/com/mojang/blaze3d/vertex/SheetedDecalTextureGenerator.java @@ -0,0 +1,73 @@ +package com.mojang.blaze3d.vertex; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.core.Direction; +import org.joml.Matrix3f; +import org.joml.Matrix4f; +import org.joml.Vector3f; + +@Environment(EnvType.CLIENT) +public class SheetedDecalTextureGenerator implements VertexConsumer { + private final VertexConsumer delegate; + private final Matrix4f cameraInversePose; + private final Matrix3f normalInversePose; + private final float textureScale; + private final Vector3f worldPos = new Vector3f(); + private final Vector3f normal = new Vector3f(); + private float x; + private float y; + private float z; + + public SheetedDecalTextureGenerator(VertexConsumer delegate, PoseStack.Pose pose, float textureScale) { + this.delegate = delegate; + this.cameraInversePose = new Matrix4f(pose.pose()).invert(); + this.normalInversePose = new Matrix3f(pose.normal()).invert(); + this.textureScale = textureScale; + } + + @Override + public VertexConsumer addVertex(float x, float y, float z) { + this.x = x; + this.y = y; + this.z = z; + this.delegate.addVertex(x, y, z); + return this; + } + + @Override + public VertexConsumer setColor(int red, int green, int blue, int alpha) { + this.delegate.setColor(-1); + return this; + } + + @Override + public VertexConsumer setUv(float u, float v) { + return this; + } + + @Override + public VertexConsumer setUv1(int u, int v) { + this.delegate.setUv1(u, v); + return this; + } + + @Override + public VertexConsumer setUv2(int u, int v) { + this.delegate.setUv2(u, v); + return this; + } + + @Override + public VertexConsumer setNormal(float normalX, float normalY, float normalZ) { + this.delegate.setNormal(normalX, normalY, normalZ); + Vector3f vector3f = this.normalInversePose.transform(normalX, normalY, normalZ, this.normal); + Direction direction = Direction.getNearest(vector3f.x(), vector3f.y(), vector3f.z()); + Vector3f vector3f2 = this.cameraInversePose.transformPosition(this.x, this.y, this.z, this.worldPos); + vector3f2.rotateY((float) Math.PI); + vector3f2.rotateX((float) (-Math.PI / 2)); + vector3f2.rotate(direction.getRotation()); + this.delegate.setUv(-vector3f2.x() * this.textureScale, -vector3f2.y() * this.textureScale); + return this; + } +} diff --git a/com/mojang/blaze3d/vertex/Tesselator.java b/com/mojang/blaze3d/vertex/Tesselator.java new file mode 100644 index 00000000..a3171c37 --- /dev/null +++ b/com/mojang/blaze3d/vertex/Tesselator.java @@ -0,0 +1,45 @@ +package com.mojang.blaze3d.vertex; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class Tesselator { + private static final int MAX_BYTES = 786432; + private final ByteBufferBuilder buffer; + @Nullable + private static Tesselator instance; + + public static void init() { + if (instance != null) { + throw new IllegalStateException("Tesselator has already been initialized"); + } else { + instance = new Tesselator(); + } + } + + public static Tesselator getInstance() { + if (instance == null) { + throw new IllegalStateException("Tesselator has not been initialized"); + } else { + return instance; + } + } + + public Tesselator(int capacity) { + this.buffer = new ByteBufferBuilder(capacity); + } + + public Tesselator() { + this(786432); + } + + public BufferBuilder begin(VertexFormat.Mode mode, VertexFormat format) { + return new BufferBuilder(this.buffer, mode, format); + } + + public void clear() { + this.buffer.clear(); + } +} diff --git a/com/mojang/blaze3d/vertex/VertexBuffer.java b/com/mojang/blaze3d/vertex/VertexBuffer.java new file mode 100644 index 00000000..1ed3a4cb --- /dev/null +++ b/com/mojang/blaze3d/vertex/VertexBuffer.java @@ -0,0 +1,221 @@ +package com.mojang.blaze3d.vertex; + +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.systems.RenderSystem; +import java.nio.ByteBuffer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ShaderInstance; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; + +@Environment(EnvType.CLIENT) +public class VertexBuffer implements AutoCloseable { + private final VertexBuffer.Usage usage; + private int vertexBufferId; + private int indexBufferId; + private int arrayObjectId; + @Nullable + private VertexFormat format; + @Nullable + private RenderSystem.AutoStorageIndexBuffer sequentialIndices; + private VertexFormat.IndexType indexType; + private int indexCount; + private VertexFormat.Mode mode; + + public VertexBuffer(VertexBuffer.Usage usage) { + this.usage = usage; + RenderSystem.assertOnRenderThread(); + this.vertexBufferId = GlStateManager._glGenBuffers(); + this.indexBufferId = GlStateManager._glGenBuffers(); + this.arrayObjectId = GlStateManager._glGenVertexArrays(); + } + + public void upload(MeshData meshData) { + MeshData var2 = meshData; + + label40: { + try { + if (this.isInvalid()) { + break label40; + } + + RenderSystem.assertOnRenderThread(); + MeshData.DrawState drawState = meshData.drawState(); + this.format = this.uploadVertexBuffer(drawState, meshData.vertexBuffer()); + this.sequentialIndices = this.uploadIndexBuffer(drawState, meshData.indexBuffer()); + this.indexCount = drawState.indexCount(); + this.indexType = drawState.indexType(); + this.mode = drawState.mode(); + } catch (Throwable var6) { + if (meshData != null) { + try { + var2.close(); + } catch (Throwable var5) { + var6.addSuppressed(var5); + } + } + + throw var6; + } + + if (meshData != null) { + meshData.close(); + } + + return; + } + + if (meshData != null) { + meshData.close(); + } + } + + public void uploadIndexBuffer(ByteBufferBuilder.Result result) { + ByteBufferBuilder.Result var2 = result; + + label40: { + try { + if (this.isInvalid()) { + break label40; + } + + RenderSystem.assertOnRenderThread(); + GlStateManager._glBindBuffer(34963, this.indexBufferId); + RenderSystem.glBufferData(34963, result.byteBuffer(), this.usage.id); + this.sequentialIndices = null; + } catch (Throwable var6) { + if (result != null) { + try { + var2.close(); + } catch (Throwable var5) { + var6.addSuppressed(var5); + } + } + + throw var6; + } + + if (result != null) { + result.close(); + } + + return; + } + + if (result != null) { + result.close(); + } + } + + private VertexFormat uploadVertexBuffer(MeshData.DrawState drawState, @Nullable ByteBuffer buffer) { + boolean bl = false; + if (!drawState.format().equals(this.format)) { + if (this.format != null) { + this.format.clearBufferState(); + } + + GlStateManager._glBindBuffer(34962, this.vertexBufferId); + drawState.format().setupBufferState(); + bl = true; + } + + if (buffer != null) { + if (!bl) { + GlStateManager._glBindBuffer(34962, this.vertexBufferId); + } + + RenderSystem.glBufferData(34962, buffer, this.usage.id); + } + + return drawState.format(); + } + + @Nullable + private RenderSystem.AutoStorageIndexBuffer uploadIndexBuffer(MeshData.DrawState drawState, @Nullable ByteBuffer buffer) { + if (buffer != null) { + GlStateManager._glBindBuffer(34963, this.indexBufferId); + RenderSystem.glBufferData(34963, buffer, this.usage.id); + return null; + } else { + RenderSystem.AutoStorageIndexBuffer autoStorageIndexBuffer = RenderSystem.getSequentialBuffer(drawState.mode()); + if (autoStorageIndexBuffer != this.sequentialIndices || !autoStorageIndexBuffer.hasStorage(drawState.indexCount())) { + autoStorageIndexBuffer.bind(drawState.indexCount()); + } + + return autoStorageIndexBuffer; + } + } + + public void bind() { + BufferUploader.invalidate(); + GlStateManager._glBindVertexArray(this.arrayObjectId); + } + + public static void unbind() { + BufferUploader.invalidate(); + GlStateManager._glBindVertexArray(0); + } + + public void draw() { + RenderSystem.drawElements(this.mode.asGLMode, this.indexCount, this.getIndexType().asGLType); + } + + private VertexFormat.IndexType getIndexType() { + RenderSystem.AutoStorageIndexBuffer autoStorageIndexBuffer = this.sequentialIndices; + return autoStorageIndexBuffer != null ? autoStorageIndexBuffer.type() : this.indexType; + } + + public void drawWithShader(Matrix4f modelViewMatrix, Matrix4f projectionMatrix, ShaderInstance shader) { + if (!RenderSystem.isOnRenderThread()) { + RenderSystem.recordRenderCall(() -> this._drawWithShader(new Matrix4f(modelViewMatrix), new Matrix4f(projectionMatrix), shader)); + } else { + this._drawWithShader(modelViewMatrix, projectionMatrix, shader); + } + } + + private void _drawWithShader(Matrix4f modelViewMatrix, Matrix4f projectionMatrix, ShaderInstance shader) { + shader.setDefaultUniforms(this.mode, modelViewMatrix, projectionMatrix, Minecraft.getInstance().getWindow()); + shader.apply(); + this.draw(); + shader.clear(); + } + + public void close() { + if (this.vertexBufferId >= 0) { + RenderSystem.glDeleteBuffers(this.vertexBufferId); + this.vertexBufferId = -1; + } + + if (this.indexBufferId >= 0) { + RenderSystem.glDeleteBuffers(this.indexBufferId); + this.indexBufferId = -1; + } + + if (this.arrayObjectId >= 0) { + RenderSystem.glDeleteVertexArrays(this.arrayObjectId); + this.arrayObjectId = -1; + } + } + + public VertexFormat getFormat() { + return this.format; + } + + public boolean isInvalid() { + return this.arrayObjectId == -1; + } + + @Environment(EnvType.CLIENT) + public static enum Usage { + STATIC(35044), + DYNAMIC(35048); + + final int id; + + private Usage(final int id) { + this.id = id; + } + } +} diff --git a/com/mojang/blaze3d/vertex/VertexConsumer.java b/com/mojang/blaze3d/vertex/VertexConsumer.java new file mode 100644 index 00000000..526b6ee1 --- /dev/null +++ b/com/mojang/blaze3d/vertex/VertexConsumer.java @@ -0,0 +1,149 @@ +package com.mojang.blaze3d.vertex; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.core.Vec3i; +import net.minecraft.util.FastColor; +import org.joml.Matrix4f; +import org.joml.Vector3f; +import org.lwjgl.system.MemoryStack; + +@Environment(EnvType.CLIENT) +public interface VertexConsumer { + VertexConsumer addVertex(float x, float y, float z); + + VertexConsumer setColor(int red, int green, int blue, int alpha); + + VertexConsumer setUv(float u, float v); + + VertexConsumer setUv1(int u, int v); + + VertexConsumer setUv2(int u, int v); + + VertexConsumer setNormal(float normalX, float normalY, float normalZ); + + default void addVertex(float x, float y, float z, int color, float u, float v, int packedOverlay, int packedLight, float normalX, float normalY, float normalZ) { + this.addVertex(x, y, z); + this.setColor(color); + this.setUv(u, v); + this.setOverlay(packedOverlay); + this.setLight(packedLight); + this.setNormal(normalX, normalY, normalZ); + } + + default VertexConsumer setColor(float red, float green, float blue, float alpha) { + return this.setColor((int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F)); + } + + default VertexConsumer setColor(int color) { + return this.setColor(FastColor.ARGB32.red(color), FastColor.ARGB32.green(color), FastColor.ARGB32.blue(color), FastColor.ARGB32.alpha(color)); + } + + default VertexConsumer setWhiteAlpha(int alpha) { + return this.setColor(FastColor.ARGB32.color(alpha, -1)); + } + + default VertexConsumer setLight(int packedLight) { + return this.setUv2(packedLight & 65535, packedLight >> 16 & 65535); + } + + default VertexConsumer setOverlay(int packedOverlay) { + return this.setUv1(packedOverlay & 65535, packedOverlay >> 16 & 65535); + } + + default void putBulkData(PoseStack.Pose pose, BakedQuad quad, float red, float green, float blue, float alpha, int packedLight, int packedOverlay) { + this.putBulkData( + pose, + quad, + new float[]{1.0F, 1.0F, 1.0F, 1.0F}, + red, + green, + blue, + alpha, + new int[]{packedLight, packedLight, packedLight, packedLight}, + packedOverlay, + false + ); + } + + default void putBulkData( + PoseStack.Pose pose, + BakedQuad quad, + float[] brightness, + float red, + float green, + float blue, + float alpha, + int[] lightmap, + int packedOverlay, + boolean readAlpha + ) { + int[] is = quad.getVertices(); + Vec3i vec3i = quad.getDirection().getNormal(); + Matrix4f matrix4f = pose.pose(); + Vector3f vector3f = pose.transformNormal(vec3i.getX(), vec3i.getY(), vec3i.getZ(), new Vector3f()); + int i = 8; + int j = is.length / 8; + int k = (int)(alpha * 255.0F); + + try (MemoryStack memoryStack = MemoryStack.stackPush()) { + ByteBuffer byteBuffer = memoryStack.malloc(DefaultVertexFormat.BLOCK.getVertexSize()); + IntBuffer intBuffer = byteBuffer.asIntBuffer(); + + for (int l = 0; l < j; l++) { + intBuffer.clear(); + intBuffer.put(is, l * 8, 8); + float f = byteBuffer.getFloat(0); + float g = byteBuffer.getFloat(4); + float h = byteBuffer.getFloat(8); + float p; + float q; + float r; + if (readAlpha) { + float m = byteBuffer.get(12) & 255; + float n = byteBuffer.get(13) & 255; + float o = byteBuffer.get(14) & 255; + p = m * brightness[l] * red; + q = n * brightness[l] * green; + r = o * brightness[l] * blue; + } else { + p = brightness[l] * red * 255.0F; + q = brightness[l] * green * 255.0F; + r = brightness[l] * blue * 255.0F; + } + + int s = FastColor.ARGB32.color(k, (int)p, (int)q, (int)r); + int t = lightmap[l]; + float o = byteBuffer.getFloat(16); + float u = byteBuffer.getFloat(20); + Vector3f vector3f2 = matrix4f.transformPosition(f, g, h, new Vector3f()); + this.addVertex(vector3f2.x(), vector3f2.y(), vector3f2.z(), s, o, u, packedOverlay, t, vector3f.x(), vector3f.y(), vector3f.z()); + } + } + } + + default VertexConsumer addVertex(Vector3f pos) { + return this.addVertex(pos.x(), pos.y(), pos.z()); + } + + default VertexConsumer addVertex(PoseStack.Pose pose, Vector3f pos) { + return this.addVertex(pose, pos.x(), pos.y(), pos.z()); + } + + default VertexConsumer addVertex(PoseStack.Pose pose, float x, float y, float z) { + return this.addVertex(pose.pose(), x, y, z); + } + + default VertexConsumer addVertex(Matrix4f pose, float x, float y, float z) { + Vector3f vector3f = pose.transformPosition(x, y, z, new Vector3f()); + return this.addVertex(vector3f.x(), vector3f.y(), vector3f.z()); + } + + default VertexConsumer setNormal(PoseStack.Pose pose, float normalX, float normalY, float normalZ) { + Vector3f vector3f = pose.transformNormal(normalX, normalY, normalZ, new Vector3f()); + return this.setNormal(vector3f.x(), vector3f.y(), vector3f.z()); + } +} diff --git a/com/mojang/blaze3d/vertex/VertexFormat.java b/com/mojang/blaze3d/vertex/VertexFormat.java new file mode 100644 index 00000000..99b4cbda --- /dev/null +++ b/com/mojang/blaze3d/vertex/VertexFormat.java @@ -0,0 +1,231 @@ +package com.mojang.blaze3d.vertex; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.systems.RenderSystem; +import it.unimi.dsi.fastutil.ints.IntArrayList; +import it.unimi.dsi.fastutil.ints.IntList; +import java.util.Arrays; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class VertexFormat { + public static final int UNKNOWN_ELEMENT = -1; + private final List elements; + private final List names; + private final int vertexSize; + private final int elementsMask; + private final int[] offsetsByElement = new int[32]; + @Nullable + private VertexBuffer immediateDrawVertexBuffer; + + VertexFormat(List elements, List names, IntList offsets, int vertexSize) { + this.elements = elements; + this.names = names; + this.vertexSize = vertexSize; + this.elementsMask = elements.stream().mapToInt(VertexFormatElement::mask).reduce(0, (ix, jx) -> ix | jx); + + for (int i = 0; i < this.offsetsByElement.length; i++) { + VertexFormatElement vertexFormatElement = VertexFormatElement.byId(i); + int j = vertexFormatElement != null ? elements.indexOf(vertexFormatElement) : -1; + this.offsetsByElement[i] = j != -1 ? offsets.getInt(j) : -1; + } + } + + public static VertexFormat.Builder builder() { + return new VertexFormat.Builder(); + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("Vertex format (").append(this.vertexSize).append(" bytes):\n"); + + for (int i = 0; i < this.elements.size(); i++) { + VertexFormatElement vertexFormatElement = (VertexFormatElement)this.elements.get(i); + stringBuilder.append(i) + .append(". ") + .append((String)this.names.get(i)) + .append(": ") + .append(vertexFormatElement) + .append(" @ ") + .append(this.getOffset(vertexFormatElement)) + .append('\n'); + } + + return stringBuilder.toString(); + } + + public int getVertexSize() { + return this.vertexSize; + } + + public List getElements() { + return this.elements; + } + + public List getElementAttributeNames() { + return this.names; + } + + public int[] getOffsetsByElement() { + return this.offsetsByElement; + } + + public int getOffset(VertexFormatElement element) { + return this.offsetsByElement[element.id()]; + } + + public boolean contains(VertexFormatElement element) { + return (this.elementsMask & element.mask()) != 0; + } + + public int getElementsMask() { + return this.elementsMask; + } + + public String getElementName(VertexFormatElement element) { + int i = this.elements.indexOf(element); + if (i == -1) { + throw new IllegalArgumentException(element + " is not contained in format"); + } else { + return (String)this.names.get(i); + } + } + + public boolean equals(Object object) { + return this == object + ? true + : object instanceof VertexFormat vertexFormat + && this.elementsMask == vertexFormat.elementsMask + && this.vertexSize == vertexFormat.vertexSize + && this.names.equals(vertexFormat.names) + && Arrays.equals(this.offsetsByElement, vertexFormat.offsetsByElement); + } + + public int hashCode() { + return this.elementsMask * 31 + Arrays.hashCode(this.offsetsByElement); + } + + public void setupBufferState() { + if (!RenderSystem.isOnRenderThread()) { + RenderSystem.recordRenderCall(this::_setupBufferState); + } else { + this._setupBufferState(); + } + } + + private void _setupBufferState() { + int i = this.getVertexSize(); + + for (int j = 0; j < this.elements.size(); j++) { + GlStateManager._enableVertexAttribArray(j); + VertexFormatElement vertexFormatElement = (VertexFormatElement)this.elements.get(j); + vertexFormatElement.setupBufferState(j, this.getOffset(vertexFormatElement), i); + } + } + + public void clearBufferState() { + if (!RenderSystem.isOnRenderThread()) { + RenderSystem.recordRenderCall(this::_clearBufferState); + } else { + this._clearBufferState(); + } + } + + private void _clearBufferState() { + for (int i = 0; i < this.elements.size(); i++) { + GlStateManager._disableVertexAttribArray(i); + } + } + + public VertexBuffer getImmediateDrawVertexBuffer() { + VertexBuffer vertexBuffer = this.immediateDrawVertexBuffer; + if (vertexBuffer == null) { + this.immediateDrawVertexBuffer = vertexBuffer = new VertexBuffer(VertexBuffer.Usage.DYNAMIC); + } + + return vertexBuffer; + } + + @Environment(EnvType.CLIENT) + public static class Builder { + private final ImmutableMap.Builder elements = ImmutableMap.builder(); + private final IntList offsets = new IntArrayList(); + private int offset; + + Builder() { + } + + public VertexFormat.Builder add(String name, VertexFormatElement element) { + this.elements.put(name, element); + this.offsets.add(this.offset); + this.offset = this.offset + element.byteSize(); + return this; + } + + public VertexFormat.Builder padding(int padding) { + this.offset += padding; + return this; + } + + public VertexFormat build() { + ImmutableMap immutableMap = this.elements.buildOrThrow(); + ImmutableList immutableList = immutableMap.values().asList(); + ImmutableList immutableList2 = immutableMap.keySet().asList(); + return new VertexFormat(immutableList, immutableList2, this.offsets, this.offset); + } + } + + @Environment(EnvType.CLIENT) + public static enum IndexType { + SHORT(5123, 2), + INT(5125, 4); + + public final int asGLType; + public final int bytes; + + private IndexType(final int asGLType, final int bytes) { + this.asGLType = asGLType; + this.bytes = bytes; + } + + public static VertexFormat.IndexType least(int indexCount) { + return (indexCount & -65536) != 0 ? INT : SHORT; + } + } + + @Environment(EnvType.CLIENT) + public static enum Mode { + LINES(4, 2, 2, false), + LINE_STRIP(5, 2, 1, true), + DEBUG_LINES(1, 2, 2, false), + DEBUG_LINE_STRIP(3, 2, 1, true), + TRIANGLES(4, 3, 3, false), + TRIANGLE_STRIP(5, 3, 1, true), + TRIANGLE_FAN(6, 3, 1, true), + QUADS(4, 4, 4, false); + + public final int asGLMode; + public final int primitiveLength; + public final int primitiveStride; + public final boolean connectedPrimitives; + + private Mode(final int asGLMode, final int primitiveLength, final int primitiveStride, final boolean connectedPrimitives) { + this.asGLMode = asGLMode; + this.primitiveLength = primitiveLength; + this.primitiveStride = primitiveStride; + this.connectedPrimitives = connectedPrimitives; + } + + public int indexCount(int vertices) { + return switch (this) { + case LINES, QUADS -> vertices / 4 * 6; + case LINE_STRIP, DEBUG_LINES, DEBUG_LINE_STRIP, TRIANGLES, TRIANGLE_STRIP, TRIANGLE_FAN -> vertices; + default -> 0; + }; + } + } +} diff --git a/com/mojang/blaze3d/vertex/VertexFormatElement.java b/com/mojang/blaze3d/vertex/VertexFormatElement.java new file mode 100644 index 00000000..bcbaa792 --- /dev/null +++ b/com/mojang/blaze3d/vertex/VertexFormatElement.java @@ -0,0 +1,143 @@ +package com.mojang.blaze3d.vertex; + +import com.mojang.blaze3d.platform.GlStateManager; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public record VertexFormatElement(int id, int index, VertexFormatElement.Type type, VertexFormatElement.Usage usage, int count) { + public static final int MAX_COUNT = 32; + private static final VertexFormatElement[] BY_ID = new VertexFormatElement[32]; + private static final List ELEMENTS = new ArrayList(32); + public static final VertexFormatElement POSITION = register(0, 0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.POSITION, 3); + public static final VertexFormatElement COLOR = register(1, 0, VertexFormatElement.Type.UBYTE, VertexFormatElement.Usage.COLOR, 4); + public static final VertexFormatElement UV0 = register(2, 0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.UV, 2); + public static final VertexFormatElement UV = UV0; + public static final VertexFormatElement UV1 = register(3, 1, VertexFormatElement.Type.SHORT, VertexFormatElement.Usage.UV, 2); + public static final VertexFormatElement UV2 = register(4, 2, VertexFormatElement.Type.SHORT, VertexFormatElement.Usage.UV, 2); + public static final VertexFormatElement NORMAL = register(5, 0, VertexFormatElement.Type.BYTE, VertexFormatElement.Usage.NORMAL, 3); + + public VertexFormatElement(int id, int index, VertexFormatElement.Type type, VertexFormatElement.Usage usage, int count) { + if (id < 0 || id >= BY_ID.length) { + throw new IllegalArgumentException("Element ID must be in range [0; " + BY_ID.length + ")"); + } else if (!this.supportsUsage(index, usage)) { + throw new IllegalStateException("Multiple vertex elements of the same type other than UVs are not supported"); + } else { + this.id = id; + this.index = index; + this.type = type; + this.usage = usage; + this.count = count; + } + } + + public static VertexFormatElement register(int id, int index, VertexFormatElement.Type type, VertexFormatElement.Usage usage, int count) { + VertexFormatElement vertexFormatElement = new VertexFormatElement(id, index, type, usage, count); + if (BY_ID[id] != null) { + throw new IllegalArgumentException("Duplicate element registration for: " + id); + } else { + BY_ID[id] = vertexFormatElement; + ELEMENTS.add(vertexFormatElement); + return vertexFormatElement; + } + } + + private boolean supportsUsage(int index, VertexFormatElement.Usage usage) { + return index == 0 || usage == VertexFormatElement.Usage.UV; + } + + public String toString() { + return this.count + "," + this.usage + "," + this.type + " (" + this.id + ")"; + } + + public int mask() { + return 1 << this.id; + } + + public int byteSize() { + return this.type.size() * this.count; + } + + public void setupBufferState(int stateIndex, long offset, int stride) { + this.usage.setupState.setupBufferState(this.count, this.type.glType(), stride, offset, stateIndex); + } + + @Nullable + public static VertexFormatElement byId(int id) { + return BY_ID[id]; + } + + public static Stream elementsFromMask(int mask) { + return ELEMENTS.stream().filter(vertexFormatElement -> vertexFormatElement != null && (mask & vertexFormatElement.mask()) != 0); + } + + @Environment(EnvType.CLIENT) + public static enum Type { + FLOAT(4, "Float", 5126), + UBYTE(1, "Unsigned Byte", 5121), + BYTE(1, "Byte", 5120), + USHORT(2, "Unsigned Short", 5123), + SHORT(2, "Short", 5122), + UINT(4, "Unsigned Int", 5125), + INT(4, "Int", 5124); + + private final int size; + private final String name; + private final int glType; + + private Type(final int size, final String name, final int glType) { + this.size = size; + this.name = name; + this.glType = glType; + } + + public int size() { + return this.size; + } + + public int glType() { + return this.glType; + } + + public String toString() { + return this.name; + } + } + + @Environment(EnvType.CLIENT) + public static enum Usage { + POSITION("Position", (i, j, k, l, m) -> GlStateManager._vertexAttribPointer(m, i, j, false, k, l)), + NORMAL("Normal", (i, j, k, l, m) -> GlStateManager._vertexAttribPointer(m, i, j, true, k, l)), + COLOR("Vertex Color", (i, j, k, l, m) -> GlStateManager._vertexAttribPointer(m, i, j, true, k, l)), + UV("UV", (i, j, k, l, m) -> { + if (j == 5126) { + GlStateManager._vertexAttribPointer(m, i, j, false, k, l); + } else { + GlStateManager._vertexAttribIPointer(m, i, j, k, l); + } + }), + GENERIC("Generic", (i, j, k, l, m) -> GlStateManager._vertexAttribPointer(m, i, j, false, k, l)); + + private final String name; + final VertexFormatElement.Usage.SetupState setupState; + + private Usage(final String name, final VertexFormatElement.Usage.SetupState setupState) { + this.name = name; + this.setupState = setupState; + } + + public String toString() { + return this.name; + } + + @FunctionalInterface + @Environment(EnvType.CLIENT) + interface SetupState { + void setupBufferState(int i, int j, int k, long l, int m); + } + } +} diff --git a/com/mojang/blaze3d/vertex/VertexMultiConsumer.java b/com/mojang/blaze3d/vertex/VertexMultiConsumer.java new file mode 100644 index 00000000..45d4a5be --- /dev/null +++ b/com/mojang/blaze3d/vertex/VertexMultiConsumer.java @@ -0,0 +1,149 @@ +package com.mojang.blaze3d.vertex; + +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class VertexMultiConsumer { + public static VertexConsumer create() { + throw new IllegalArgumentException(); + } + + public static VertexConsumer create(VertexConsumer consumer) { + return consumer; + } + + public static VertexConsumer create(VertexConsumer first, VertexConsumer second) { + return new VertexMultiConsumer.Double(first, second); + } + + public static VertexConsumer create(VertexConsumer... delegates) { + return new VertexMultiConsumer.Multiple(delegates); + } + + @Environment(EnvType.CLIENT) + static class Double implements VertexConsumer { + private final VertexConsumer first; + private final VertexConsumer second; + + public Double(VertexConsumer first, VertexConsumer second) { + if (first == second) { + throw new IllegalArgumentException("Duplicate delegates"); + } else { + this.first = first; + this.second = second; + } + } + + @Override + public VertexConsumer addVertex(float x, float y, float z) { + this.first.addVertex(x, y, z); + this.second.addVertex(x, y, z); + return this; + } + + @Override + public VertexConsumer setColor(int red, int green, int blue, int alpha) { + this.first.setColor(red, green, blue, alpha); + this.second.setColor(red, green, blue, alpha); + return this; + } + + @Override + public VertexConsumer setUv(float u, float v) { + this.first.setUv(u, v); + this.second.setUv(u, v); + return this; + } + + @Override + public VertexConsumer setUv1(int u, int v) { + this.first.setUv1(u, v); + this.second.setUv1(u, v); + return this; + } + + @Override + public VertexConsumer setUv2(int u, int v) { + this.first.setUv2(u, v); + this.second.setUv2(u, v); + return this; + } + + @Override + public VertexConsumer setNormal(float normalX, float normalY, float normalZ) { + this.first.setNormal(normalX, normalY, normalZ); + this.second.setNormal(normalX, normalY, normalZ); + return this; + } + + @Override + public void addVertex(float x, float y, float z, int color, float u, float v, int packedOverlay, int packedLight, float normalX, float normalY, float normalZ) { + this.first.addVertex(x, y, z, color, u, v, packedOverlay, packedLight, normalX, normalY, normalZ); + this.second.addVertex(x, y, z, color, u, v, packedOverlay, packedLight, normalX, normalY, normalZ); + } + } + + @Environment(EnvType.CLIENT) + record Multiple(VertexConsumer[] delegates) implements VertexConsumer { + Multiple(VertexConsumer[] delegates) { + for (int i = 0; i < delegates.length; i++) { + for (int j = i + 1; j < delegates.length; j++) { + if (delegates[i] == delegates[j]) { + throw new IllegalArgumentException("Duplicate delegates"); + } + } + } + + this.delegates = delegates; + } + + private void forEach(Consumer action) { + for (VertexConsumer vertexConsumer : this.delegates) { + action.accept(vertexConsumer); + } + } + + @Override + public VertexConsumer addVertex(float x, float y, float z) { + this.forEach(vertexConsumer -> vertexConsumer.addVertex(x, y, z)); + return this; + } + + @Override + public VertexConsumer setColor(int red, int green, int blue, int alpha) { + this.forEach(vertexConsumer -> vertexConsumer.setColor(red, green, blue, alpha)); + return this; + } + + @Override + public VertexConsumer setUv(float u, float v) { + this.forEach(vertexConsumer -> vertexConsumer.setUv(u, v)); + return this; + } + + @Override + public VertexConsumer setUv1(int u, int v) { + this.forEach(vertexConsumer -> vertexConsumer.setUv1(u, v)); + return this; + } + + @Override + public VertexConsumer setUv2(int u, int v) { + this.forEach(vertexConsumer -> vertexConsumer.setUv2(u, v)); + return this; + } + + @Override + public VertexConsumer setNormal(float normalX, float normalY, float normalZ) { + this.forEach(vertexConsumer -> vertexConsumer.setNormal(normalX, normalY, normalZ)); + return this; + } + + @Override + public void addVertex(float x, float y, float z, int color, float u, float v, int packedOverlay, int packedLight, float normalX, float normalY, float normalZ) { + this.forEach(vertexConsumer -> vertexConsumer.addVertex(x, y, z, color, u, v, packedOverlay, packedLight, normalX, normalY, normalZ)); + } + } +} diff --git a/com/mojang/blaze3d/vertex/VertexSorting.java b/com/mojang/blaze3d/vertex/VertexSorting.java new file mode 100644 index 00000000..b4bbb7f8 --- /dev/null +++ b/com/mojang/blaze3d/vertex/VertexSorting.java @@ -0,0 +1,42 @@ +package com.mojang.blaze3d.vertex; + +import com.google.common.primitives.Floats; +import it.unimi.dsi.fastutil.ints.IntArrays; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.joml.Vector3f; + +@Environment(EnvType.CLIENT) +public interface VertexSorting { + VertexSorting DISTANCE_TO_ORIGIN = byDistance(0.0F, 0.0F, 0.0F); + VertexSorting ORTHOGRAPHIC_Z = byDistance(vector3f -> -vector3f.z()); + + static VertexSorting byDistance(float x, float y, float z) { + return byDistance(new Vector3f(x, y, z)); + } + + static VertexSorting byDistance(Vector3f vector) { + return byDistance(vector::distanceSquared); + } + + static VertexSorting byDistance(VertexSorting.DistanceFunction distanceFunction) { + return vector3fs -> { + float[] fs = new float[vector3fs.length]; + int[] is = new int[vector3fs.length]; + + for (int i = 0; i < vector3fs.length; is[i] = i++) { + fs[i] = distanceFunction.apply(vector3fs[i]); + } + + IntArrays.mergeSort(is, (ix, j) -> Floats.compare(fs[j], fs[ix])); + return is; + }; + } + + int[] sort(Vector3f[] vector3fs); + + @Environment(EnvType.CLIENT) + public interface DistanceFunction { + float apply(Vector3f vector3f); + } +} diff --git a/com/mojang/blaze3d/vertex/package-info.java b/com/mojang/blaze3d/vertex/package-info.java new file mode 100644 index 00000000..56b1ef14 --- /dev/null +++ b/com/mojang/blaze3d/vertex/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.blaze3d.vertex; + +import com.mojang.blaze3d.FieldsAreNonnullByDefault; +import com.mojang.blaze3d.MethodsReturnNonnullByDefault; +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; diff --git a/com/mojang/math/Axis.java b/com/mojang/math/Axis.java new file mode 100644 index 00000000..26e820b2 --- /dev/null +++ b/com/mojang/math/Axis.java @@ -0,0 +1,24 @@ +package com.mojang.math; + +import org.joml.Quaternionf; +import org.joml.Vector3f; + +@FunctionalInterface +public interface Axis { + Axis XN = f -> new Quaternionf().rotationX(-f); + Axis XP = f -> new Quaternionf().rotationX(f); + Axis YN = f -> new Quaternionf().rotationY(-f); + Axis YP = f -> new Quaternionf().rotationY(f); + Axis ZN = f -> new Quaternionf().rotationZ(-f); + Axis ZP = f -> new Quaternionf().rotationZ(f); + + static Axis of(Vector3f axis) { + return f -> new Quaternionf().rotationAxis(f, axis); + } + + Quaternionf rotation(float f); + + default Quaternionf rotationDegrees(float f) { + return this.rotation(f * (float) (Math.PI / 180.0)); + } +} diff --git a/com/mojang/math/Constants.java b/com/mojang/math/Constants.java new file mode 100644 index 00000000..4228651a --- /dev/null +++ b/com/mojang/math/Constants.java @@ -0,0 +1,8 @@ +package com.mojang.math; + +public class Constants { + public static final float PI = (float) Math.PI; + public static final float RAD_TO_DEG = 180.0F / (float)Math.PI; + public static final float DEG_TO_RAD = (float) (Math.PI / 180.0); + public static final float EPSILON = 1.0E-6F; +} diff --git a/com/mojang/math/Divisor.java b/com/mojang/math/Divisor.java new file mode 100644 index 00000000..1697884b --- /dev/null +++ b/com/mojang/math/Divisor.java @@ -0,0 +1,50 @@ +package com.mojang.math; + +import com.google.common.annotations.VisibleForTesting; +import it.unimi.dsi.fastutil.ints.IntIterator; +import java.util.NoSuchElementException; + +public class Divisor implements IntIterator { + private final int denominator; + private final int quotient; + private final int mod; + private int returnedParts; + private int remainder; + + public Divisor(int numerator, int denominator) { + this.denominator = denominator; + if (denominator > 0) { + this.quotient = numerator / denominator; + this.mod = numerator % denominator; + } else { + this.quotient = 0; + this.mod = 0; + } + } + + public boolean hasNext() { + return this.returnedParts < this.denominator; + } + + @Override + public int nextInt() { + if (!this.hasNext()) { + throw new NoSuchElementException(); + } else { + int i = this.quotient; + this.remainder = this.remainder + this.mod; + if (this.remainder >= this.denominator) { + this.remainder = this.remainder - this.denominator; + i++; + } + + this.returnedParts++; + return i; + } + } + + @VisibleForTesting + public static Iterable asIterable(int numerator, int denominator) { + return () -> new Divisor(numerator, denominator); + } +} diff --git a/com/mojang/math/FieldsAreNonnullByDefault.java b/com/mojang/math/FieldsAreNonnullByDefault.java new file mode 100644 index 00000000..7cd77d0c --- /dev/null +++ b/com/mojang/math/FieldsAreNonnullByDefault.java @@ -0,0 +1,13 @@ +package com.mojang.math; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.annotation.meta.TypeQualifierDefault; +import org.jetbrains.annotations.NotNull; + +@NotNull +@TypeQualifierDefault({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface FieldsAreNonnullByDefault { +} diff --git a/com/mojang/math/GivensParameters.java b/com/mojang/math/GivensParameters.java new file mode 100644 index 00000000..1760f6f4 --- /dev/null +++ b/com/mojang/math/GivensParameters.java @@ -0,0 +1,87 @@ +package com.mojang.math; + +import org.joml.Math; +import org.joml.Matrix3f; +import org.joml.Quaternionf; + +public record GivensParameters(float sinHalf, float cosHalf) { + public static GivensParameters fromUnnormalized(float sinHalf, float cosHalf) { + float f = Math.invsqrt(sinHalf * sinHalf + cosHalf * cosHalf); + return new GivensParameters(f * sinHalf, f * cosHalf); + } + + public static GivensParameters fromPositiveAngle(float angle) { + float f = Math.sin(angle / 2.0F); + float g = Math.cosFromSin(f, angle / 2.0F); + return new GivensParameters(f, g); + } + + public GivensParameters inverse() { + return new GivensParameters(-this.sinHalf, this.cosHalf); + } + + public Quaternionf aroundX(Quaternionf quaternion) { + return quaternion.set(this.sinHalf, 0.0F, 0.0F, this.cosHalf); + } + + public Quaternionf aroundY(Quaternionf quaternion) { + return quaternion.set(0.0F, this.sinHalf, 0.0F, this.cosHalf); + } + + public Quaternionf aroundZ(Quaternionf quaternion) { + return quaternion.set(0.0F, 0.0F, this.sinHalf, this.cosHalf); + } + + public float cos() { + return this.cosHalf * this.cosHalf - this.sinHalf * this.sinHalf; + } + + public float sin() { + return 2.0F * this.sinHalf * this.cosHalf; + } + + public Matrix3f aroundX(Matrix3f matrix) { + matrix.m01 = 0.0F; + matrix.m02 = 0.0F; + matrix.m10 = 0.0F; + matrix.m20 = 0.0F; + float f = this.cos(); + float g = this.sin(); + matrix.m11 = f; + matrix.m22 = f; + matrix.m12 = g; + matrix.m21 = -g; + matrix.m00 = 1.0F; + return matrix; + } + + public Matrix3f aroundY(Matrix3f matrix) { + matrix.m01 = 0.0F; + matrix.m10 = 0.0F; + matrix.m12 = 0.0F; + matrix.m21 = 0.0F; + float f = this.cos(); + float g = this.sin(); + matrix.m00 = f; + matrix.m22 = f; + matrix.m02 = -g; + matrix.m20 = g; + matrix.m11 = 1.0F; + return matrix; + } + + public Matrix3f aroundZ(Matrix3f matrix) { + matrix.m02 = 0.0F; + matrix.m12 = 0.0F; + matrix.m20 = 0.0F; + matrix.m21 = 0.0F; + float f = this.cos(); + float g = this.sin(); + matrix.m00 = f; + matrix.m11 = f; + matrix.m01 = g; + matrix.m10 = -g; + matrix.m22 = 1.0F; + return matrix; + } +} diff --git a/com/mojang/math/MatrixUtil.java b/com/mojang/math/MatrixUtil.java new file mode 100644 index 00000000..58b41263 --- /dev/null +++ b/com/mojang/math/MatrixUtil.java @@ -0,0 +1,157 @@ +package com.mojang.math; + +import org.apache.commons.lang3.tuple.Triple; +import org.joml.Math; +import org.joml.Matrix3f; +import org.joml.Matrix4f; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +public class MatrixUtil { + private static final float G = 3.0F + 2.0F * Math.sqrt(2.0F); + private static final GivensParameters PI_4 = GivensParameters.fromPositiveAngle((float) (java.lang.Math.PI / 4)); + + private MatrixUtil() { + } + + public static Matrix4f mulComponentWise(Matrix4f matrix, float scalar) { + return matrix.set( + matrix.m00() * scalar, + matrix.m01() * scalar, + matrix.m02() * scalar, + matrix.m03() * scalar, + matrix.m10() * scalar, + matrix.m11() * scalar, + matrix.m12() * scalar, + matrix.m13() * scalar, + matrix.m20() * scalar, + matrix.m21() * scalar, + matrix.m22() * scalar, + matrix.m23() * scalar, + matrix.m30() * scalar, + matrix.m31() * scalar, + matrix.m32() * scalar, + matrix.m33() * scalar + ); + } + + private static GivensParameters approxGivensQuat(float f, float g, float h) { + float i = 2.0F * (f - h); + return G * g * g < i * i ? GivensParameters.fromUnnormalized(g, i) : PI_4; + } + + private static GivensParameters qrGivensQuat(float input1, float input2) { + float f = (float)java.lang.Math.hypot(input1, input2); + float g = f > 1.0E-6F ? input2 : 0.0F; + float h = Math.abs(input1) + Math.max(f, 1.0E-6F); + if (input1 < 0.0F) { + float i = g; + g = h; + h = i; + } + + return GivensParameters.fromUnnormalized(g, h); + } + + private static void similarityTransform(Matrix3f input, Matrix3f tempStorage) { + input.mul(tempStorage); + tempStorage.transpose(); + tempStorage.mul(input); + input.set(tempStorage); + } + + private static void stepJacobi(Matrix3f input, Matrix3f tempStorage, Quaternionf resultEigenvector, Quaternionf resultEigenvalue) { + if (input.m01 * input.m01 + input.m10 * input.m10 > 1.0E-6F) { + GivensParameters givensParameters = approxGivensQuat(input.m00, 0.5F * (input.m01 + input.m10), input.m11); + Quaternionf quaternionf = givensParameters.aroundZ(resultEigenvector); + resultEigenvalue.mul(quaternionf); + givensParameters.aroundZ(tempStorage); + similarityTransform(input, tempStorage); + } + + if (input.m02 * input.m02 + input.m20 * input.m20 > 1.0E-6F) { + GivensParameters givensParameters = approxGivensQuat(input.m00, 0.5F * (input.m02 + input.m20), input.m22).inverse(); + Quaternionf quaternionf = givensParameters.aroundY(resultEigenvector); + resultEigenvalue.mul(quaternionf); + givensParameters.aroundY(tempStorage); + similarityTransform(input, tempStorage); + } + + if (input.m12 * input.m12 + input.m21 * input.m21 > 1.0E-6F) { + GivensParameters givensParameters = approxGivensQuat(input.m11, 0.5F * (input.m12 + input.m21), input.m22); + Quaternionf quaternionf = givensParameters.aroundX(resultEigenvector); + resultEigenvalue.mul(quaternionf); + givensParameters.aroundX(tempStorage); + similarityTransform(input, tempStorage); + } + } + + public static Quaternionf eigenvalueJacobi(Matrix3f input, int iterations) { + Quaternionf quaternionf = new Quaternionf(); + Matrix3f matrix3f = new Matrix3f(); + Quaternionf quaternionf2 = new Quaternionf(); + + for (int i = 0; i < iterations; i++) { + stepJacobi(input, matrix3f, quaternionf2, quaternionf); + } + + quaternionf.normalize(); + return quaternionf; + } + + public static Triple svdDecompose(Matrix3f matrix) { + Matrix3f matrix3f = new Matrix3f(matrix); + matrix3f.transpose(); + matrix3f.mul(matrix); + Quaternionf quaternionf = eigenvalueJacobi(matrix3f, 5); + float f = matrix3f.m00; + float g = matrix3f.m11; + boolean bl = f < 1.0E-6; + boolean bl2 = g < 1.0E-6; + Matrix3f matrix3f3 = matrix.rotate(quaternionf); + Quaternionf quaternionf2 = new Quaternionf(); + Quaternionf quaternionf3 = new Quaternionf(); + GivensParameters givensParameters; + if (bl) { + givensParameters = qrGivensQuat(matrix3f3.m11, -matrix3f3.m10); + } else { + givensParameters = qrGivensQuat(matrix3f3.m00, matrix3f3.m01); + } + + Quaternionf quaternionf4 = givensParameters.aroundZ(quaternionf3); + Matrix3f matrix3f4 = givensParameters.aroundZ(matrix3f); + quaternionf2.mul(quaternionf4); + matrix3f4.transpose().mul(matrix3f3); + if (bl) { + givensParameters = qrGivensQuat(matrix3f4.m22, -matrix3f4.m20); + } else { + givensParameters = qrGivensQuat(matrix3f4.m00, matrix3f4.m02); + } + + givensParameters = givensParameters.inverse(); + Quaternionf quaternionf5 = givensParameters.aroundY(quaternionf3); + Matrix3f matrix3f5 = givensParameters.aroundY(matrix3f3); + quaternionf2.mul(quaternionf5); + matrix3f5.transpose().mul(matrix3f4); + if (bl2) { + givensParameters = qrGivensQuat(matrix3f5.m22, -matrix3f5.m21); + } else { + givensParameters = qrGivensQuat(matrix3f5.m11, matrix3f5.m12); + } + + Quaternionf quaternionf6 = givensParameters.aroundX(quaternionf3); + Matrix3f matrix3f6 = givensParameters.aroundX(matrix3f4); + quaternionf2.mul(quaternionf6); + matrix3f6.transpose().mul(matrix3f5); + Vector3f vector3f = new Vector3f(matrix3f6.m00, matrix3f6.m11, matrix3f6.m22); + return Triple.of(quaternionf2, vector3f, quaternionf.conjugate()); + } + + public static boolean isPureTranslation(Matrix4f matrix) { + return (matrix.properties() & 8) != 0; + } + + public static boolean isOrthonormal(Matrix4f matrix) { + return (matrix.properties() & 16) != 0; + } +} diff --git a/com/mojang/math/MethodsReturnNonnullByDefault.java b/com/mojang/math/MethodsReturnNonnullByDefault.java new file mode 100644 index 00000000..a81fcea2 --- /dev/null +++ b/com/mojang/math/MethodsReturnNonnullByDefault.java @@ -0,0 +1,13 @@ +package com.mojang.math; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.annotation.meta.TypeQualifierDefault; +import org.jetbrains.annotations.NotNull; + +@NotNull +@TypeQualifierDefault({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface MethodsReturnNonnullByDefault { +} diff --git a/com/mojang/math/OctahedralGroup.java b/com/mojang/math/OctahedralGroup.java new file mode 100644 index 00000000..2bfa03d3 --- /dev/null +++ b/com/mojang/math/OctahedralGroup.java @@ -0,0 +1,176 @@ +package com.mojang.math; + +import com.google.common.collect.Maps; +import com.mojang.datafixers.util.Pair; +import it.unimi.dsi.fastutil.booleans.BooleanArrayList; +import it.unimi.dsi.fastutil.booleans.BooleanList; +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; +import net.minecraft.Util; +import net.minecraft.core.Direction; +import net.minecraft.core.FrontAndTop; +import net.minecraft.util.StringRepresentable; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix3f; + +public enum OctahedralGroup implements StringRepresentable { + IDENTITY("identity", SymmetricGroup3.P123, false, false, false), + ROT_180_FACE_XY("rot_180_face_xy", SymmetricGroup3.P123, true, true, false), + ROT_180_FACE_XZ("rot_180_face_xz", SymmetricGroup3.P123, true, false, true), + ROT_180_FACE_YZ("rot_180_face_yz", SymmetricGroup3.P123, false, true, true), + ROT_120_NNN("rot_120_nnn", SymmetricGroup3.P231, false, false, false), + ROT_120_NNP("rot_120_nnp", SymmetricGroup3.P312, true, false, true), + ROT_120_NPN("rot_120_npn", SymmetricGroup3.P312, false, true, true), + ROT_120_NPP("rot_120_npp", SymmetricGroup3.P231, true, false, true), + ROT_120_PNN("rot_120_pnn", SymmetricGroup3.P312, true, true, false), + ROT_120_PNP("rot_120_pnp", SymmetricGroup3.P231, true, true, false), + ROT_120_PPN("rot_120_ppn", SymmetricGroup3.P231, false, true, true), + ROT_120_PPP("rot_120_ppp", SymmetricGroup3.P312, false, false, false), + ROT_180_EDGE_XY_NEG("rot_180_edge_xy_neg", SymmetricGroup3.P213, true, true, true), + ROT_180_EDGE_XY_POS("rot_180_edge_xy_pos", SymmetricGroup3.P213, false, false, true), + ROT_180_EDGE_XZ_NEG("rot_180_edge_xz_neg", SymmetricGroup3.P321, true, true, true), + ROT_180_EDGE_XZ_POS("rot_180_edge_xz_pos", SymmetricGroup3.P321, false, true, false), + ROT_180_EDGE_YZ_NEG("rot_180_edge_yz_neg", SymmetricGroup3.P132, true, true, true), + ROT_180_EDGE_YZ_POS("rot_180_edge_yz_pos", SymmetricGroup3.P132, true, false, false), + ROT_90_X_NEG("rot_90_x_neg", SymmetricGroup3.P132, false, false, true), + ROT_90_X_POS("rot_90_x_pos", SymmetricGroup3.P132, false, true, false), + ROT_90_Y_NEG("rot_90_y_neg", SymmetricGroup3.P321, true, false, false), + ROT_90_Y_POS("rot_90_y_pos", SymmetricGroup3.P321, false, false, true), + ROT_90_Z_NEG("rot_90_z_neg", SymmetricGroup3.P213, false, true, false), + ROT_90_Z_POS("rot_90_z_pos", SymmetricGroup3.P213, true, false, false), + INVERSION("inversion", SymmetricGroup3.P123, true, true, true), + INVERT_X("invert_x", SymmetricGroup3.P123, true, false, false), + INVERT_Y("invert_y", SymmetricGroup3.P123, false, true, false), + INVERT_Z("invert_z", SymmetricGroup3.P123, false, false, true), + ROT_60_REF_NNN("rot_60_ref_nnn", SymmetricGroup3.P312, true, true, true), + ROT_60_REF_NNP("rot_60_ref_nnp", SymmetricGroup3.P231, true, false, false), + ROT_60_REF_NPN("rot_60_ref_npn", SymmetricGroup3.P231, false, false, true), + ROT_60_REF_NPP("rot_60_ref_npp", SymmetricGroup3.P312, false, false, true), + ROT_60_REF_PNN("rot_60_ref_pnn", SymmetricGroup3.P231, false, true, false), + ROT_60_REF_PNP("rot_60_ref_pnp", SymmetricGroup3.P312, true, false, false), + ROT_60_REF_PPN("rot_60_ref_ppn", SymmetricGroup3.P312, false, true, false), + ROT_60_REF_PPP("rot_60_ref_ppp", SymmetricGroup3.P231, true, true, true), + SWAP_XY("swap_xy", SymmetricGroup3.P213, false, false, false), + SWAP_YZ("swap_yz", SymmetricGroup3.P132, false, false, false), + SWAP_XZ("swap_xz", SymmetricGroup3.P321, false, false, false), + SWAP_NEG_XY("swap_neg_xy", SymmetricGroup3.P213, true, true, false), + SWAP_NEG_YZ("swap_neg_yz", SymmetricGroup3.P132, false, true, true), + SWAP_NEG_XZ("swap_neg_xz", SymmetricGroup3.P321, true, false, true), + ROT_90_REF_X_NEG("rot_90_ref_x_neg", SymmetricGroup3.P132, true, false, true), + ROT_90_REF_X_POS("rot_90_ref_x_pos", SymmetricGroup3.P132, true, true, false), + ROT_90_REF_Y_NEG("rot_90_ref_y_neg", SymmetricGroup3.P321, true, true, false), + ROT_90_REF_Y_POS("rot_90_ref_y_pos", SymmetricGroup3.P321, false, true, true), + ROT_90_REF_Z_NEG("rot_90_ref_z_neg", SymmetricGroup3.P213, false, true, true), + ROT_90_REF_Z_POS("rot_90_ref_z_pos", SymmetricGroup3.P213, true, false, true); + + private final Matrix3f transformation; + private final String name; + @Nullable + private Map rotatedDirections; + private final boolean invertX; + private final boolean invertY; + private final boolean invertZ; + private final SymmetricGroup3 permutation; + private static final OctahedralGroup[][] cayleyTable = Util.make( + new OctahedralGroup[values().length][values().length], + octahedralGroups -> { + Map, OctahedralGroup> map = (Map, OctahedralGroup>)Arrays.stream(values()) + .collect( + Collectors.toMap(octahedralGroupx -> Pair.of(octahedralGroupx.permutation, octahedralGroupx.packInversions()), octahedralGroupx -> octahedralGroupx) + ); + + for (OctahedralGroup octahedralGroup : values()) { + for (OctahedralGroup octahedralGroup2 : values()) { + BooleanList booleanList = octahedralGroup.packInversions(); + BooleanList booleanList2 = octahedralGroup2.packInversions(); + SymmetricGroup3 symmetricGroup3 = octahedralGroup2.permutation.compose(octahedralGroup.permutation); + BooleanArrayList booleanArrayList = new BooleanArrayList(3); + + for (int i = 0; i < 3; i++) { + booleanArrayList.add(booleanList.getBoolean(i) ^ booleanList2.getBoolean(octahedralGroup.permutation.permutation(i))); + } + + octahedralGroups[octahedralGroup.ordinal()][octahedralGroup2.ordinal()] = (OctahedralGroup)map.get(Pair.of(symmetricGroup3, booleanArrayList)); + } + } + } + ); + private static final OctahedralGroup[] inverseTable = (OctahedralGroup[])Arrays.stream(values()) + .map( + octahedralGroup -> (OctahedralGroup)Arrays.stream(values()) + .filter(octahedralGroup2 -> octahedralGroup.compose(octahedralGroup2) == IDENTITY) + .findAny() + .get() + ) + .toArray(OctahedralGroup[]::new); + + private OctahedralGroup(final String name, final SymmetricGroup3 permutation, final boolean invertX, final boolean invertY, final boolean invertZ) { + this.name = name; + this.invertX = invertX; + this.invertY = invertY; + this.invertZ = invertZ; + this.permutation = permutation; + this.transformation = new Matrix3f().scaling(invertX ? -1.0F : 1.0F, invertY ? -1.0F : 1.0F, invertZ ? -1.0F : 1.0F); + this.transformation.mul(permutation.transformation()); + } + + private BooleanList packInversions() { + return new BooleanArrayList(new boolean[]{this.invertX, this.invertY, this.invertZ}); + } + + public OctahedralGroup compose(OctahedralGroup other) { + return cayleyTable[this.ordinal()][other.ordinal()]; + } + + public OctahedralGroup inverse() { + return inverseTable[this.ordinal()]; + } + + public Matrix3f transformation() { + return new Matrix3f(this.transformation); + } + + public String toString() { + return this.name; + } + + @Override + public String getSerializedName() { + return this.name; + } + + public Direction rotate(Direction direction) { + if (this.rotatedDirections == null) { + this.rotatedDirections = Maps.newEnumMap(Direction.class); + Direction.Axis[] axiss = Direction.Axis.values(); + + for (Direction direction2 : Direction.values()) { + Direction.Axis axis = direction2.getAxis(); + Direction.AxisDirection axisDirection = direction2.getAxisDirection(); + Direction.Axis axis2 = axiss[this.permutation.permutation(axis.ordinal())]; + Direction.AxisDirection axisDirection2 = this.inverts(axis2) ? axisDirection.opposite() : axisDirection; + Direction direction3 = Direction.fromAxisAndDirection(axis2, axisDirection2); + this.rotatedDirections.put(direction2, direction3); + } + } + + return (Direction)this.rotatedDirections.get(direction); + } + + public boolean inverts(Direction.Axis axis) { + switch (axis) { + case X: + return this.invertX; + case Y: + return this.invertY; + case Z: + default: + return this.invertZ; + } + } + + public FrontAndTop rotate(FrontAndTop frontAndTop) { + return FrontAndTop.fromFrontAndTop(this.rotate(frontAndTop.front()), this.rotate(frontAndTop.top())); + } +} diff --git a/com/mojang/math/SymmetricGroup3.java b/com/mojang/math/SymmetricGroup3.java new file mode 100644 index 00000000..d5c66800 --- /dev/null +++ b/com/mojang/math/SymmetricGroup3.java @@ -0,0 +1,61 @@ +package com.mojang.math; + +import java.util.Arrays; +import net.minecraft.Util; +import org.joml.Matrix3f; + +/** + * The symmetric group S3, also known as all the permutation orders of three elements. + */ +public enum SymmetricGroup3 { + P123(0, 1, 2), + P213(1, 0, 2), + P132(0, 2, 1), + P231(1, 2, 0), + P312(2, 0, 1), + P321(2, 1, 0); + + private final int[] permutation; + private final Matrix3f transformation; + private static final int ORDER = 3; + private static final SymmetricGroup3[][] cayleyTable = Util.make( + new SymmetricGroup3[values().length][values().length], + symmetricGroup3s -> { + for (SymmetricGroup3 symmetricGroup3 : values()) { + for (SymmetricGroup3 symmetricGroup32 : values()) { + int[] is = new int[3]; + + for (int i = 0; i < 3; i++) { + is[i] = symmetricGroup3.permutation[symmetricGroup32.permutation[i]]; + } + + SymmetricGroup3 symmetricGroup33 = (SymmetricGroup3)Arrays.stream(values()) + .filter(symmetricGroup3x -> Arrays.equals(symmetricGroup3x.permutation, is)) + .findFirst() + .get(); + symmetricGroup3s[symmetricGroup3.ordinal()][symmetricGroup32.ordinal()] = symmetricGroup33; + } + } + } + ); + + private SymmetricGroup3(final int first, final int second, final int third) { + this.permutation = new int[]{first, second, third}; + this.transformation = new Matrix3f(); + this.transformation.set(this.permutation(0), 0, 1.0F); + this.transformation.set(this.permutation(1), 1, 1.0F); + this.transformation.set(this.permutation(2), 2, 1.0F); + } + + public SymmetricGroup3 compose(SymmetricGroup3 other) { + return cayleyTable[this.ordinal()][other.ordinal()]; + } + + public int permutation(int element) { + return this.permutation[element]; + } + + public Matrix3f transformation() { + return this.transformation; + } +} diff --git a/com/mojang/math/Transformation.java b/com/mojang/math/Transformation.java new file mode 100644 index 00000000..a8e399c0 --- /dev/null +++ b/com/mojang/math/Transformation.java @@ -0,0 +1,170 @@ +package com.mojang.math; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Objects; +import net.minecraft.Util; +import net.minecraft.util.ExtraCodecs; +import org.apache.commons.lang3.tuple.Triple; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix3f; +import org.joml.Matrix4f; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +public final class Transformation { + private final Matrix4f matrix; + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + ExtraCodecs.VECTOR3F.fieldOf("translation").forGetter(transformation -> transformation.translation), + ExtraCodecs.QUATERNIONF.fieldOf("left_rotation").forGetter(transformation -> transformation.leftRotation), + ExtraCodecs.VECTOR3F.fieldOf("scale").forGetter(transformation -> transformation.scale), + ExtraCodecs.QUATERNIONF.fieldOf("right_rotation").forGetter(transformation -> transformation.rightRotation) + ) + .apply(instance, Transformation::new) + ); + public static final Codec EXTENDED_CODEC = Codec.withAlternative( + CODEC, ExtraCodecs.MATRIX4F.xmap(Transformation::new, Transformation::getMatrix) + ); + private boolean decomposed; + @Nullable + private Vector3f translation; + @Nullable + private Quaternionf leftRotation; + @Nullable + private Vector3f scale; + @Nullable + private Quaternionf rightRotation; + private static final Transformation IDENTITY = Util.make(() -> { + Transformation transformation = new Transformation(new Matrix4f()); + transformation.translation = new Vector3f(); + transformation.leftRotation = new Quaternionf(); + transformation.scale = new Vector3f(1.0F, 1.0F, 1.0F); + transformation.rightRotation = new Quaternionf(); + transformation.decomposed = true; + return transformation; + }); + + public Transformation(@Nullable Matrix4f matrix) { + if (matrix == null) { + this.matrix = new Matrix4f(); + } else { + this.matrix = matrix; + } + } + + public Transformation(@Nullable Vector3f translation, @Nullable Quaternionf leftRotation, @Nullable Vector3f scale, @Nullable Quaternionf rightRotation) { + this.matrix = compose(translation, leftRotation, scale, rightRotation); + this.translation = translation != null ? translation : new Vector3f(); + this.leftRotation = leftRotation != null ? leftRotation : new Quaternionf(); + this.scale = scale != null ? scale : new Vector3f(1.0F, 1.0F, 1.0F); + this.rightRotation = rightRotation != null ? rightRotation : new Quaternionf(); + this.decomposed = true; + } + + public static Transformation identity() { + return IDENTITY; + } + + public Transformation compose(Transformation other) { + Matrix4f matrix4f = this.getMatrix(); + matrix4f.mul(other.getMatrix()); + return new Transformation(matrix4f); + } + + @Nullable + public Transformation inverse() { + if (this == IDENTITY) { + return this; + } else { + Matrix4f matrix4f = this.getMatrix().invert(); + return matrix4f.isFinite() ? new Transformation(matrix4f) : null; + } + } + + private void ensureDecomposed() { + if (!this.decomposed) { + float f = 1.0F / this.matrix.m33(); + Triple triple = MatrixUtil.svdDecompose(new Matrix3f(this.matrix).scale(f)); + this.translation = this.matrix.getTranslation(new Vector3f()).mul(f); + this.leftRotation = new Quaternionf(triple.getLeft()); + this.scale = new Vector3f(triple.getMiddle()); + this.rightRotation = new Quaternionf(triple.getRight()); + this.decomposed = true; + } + } + + private static Matrix4f compose( + @Nullable Vector3f translation, @Nullable Quaternionf leftRotation, @Nullable Vector3f scale, @Nullable Quaternionf rightRotation + ) { + Matrix4f matrix4f = new Matrix4f(); + if (translation != null) { + matrix4f.translation(translation); + } + + if (leftRotation != null) { + matrix4f.rotate(leftRotation); + } + + if (scale != null) { + matrix4f.scale(scale); + } + + if (rightRotation != null) { + matrix4f.rotate(rightRotation); + } + + return matrix4f; + } + + public Matrix4f getMatrix() { + return new Matrix4f(this.matrix); + } + + public Vector3f getTranslation() { + this.ensureDecomposed(); + return new Vector3f(this.translation); + } + + public Quaternionf getLeftRotation() { + this.ensureDecomposed(); + return new Quaternionf(this.leftRotation); + } + + public Vector3f getScale() { + this.ensureDecomposed(); + return new Vector3f(this.scale); + } + + public Quaternionf getRightRotation() { + this.ensureDecomposed(); + return new Quaternionf(this.rightRotation); + } + + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (object != null && this.getClass() == object.getClass()) { + Transformation transformation = (Transformation)object; + return Objects.equals(this.matrix, transformation.matrix); + } else { + return false; + } + } + + public int hashCode() { + return Objects.hash(new Object[]{this.matrix}); + } + + public Transformation slerp(Transformation transformation, float delta) { + Vector3f vector3f = this.getTranslation(); + Quaternionf quaternionf = this.getLeftRotation(); + Vector3f vector3f2 = this.getScale(); + Quaternionf quaternionf2 = this.getRightRotation(); + vector3f.lerp(transformation.getTranslation(), delta); + quaternionf.slerp(transformation.getLeftRotation(), delta); + vector3f2.lerp(transformation.getScale(), delta); + quaternionf2.slerp(transformation.getRightRotation(), delta); + return new Transformation(vector3f, quaternionf, vector3f2, quaternionf2); + } +} diff --git a/com/mojang/math/package-info.java b/com/mojang/math/package-info.java new file mode 100644 index 00000000..330bd023 --- /dev/null +++ b/com/mojang/math/package-info.java @@ -0,0 +1,6 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +package com.mojang.math; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/com/mojang/realmsclient/RealmsAvailability.java b/com/mojang/realmsclient/RealmsAvailability.java new file mode 100644 index 00000000..9d54a067 --- /dev/null +++ b/com/mojang/realmsclient/RealmsAvailability.java @@ -0,0 +1,99 @@ +package com.mojang.realmsclient; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.gui.screens.RealmsClientOutdatedScreen; +import com.mojang.realmsclient.gui.screens.RealmsGenericErrorScreen; +import com.mojang.realmsclient.gui.screens.RealmsParentalConsentScreen; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.Minecraft; +import net.minecraft.client.User; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsAvailability { + private static final Logger LOGGER = LogUtils.getLogger(); + @Nullable + private static CompletableFuture future; + + public static CompletableFuture get() { + if (future == null || shouldRefresh(future)) { + future = check(); + } + + return future; + } + + private static boolean shouldRefresh(CompletableFuture future) { + RealmsAvailability.Result result = (RealmsAvailability.Result)future.getNow(null); + return result != null && result.exception() != null; + } + + private static CompletableFuture check() { + User user = Minecraft.getInstance().getUser(); + return user.getType() != User.Type.MSA + ? CompletableFuture.completedFuture(new RealmsAvailability.Result(RealmsAvailability.Type.AUTHENTICATION_ERROR)) + : CompletableFuture.supplyAsync( + () -> { + RealmsClient realmsClient = RealmsClient.create(); + + try { + if (realmsClient.clientCompatible() != RealmsClient.CompatibleVersionResponse.COMPATIBLE) { + return new RealmsAvailability.Result(RealmsAvailability.Type.INCOMPATIBLE_CLIENT); + } else { + return !realmsClient.hasParentalConsent() + ? new RealmsAvailability.Result(RealmsAvailability.Type.NEEDS_PARENTAL_CONSENT) + : new RealmsAvailability.Result(RealmsAvailability.Type.SUCCESS); + } + } catch (RealmsServiceException var2) { + LOGGER.error("Couldn't connect to realms", (Throwable)var2); + return var2.realmsError.errorCode() == 401 + ? new RealmsAvailability.Result(RealmsAvailability.Type.AUTHENTICATION_ERROR) + : new RealmsAvailability.Result(var2); + } + }, + Util.ioPool() + ); + } + + @Environment(EnvType.CLIENT) + public record Result(RealmsAvailability.Type type, @Nullable RealmsServiceException exception) { + public Result(RealmsAvailability.Type type) { + this(type, null); + } + + public Result(RealmsServiceException exception) { + this(RealmsAvailability.Type.UNEXPECTED_ERROR, exception); + } + + @Nullable + public Screen createErrorScreen(Screen lastScreen) { + return (Screen)(switch (this.type) { + case SUCCESS -> null; + case INCOMPATIBLE_CLIENT -> new RealmsClientOutdatedScreen(lastScreen); + case NEEDS_PARENTAL_CONSENT -> new RealmsParentalConsentScreen(lastScreen); + case AUTHENTICATION_ERROR -> new RealmsGenericErrorScreen( + Component.translatable("mco.error.invalid.session.title"), Component.translatable("mco.error.invalid.session.message"), lastScreen + ); + case UNEXPECTED_ERROR -> new RealmsGenericErrorScreen((RealmsServiceException)Objects.requireNonNull(this.exception), lastScreen); + }); + } + } + + @Environment(EnvType.CLIENT) + public static enum Type { + SUCCESS, + INCOMPATIBLE_CLIENT, + NEEDS_PARENTAL_CONSENT, + AUTHENTICATION_ERROR, + UNEXPECTED_ERROR; + } +} diff --git a/com/mojang/realmsclient/RealmsMainScreen.java b/com/mojang/realmsclient/RealmsMainScreen.java new file mode 100644 index 00000000..56bfddab --- /dev/null +++ b/com/mojang/realmsclient/RealmsMainScreen.java @@ -0,0 +1,1299 @@ +package com.mojang.realmsclient; + +import com.google.common.collect.Lists; +import com.google.common.util.concurrent.RateLimiter; +import com.mojang.authlib.yggdrasil.ProfileResult; +import com.mojang.logging.LogUtils; +import com.mojang.math.Axis; +import com.mojang.realmsclient.client.Ping; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.PingResult; +import com.mojang.realmsclient.dto.RealmsNotification; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsServerPlayerLists; +import com.mojang.realmsclient.dto.RegionPingResult; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.gui.RealmsDataFetcher; +import com.mojang.realmsclient.gui.RealmsServerList; +import com.mojang.realmsclient.gui.screens.AddRealmPopupScreen; +import com.mojang.realmsclient.gui.screens.RealmsConfigureWorldScreen; +import com.mojang.realmsclient.gui.screens.RealmsCreateRealmScreen; +import com.mojang.realmsclient.gui.screens.RealmsGenericErrorScreen; +import com.mojang.realmsclient.gui.screens.RealmsLongRunningMcoTaskScreen; +import com.mojang.realmsclient.gui.screens.RealmsPendingInvitesScreen; +import com.mojang.realmsclient.gui.screens.RealmsPopups; +import com.mojang.realmsclient.gui.task.DataFetcher; +import com.mojang.realmsclient.util.RealmsPersistence; +import com.mojang.realmsclient.util.RealmsUtil; +import com.mojang.realmsclient.util.task.GetServerDetailsTask; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; +import java.util.function.Supplier; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; +import net.minecraft.SharedConstants; +import net.minecraft.Util; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.CycleButton; +import net.minecraft.client.gui.components.FocusableTextWidget; +import net.minecraft.client.gui.components.ImageButton; +import net.minecraft.client.gui.components.ImageWidget; +import net.minecraft.client.gui.components.LoadingDotsWidget; +import net.minecraft.client.gui.components.MultiLineTextWidget; +import net.minecraft.client.gui.components.ObjectSelectionList; +import net.minecraft.client.gui.components.PlayerFaceRenderer; +import net.minecraft.client.gui.components.PopupScreen; +import net.minecraft.client.gui.components.SpriteIconButton; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.gui.components.WidgetSprites; +import net.minecraft.client.gui.components.WidgetTooltipHolder; +import net.minecraft.client.gui.layouts.FrameLayout; +import net.minecraft.client.gui.layouts.GridLayout; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.Layout; +import net.minecraft.client.gui.layouts.LayoutSettings; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.layouts.SpacerElement; +import net.minecraft.client.gui.navigation.CommonInputs; +import net.minecraft.client.gui.navigation.ScreenRectangle; +import net.minecraft.client.gui.screens.ConfirmLinkScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientActivePlayersTooltip; +import net.minecraft.client.resources.sounds.SimpleSoundInstance; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsObjectSelectionList; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.CommonLinks; +import net.minecraft.util.Mth; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsMainScreen extends RealmsScreen { + static final ResourceLocation INFO_SPRITE = ResourceLocation.withDefaultNamespace("icon/info"); + static final ResourceLocation NEW_REALM_SPRITE = ResourceLocation.withDefaultNamespace("icon/new_realm"); + static final ResourceLocation EXPIRED_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/expired"); + static final ResourceLocation EXPIRES_SOON_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/expires_soon"); + static final ResourceLocation OPEN_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/open"); + static final ResourceLocation CLOSED_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/closed"); + private static final ResourceLocation INVITE_SPRITE = ResourceLocation.withDefaultNamespace("icon/invite"); + private static final ResourceLocation NEWS_SPRITE = ResourceLocation.withDefaultNamespace("icon/news"); + static final Logger LOGGER = LogUtils.getLogger(); + private static final ResourceLocation LOGO_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/title/realms.png"); + private static final ResourceLocation NO_REALMS_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/no_realms.png"); + private static final Component TITLE = Component.translatable("menu.online"); + private static final Component LOADING_TEXT = Component.translatable("mco.selectServer.loading"); + static final Component SERVER_UNITIALIZED_TEXT = Component.translatable("mco.selectServer.uninitialized"); + static final Component SUBSCRIPTION_EXPIRED_TEXT = Component.translatable("mco.selectServer.expiredList"); + private static final Component SUBSCRIPTION_RENEW_TEXT = Component.translatable("mco.selectServer.expiredRenew"); + static final Component TRIAL_EXPIRED_TEXT = Component.translatable("mco.selectServer.expiredTrial"); + private static final Component PLAY_TEXT = Component.translatable("mco.selectServer.play"); + private static final Component LEAVE_SERVER_TEXT = Component.translatable("mco.selectServer.leave"); + private static final Component CONFIGURE_SERVER_TEXT = Component.translatable("mco.selectServer.configure"); + static final Component SERVER_EXPIRED_TOOLTIP = Component.translatable("mco.selectServer.expired"); + static final Component SERVER_EXPIRES_SOON_TOOLTIP = Component.translatable("mco.selectServer.expires.soon"); + static final Component SERVER_EXPIRES_IN_DAY_TOOLTIP = Component.translatable("mco.selectServer.expires.day"); + static final Component SERVER_OPEN_TOOLTIP = Component.translatable("mco.selectServer.open"); + static final Component SERVER_CLOSED_TOOLTIP = Component.translatable("mco.selectServer.closed"); + static final Component UNITIALIZED_WORLD_NARRATION = Component.translatable("gui.narrate.button", SERVER_UNITIALIZED_TEXT); + private static final Component NO_REALMS_TEXT = Component.translatable("mco.selectServer.noRealms"); + private static final Component NO_PENDING_INVITES = Component.translatable("mco.invites.nopending"); + private static final Component PENDING_INVITES = Component.translatable("mco.invites.pending"); + private static final Component INCOMPATIBLE_POPUP_TITLE = Component.translatable("mco.compatibility.incompatible.popup.title"); + private static final Component INCOMPATIBLE_RELEASE_TYPE_POPUP_MESSAGE = Component.translatable("mco.compatibility.incompatible.releaseType.popup.message"); + private static final int BUTTON_WIDTH = 100; + private static final int BUTTON_COLUMNS = 3; + private static final int BUTTON_SPACING = 4; + private static final int CONTENT_WIDTH = 308; + private static final int LOGO_WIDTH = 128; + private static final int LOGO_HEIGHT = 34; + private static final int LOGO_TEXTURE_WIDTH = 128; + private static final int LOGO_TEXTURE_HEIGHT = 64; + private static final int LOGO_PADDING = 5; + private static final int HEADER_HEIGHT = 44; + private static final int FOOTER_PADDING = 11; + private static final int NEW_REALM_SPRITE_WIDTH = 40; + private static final int NEW_REALM_SPRITE_HEIGHT = 20; + private static final int ENTRY_WIDTH = 216; + private static final int ITEM_HEIGHT = 36; + private static final boolean SNAPSHOT = !SharedConstants.getCurrentVersion().isStable(); + private static boolean snapshotToggle = SNAPSHOT; + private final CompletableFuture availability = RealmsAvailability.get(); + @Nullable + private DataFetcher.Subscription dataSubscription; + private final Set handledSeenNotifications = new HashSet(); + private static boolean regionsPinged; + private final RateLimiter inviteNarrationLimiter; + private final Screen lastScreen; + private Button playButton; + private Button backButton; + private Button renewButton; + private Button configureButton; + private Button leaveButton; + RealmsMainScreen.RealmSelectionList realmSelectionList; + private RealmsServerList serverList; + private List availableSnapshotServers = List.of(); + RealmsServerPlayerLists onlinePlayersPerRealm = new RealmsServerPlayerLists(); + private volatile boolean trialsAvailable; + @Nullable + private volatile String newsLink; + long lastClickTime; + private final List notifications = new ArrayList(); + private Button addRealmButton; + private RealmsMainScreen.NotificationButton pendingInvitesButton; + private RealmsMainScreen.NotificationButton newsButton; + private RealmsMainScreen.LayoutState activeLayoutState; + @Nullable + private HeaderAndFooterLayout layout; + + public RealmsMainScreen(Screen lastScreen) { + super(TITLE); + this.lastScreen = lastScreen; + this.inviteNarrationLimiter = RateLimiter.create(0.016666668F); + } + + @Override + public void init() { + this.serverList = new RealmsServerList(this.minecraft); + this.realmSelectionList = new RealmsMainScreen.RealmSelectionList(); + Component component = Component.translatable("mco.invites.title"); + this.pendingInvitesButton = new RealmsMainScreen.NotificationButton( + component, INVITE_SPRITE, button -> this.minecraft.setScreen(new RealmsPendingInvitesScreen(this, component)) + ); + Component component2 = Component.translatable("mco.news"); + this.newsButton = new RealmsMainScreen.NotificationButton(component2, NEWS_SPRITE, button -> { + String string = this.newsLink; + if (string != null) { + ConfirmLinkScreen.confirmLinkNow(this, string); + if (this.newsButton.notificationCount() != 0) { + RealmsPersistence.RealmsPersistenceData realmsPersistenceData = RealmsPersistence.readFile(); + realmsPersistenceData.hasUnreadNews = false; + RealmsPersistence.writeFile(realmsPersistenceData); + this.newsButton.setNotificationCount(0); + } + } + }); + this.newsButton.setTooltip(Tooltip.create(component2)); + this.playButton = Button.builder(PLAY_TEXT, button -> play(this.getSelectedServer(), this)).width(100).build(); + this.configureButton = Button.builder(CONFIGURE_SERVER_TEXT, button -> this.configureClicked(this.getSelectedServer())).width(100).build(); + this.renewButton = Button.builder(SUBSCRIPTION_RENEW_TEXT, button -> this.onRenew(this.getSelectedServer())).width(100).build(); + this.leaveButton = Button.builder(LEAVE_SERVER_TEXT, button -> this.leaveClicked(this.getSelectedServer())).width(100).build(); + this.addRealmButton = Button.builder(Component.translatable("mco.selectServer.purchase"), button -> this.openTrialAvailablePopup()).size(100, 20).build(); + this.backButton = Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).width(100).build(); + if (RealmsClient.ENVIRONMENT == RealmsClient.Environment.STAGE) { + this.addRenderableWidget( + CycleButton.booleanBuilder(Component.literal("Snapshot"), Component.literal("Release")) + .create(5, 5, 100, 20, Component.literal("Realm"), (cycleButton, boolean_) -> { + snapshotToggle = boolean_; + this.availableSnapshotServers = List.of(); + this.debugRefreshDataFetchers(); + }) + ); + } + + this.updateLayout(RealmsMainScreen.LayoutState.LOADING); + this.updateButtonStates(); + this.availability.thenAcceptAsync(result -> { + Screen screen = result.createErrorScreen(this.lastScreen); + if (screen == null) { + this.dataSubscription = this.initDataFetcher(this.minecraft.realmsDataFetcher()); + } else { + this.minecraft.setScreen(screen); + } + }, this.screenExecutor); + } + + public static boolean isSnapshot() { + return SNAPSHOT && snapshotToggle; + } + + @Override + protected void repositionElements() { + if (this.layout != null) { + this.realmSelectionList.updateSize(this.width, this.layout); + this.layout.arrangeElements(); + } + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + private void updateLayout() { + if (this.serverList.isEmpty() && this.availableSnapshotServers.isEmpty() && this.notifications.isEmpty()) { + this.updateLayout(RealmsMainScreen.LayoutState.NO_REALMS); + } else { + this.updateLayout(RealmsMainScreen.LayoutState.LIST); + } + } + + private void updateLayout(RealmsMainScreen.LayoutState layoutState) { + if (this.activeLayoutState != layoutState) { + if (this.layout != null) { + this.layout.visitWidgets(guiEventListener -> this.removeWidget(guiEventListener)); + } + + this.layout = this.createLayout(layoutState); + this.activeLayoutState = layoutState; + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + } + + private HeaderAndFooterLayout createLayout(RealmsMainScreen.LayoutState layoutState) { + HeaderAndFooterLayout headerAndFooterLayout = new HeaderAndFooterLayout(this); + headerAndFooterLayout.setHeaderHeight(44); + headerAndFooterLayout.addToHeader(this.createHeader()); + Layout layout = this.createFooter(layoutState); + layout.arrangeElements(); + headerAndFooterLayout.setFooterHeight(layout.getHeight() + 22); + headerAndFooterLayout.addToFooter(layout); + switch (layoutState) { + case LOADING: + headerAndFooterLayout.addToContents(new LoadingDotsWidget(this.font, LOADING_TEXT)); + break; + case NO_REALMS: + headerAndFooterLayout.addToContents(this.createNoRealmsContent()); + break; + case LIST: + headerAndFooterLayout.addToContents(this.realmSelectionList); + } + + return headerAndFooterLayout; + } + + private Layout createHeader() { + int i = 90; + LinearLayout linearLayout = LinearLayout.horizontal().spacing(4); + linearLayout.defaultCellSetting().alignVerticallyMiddle(); + linearLayout.addChild(this.pendingInvitesButton); + linearLayout.addChild(this.newsButton); + LinearLayout linearLayout2 = LinearLayout.horizontal(); + linearLayout2.defaultCellSetting().alignVerticallyMiddle(); + linearLayout2.addChild(SpacerElement.width(90)); + linearLayout2.addChild(ImageWidget.texture(128, 34, LOGO_LOCATION, 128, 64), LayoutSettings::alignHorizontallyCenter); + linearLayout2.addChild(new FrameLayout(90, 44)).addChild(linearLayout, LayoutSettings::alignHorizontallyRight); + return linearLayout2; + } + + private Layout createFooter(RealmsMainScreen.LayoutState layoutState) { + GridLayout gridLayout = new GridLayout().spacing(4); + GridLayout.RowHelper rowHelper = gridLayout.createRowHelper(3); + if (layoutState == RealmsMainScreen.LayoutState.LIST) { + rowHelper.addChild(this.playButton); + rowHelper.addChild(this.configureButton); + rowHelper.addChild(this.renewButton); + rowHelper.addChild(this.leaveButton); + } + + rowHelper.addChild(this.addRealmButton); + rowHelper.addChild(this.backButton); + return gridLayout; + } + + private LinearLayout createNoRealmsContent() { + LinearLayout linearLayout = LinearLayout.vertical().spacing(8); + linearLayout.defaultCellSetting().alignHorizontallyCenter(); + linearLayout.addChild(ImageWidget.texture(130, 64, NO_REALMS_LOCATION, 130, 64)); + FocusableTextWidget focusableTextWidget = new FocusableTextWidget(308, NO_REALMS_TEXT, this.font, false, 4); + linearLayout.addChild(focusableTextWidget); + return linearLayout; + } + + void updateButtonStates() { + RealmsServer realmsServer = this.getSelectedServer(); + this.addRealmButton.active = this.activeLayoutState != RealmsMainScreen.LayoutState.LOADING; + this.playButton.active = realmsServer != null && this.shouldPlayButtonBeActive(realmsServer); + this.renewButton.active = realmsServer != null && this.shouldRenewButtonBeActive(realmsServer); + this.leaveButton.active = realmsServer != null && this.shouldLeaveButtonBeActive(realmsServer); + this.configureButton.active = realmsServer != null && this.shouldConfigureButtonBeActive(realmsServer); + } + + boolean shouldPlayButtonBeActive(RealmsServer realmsServer) { + boolean bl = !realmsServer.expired && realmsServer.state == RealmsServer.State.OPEN; + return bl && (realmsServer.isCompatible() || realmsServer.needsUpgrade() || isSelfOwnedServer(realmsServer)); + } + + private boolean shouldRenewButtonBeActive(RealmsServer realmsServer) { + return realmsServer.expired && isSelfOwnedServer(realmsServer); + } + + private boolean shouldConfigureButtonBeActive(RealmsServer realmsServer) { + return isSelfOwnedServer(realmsServer) && realmsServer.state != RealmsServer.State.UNINITIALIZED; + } + + private boolean shouldLeaveButtonBeActive(RealmsServer realmsServer) { + return !isSelfOwnedServer(realmsServer); + } + + @Override + public void tick() { + super.tick(); + if (this.dataSubscription != null) { + this.dataSubscription.tick(); + } + } + + public static void refreshPendingInvites() { + Minecraft.getInstance().realmsDataFetcher().pendingInvitesTask.reset(); + } + + public static void refreshServerList() { + Minecraft.getInstance().realmsDataFetcher().serverListUpdateTask.reset(); + } + + private void debugRefreshDataFetchers() { + for (DataFetcher.Task task : this.minecraft.realmsDataFetcher().getTasks()) { + task.reset(); + } + } + + private DataFetcher.Subscription initDataFetcher(RealmsDataFetcher dataFetcher) { + DataFetcher.Subscription subscription = dataFetcher.dataFetcher.createSubscription(); + subscription.subscribe(dataFetcher.serverListUpdateTask, serverListData -> { + this.serverList.updateServersList(serverListData.serverList()); + this.availableSnapshotServers = serverListData.availableSnapshotServers(); + this.refreshListAndLayout(); + boolean bl = false; + + for (RealmsServer realmsServer : this.serverList) { + if (this.isSelfOwnedNonExpiredServer(realmsServer)) { + bl = true; + } + } + + if (!regionsPinged && bl) { + regionsPinged = true; + this.pingRegions(); + } + }); + callRealmsClient(RealmsClient::getNotifications, list -> { + this.notifications.clear(); + this.notifications.addAll(list); + + for (RealmsNotification realmsNotification : list) { + if (realmsNotification instanceof RealmsNotification.InfoPopup infoPopup) { + PopupScreen popupScreen = infoPopup.buildScreen(this, this::dismissNotification); + if (popupScreen != null) { + this.minecraft.setScreen(popupScreen); + this.markNotificationsAsSeen(List.of(realmsNotification)); + break; + } + } + } + + if (!this.notifications.isEmpty() && this.activeLayoutState != RealmsMainScreen.LayoutState.LOADING) { + this.refreshListAndLayout(); + } + }); + subscription.subscribe(dataFetcher.pendingInvitesTask, integer -> { + this.pendingInvitesButton.setNotificationCount(integer); + this.pendingInvitesButton.setTooltip(integer == 0 ? Tooltip.create(NO_PENDING_INVITES) : Tooltip.create(PENDING_INVITES)); + if (integer > 0 && this.inviteNarrationLimiter.tryAcquire(1)) { + this.minecraft.getNarrator().sayNow(Component.translatable("mco.configure.world.invite.narration", integer)); + } + }); + subscription.subscribe(dataFetcher.trialAvailabilityTask, boolean_ -> this.trialsAvailable = boolean_); + subscription.subscribe(dataFetcher.onlinePlayersTask, realmsServerPlayerLists -> this.onlinePlayersPerRealm = realmsServerPlayerLists); + subscription.subscribe(dataFetcher.newsTask, realmsNews -> { + dataFetcher.newsManager.updateUnreadNews(realmsNews); + this.newsLink = dataFetcher.newsManager.newsLink(); + this.newsButton.setNotificationCount(dataFetcher.newsManager.hasUnreadNews() ? Integer.MAX_VALUE : 0); + }); + return subscription; + } + + private void markNotificationsAsSeen(Collection notifications) { + List list = new ArrayList(notifications.size()); + + for (RealmsNotification realmsNotification : notifications) { + if (!realmsNotification.seen() && !this.handledSeenNotifications.contains(realmsNotification.uuid())) { + list.add(realmsNotification.uuid()); + } + } + + if (!list.isEmpty()) { + callRealmsClient(realmsClient -> { + realmsClient.notificationsSeen(list); + return null; + }, object -> this.handledSeenNotifications.addAll(list)); + } + } + + private static void callRealmsClient(RealmsMainScreen.RealmsCall call, Consumer onFinish) { + Minecraft minecraft = Minecraft.getInstance(); + CompletableFuture.supplyAsync(() -> { + try { + return call.request(RealmsClient.create(minecraft)); + } catch (RealmsServiceException var3) { + throw new RuntimeException(var3); + } + }).thenAcceptAsync(onFinish, minecraft).exceptionally(throwable -> { + LOGGER.error("Failed to execute call to Realms Service", throwable); + return null; + }); + } + + private void refreshListAndLayout() { + RealmsServer realmsServer = this.getSelectedServer(); + this.realmSelectionList.clear(); + + for (RealmsNotification realmsNotification : this.notifications) { + if (this.addListEntriesForNotification(realmsNotification)) { + this.markNotificationsAsSeen(List.of(realmsNotification)); + break; + } + } + + for (RealmsServer realmsServer2 : this.availableSnapshotServers) { + this.realmSelectionList.addEntry(new RealmsMainScreen.AvailableSnapshotEntry(realmsServer2)); + } + + for (RealmsServer realmsServer2 : this.serverList) { + RealmsMainScreen.Entry entry; + if (isSnapshot() && !realmsServer2.isSnapshotRealm()) { + if (realmsServer2.state == RealmsServer.State.UNINITIALIZED) { + continue; + } + + entry = new RealmsMainScreen.ParentEntry(realmsServer2); + } else { + entry = new RealmsMainScreen.ServerEntry(realmsServer2); + } + + this.realmSelectionList.addEntry(entry); + if (realmsServer != null && realmsServer.id == realmsServer2.id) { + this.realmSelectionList.setSelected(entry); + } + } + + this.updateLayout(); + this.updateButtonStates(); + } + + private boolean addListEntriesForNotification(RealmsNotification notification) { + if (!(notification instanceof RealmsNotification.VisitUrl visitUrl)) { + return false; + } else { + Component component = visitUrl.getMessage(); + int i = this.font.wordWrapHeight(component, 216); + int j = Mth.positiveCeilDiv(i + 7, 36) - 1; + this.realmSelectionList.addEntry(new RealmsMainScreen.NotificationMessageEntry(component, j + 2, visitUrl)); + + for (int k = 0; k < j; k++) { + this.realmSelectionList.addEntry(new RealmsMainScreen.EmptyEntry()); + } + + this.realmSelectionList.addEntry(new RealmsMainScreen.ButtonEntry(visitUrl.buildOpenLinkButton(this))); + return true; + } + } + + private void pingRegions() { + new Thread(() -> { + List list = Ping.pingAllRegions(); + RealmsClient realmsClient = RealmsClient.create(); + PingResult pingResult = new PingResult(); + pingResult.pingResults = list; + pingResult.realmIds = this.getOwnedNonExpiredRealmIds(); + + try { + realmsClient.sendPingResults(pingResult); + } catch (Throwable var5) { + LOGGER.warn("Could not send ping result to Realms: ", var5); + } + }).start(); + } + + private List getOwnedNonExpiredRealmIds() { + List list = Lists.newArrayList(); + + for (RealmsServer realmsServer : this.serverList) { + if (this.isSelfOwnedNonExpiredServer(realmsServer)) { + list.add(realmsServer.id); + } + } + + return list; + } + + private void onRenew(@Nullable RealmsServer realmsServer) { + if (realmsServer != null) { + String string = CommonLinks.extendRealms(realmsServer.remoteSubscriptionId, this.minecraft.getUser().getProfileId(), realmsServer.expiredTrial); + this.minecraft.keyboardHandler.setClipboard(string); + Util.getPlatform().openUri(string); + } + } + + private void configureClicked(@Nullable RealmsServer realmsServer) { + if (realmsServer != null && this.minecraft.isLocalPlayer(realmsServer.ownerUUID)) { + this.minecraft.setScreen(new RealmsConfigureWorldScreen(this, realmsServer.id)); + } + } + + private void leaveClicked(@Nullable RealmsServer realmsServer) { + if (realmsServer != null && !this.minecraft.isLocalPlayer(realmsServer.ownerUUID)) { + Component component = Component.translatable("mco.configure.world.leave.question.line1"); + this.minecraft.setScreen(RealmsPopups.infoPopupScreen(this, component, popupScreen -> this.leaveServer(realmsServer))); + } + } + + @Nullable + private RealmsServer getSelectedServer() { + return this.realmSelectionList.getSelected() instanceof RealmsMainScreen.ServerEntry serverEntry ? serverEntry.getServer() : null; + } + + private void leaveServer(RealmsServer server) { + (new Thread("Realms-leave-server") { + public void run() { + try { + RealmsClient realmsClient = RealmsClient.create(); + realmsClient.uninviteMyselfFrom(server.id); + RealmsMainScreen.this.minecraft.execute(RealmsMainScreen::refreshServerList); + } catch (RealmsServiceException var2) { + RealmsMainScreen.LOGGER.error("Couldn't configure world", (Throwable)var2); + RealmsMainScreen.this.minecraft.execute(() -> RealmsMainScreen.this.minecraft.setScreen(new RealmsGenericErrorScreen(var2, RealmsMainScreen.this))); + } + } + }).start(); + this.minecraft.setScreen(this); + } + + void dismissNotification(UUID uuid) { + callRealmsClient(realmsClient -> { + realmsClient.notificationsDismiss(List.of(uuid)); + return null; + }, object -> { + this.notifications.removeIf(realmsNotification -> realmsNotification.dismissable() && uuid.equals(realmsNotification.uuid())); + this.refreshListAndLayout(); + }); + } + + public void resetScreen() { + this.realmSelectionList.setSelected(null); + refreshServerList(); + } + + @Override + public Component getNarrationMessage() { + return (Component)(switch (this.activeLayoutState) { + case LOADING -> CommonComponents.joinForNarration(super.getNarrationMessage(), LOADING_TEXT); + case NO_REALMS -> CommonComponents.joinForNarration(super.getNarrationMessage(), NO_REALMS_TEXT); + case LIST -> super.getNarrationMessage(); + }); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + if (isSnapshot()) { + guiGraphics.drawString(this.font, "Minecraft " + SharedConstants.getCurrentVersion().getName(), 2, this.height - 10, -1); + } + + if (this.trialsAvailable && this.addRealmButton.active) { + AddRealmPopupScreen.renderDiamond(guiGraphics, this.addRealmButton); + } + + switch (RealmsClient.ENVIRONMENT) { + case STAGE: + this.renderEnvironment(guiGraphics, "STAGE!", -256); + break; + case LOCAL: + this.renderEnvironment(guiGraphics, "LOCAL!", 8388479); + } + } + + private void openTrialAvailablePopup() { + this.minecraft.setScreen(new AddRealmPopupScreen(this, this.trialsAvailable)); + } + + public static void play(@Nullable RealmsServer realmsServer, Screen lastScreen) { + play(realmsServer, lastScreen, false); + } + + public static void play(@Nullable RealmsServer realmsServer, Screen lastScreen, boolean allowSnapshots) { + if (realmsServer != null) { + if (!isSnapshot() || allowSnapshots || realmsServer.isMinigameActive()) { + Minecraft.getInstance().setScreen(new RealmsLongRunningMcoTaskScreen(lastScreen, new GetServerDetailsTask(lastScreen, realmsServer))); + return; + } + + switch (realmsServer.compatibility) { + case COMPATIBLE: + Minecraft.getInstance().setScreen(new RealmsLongRunningMcoTaskScreen(lastScreen, new GetServerDetailsTask(lastScreen, realmsServer))); + break; + case UNVERIFIABLE: + confirmToPlay( + realmsServer, + lastScreen, + Component.translatable("mco.compatibility.unverifiable.title").withColor(-171), + Component.translatable("mco.compatibility.unverifiable.message"), + CommonComponents.GUI_CONTINUE + ); + break; + case NEEDS_DOWNGRADE: + confirmToPlay( + realmsServer, + lastScreen, + Component.translatable("selectWorld.backupQuestion.downgrade").withColor(-2142128), + Component.translatable( + "mco.compatibility.downgrade.description", + Component.literal(realmsServer.activeVersion).withColor(-171), + Component.literal(SharedConstants.getCurrentVersion().getName()).withColor(-171) + ), + Component.translatable("mco.compatibility.downgrade") + ); + break; + case NEEDS_UPGRADE: + upgradeRealmAndPlay(realmsServer, lastScreen); + break; + case INCOMPATIBLE: + Minecraft.getInstance() + .setScreen( + new PopupScreen.Builder(lastScreen, INCOMPATIBLE_POPUP_TITLE) + .setMessage( + Component.translatable( + "mco.compatibility.incompatible.series.popup.message", + Component.literal(realmsServer.activeVersion).withColor(-171), + Component.literal(SharedConstants.getCurrentVersion().getName()).withColor(-171) + ) + ) + .addButton(CommonComponents.GUI_BACK, PopupScreen::onClose) + .build() + ); + break; + case RELEASE_TYPE_INCOMPATIBLE: + Minecraft.getInstance() + .setScreen( + new PopupScreen.Builder(lastScreen, INCOMPATIBLE_POPUP_TITLE) + .setMessage(INCOMPATIBLE_RELEASE_TYPE_POPUP_MESSAGE) + .addButton(CommonComponents.GUI_BACK, PopupScreen::onClose) + .build() + ); + } + } + } + + private static void confirmToPlay(RealmsServer realmsServer, Screen lastScreen, Component title, Component message, Component confirmButton) { + Minecraft.getInstance().setScreen(new PopupScreen.Builder(lastScreen, title).setMessage(message).addButton(confirmButton, popupScreen -> { + Minecraft.getInstance().setScreen(new RealmsLongRunningMcoTaskScreen(lastScreen, new GetServerDetailsTask(lastScreen, realmsServer))); + refreshServerList(); + }).addButton(CommonComponents.GUI_CANCEL, PopupScreen::onClose).build()); + } + + private static void upgradeRealmAndPlay(RealmsServer server, Screen lastScreen) { + Component component = Component.translatable("mco.compatibility.upgrade.title").withColor(-171); + Component component2 = Component.translatable("mco.compatibility.upgrade"); + Component component3 = Component.literal(server.activeVersion).withColor(-171); + Component component4 = Component.literal(SharedConstants.getCurrentVersion().getName()).withColor(-171); + Component component5 = isSelfOwnedServer(server) + ? Component.translatable("mco.compatibility.upgrade.description", component3, component4) + : Component.translatable("mco.compatibility.upgrade.friend.description", component3, component4); + confirmToPlay(server, lastScreen, component, component5, component2); + } + + public static Component getVersionComponent(String version, boolean compatible) { + return getVersionComponent(version, compatible ? -8355712 : -2142128); + } + + public static Component getVersionComponent(String version, int color) { + return (Component)(StringUtils.isBlank(version) ? CommonComponents.EMPTY : Component.translatable("mco.version", Component.literal(version).withColor(color))); + } + + static boolean isSelfOwnedServer(RealmsServer server) { + return Minecraft.getInstance().isLocalPlayer(server.ownerUUID); + } + + private boolean isSelfOwnedNonExpiredServer(RealmsServer server) { + return isSelfOwnedServer(server) && !server.expired; + } + + private void renderEnvironment(GuiGraphics guiGraphics, String text, int color) { + guiGraphics.pose().pushPose(); + guiGraphics.pose().translate((float)(this.width / 2 - 25), 20.0F, 0.0F); + guiGraphics.pose().mulPose(Axis.ZP.rotationDegrees(-20.0F)); + guiGraphics.pose().scale(1.5F, 1.5F, 1.5F); + guiGraphics.drawString(this.font, text, 0, 0, color, false); + guiGraphics.pose().popPose(); + } + + @Environment(EnvType.CLIENT) + class AvailableSnapshotEntry extends RealmsMainScreen.Entry { + private static final Component START_SNAPSHOT_REALM = Component.translatable("mco.snapshot.start"); + private static final int TEXT_PADDING = 5; + private final WidgetTooltipHolder tooltip = new WidgetTooltipHolder(); + private final RealmsServer parent; + + public AvailableSnapshotEntry(final RealmsServer parent) { + this.parent = parent; + this.tooltip.set(Tooltip.create(Component.translatable("mco.snapshot.tooltip"))); + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + guiGraphics.blitSprite(RealmsMainScreen.NEW_REALM_SPRITE, left - 5, top + height / 2 - 10, 40, 20); + int i = top + height / 2 - 9 / 2; + guiGraphics.drawString(RealmsMainScreen.this.font, START_SNAPSHOT_REALM, left + 40 - 2, i - 5, 8388479); + guiGraphics.drawString(RealmsMainScreen.this.font, Component.translatable("mco.snapshot.description", this.parent.name), left + 40 - 2, i + 5, -8355712); + this.tooltip.refreshTooltipForNextRenderPass(hovering, this.isFocused(), new ScreenRectangle(left, top, width, height)); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + this.addSnapshotRealm(); + return true; + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (CommonInputs.selected(keyCode)) { + this.addSnapshotRealm(); + return true; + } else { + return super.keyPressed(keyCode, scanCode, modifiers); + } + } + + private void addSnapshotRealm() { + RealmsMainScreen.this.minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + RealmsMainScreen.this.minecraft + .setScreen( + new PopupScreen.Builder(RealmsMainScreen.this, Component.translatable("mco.snapshot.createSnapshotPopup.title")) + .setMessage(Component.translatable("mco.snapshot.createSnapshotPopup.text")) + .addButton( + Component.translatable("mco.selectServer.create"), + popupScreen -> RealmsMainScreen.this.minecraft.setScreen(new RealmsCreateRealmScreen(RealmsMainScreen.this, this.parent.id)) + ) + .addButton(CommonComponents.GUI_CANCEL, PopupScreen::onClose) + .build() + ); + } + + @Override + public Component getNarration() { + return Component.translatable( + "gui.narrate.button", CommonComponents.joinForNarration(START_SNAPSHOT_REALM, Component.translatable("mco.snapshot.description", this.parent.name)) + ); + } + } + + @Environment(EnvType.CLIENT) + class ButtonEntry extends RealmsMainScreen.Entry { + private final Button button; + + public ButtonEntry(final Button button) { + this.button = button; + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + this.button.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(mouseX, mouseY, button); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + return this.button.keyPressed(keyCode, scanCode, modifiers) ? true : super.keyPressed(keyCode, scanCode, modifiers); + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + this.button.setPosition(RealmsMainScreen.this.width / 2 - 75, top + 4); + this.button.render(guiGraphics, mouseX, mouseY, partialTick); + } + + @Override + public void setFocused(boolean focused) { + super.setFocused(focused); + this.button.setFocused(focused); + } + + @Override + public Component getNarration() { + return this.button.getMessage(); + } + } + + @Environment(EnvType.CLIENT) + static class CrossButton extends ImageButton { + private static final WidgetSprites SPRITES = new WidgetSprites( + ResourceLocation.withDefaultNamespace("widget/cross_button"), ResourceLocation.withDefaultNamespace("widget/cross_button_highlighted") + ); + + protected CrossButton(Button.OnPress onPress, Component message) { + super(0, 0, 14, 14, SPRITES, onPress); + this.setTooltip(Tooltip.create(message)); + } + } + + @Environment(EnvType.CLIENT) + class EmptyEntry extends RealmsMainScreen.Entry { + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + } + + @Override + public Component getNarration() { + return Component.empty(); + } + } + + @Environment(EnvType.CLIENT) + abstract class Entry extends ObjectSelectionList.Entry { + protected static final int STATUS_LIGHT_WIDTH = 10; + private static final int STATUS_LIGHT_HEIGHT = 28; + protected static final int PADDING_X = 7; + protected static final int PADDING_Y = 2; + + protected void renderStatusLights(RealmsServer realmsServer, GuiGraphics guiGraphics, int x, int y, int mouseX, int mouseY) { + int i = x - 10 - 7; + int j = y + 2; + if (realmsServer.expired) { + this.drawRealmStatus(guiGraphics, i, j, mouseX, mouseY, RealmsMainScreen.EXPIRED_SPRITE, () -> RealmsMainScreen.SERVER_EXPIRED_TOOLTIP); + } else if (realmsServer.state == RealmsServer.State.CLOSED) { + this.drawRealmStatus(guiGraphics, i, j, mouseX, mouseY, RealmsMainScreen.CLOSED_SPRITE, () -> RealmsMainScreen.SERVER_CLOSED_TOOLTIP); + } else if (RealmsMainScreen.isSelfOwnedServer(realmsServer) && realmsServer.daysLeft < 7) { + this.drawRealmStatus( + guiGraphics, + i, + j, + mouseX, + mouseY, + RealmsMainScreen.EXPIRES_SOON_SPRITE, + () -> { + if (realmsServer.daysLeft <= 0) { + return RealmsMainScreen.SERVER_EXPIRES_SOON_TOOLTIP; + } else { + return (Component)(realmsServer.daysLeft == 1 + ? RealmsMainScreen.SERVER_EXPIRES_IN_DAY_TOOLTIP + : Component.translatable("mco.selectServer.expires.days", realmsServer.daysLeft)); + } + } + ); + } else if (realmsServer.state == RealmsServer.State.OPEN) { + this.drawRealmStatus(guiGraphics, i, j, mouseX, mouseY, RealmsMainScreen.OPEN_SPRITE, () -> RealmsMainScreen.SERVER_OPEN_TOOLTIP); + } + } + + private void drawRealmStatus( + GuiGraphics guiGraphics, int x, int y, int mouseX, int mouseY, ResourceLocation spriteLocation, Supplier tooltipSupplier + ) { + guiGraphics.blitSprite(spriteLocation, x, y, 10, 28); + if (RealmsMainScreen.this.realmSelectionList.isMouseOver(mouseX, mouseY) && mouseX >= x && mouseX <= x + 10 && mouseY >= y && mouseY <= y + 28) { + RealmsMainScreen.this.setTooltipForNextRenderPass((Component)tooltipSupplier.get()); + } + } + + protected void renderThirdLine(GuiGraphics guiGraphics, int top, int left, RealmsServer server) { + int i = this.textX(left); + int j = this.firstLineY(top); + int k = this.thirdLineY(j); + if (!RealmsMainScreen.isSelfOwnedServer(server)) { + guiGraphics.drawString(RealmsMainScreen.this.font, server.owner, i, this.thirdLineY(j), -8355712, false); + } else if (server.expired) { + Component component = server.expiredTrial ? RealmsMainScreen.TRIAL_EXPIRED_TEXT : RealmsMainScreen.SUBSCRIPTION_EXPIRED_TEXT; + guiGraphics.drawString(RealmsMainScreen.this.font, component, i, k, -2142128, false); + } + } + + protected void renderClampedString(GuiGraphics guiGraphics, String text, int minX, int y, int maxX, int color) { + int i = maxX - minX; + if (RealmsMainScreen.this.font.width(text) > i) { + String string = RealmsMainScreen.this.font.plainSubstrByWidth(text, i - RealmsMainScreen.this.font.width("... ")); + guiGraphics.drawString(RealmsMainScreen.this.font, string + "...", minX, y, color, false); + } else { + guiGraphics.drawString(RealmsMainScreen.this.font, text, minX, y, color, false); + } + } + + protected int versionTextX(int left, int width, Component versionComponent) { + return left + width - RealmsMainScreen.this.font.width(versionComponent) - 20; + } + + protected int firstLineY(int top) { + return top + 1; + } + + protected int lineHeight() { + return 2 + 9; + } + + protected int textX(int left) { + return left + 36 + 2; + } + + protected int secondLineY(int firstLineY) { + return firstLineY + this.lineHeight(); + } + + protected int thirdLineY(int firstLineY) { + return firstLineY + this.lineHeight() * 2; + } + } + + @Environment(EnvType.CLIENT) + static enum LayoutState { + LOADING, + NO_REALMS, + LIST; + } + + @Environment(EnvType.CLIENT) + static class NotificationButton extends SpriteIconButton.CenteredIcon { + private static final ResourceLocation[] NOTIFICATION_ICONS = new ResourceLocation[]{ + ResourceLocation.withDefaultNamespace("notification/1"), + ResourceLocation.withDefaultNamespace("notification/2"), + ResourceLocation.withDefaultNamespace("notification/3"), + ResourceLocation.withDefaultNamespace("notification/4"), + ResourceLocation.withDefaultNamespace("notification/5"), + ResourceLocation.withDefaultNamespace("notification/more") + }; + private static final int UNKNOWN_COUNT = Integer.MAX_VALUE; + private static final int SIZE = 20; + private static final int SPRITE_SIZE = 14; + private int notificationCount; + + public NotificationButton(Component message, ResourceLocation sprite, Button.OnPress onPress) { + super(20, 20, message, 14, 14, sprite, onPress, null); + } + + int notificationCount() { + return this.notificationCount; + } + + public void setNotificationCount(int notificationCount) { + this.notificationCount = notificationCount; + } + + @Override + public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.renderWidget(guiGraphics, mouseX, mouseY, partialTick); + if (this.active && this.notificationCount != 0) { + this.drawNotificationCounter(guiGraphics); + } + } + + private void drawNotificationCounter(GuiGraphics guiGraphics) { + guiGraphics.blitSprite(NOTIFICATION_ICONS[Math.min(this.notificationCount, 6) - 1], this.getX() + this.getWidth() - 5, this.getY() - 3, 8, 8); + } + } + + @Environment(EnvType.CLIENT) + class NotificationMessageEntry extends RealmsMainScreen.Entry { + private static final int SIDE_MARGINS = 40; + private static final int OUTLINE_COLOR = -12303292; + private final Component text; + private final int frameItemHeight; + private final List children = new ArrayList(); + @Nullable + private final RealmsMainScreen.CrossButton dismissButton; + private final MultiLineTextWidget textWidget; + private final GridLayout gridLayout; + private final FrameLayout textFrame; + private int lastEntryWidth = -1; + + public NotificationMessageEntry(final Component text, final int frameItemHeight, final RealmsNotification notification) { + this.text = text; + this.frameItemHeight = frameItemHeight; + this.gridLayout = new GridLayout(); + int i = 7; + this.gridLayout.addChild(ImageWidget.sprite(20, 20, RealmsMainScreen.INFO_SPRITE), 0, 0, this.gridLayout.newCellSettings().padding(7, 7, 0, 0)); + this.gridLayout.addChild(SpacerElement.width(40), 0, 0); + this.textFrame = this.gridLayout.addChild(new FrameLayout(0, 9 * 3 * (frameItemHeight - 1)), 0, 1, this.gridLayout.newCellSettings().paddingTop(7)); + this.textWidget = this.textFrame + .addChild( + new MultiLineTextWidget(text, RealmsMainScreen.this.font).setCentered(true), + this.textFrame.newChildLayoutSettings().alignHorizontallyCenter().alignVerticallyTop() + ); + this.gridLayout.addChild(SpacerElement.width(40), 0, 2); + if (notification.dismissable()) { + this.dismissButton = this.gridLayout + .addChild( + new RealmsMainScreen.CrossButton( + button -> RealmsMainScreen.this.dismissNotification(notification.uuid()), Component.translatable("mco.notification.dismiss") + ), + 0, + 2, + this.gridLayout.newCellSettings().alignHorizontallyRight().padding(0, 7, 7, 0) + ); + } else { + this.dismissButton = null; + } + + this.gridLayout.visitWidgets(this.children::add); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + return this.dismissButton != null && this.dismissButton.keyPressed(keyCode, scanCode, modifiers) ? true : super.keyPressed(keyCode, scanCode, modifiers); + } + + private void updateEntryWidth(int entryWidth) { + if (this.lastEntryWidth != entryWidth) { + this.refreshLayout(entryWidth); + this.lastEntryWidth = entryWidth; + } + } + + private void refreshLayout(int width) { + int i = width - 80; + this.textFrame.setMinWidth(i); + this.textWidget.setMaxWidth(i); + this.gridLayout.arrangeElements(); + } + + @Override + public void renderBack( + GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean isMouseOver, float partialTick + ) { + super.renderBack(guiGraphics, index, top, left, width, height, mouseX, mouseY, isMouseOver, partialTick); + guiGraphics.renderOutline(left - 2, top - 2, width, 36 * this.frameItemHeight - 2, -12303292); + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + this.gridLayout.setPosition(left, top); + this.updateEntryWidth(width - 4); + this.children.forEach(abstractWidget -> abstractWidget.render(guiGraphics, mouseX, mouseY, partialTick)); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (this.dismissButton != null) { + this.dismissButton.mouseClicked(mouseX, mouseY, button); + } + + return super.mouseClicked(mouseX, mouseY, button); + } + + @Override + public Component getNarration() { + return this.text; + } + } + + @Environment(EnvType.CLIENT) + class ParentEntry extends RealmsMainScreen.Entry { + private final RealmsServer server; + private final WidgetTooltipHolder tooltip = new WidgetTooltipHolder(); + + public ParentEntry(final RealmsServer server) { + this.server = server; + if (!server.expired) { + this.tooltip.set(Tooltip.create(Component.translatable("mco.snapshot.parent.tooltip"))); + } + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + int i = this.textX(left); + int j = this.firstLineY(top); + RealmsUtil.renderPlayerFace(guiGraphics, left, top, 32, this.server.ownerUUID); + Component component = RealmsMainScreen.getVersionComponent(this.server.activeVersion, -8355712); + int k = this.versionTextX(left, width, component); + this.renderClampedString(guiGraphics, this.server.getName(), i, j, k, -8355712); + if (component != CommonComponents.EMPTY) { + guiGraphics.drawString(RealmsMainScreen.this.font, component, k, j, -8355712, false); + } + + guiGraphics.drawString(RealmsMainScreen.this.font, this.server.getDescription(), i, this.secondLineY(j), -8355712, false); + this.renderThirdLine(guiGraphics, top, left, this.server); + this.renderStatusLights(this.server, guiGraphics, left + width, top, mouseX, mouseY); + this.tooltip.refreshTooltipForNextRenderPass(hovering, this.isFocused(), new ScreenRectangle(left, top, width, height)); + } + + @Override + public Component getNarration() { + return Component.literal(this.server.name); + } + } + + @Environment(EnvType.CLIENT) + class RealmSelectionList extends RealmsObjectSelectionList { + public RealmSelectionList() { + super(RealmsMainScreen.this.width, RealmsMainScreen.this.height, 0, 36); + } + + public void setSelected(@Nullable RealmsMainScreen.Entry entry) { + super.setSelected(entry); + RealmsMainScreen.this.updateButtonStates(); + } + + @Override + public int getMaxPosition() { + return this.getItemCount() * 36; + } + + @Override + public int getRowWidth() { + return 300; + } + } + + @Environment(EnvType.CLIENT) + interface RealmsCall { + T request(RealmsClient realmsClient) throws RealmsServiceException; + } + + @Environment(EnvType.CLIENT) + class ServerEntry extends RealmsMainScreen.Entry { + private static final Component ONLINE_PLAYERS_TOOLTIP_HEADER = Component.translatable("mco.onlinePlayers"); + private static final int PLAYERS_ONLINE_SPRITE_SIZE = 9; + private static final int SKIN_HEAD_LARGE_WIDTH = 36; + private final RealmsServer serverData; + private final WidgetTooltipHolder tooltip = new WidgetTooltipHolder(); + + public ServerEntry(final RealmsServer serverData) { + this.serverData = serverData; + boolean bl = RealmsMainScreen.isSelfOwnedServer(serverData); + if (RealmsMainScreen.isSnapshot() && bl && serverData.isSnapshotRealm()) { + this.tooltip.set(Tooltip.create(Component.translatable("mco.snapshot.paired", serverData.parentWorldName))); + } else if (!bl && serverData.needsDowngrade()) { + this.tooltip.set(Tooltip.create(Component.translatable("mco.snapshot.friendsRealm.downgrade", serverData.activeVersion))); + } + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + if (this.serverData.state == RealmsServer.State.UNINITIALIZED) { + guiGraphics.blitSprite(RealmsMainScreen.NEW_REALM_SPRITE, left - 5, top + height / 2 - 10, 40, 20); + int i = top + height / 2 - 9 / 2; + guiGraphics.drawString(RealmsMainScreen.this.font, RealmsMainScreen.SERVER_UNITIALIZED_TEXT, left + 40 - 2, i, 8388479); + } else { + this.renderStatusLights(this.serverData, guiGraphics, left + 36, top, mouseX, mouseY); + RealmsUtil.renderPlayerFace(guiGraphics, left, top, 32, this.serverData.ownerUUID); + this.renderFirstLine(guiGraphics, top, left, width); + this.renderSecondLine(guiGraphics, top, left); + this.renderThirdLine(guiGraphics, top, left, this.serverData); + boolean bl = this.renderOnlinePlayers(guiGraphics, top, left, width, height, mouseX, mouseY); + this.renderStatusLights(this.serverData, guiGraphics, left + width, top, mouseX, mouseY); + if (!bl) { + this.tooltip.refreshTooltipForNextRenderPass(hovering, this.isFocused(), new ScreenRectangle(left, top, width, height)); + } + } + } + + private void renderFirstLine(GuiGraphics guiGraphics, int top, int left, int width) { + int i = this.textX(left); + int j = this.firstLineY(top); + Component component = RealmsMainScreen.getVersionComponent(this.serverData.activeVersion, this.serverData.isCompatible()); + int k = this.versionTextX(left, width, component); + this.renderClampedString(guiGraphics, this.serverData.getName(), i, j, k, -1); + if (component != CommonComponents.EMPTY && !this.serverData.isMinigameActive()) { + guiGraphics.drawString(RealmsMainScreen.this.font, component, k, j, -8355712, false); + } + } + + private void renderSecondLine(GuiGraphics guiGraphics, int top, int left) { + int i = this.textX(left); + int j = this.firstLineY(top); + int k = this.secondLineY(j); + String string = this.serverData.getMinigameName(); + if (this.serverData.isMinigameActive() && string != null) { + Component component = Component.literal(string).withStyle(ChatFormatting.GRAY); + guiGraphics.drawString(RealmsMainScreen.this.font, Component.translatable("mco.selectServer.minigameName", component).withColor(-171), i, k, -1, false); + } else { + guiGraphics.drawString(RealmsMainScreen.this.font, this.serverData.getDescription(), i, this.secondLineY(j), -8355712, false); + } + } + + private boolean renderOnlinePlayers(GuiGraphics guiGraphics, int top, int left, int width, int height, int mouseX, int mouseY) { + List list = RealmsMainScreen.this.onlinePlayersPerRealm.getProfileResultsFor(this.serverData.id); + if (!list.isEmpty()) { + int i = left + width - 21; + int j = top + height - 9 - 2; + int k = i; + + for (int l = 0; l < list.size(); l++) { + k -= 9 + (l == 0 ? 0 : 3); + PlayerFaceRenderer.draw(guiGraphics, Minecraft.getInstance().getSkinManager().getInsecureSkin(((ProfileResult)list.get(l)).profile()), k, j, 9); + } + + if (mouseX >= k && mouseX <= i && mouseY >= j && mouseY <= j + 9) { + guiGraphics.renderTooltip( + RealmsMainScreen.this.font, + List.of(ONLINE_PLAYERS_TOOLTIP_HEADER), + Optional.of(new ClientActivePlayersTooltip.ActivePlayersTooltip(list)), + mouseX, + mouseY + ); + return true; + } + } + + return false; + } + + private void playRealm() { + RealmsMainScreen.this.minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + RealmsMainScreen.play(this.serverData, RealmsMainScreen.this); + } + + private void createUnitializedRealm() { + RealmsMainScreen.this.minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + RealmsCreateRealmScreen realmsCreateRealmScreen = new RealmsCreateRealmScreen(RealmsMainScreen.this, this.serverData); + RealmsMainScreen.this.minecraft.setScreen(realmsCreateRealmScreen); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (this.serverData.state == RealmsServer.State.UNINITIALIZED) { + this.createUnitializedRealm(); + } else if (RealmsMainScreen.this.shouldPlayButtonBeActive(this.serverData)) { + if (Util.getMillis() - RealmsMainScreen.this.lastClickTime < 250L && this.isFocused()) { + this.playRealm(); + } + + RealmsMainScreen.this.lastClickTime = Util.getMillis(); + } + + return true; + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (CommonInputs.selected(keyCode)) { + if (this.serverData.state == RealmsServer.State.UNINITIALIZED) { + this.createUnitializedRealm(); + return true; + } + + if (RealmsMainScreen.this.shouldPlayButtonBeActive(this.serverData)) { + this.playRealm(); + return true; + } + } + + return super.keyPressed(keyCode, scanCode, modifiers); + } + + @Override + public Component getNarration() { + return (Component)(this.serverData.state == RealmsServer.State.UNINITIALIZED + ? RealmsMainScreen.UNITIALIZED_WORLD_NARRATION + : Component.translatable("narrator.select", this.serverData.name)); + } + + public RealmsServer getServer() { + return this.serverData; + } + } +} diff --git a/com/mojang/realmsclient/Unit.java b/com/mojang/realmsclient/Unit.java new file mode 100644 index 00000000..ae6d26fe --- /dev/null +++ b/com/mojang/realmsclient/Unit.java @@ -0,0 +1,48 @@ +package com.mojang.realmsclient; + +import java.util.Locale; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public enum Unit { + B, + KB, + MB, + GB; + + private static final int BASE_UNIT = 1024; + + public static Unit getLargest(long bytes) { + if (bytes < 1024L) { + return B; + } else { + try { + int i = (int)(Math.log(bytes) / Math.log(1024.0)); + String string = String.valueOf("KMGTPE".charAt(i - 1)); + return valueOf(string + "B"); + } catch (Exception var4) { + return GB; + } + } + } + + public static double convertTo(long bytes, Unit unit) { + return unit == B ? bytes : bytes / Math.pow(1024.0, unit.ordinal()); + } + + public static String humanReadable(long bytes) { + int i = 1024; + if (bytes < 1024L) { + return bytes + " B"; + } else { + int j = (int)(Math.log(bytes) / Math.log(1024.0)); + String string = "KMGTPE".charAt(j - 1) + ""; + return String.format(Locale.ROOT, "%.1f %sB", bytes / Math.pow(1024.0, j), string); + } + } + + public static String humanReadable(long bytes, Unit unit) { + return String.format(Locale.ROOT, "%." + (unit == GB ? "1" : "0") + "f %s", convertTo(bytes, unit), unit.name()); + } +} diff --git a/com/mojang/realmsclient/client/FileDownload.java b/com/mojang/realmsclient/client/FileDownload.java new file mode 100644 index 00000000..9c11ce40 --- /dev/null +++ b/com/mojang/realmsclient/client/FileDownload.java @@ -0,0 +1,437 @@ +package com.mojang.realmsclient.client; + +import com.google.common.hash.Hashing; +import com.google.common.io.Files; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.dto.WorldDownload; +import com.mojang.realmsclient.exception.RealmsDefaultUncaughtExceptionHandler; +import com.mojang.realmsclient.gui.screens.RealmsDownloadLatestWorldScreen; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.SharedConstants; +import net.minecraft.client.Minecraft; +import net.minecraft.nbt.NbtException; +import net.minecraft.nbt.ReportedNbtException; +import net.minecraft.world.level.storage.LevelStorageSource; +import net.minecraft.world.level.validation.ContentValidationException; +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; +import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.apache.commons.io.output.CountingOutputStream; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class FileDownload { + static final Logger LOGGER = LogUtils.getLogger(); + volatile boolean cancelled; + volatile boolean finished; + volatile boolean error; + volatile boolean extracting; + @Nullable + private volatile File tempFile; + volatile File resourcePackPath; + @Nullable + private volatile HttpGet request; + @Nullable + private Thread currentThread; + private final RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(120000).setConnectTimeout(120000).build(); + private static final String[] INVALID_FILE_NAMES = new String[]{ + "CON", + "COM", + "PRN", + "AUX", + "CLOCK$", + "NUL", + "COM1", + "COM2", + "COM3", + "COM4", + "COM5", + "COM6", + "COM7", + "COM8", + "COM9", + "LPT1", + "LPT2", + "LPT3", + "LPT4", + "LPT5", + "LPT6", + "LPT7", + "LPT8", + "LPT9" + }; + + public long contentLength(String uri) { + CloseableHttpClient closeableHttpClient = null; + HttpGet httpGet = null; + + long var5; + try { + httpGet = new HttpGet(uri); + closeableHttpClient = HttpClientBuilder.create().setDefaultRequestConfig(this.requestConfig).build(); + CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpGet); + return Long.parseLong(closeableHttpResponse.getFirstHeader("Content-Length").getValue()); + } catch (Throwable var16) { + LOGGER.error("Unable to get content length for download"); + var5 = 0L; + } finally { + if (httpGet != null) { + httpGet.releaseConnection(); + } + + if (closeableHttpClient != null) { + try { + closeableHttpClient.close(); + } catch (IOException var15) { + LOGGER.error("Could not close http client", (Throwable)var15); + } + } + } + + return var5; + } + + public void download(WorldDownload download, String worldName, RealmsDownloadLatestWorldScreen.DownloadStatus status, LevelStorageSource source) { + if (this.currentThread == null) { + this.currentThread = new Thread( + () -> { + CloseableHttpClient closeableHttpClient = null; + + try { + this.tempFile = File.createTempFile("backup", ".tar.gz"); + this.request = new HttpGet(download.downloadLink); + closeableHttpClient = HttpClientBuilder.create().setDefaultRequestConfig(this.requestConfig).build(); + HttpResponse httpResponse = closeableHttpClient.execute(this.request); + status.totalBytes = Long.parseLong(httpResponse.getFirstHeader("Content-Length").getValue()); + if (httpResponse.getStatusLine().getStatusCode() == 200) { + OutputStream outputStream2 = new FileOutputStream(this.tempFile); + FileDownload.ProgressListener progressListener = new FileDownload.ProgressListener(worldName.trim(), this.tempFile, source, status); + FileDownload.DownloadCountingOutputStream downloadCountingOutputStream2 = new FileDownload.DownloadCountingOutputStream(outputStream2); + downloadCountingOutputStream2.setListener(progressListener); + IOUtils.copy(httpResponse.getEntity().getContent(), downloadCountingOutputStream2); + return; + } + + this.error = true; + this.request.abort(); + } catch (Exception var93) { + LOGGER.error("Caught exception while downloading: {}", var93.getMessage()); + this.error = true; + return; + } finally { + this.request.releaseConnection(); + if (this.tempFile != null) { + this.tempFile.delete(); + } + + if (!this.error) { + if (!download.resourcePackUrl.isEmpty() && !download.resourcePackHash.isEmpty()) { + try { + this.tempFile = File.createTempFile("resources", ".tar.gz"); + this.request = new HttpGet(download.resourcePackUrl); + HttpResponse httpResponse3 = closeableHttpClient.execute(this.request); + status.totalBytes = Long.parseLong(httpResponse3.getFirstHeader("Content-Length").getValue()); + if (httpResponse3.getStatusLine().getStatusCode() != 200) { + this.error = true; + this.request.abort(); + return; + } + + OutputStream outputStream3 = new FileOutputStream(this.tempFile); + FileDownload.ResourcePackProgressListener resourcePackProgressListener3 = new FileDownload.ResourcePackProgressListener( + this.tempFile, status, download + ); + FileDownload.DownloadCountingOutputStream downloadCountingOutputStream3 = new FileDownload.DownloadCountingOutputStream(outputStream3); + downloadCountingOutputStream3.setListener(resourcePackProgressListener3); + IOUtils.copy(httpResponse3.getEntity().getContent(), downloadCountingOutputStream3); + } catch (Exception var91) { + LOGGER.error("Caught exception while downloading: {}", var91.getMessage()); + this.error = true; + } finally { + this.request.releaseConnection(); + if (this.tempFile != null) { + this.tempFile.delete(); + } + } + } else { + this.finished = true; + } + } + + if (closeableHttpClient != null) { + try { + closeableHttpClient.close(); + } catch (IOException var90) { + LOGGER.error("Failed to close Realms download client"); + } + } + } + } + ); + this.currentThread.setUncaughtExceptionHandler(new RealmsDefaultUncaughtExceptionHandler(LOGGER)); + this.currentThread.start(); + } + } + + public void cancel() { + if (this.request != null) { + this.request.abort(); + } + + if (this.tempFile != null) { + this.tempFile.delete(); + } + + this.cancelled = true; + } + + public boolean isFinished() { + return this.finished; + } + + public boolean isError() { + return this.error; + } + + public boolean isExtracting() { + return this.extracting; + } + + /** + * Modifies a folder name to make sure it is valid to store on disk. + * @return the modified folder name + * + * @param folderName The folder name to modify + */ + public static String findAvailableFolderName(String folderName) { + folderName = folderName.replaceAll("[\\./\"]", "_"); + + for (String string : INVALID_FILE_NAMES) { + if (folderName.equalsIgnoreCase(string)) { + folderName = "_" + folderName + "_"; + } + } + + return folderName; + } + + void untarGzipArchive(String worldName, @Nullable File tempFile, LevelStorageSource levelStorageSource) throws IOException { + Pattern pattern = Pattern.compile(".*-([0-9]+)$"); + int i = 1; + + for (char c : SharedConstants.ILLEGAL_FILE_CHARACTERS) { + worldName = worldName.replace(c, '_'); + } + + if (StringUtils.isEmpty(worldName)) { + worldName = "Realm"; + } + + worldName = findAvailableFolderName(worldName); + + try { + for (LevelStorageSource.LevelDirectory levelDirectory : levelStorageSource.findLevelCandidates()) { + String string = levelDirectory.directoryName(); + if (string.toLowerCase(Locale.ROOT).startsWith(worldName.toLowerCase(Locale.ROOT))) { + Matcher matcher = pattern.matcher(string); + if (matcher.matches()) { + int j = Integer.parseInt(matcher.group(1)); + if (j > i) { + i = j; + } + } else { + i++; + } + } + } + } catch (Exception var43) { + LOGGER.error("Error getting level list", (Throwable)var43); + this.error = true; + return; + } + + String string2; + if (levelStorageSource.isNewLevelIdAcceptable(worldName) && i <= 1) { + string2 = worldName; + } else { + string2 = worldName + (i == 1 ? "" : "-" + i); + if (!levelStorageSource.isNewLevelIdAcceptable(string2)) { + boolean bl = false; + + while (!bl) { + i++; + string2 = worldName + (i == 1 ? "" : "-" + i); + if (levelStorageSource.isNewLevelIdAcceptable(string2)) { + bl = true; + } + } + } + } + + TarArchiveInputStream tarArchiveInputStream = null; + File file = new File(Minecraft.getInstance().gameDirectory.getAbsolutePath(), "saves"); + + try { + file.mkdir(); + tarArchiveInputStream = new TarArchiveInputStream(new GzipCompressorInputStream(new BufferedInputStream(new FileInputStream(tempFile)))); + + for (TarArchiveEntry tarArchiveEntry = tarArchiveInputStream.getNextTarEntry(); + tarArchiveEntry != null; + tarArchiveEntry = tarArchiveInputStream.getNextTarEntry() + ) { + File file2 = new File(file, tarArchiveEntry.getName().replace("world", string2)); + if (tarArchiveEntry.isDirectory()) { + file2.mkdirs(); + } else { + file2.createNewFile(); + FileOutputStream fileOutputStream = new FileOutputStream(file2); + + try { + IOUtils.copy(tarArchiveInputStream, fileOutputStream); + } catch (Throwable var37) { + try { + fileOutputStream.close(); + } catch (Throwable var36) { + var37.addSuppressed(var36); + } + + throw var37; + } + + fileOutputStream.close(); + } + } + } catch (Exception var41) { + LOGGER.error("Error extracting world", (Throwable)var41); + this.error = true; + } finally { + if (tarArchiveInputStream != null) { + tarArchiveInputStream.close(); + } + + if (tempFile != null) { + tempFile.delete(); + } + + try (LevelStorageSource.LevelStorageAccess levelStorageAccess2 = levelStorageSource.validateAndCreateAccess(string2)) { + levelStorageAccess2.renameAndDropPlayer(string2); + } catch (NbtException | ReportedNbtException | IOException var39) { + LOGGER.error("Failed to modify unpacked realms level {}", string2, var39); + } catch (ContentValidationException var40) { + LOGGER.warn("{}", var40.getMessage()); + } + + this.resourcePackPath = new File(file, string2 + File.separator + "resources.zip"); + } + } + + @Environment(EnvType.CLIENT) + static class DownloadCountingOutputStream extends CountingOutputStream { + @Nullable + private ActionListener listener; + + public DownloadCountingOutputStream(OutputStream out) { + super(out); + } + + public void setListener(ActionListener listener) { + this.listener = listener; + } + + @Override + protected void afterWrite(int i) throws IOException { + super.afterWrite(i); + if (this.listener != null) { + this.listener.actionPerformed(new ActionEvent(this, 0, null)); + } + } + } + + @Environment(EnvType.CLIENT) + class ProgressListener implements ActionListener { + private final String worldName; + private final File tempFile; + private final LevelStorageSource levelStorageSource; + private final RealmsDownloadLatestWorldScreen.DownloadStatus downloadStatus; + + ProgressListener( + final String worldName, + final File tempFile, + final LevelStorageSource levelStorageSource, + final RealmsDownloadLatestWorldScreen.DownloadStatus downloadStatus + ) { + this.worldName = worldName; + this.tempFile = tempFile; + this.levelStorageSource = levelStorageSource; + this.downloadStatus = downloadStatus; + } + + public void actionPerformed(ActionEvent actionEvent) { + this.downloadStatus.bytesWritten = ((FileDownload.DownloadCountingOutputStream)actionEvent.getSource()).getByteCount(); + if (this.downloadStatus.bytesWritten >= this.downloadStatus.totalBytes && !FileDownload.this.cancelled && !FileDownload.this.error) { + try { + FileDownload.this.extracting = true; + FileDownload.this.untarGzipArchive(this.worldName, this.tempFile, this.levelStorageSource); + } catch (IOException var3) { + FileDownload.LOGGER.error("Error extracting archive", (Throwable)var3); + FileDownload.this.error = true; + } + } + } + } + + @Environment(EnvType.CLIENT) + class ResourcePackProgressListener implements ActionListener { + private final File tempFile; + private final RealmsDownloadLatestWorldScreen.DownloadStatus downloadStatus; + private final WorldDownload worldDownload; + + ResourcePackProgressListener(final File tempFile, final RealmsDownloadLatestWorldScreen.DownloadStatus downloadStatus, final WorldDownload worldDownload) { + this.tempFile = tempFile; + this.downloadStatus = downloadStatus; + this.worldDownload = worldDownload; + } + + public void actionPerformed(ActionEvent actionEvent) { + this.downloadStatus.bytesWritten = ((FileDownload.DownloadCountingOutputStream)actionEvent.getSource()).getByteCount(); + if (this.downloadStatus.bytesWritten >= this.downloadStatus.totalBytes && !FileDownload.this.cancelled) { + try { + String string = Hashing.sha1().hashBytes(Files.toByteArray(this.tempFile)).toString(); + if (string.equals(this.worldDownload.resourcePackHash)) { + FileUtils.copyFile(this.tempFile, FileDownload.this.resourcePackPath); + FileDownload.this.finished = true; + } else { + FileDownload.LOGGER.error("Resourcepack had wrong hash (expected {}, found {}). Deleting it.", this.worldDownload.resourcePackHash, string); + FileUtils.deleteQuietly(this.tempFile); + FileDownload.this.error = true; + } + } catch (IOException var3) { + FileDownload.LOGGER.error("Error copying resourcepack file: {}", var3.getMessage()); + FileDownload.this.error = true; + } + } + } + } +} diff --git a/com/mojang/realmsclient/client/FileUpload.java b/com/mojang/realmsclient/client/FileUpload.java new file mode 100644 index 00000000..2d761a03 --- /dev/null +++ b/com/mojang/realmsclient/client/FileUpload.java @@ -0,0 +1,237 @@ +package com.mojang.realmsclient.client; + +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.dto.UploadInfo; +import com.mojang.realmsclient.gui.screens.UploadResult; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.Duration; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.User; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.InputStreamEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.Args; +import org.apache.http.util.EntityUtils; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class FileUpload { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final int MAX_RETRIES = 5; + private static final String UPLOAD_PATH = "/upload"; + private final File file; + private final long realmId; + private final int slotId; + private final UploadInfo uploadInfo; + private final String sessionId; + private final String username; + private final String clientVersion; + private final String worldVersion; + private final UploadStatus uploadStatus; + private final AtomicBoolean cancelled = new AtomicBoolean(false); + @Nullable + private CompletableFuture uploadTask; + private final RequestConfig requestConfig = RequestConfig.custom() + .setSocketTimeout((int)TimeUnit.MINUTES.toMillis(10L)) + .setConnectTimeout((int)TimeUnit.SECONDS.toMillis(15L)) + .build(); + + public FileUpload(File file, long realmId, int slotId, UploadInfo uploadInfo, User user, String clientVersiob, String worldVersion, UploadStatus uploadStatus) { + this.file = file; + this.realmId = realmId; + this.slotId = slotId; + this.uploadInfo = uploadInfo; + this.sessionId = user.getSessionId(); + this.username = user.getName(); + this.clientVersion = clientVersiob; + this.worldVersion = worldVersion; + this.uploadStatus = uploadStatus; + } + + public void upload(Consumer resultConsumer) { + if (this.uploadTask == null) { + this.uploadTask = CompletableFuture.supplyAsync(() -> this.requestUpload(0)); + this.uploadTask.thenAccept(resultConsumer); + } + } + + public void cancel() { + this.cancelled.set(true); + if (this.uploadTask != null) { + this.uploadTask.cancel(false); + this.uploadTask = null; + } + } + + /** + * @param retries The number of times this upload has already been attempted + */ + private UploadResult requestUpload(int retries) { + UploadResult.Builder builder = new UploadResult.Builder(); + if (this.cancelled.get()) { + return builder.build(); + } else { + this.uploadStatus.totalBytes = this.file.length(); + HttpPost httpPost = new HttpPost(this.uploadInfo.getUploadEndpoint().resolve("/upload/" + this.realmId + "/" + this.slotId)); + CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().setDefaultRequestConfig(this.requestConfig).build(); + + UploadResult var8; + try { + this.setupRequest(httpPost); + HttpResponse httpResponse = closeableHttpClient.execute(httpPost); + long l = this.getRetryDelaySeconds(httpResponse); + if (!this.shouldRetry(l, retries)) { + this.handleResponse(httpResponse, builder); + return builder.build(); + } + + var8 = this.retryUploadAfter(l, retries); + } catch (Exception var12) { + if (!this.cancelled.get()) { + LOGGER.error("Caught exception while uploading: ", (Throwable)var12); + } + + return builder.build(); + } finally { + this.cleanup(httpPost, closeableHttpClient); + } + + return var8; + } + } + + private void cleanup(HttpPost post, @Nullable CloseableHttpClient httpClient) { + post.releaseConnection(); + if (httpClient != null) { + try { + httpClient.close(); + } catch (IOException var4) { + LOGGER.error("Failed to close Realms upload client"); + } + } + } + + private void setupRequest(HttpPost post) throws FileNotFoundException { + post.setHeader( + "Cookie", + "sid=" + + this.sessionId + + ";token=" + + this.uploadInfo.getToken() + + ";user=" + + this.username + + ";version=" + + this.clientVersion + + ";worldVersion=" + + this.worldVersion + ); + FileUpload.CustomInputStreamEntity customInputStreamEntity = new FileUpload.CustomInputStreamEntity( + new FileInputStream(this.file), this.file.length(), this.uploadStatus + ); + customInputStreamEntity.setContentType("application/octet-stream"); + post.setEntity(customInputStreamEntity); + } + + private void handleResponse(HttpResponse response, UploadResult.Builder uploadResult) throws IOException { + int i = response.getStatusLine().getStatusCode(); + if (i == 401) { + LOGGER.debug("Realms server returned 401: {}", response.getFirstHeader("WWW-Authenticate")); + } + + uploadResult.withStatusCode(i); + if (response.getEntity() != null) { + String string = EntityUtils.toString(response.getEntity(), "UTF-8"); + if (string != null) { + try { + JsonParser jsonParser = new JsonParser(); + JsonElement jsonElement = jsonParser.parse(string).getAsJsonObject().get("errorMsg"); + Optional optional = Optional.ofNullable(jsonElement).map(JsonElement::getAsString); + uploadResult.withErrorMessage((String)optional.orElse(null)); + } catch (Exception var8) { + } + } + } + } + + private boolean shouldRetry(long retryDelaySeconds, int retries) { + return retryDelaySeconds > 0L && retries + 1 < 5; + } + + private UploadResult retryUploadAfter(long seconds, int retries) throws InterruptedException { + Thread.sleep(Duration.ofSeconds(seconds).toMillis()); + return this.requestUpload(retries + 1); + } + + private long getRetryDelaySeconds(HttpResponse httpResponse) { + return (Long)Optional.ofNullable(httpResponse.getFirstHeader("Retry-After")).map(NameValuePair::getValue).map(Long::valueOf).orElse(0L); + } + + public boolean isFinished() { + return this.uploadTask.isDone() || this.uploadTask.isCancelled(); + } + + @Environment(EnvType.CLIENT) + static class CustomInputStreamEntity extends InputStreamEntity { + private final long length; + private final InputStream content; + private final UploadStatus uploadStatus; + + public CustomInputStreamEntity(InputStream content, long length, UploadStatus uploadStatus) { + super(content); + this.content = content; + this.length = length; + this.uploadStatus = uploadStatus; + } + + @Override + public void writeTo(OutputStream outputStream) throws IOException { + Args.notNull(outputStream, "Output stream"); + InputStream inputStream = this.content; + + try { + byte[] bs = new byte[4096]; + int i; + if (this.length < 0L) { + while ((i = inputStream.read(bs)) != -1) { + outputStream.write(bs, 0, i); + this.uploadStatus.bytesWritten += i; + } + } else { + long l = this.length; + + while (l > 0L) { + i = inputStream.read(bs, 0, (int)Math.min(4096L, l)); + if (i == -1) { + break; + } + + outputStream.write(bs, 0, i); + this.uploadStatus.bytesWritten += i; + l -= i; + outputStream.flush(); + } + } + } finally { + inputStream.close(); + } + } + } +} diff --git a/com/mojang/realmsclient/client/Ping.java b/com/mojang/realmsclient/client/Ping.java new file mode 100644 index 00000000..abfa1369 --- /dev/null +++ b/com/mojang/realmsclient/client/Ping.java @@ -0,0 +1,81 @@ +package com.mojang.realmsclient.client; + +import com.google.common.collect.Lists; +import com.mojang.realmsclient.dto.RegionPingResult; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.SocketAddress; +import java.util.Comparator; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import org.apache.commons.io.IOUtils; + +@Environment(EnvType.CLIENT) +public class Ping { + public static List ping(Ping.Region... regions) { + for (Ping.Region region : regions) { + ping(region.endpoint); + } + + List list = Lists.newArrayList(); + + for (Ping.Region region2 : regions) { + list.add(new RegionPingResult(region2.name, ping(region2.endpoint))); + } + + list.sort(Comparator.comparingInt(RegionPingResult::ping)); + return list; + } + + private static int ping(String hostname) { + int i = 700; + long l = 0L; + Socket socket = null; + + for (int j = 0; j < 5; j++) { + try { + SocketAddress socketAddress = new InetSocketAddress(hostname, 80); + socket = new Socket(); + long m = now(); + socket.connect(socketAddress, 700); + l += now() - m; + } catch (Exception var12) { + l += 700L; + } finally { + IOUtils.closeQuietly(socket); + } + } + + return (int)(l / 5.0); + } + + private static long now() { + return Util.getMillis(); + } + + public static List pingAllRegions() { + return ping(Ping.Region.values()); + } + + @Environment(EnvType.CLIENT) + static enum Region { + US_EAST_1("us-east-1", "ec2.us-east-1.amazonaws.com"), + US_WEST_2("us-west-2", "ec2.us-west-2.amazonaws.com"), + US_WEST_1("us-west-1", "ec2.us-west-1.amazonaws.com"), + EU_WEST_1("eu-west-1", "ec2.eu-west-1.amazonaws.com"), + AP_SOUTHEAST_1("ap-southeast-1", "ec2.ap-southeast-1.amazonaws.com"), + AP_SOUTHEAST_2("ap-southeast-2", "ec2.ap-southeast-2.amazonaws.com"), + AP_NORTHEAST_1("ap-northeast-1", "ec2.ap-northeast-1.amazonaws.com"), + SA_EAST_1("sa-east-1", "ec2.sa-east-1.amazonaws.com"); + + final String name; + final String endpoint; + + private Region(final String name, final String endpoint) { + this.name = name; + this.endpoint = endpoint; + } + } +} diff --git a/com/mojang/realmsclient/client/RealmsClient.java b/com/mojang/realmsclient/client/RealmsClient.java new file mode 100644 index 00000000..9ff203ce --- /dev/null +++ b/com/mojang/realmsclient/client/RealmsClient.java @@ -0,0 +1,465 @@ +package com.mojang.realmsclient.client; + +import com.google.gson.JsonArray; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.dto.BackupList; +import com.mojang.realmsclient.dto.GuardedSerializer; +import com.mojang.realmsclient.dto.Ops; +import com.mojang.realmsclient.dto.PendingInvite; +import com.mojang.realmsclient.dto.PendingInvitesList; +import com.mojang.realmsclient.dto.PingResult; +import com.mojang.realmsclient.dto.PlayerInfo; +import com.mojang.realmsclient.dto.RealmsDescriptionDto; +import com.mojang.realmsclient.dto.RealmsNews; +import com.mojang.realmsclient.dto.RealmsNotification; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsServerAddress; +import com.mojang.realmsclient.dto.RealmsServerList; +import com.mojang.realmsclient.dto.RealmsServerPlayerLists; +import com.mojang.realmsclient.dto.RealmsWorldOptions; +import com.mojang.realmsclient.dto.RealmsWorldResetDto; +import com.mojang.realmsclient.dto.ServerActivityList; +import com.mojang.realmsclient.dto.Subscription; +import com.mojang.realmsclient.dto.UploadInfo; +import com.mojang.realmsclient.dto.WorldDownload; +import com.mojang.realmsclient.dto.WorldTemplatePaginatedList; +import com.mojang.realmsclient.exception.RealmsHttpException; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.util.WorldGenerationInfo; +import com.mojang.util.UndashedUuid; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import net.fabricmc.api.EnvType; +import net.minecraft.SharedConstants; +import net.minecraft.client.Minecraft; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@net.fabricmc.api.Environment(EnvType.CLIENT) +public class RealmsClient { + public static final RealmsClient.Environment ENVIRONMENT = (RealmsClient.Environment)Optional.ofNullable(System.getenv("realms.environment")) + .or(() -> Optional.ofNullable(System.getProperty("realms.environment"))) + .flatMap(RealmsClient.Environment::byName) + .orElse(RealmsClient.Environment.PRODUCTION); + private static final Logger LOGGER = LogUtils.getLogger(); + private final String sessionId; + private final String username; + private final Minecraft minecraft; + private static final String WORLDS_RESOURCE_PATH = "worlds"; + private static final String INVITES_RESOURCE_PATH = "invites"; + private static final String MCO_RESOURCE_PATH = "mco"; + private static final String SUBSCRIPTION_RESOURCE = "subscriptions"; + private static final String ACTIVITIES_RESOURCE = "activities"; + private static final String OPS_RESOURCE = "ops"; + private static final String REGIONS_RESOURCE = "regions/ping/stat"; + private static final String TRIALS_RESOURCE = "trial"; + private static final String NOTIFICATIONS_RESOURCE = "notifications"; + private static final String PATH_LIST_ALL_REALMS = "/listUserWorldsOfType/any"; + private static final String PATH_CREATE_SNAPSHOT_REALM = "/$PARENT_WORLD_ID/createPrereleaseRealm"; + private static final String PATH_SNAPSHOT_ELIGIBLE_REALMS = "/listPrereleaseEligibleWorlds"; + private static final String PATH_INITIALIZE = "/$WORLD_ID/initialize"; + private static final String PATH_GET_ACTIVTIES = "/$WORLD_ID"; + private static final String PATH_GET_LIVESTATS = "/liveplayerlist"; + private static final String PATH_GET_SUBSCRIPTION = "/$WORLD_ID"; + private static final String PATH_OP = "/$WORLD_ID/$PROFILE_UUID"; + private static final String PATH_PUT_INTO_MINIGAMES_MODE = "/minigames/$MINIGAME_ID/$WORLD_ID"; + private static final String PATH_AVAILABLE = "/available"; + private static final String PATH_TEMPLATES = "/templates/$WORLD_TYPE"; + private static final String PATH_WORLD_JOIN = "/v1/$ID/join/pc"; + private static final String PATH_WORLD_GET = "/$ID"; + private static final String PATH_WORLD_INVITES = "/$WORLD_ID"; + private static final String PATH_WORLD_UNINVITE = "/$WORLD_ID/invite/$UUID"; + private static final String PATH_PENDING_INVITES_COUNT = "/count/pending"; + private static final String PATH_PENDING_INVITES = "/pending"; + private static final String PATH_ACCEPT_INVITE = "/accept/$INVITATION_ID"; + private static final String PATH_REJECT_INVITE = "/reject/$INVITATION_ID"; + private static final String PATH_UNINVITE_MYSELF = "/$WORLD_ID"; + private static final String PATH_WORLD_UPDATE = "/$WORLD_ID"; + private static final String PATH_SLOT = "/$WORLD_ID/slot/$SLOT_ID"; + private static final String PATH_WORLD_OPEN = "/$WORLD_ID/open"; + private static final String PATH_WORLD_CLOSE = "/$WORLD_ID/close"; + private static final String PATH_WORLD_RESET = "/$WORLD_ID/reset"; + private static final String PATH_DELETE_WORLD = "/$WORLD_ID"; + private static final String PATH_WORLD_BACKUPS = "/$WORLD_ID/backups"; + private static final String PATH_WORLD_DOWNLOAD = "/$WORLD_ID/slot/$SLOT_ID/download"; + private static final String PATH_WORLD_UPLOAD = "/$WORLD_ID/backups/upload"; + private static final String PATH_CLIENT_COMPATIBLE = "/client/compatible"; + private static final String PATH_TOS_AGREED = "/tos/agreed"; + private static final String PATH_NEWS = "/v1/news"; + private static final String PATH_MARK_NOTIFICATIONS_SEEN = "/seen"; + private static final String PATH_DISMISS_NOTIFICATIONS = "/dismiss"; + private static final GuardedSerializer GSON = new GuardedSerializer(); + + public static RealmsClient create() { + Minecraft minecraft = Minecraft.getInstance(); + return create(minecraft); + } + + public static RealmsClient create(Minecraft minecraft) { + String string = minecraft.getUser().getName(); + String string2 = minecraft.getUser().getSessionId(); + return new RealmsClient(string2, string, minecraft); + } + + public RealmsClient(String sessionId, String username, Minecraft minecraft) { + this.sessionId = sessionId; + this.username = username; + this.minecraft = minecraft; + RealmsClientConfig.setProxy(minecraft.getProxy()); + } + + public RealmsServerList listRealms() throws RealmsServiceException { + String string = this.url("worlds"); + if (RealmsMainScreen.isSnapshot()) { + string = string + "/listUserWorldsOfType/any"; + } + + String string2 = this.execute(Request.get(string)); + return RealmsServerList.parse(string2); + } + + public List listSnapshotEligibleRealms() throws RealmsServiceException { + String string = this.url("worlds/listPrereleaseEligibleWorlds"); + String string2 = this.execute(Request.get(string)); + return RealmsServerList.parse(string2).servers; + } + + public RealmsServer createSnapshotRealm(Long parentId) throws RealmsServiceException { + String string = String.valueOf(parentId); + String string2 = this.url("worlds" + "/$PARENT_WORLD_ID/createPrereleaseRealm".replace("$PARENT_WORLD_ID", string)); + return RealmsServer.parse(this.execute(Request.post(string2, string))); + } + + public List getNotifications() throws RealmsServiceException { + String string = this.url("notifications"); + String string2 = this.execute(Request.get(string)); + return RealmsNotification.parseList(string2); + } + + private static JsonArray uuidListToJsonArray(List uuidList) { + JsonArray jsonArray = new JsonArray(); + + for (UUID uUID : uuidList) { + if (uUID != null) { + jsonArray.add(uUID.toString()); + } + } + + return jsonArray; + } + + public void notificationsSeen(List uuidList) throws RealmsServiceException { + String string = this.url("notifications/seen"); + this.execute(Request.post(string, GSON.toJson(uuidListToJsonArray(uuidList)))); + } + + public void notificationsDismiss(List uuidList) throws RealmsServiceException { + String string = this.url("notifications/dismiss"); + this.execute(Request.post(string, GSON.toJson(uuidListToJsonArray(uuidList)))); + } + + public RealmsServer getOwnRealm(long id) throws RealmsServiceException { + String string = this.url("worlds" + "/$ID".replace("$ID", String.valueOf(id))); + String string2 = this.execute(Request.get(string)); + return RealmsServer.parse(string2); + } + + public ServerActivityList getActivity(long worldId) throws RealmsServiceException { + String string = this.url("activities" + "/$WORLD_ID".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.get(string)); + return ServerActivityList.parse(string2); + } + + public RealmsServerPlayerLists getLiveStats() throws RealmsServiceException { + String string = this.url("activities/liveplayerlist"); + String string2 = this.execute(Request.get(string)); + return RealmsServerPlayerLists.parse(string2); + } + + public RealmsServerAddress join(long serverId) throws RealmsServiceException { + String string = this.url("worlds" + "/v1/$ID/join/pc".replace("$ID", serverId + "")); + String string2 = this.execute(Request.get(string, 5000, 30000)); + return RealmsServerAddress.parse(string2); + } + + public void initializeRealm(long worldId, String name, String description) throws RealmsServiceException { + RealmsDescriptionDto realmsDescriptionDto = new RealmsDescriptionDto(name, description); + String string = this.url("worlds" + "/$WORLD_ID/initialize".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = GSON.toJson(realmsDescriptionDto); + this.execute(Request.post(string, string2, 5000, 10000)); + } + + public boolean hasParentalConsent() throws RealmsServiceException { + String string = this.url("mco/available"); + String string2 = this.execute(Request.get(string)); + return Boolean.parseBoolean(string2); + } + + public RealmsClient.CompatibleVersionResponse clientCompatible() throws RealmsServiceException { + String string = this.url("mco/client/compatible"); + String string2 = this.execute(Request.get(string)); + + try { + return RealmsClient.CompatibleVersionResponse.valueOf(string2); + } catch (IllegalArgumentException var5) { + throw new RealmsServiceException(RealmsError.CustomError.unknownCompatibilityResponse(string2)); + } + } + + public void uninvite(long worldId, UUID playerUuid) throws RealmsServiceException { + String string = this.url( + "invites" + "/$WORLD_ID/invite/$UUID".replace("$WORLD_ID", String.valueOf(worldId)).replace("$UUID", UndashedUuid.toString(playerUuid)) + ); + this.execute(Request.delete(string)); + } + + public void uninviteMyselfFrom(long worldId) throws RealmsServiceException { + String string = this.url("invites" + "/$WORLD_ID".replace("$WORLD_ID", String.valueOf(worldId))); + this.execute(Request.delete(string)); + } + + public RealmsServer invite(long worldId, String playerName) throws RealmsServiceException { + PlayerInfo playerInfo = new PlayerInfo(); + playerInfo.setName(playerName); + String string = this.url("invites" + "/$WORLD_ID".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.post(string, GSON.toJson(playerInfo))); + return RealmsServer.parse(string2); + } + + public BackupList backupsFor(long worldId) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID/backups".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.get(string)); + return BackupList.parse(string2); + } + + public void update(long worldId, String name, String description) throws RealmsServiceException { + RealmsDescriptionDto realmsDescriptionDto = new RealmsDescriptionDto(name, description); + String string = this.url("worlds" + "/$WORLD_ID".replace("$WORLD_ID", String.valueOf(worldId))); + this.execute(Request.post(string, GSON.toJson(realmsDescriptionDto))); + } + + public void updateSlot(long worldId, int slotId, RealmsWorldOptions worldOptions) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID/slot/$SLOT_ID".replace("$WORLD_ID", String.valueOf(worldId)).replace("$SLOT_ID", String.valueOf(slotId))); + String string2 = worldOptions.toJson(); + this.execute(Request.post(string, string2)); + } + + public boolean switchSlot(long worldId, int slotId) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID/slot/$SLOT_ID".replace("$WORLD_ID", String.valueOf(worldId)).replace("$SLOT_ID", String.valueOf(slotId))); + String string2 = this.execute(Request.put(string, "")); + return Boolean.valueOf(string2); + } + + public void restoreWorld(long worldId, String backupId) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID/backups".replace("$WORLD_ID", String.valueOf(worldId)), "backupId=" + backupId); + this.execute(Request.put(string, "", 40000, 600000)); + } + + public WorldTemplatePaginatedList fetchWorldTemplates(int page, int pageSize, RealmsServer.WorldType worldType) throws RealmsServiceException { + String string = this.url( + "worlds" + "/templates/$WORLD_TYPE".replace("$WORLD_TYPE", worldType.toString()), String.format(Locale.ROOT, "page=%d&pageSize=%d", page, pageSize) + ); + String string2 = this.execute(Request.get(string)); + return WorldTemplatePaginatedList.parse(string2); + } + + public Boolean putIntoMinigameMode(long worldId, String minigameId) throws RealmsServiceException { + String string = "/minigames/$MINIGAME_ID/$WORLD_ID".replace("$MINIGAME_ID", minigameId).replace("$WORLD_ID", String.valueOf(worldId)); + String string2 = this.url("worlds" + string); + return Boolean.valueOf(this.execute(Request.put(string2, ""))); + } + + public Ops op(long worldId, UUID profileUuid) throws RealmsServiceException { + String string = "/$WORLD_ID/$PROFILE_UUID".replace("$WORLD_ID", String.valueOf(worldId)).replace("$PROFILE_UUID", UndashedUuid.toString(profileUuid)); + String string2 = this.url("ops" + string); + return Ops.parse(this.execute(Request.post(string2, ""))); + } + + public Ops deop(long worldId, UUID profileUuid) throws RealmsServiceException { + String string = "/$WORLD_ID/$PROFILE_UUID".replace("$WORLD_ID", String.valueOf(worldId)).replace("$PROFILE_UUID", UndashedUuid.toString(profileUuid)); + String string2 = this.url("ops" + string); + return Ops.parse(this.execute(Request.delete(string2))); + } + + public Boolean open(long worldId) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID/open".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.put(string, "")); + return Boolean.valueOf(string2); + } + + public Boolean close(long worldId) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID/close".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.put(string, "")); + return Boolean.valueOf(string2); + } + + public Boolean resetWorldWithSeed(long worldId, WorldGenerationInfo generationInfo) throws RealmsServiceException { + RealmsWorldResetDto realmsWorldResetDto = new RealmsWorldResetDto( + generationInfo.seed(), -1L, generationInfo.levelType().getDtoIndex(), generationInfo.generateStructures(), generationInfo.experiments() + ); + String string = this.url("worlds" + "/$WORLD_ID/reset".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.post(string, GSON.toJson(realmsWorldResetDto), 30000, 80000)); + return Boolean.valueOf(string2); + } + + public Boolean resetWorldWithTemplate(long worldId, String worldTemplateId) throws RealmsServiceException { + RealmsWorldResetDto realmsWorldResetDto = new RealmsWorldResetDto(null, Long.valueOf(worldTemplateId), -1, false, Set.of()); + String string = this.url("worlds" + "/$WORLD_ID/reset".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.post(string, GSON.toJson(realmsWorldResetDto), 30000, 80000)); + return Boolean.valueOf(string2); + } + + public Subscription subscriptionFor(long worldId) throws RealmsServiceException { + String string = this.url("subscriptions" + "/$WORLD_ID".replace("$WORLD_ID", String.valueOf(worldId))); + String string2 = this.execute(Request.get(string)); + return Subscription.parse(string2); + } + + public int pendingInvitesCount() throws RealmsServiceException { + return this.pendingInvites().pendingInvites.size(); + } + + public PendingInvitesList pendingInvites() throws RealmsServiceException { + String string = this.url("invites/pending"); + String string2 = this.execute(Request.get(string)); + PendingInvitesList pendingInvitesList = PendingInvitesList.parse(string2); + pendingInvitesList.pendingInvites.removeIf(this::isBlocked); + return pendingInvitesList; + } + + private boolean isBlocked(PendingInvite pendingInvite) { + return this.minecraft.getPlayerSocialManager().isBlocked(pendingInvite.realmOwnerUuid); + } + + public void acceptInvitation(String inviteId) throws RealmsServiceException { + String string = this.url("invites" + "/accept/$INVITATION_ID".replace("$INVITATION_ID", inviteId)); + this.execute(Request.put(string, "")); + } + + public WorldDownload requestDownloadInfo(long worldId, int slotId) throws RealmsServiceException { + String string = this.url( + "worlds" + "/$WORLD_ID/slot/$SLOT_ID/download".replace("$WORLD_ID", String.valueOf(worldId)).replace("$SLOT_ID", String.valueOf(slotId)) + ); + String string2 = this.execute(Request.get(string)); + return WorldDownload.parse(string2); + } + + @Nullable + public UploadInfo requestUploadInfo(long worldId, @Nullable String token) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID/backups/upload".replace("$WORLD_ID", String.valueOf(worldId))); + return UploadInfo.parse(this.execute(Request.put(string, UploadInfo.createRequest(token)))); + } + + public void rejectInvitation(String inviteId) throws RealmsServiceException { + String string = this.url("invites" + "/reject/$INVITATION_ID".replace("$INVITATION_ID", inviteId)); + this.execute(Request.put(string, "")); + } + + public void agreeToTos() throws RealmsServiceException { + String string = this.url("mco/tos/agreed"); + this.execute(Request.post(string, "")); + } + + public RealmsNews getNews() throws RealmsServiceException { + String string = this.url("mco/v1/news"); + String string2 = this.execute(Request.get(string, 5000, 10000)); + return RealmsNews.parse(string2); + } + + public void sendPingResults(PingResult pingResult) throws RealmsServiceException { + String string = this.url("regions/ping/stat"); + this.execute(Request.post(string, GSON.toJson(pingResult))); + } + + public Boolean trialAvailable() throws RealmsServiceException { + String string = this.url("trial"); + String string2 = this.execute(Request.get(string)); + return Boolean.valueOf(string2); + } + + public void deleteRealm(long worldId) throws RealmsServiceException { + String string = this.url("worlds" + "/$WORLD_ID".replace("$WORLD_ID", String.valueOf(worldId))); + this.execute(Request.delete(string)); + } + + private String url(String path) { + return this.url(path, null); + } + + private String url(String path, @Nullable String query) { + try { + return new URI(ENVIRONMENT.protocol, ENVIRONMENT.baseUrl, "/" + path, query, null).toASCIIString(); + } catch (URISyntaxException var4) { + throw new IllegalArgumentException(path, var4); + } + } + + private String execute(Request request) throws RealmsServiceException { + request.cookie("sid", this.sessionId); + request.cookie("user", this.username); + request.cookie("version", SharedConstants.getCurrentVersion().getName()); + request.addSnapshotHeader(RealmsMainScreen.isSnapshot()); + + try { + int i = request.responseCode(); + if (i != 503 && i != 277) { + String string = request.text(); + if (i >= 200 && i < 300) { + return string; + } else if (i == 401) { + String string2 = request.getHeader("WWW-Authenticate"); + LOGGER.info("Could not authorize you against Realms server: {}", string2); + throw new RealmsServiceException(new RealmsError.AuthenticationError(string2)); + } else { + RealmsError realmsError = RealmsError.parse(i, string); + throw new RealmsServiceException(realmsError); + } + } else { + int j = request.getRetryAfterHeader(); + throw new RetryCallException(j, i); + } + } catch (RealmsHttpException var5) { + throw new RealmsServiceException(RealmsError.CustomError.connectivityError(var5)); + } + } + + @net.fabricmc.api.Environment(EnvType.CLIENT) + public static enum CompatibleVersionResponse { + COMPATIBLE, + OUTDATED, + OTHER; + } + + @net.fabricmc.api.Environment(EnvType.CLIENT) + public static enum Environment { + PRODUCTION("pc.realms.minecraft.net", "https"), + STAGE("pc-stage.realms.minecraft.net", "https"), + LOCAL("localhost:8080", "http"); + + public final String baseUrl; + public final String protocol; + + private Environment(final String baseUrl, final String protocol) { + this.baseUrl = baseUrl; + this.protocol = protocol; + } + + public static Optional byName(String name) { + String var1 = name.toLowerCase(Locale.ROOT); + + return switch (var1) { + case "production" -> Optional.of(PRODUCTION); + case "local" -> Optional.of(LOCAL); + case "stage", "staging" -> Optional.of(STAGE); + default -> Optional.empty(); + }; + } + } +} diff --git a/com/mojang/realmsclient/client/RealmsClientConfig.java b/com/mojang/realmsclient/client/RealmsClientConfig.java new file mode 100644 index 00000000..814bf344 --- /dev/null +++ b/com/mojang/realmsclient/client/RealmsClientConfig.java @@ -0,0 +1,23 @@ +package com.mojang.realmsclient.client; + +import java.net.Proxy; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class RealmsClientConfig { + @Nullable + private static Proxy proxy; + + @Nullable + public static Proxy getProxy() { + return proxy; + } + + public static void setProxy(Proxy proxy) { + if (RealmsClientConfig.proxy == null) { + RealmsClientConfig.proxy = proxy; + } + } +} diff --git a/com/mojang/realmsclient/client/RealmsError.java b/com/mojang/realmsclient/client/RealmsError.java new file mode 100644 index 00000000..42db8a5f --- /dev/null +++ b/com/mojang/realmsclient/client/RealmsError.java @@ -0,0 +1,156 @@ +package com.mojang.realmsclient.client; + +import com.google.common.base.Strings; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.exception.RealmsHttpException; +import java.util.Locale; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.util.GsonHelper; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public interface RealmsError { + Component NO_MESSAGE = Component.translatable("mco.errorMessage.noDetails"); + Logger LOGGER = LogUtils.getLogger(); + + int errorCode(); + + Component errorMessage(); + + String logMessage(); + + static RealmsError parse(int httpCode, String payload) { + if (httpCode == 429) { + return RealmsError.CustomError.SERVICE_BUSY; + } else if (Strings.isNullOrEmpty(payload)) { + return RealmsError.CustomError.noPayload(httpCode); + } else { + try { + JsonObject jsonObject = JsonParser.parseString(payload).getAsJsonObject(); + String string = GsonHelper.getAsString(jsonObject, "reason", null); + String string2 = GsonHelper.getAsString(jsonObject, "errorMsg", null); + int i = GsonHelper.getAsInt(jsonObject, "errorCode", -1); + if (string2 != null || string != null || i != -1) { + return new RealmsError.ErrorWithJsonPayload(httpCode, i != -1 ? i : httpCode, string, string2); + } + } catch (Exception var6) { + LOGGER.error("Could not parse RealmsError", (Throwable)var6); + } + + return new RealmsError.ErrorWithRawPayload(httpCode, payload); + } + } + + @Environment(EnvType.CLIENT) + public record AuthenticationError(String message) implements RealmsError { + public static final int ERROR_CODE = 401; + + @Override + public int errorCode() { + return 401; + } + + @Override + public Component errorMessage() { + return Component.literal(this.message); + } + + @Override + public String logMessage() { + return String.format(Locale.ROOT, "Realms authentication error with message '%s'", this.message); + } + } + + @Environment(EnvType.CLIENT) + public record CustomError(int httpCode, @Nullable Component payload) implements RealmsError { + public static final RealmsError.CustomError SERVICE_BUSY = new RealmsError.CustomError(429, Component.translatable("mco.errorMessage.serviceBusy")); + public static final Component RETRY_MESSAGE = Component.translatable("mco.errorMessage.retry"); + + public static RealmsError.CustomError unknownCompatibilityResponse(String payload) { + return new RealmsError.CustomError(500, Component.translatable("mco.errorMessage.realmsService.unknownCompatibility", payload)); + } + + public static RealmsError.CustomError connectivityError(RealmsHttpException payload) { + return new RealmsError.CustomError(500, Component.translatable("mco.errorMessage.realmsService.connectivity", payload.getMessage())); + } + + public static RealmsError.CustomError retry(int httpCode) { + return new RealmsError.CustomError(httpCode, RETRY_MESSAGE); + } + + public static RealmsError.CustomError noPayload(int httpCode) { + return new RealmsError.CustomError(httpCode, null); + } + + @Override + public int errorCode() { + return this.httpCode; + } + + @Override + public Component errorMessage() { + return this.payload != null ? this.payload : NO_MESSAGE; + } + + @Override + public String logMessage() { + return this.payload != null + ? String.format(Locale.ROOT, "Realms service error (%d) with message '%s'", this.httpCode, this.payload.getString()) + : String.format(Locale.ROOT, "Realms service error (%d) with no payload", this.httpCode); + } + } + + @Environment(EnvType.CLIENT) + public record ErrorWithJsonPayload(int httpCode, int code, @Nullable String reason, @Nullable String message) implements RealmsError { + @Override + public int errorCode() { + return this.code; + } + + @Override + public Component errorMessage() { + String string = "mco.errorMessage." + this.code; + if (I18n.exists(string)) { + return Component.translatable(string); + } else { + if (this.reason != null) { + String string2 = "mco.errorReason." + this.reason; + if (I18n.exists(string2)) { + return Component.translatable(string2); + } + } + + return (Component)(this.message != null ? Component.literal(this.message) : NO_MESSAGE); + } + } + + @Override + public String logMessage() { + return String.format(Locale.ROOT, "Realms service error (%d/%d/%s) with message '%s'", this.httpCode, this.code, this.reason, this.message); + } + } + + @Environment(EnvType.CLIENT) + public record ErrorWithRawPayload(int httpCode, String payload) implements RealmsError { + @Override + public int errorCode() { + return this.httpCode; + } + + @Override + public Component errorMessage() { + return Component.literal(this.payload); + } + + @Override + public String logMessage() { + return String.format(Locale.ROOT, "Realms service error (%d) with raw payload '%s'", this.httpCode, this.payload); + } + } +} diff --git a/com/mojang/realmsclient/client/Request.java b/com/mojang/realmsclient/client/Request.java new file mode 100644 index 00000000..854c98a2 --- /dev/null +++ b/com/mojang/realmsclient/client/Request.java @@ -0,0 +1,299 @@ +package com.mojang.realmsclient.client; + +import com.mojang.realmsclient.exception.RealmsHttpException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.Proxy; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public abstract class Request> { + protected HttpURLConnection connection; + private boolean connected; + protected String url; + private static final int DEFAULT_READ_TIMEOUT = 60000; + private static final int DEFAULT_CONNECT_TIMEOUT = 5000; + private static final String IS_SNAPSHOT_KEY = "Is-Prerelease"; + private static final String COOKIE_KEY = "Cookie"; + + public Request(String url, int connectTimeout, int readTimeout) { + try { + this.url = url; + Proxy proxy = RealmsClientConfig.getProxy(); + if (proxy != null) { + this.connection = (HttpURLConnection)new URL(url).openConnection(proxy); + } else { + this.connection = (HttpURLConnection)new URL(url).openConnection(); + } + + this.connection.setConnectTimeout(connectTimeout); + this.connection.setReadTimeout(readTimeout); + } catch (MalformedURLException var5) { + throw new RealmsHttpException(var5.getMessage(), var5); + } catch (IOException var6) { + throw new RealmsHttpException(var6.getMessage(), var6); + } + } + + public void cookie(String key, String value) { + cookie(this.connection, key, value); + } + + public static void cookie(HttpURLConnection connection, String key, String value) { + String string = connection.getRequestProperty("Cookie"); + if (string == null) { + connection.setRequestProperty("Cookie", key + "=" + value); + } else { + connection.setRequestProperty("Cookie", string + ";" + key + "=" + value); + } + } + + public void addSnapshotHeader(boolean isSnapshot) { + this.connection.addRequestProperty("Is-Prerelease", String.valueOf(isSnapshot)); + } + + public int getRetryAfterHeader() { + return getRetryAfterHeader(this.connection); + } + + public static int getRetryAfterHeader(HttpURLConnection connection) { + String string = connection.getHeaderField("Retry-After"); + + try { + return Integer.valueOf(string); + } catch (Exception var3) { + return 5; + } + } + + public int responseCode() { + try { + this.connect(); + return this.connection.getResponseCode(); + } catch (Exception var2) { + throw new RealmsHttpException(var2.getMessage(), var2); + } + } + + public String text() { + try { + this.connect(); + String string; + if (this.responseCode() >= 400) { + string = this.read(this.connection.getErrorStream()); + } else { + string = this.read(this.connection.getInputStream()); + } + + this.dispose(); + return string; + } catch (IOException var2) { + throw new RealmsHttpException(var2.getMessage(), var2); + } + } + + private String read(@Nullable InputStream in) throws IOException { + if (in == null) { + return ""; + } else { + InputStreamReader inputStreamReader = new InputStreamReader(in, StandardCharsets.UTF_8); + StringBuilder stringBuilder = new StringBuilder(); + + for (int i = inputStreamReader.read(); i != -1; i = inputStreamReader.read()) { + stringBuilder.append((char)i); + } + + return stringBuilder.toString(); + } + } + + private void dispose() { + byte[] bs = new byte[1024]; + + try { + InputStream inputStream = this.connection.getInputStream(); + + while (inputStream.read(bs) > 0) { + } + + inputStream.close(); + return; + } catch (Exception var9) { + try { + InputStream inputStream2 = this.connection.getErrorStream(); + if (inputStream2 != null) { + while (inputStream2.read(bs) > 0) { + } + + inputStream2.close(); + return; + } + } catch (IOException var8) { + return; + } + } finally { + if (this.connection != null) { + this.connection.disconnect(); + } + } + } + + protected T connect() { + if (this.connected) { + return (T)this; + } else { + T request = this.doConnect(); + this.connected = true; + return request; + } + } + + protected abstract T doConnect(); + + public static Request get(String url) { + return new Request.Get(url, 5000, 60000); + } + + public static Request get(String url, int connectTimeout, int readTimeout) { + return new Request.Get(url, connectTimeout, readTimeout); + } + + public static Request post(String url, String content) { + return new Request.Post(url, content, 5000, 60000); + } + + public static Request post(String url, String content, int connectTimeout, int readTimeout) { + return new Request.Post(url, content, connectTimeout, readTimeout); + } + + public static Request delete(String url) { + return new Request.Delete(url, 5000, 60000); + } + + public static Request put(String url, String content) { + return new Request.Put(url, content, 5000, 60000); + } + + public static Request put(String url, String content, int connectTimeout, int readTimeout) { + return new Request.Put(url, content, connectTimeout, readTimeout); + } + + public String getHeader(String name) { + return getHeader(this.connection, name); + } + + public static String getHeader(HttpURLConnection connection, String name) { + try { + return connection.getHeaderField(name); + } catch (Exception var3) { + return ""; + } + } + + @Environment(EnvType.CLIENT) + public static class Delete extends Request { + public Delete(String string, int i, int j) { + super(string, i, j); + } + + public Request.Delete doConnect() { + try { + this.connection.setDoOutput(true); + this.connection.setRequestMethod("DELETE"); + this.connection.connect(); + return this; + } catch (Exception var2) { + throw new RealmsHttpException(var2.getMessage(), var2); + } + } + } + + @Environment(EnvType.CLIENT) + public static class Get extends Request { + public Get(String string, int i, int j) { + super(string, i, j); + } + + public Request.Get doConnect() { + try { + this.connection.setDoInput(true); + this.connection.setDoOutput(true); + this.connection.setUseCaches(false); + this.connection.setRequestMethod("GET"); + return this; + } catch (Exception var2) { + throw new RealmsHttpException(var2.getMessage(), var2); + } + } + } + + @Environment(EnvType.CLIENT) + public static class Post extends Request { + private final String content; + + public Post(String url, String content, int connectTimeout, int readTimeout) { + super(url, connectTimeout, readTimeout); + this.content = content; + } + + public Request.Post doConnect() { + try { + if (this.content != null) { + this.connection.setRequestProperty("Content-Type", "application/json; charset=utf-8"); + } + + this.connection.setDoInput(true); + this.connection.setDoOutput(true); + this.connection.setUseCaches(false); + this.connection.setRequestMethod("POST"); + OutputStream outputStream = this.connection.getOutputStream(); + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8"); + outputStreamWriter.write(this.content); + outputStreamWriter.close(); + outputStream.flush(); + return this; + } catch (Exception var3) { + throw new RealmsHttpException(var3.getMessage(), var3); + } + } + } + + @Environment(EnvType.CLIENT) + public static class Put extends Request { + private final String content; + + public Put(String url, String content, int connectTimeout, int readTimeout) { + super(url, connectTimeout, readTimeout); + this.content = content; + } + + public Request.Put doConnect() { + try { + if (this.content != null) { + this.connection.setRequestProperty("Content-Type", "application/json; charset=utf-8"); + } + + this.connection.setDoOutput(true); + this.connection.setDoInput(true); + this.connection.setRequestMethod("PUT"); + OutputStream outputStream = this.connection.getOutputStream(); + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8"); + outputStreamWriter.write(this.content); + outputStreamWriter.close(); + outputStream.flush(); + return this; + } catch (Exception var3) { + throw new RealmsHttpException(var3.getMessage(), var3); + } + } + } +} diff --git a/com/mojang/realmsclient/client/UploadStatus.java b/com/mojang/realmsclient/client/UploadStatus.java new file mode 100644 index 00000000..617a8283 --- /dev/null +++ b/com/mojang/realmsclient/client/UploadStatus.java @@ -0,0 +1,10 @@ +package com.mojang.realmsclient.client; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class UploadStatus { + public volatile long bytesWritten; + public volatile long totalBytes; +} diff --git a/com/mojang/realmsclient/client/package-info.java b/com/mojang/realmsclient/client/package-info.java new file mode 100644 index 00000000..e27d9af6 --- /dev/null +++ b/com/mojang/realmsclient/client/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.client; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/dto/Backup.java b/com/mojang/realmsclient/dto/Backup.java new file mode 100644 index 00000000..22745760 --- /dev/null +++ b/com/mojang/realmsclient/dto/Backup.java @@ -0,0 +1,56 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Maps; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.Date; +import java.util.Map; +import java.util.Map.Entry; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class Backup extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public String backupId; + public Date lastModifiedDate; + public long size; + private boolean uploadedVersion; + public Map metadata = Maps.newHashMap(); + public Map changeList = Maps.newHashMap(); + + public static Backup parse(JsonElement json) { + JsonObject jsonObject = json.getAsJsonObject(); + Backup backup = new Backup(); + + try { + backup.backupId = JsonUtils.getStringOr("backupId", jsonObject, ""); + backup.lastModifiedDate = JsonUtils.getDateOr("lastModifiedDate", jsonObject); + backup.size = JsonUtils.getLongOr("size", jsonObject, 0L); + if (jsonObject.has("metadata")) { + JsonObject jsonObject2 = jsonObject.getAsJsonObject("metadata"); + + for (Entry entry : jsonObject2.entrySet()) { + if (!((JsonElement)entry.getValue()).isJsonNull()) { + backup.metadata.put((String)entry.getKey(), ((JsonElement)entry.getValue()).getAsString()); + } + } + } + } catch (Exception var7) { + LOGGER.error("Could not parse Backup: {}", var7.getMessage()); + } + + return backup; + } + + public boolean isUploadedVersion() { + return this.uploadedVersion; + } + + public void setUploadedVersion(boolean uploadedVersion) { + this.uploadedVersion = uploadedVersion; + } +} diff --git a/com/mojang/realmsclient/dto/BackupList.java b/com/mojang/realmsclient/dto/BackupList.java new file mode 100644 index 00000000..c8d32617 --- /dev/null +++ b/com/mojang/realmsclient/dto/BackupList.java @@ -0,0 +1,38 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Lists; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import java.util.Iterator; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class BackupList extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public List backups; + + public static BackupList parse(String json) { + JsonParser jsonParser = new JsonParser(); + BackupList backupList = new BackupList(); + backupList.backups = Lists.newArrayList(); + + try { + JsonElement jsonElement = jsonParser.parse(json).getAsJsonObject().get("backups"); + if (jsonElement.isJsonArray()) { + Iterator iterator = jsonElement.getAsJsonArray().iterator(); + + while (iterator.hasNext()) { + backupList.backups.add(Backup.parse((JsonElement)iterator.next())); + } + } + } catch (Exception var5) { + LOGGER.error("Could not parse BackupList: {}", var5.getMessage()); + } + + return backupList; + } +} diff --git a/com/mojang/realmsclient/dto/GuardedSerializer.java b/com/mojang/realmsclient/dto/GuardedSerializer.java new file mode 100644 index 00000000..5087988d --- /dev/null +++ b/com/mojang/realmsclient/dto/GuardedSerializer.java @@ -0,0 +1,25 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class GuardedSerializer { + private final Gson gson = new Gson(); + + public String toJson(ReflectionBasedSerialization reflectionBasedSerialization) { + return this.gson.toJson(reflectionBasedSerialization); + } + + public String toJson(JsonElement json) { + return this.gson.toJson(json); + } + + @Nullable + public T fromJson(String json, Class classOfT) { + return this.gson.fromJson(json, classOfT); + } +} diff --git a/com/mojang/realmsclient/dto/Ops.java b/com/mojang/realmsclient/dto/Ops.java new file mode 100644 index 00000000..28b0f718 --- /dev/null +++ b/com/mojang/realmsclient/dto/Ops.java @@ -0,0 +1,33 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Sets; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import java.util.Set; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class Ops extends ValueObject { + public Set ops = Sets.newHashSet(); + + public static Ops parse(String json) { + Ops ops = new Ops(); + JsonParser jsonParser = new JsonParser(); + + try { + JsonElement jsonElement = jsonParser.parse(json); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + JsonElement jsonElement2 = jsonObject.get("ops"); + if (jsonElement2.isJsonArray()) { + for (JsonElement jsonElement3 : jsonElement2.getAsJsonArray()) { + ops.ops.add(jsonElement3.getAsString()); + } + } + } catch (Exception var8) { + } + + return ops; + } +} diff --git a/com/mojang/realmsclient/dto/PendingInvite.java b/com/mojang/realmsclient/dto/PendingInvite.java new file mode 100644 index 00000000..e9303482 --- /dev/null +++ b/com/mojang/realmsclient/dto/PendingInvite.java @@ -0,0 +1,37 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.Date; +import java.util.UUID; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class PendingInvite extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public String invitationId; + public String realmName; + public String realmOwnerName; + public UUID realmOwnerUuid; + public Date date; + + public static PendingInvite parse(JsonObject json) { + PendingInvite pendingInvite = new PendingInvite(); + + try { + pendingInvite.invitationId = JsonUtils.getStringOr("invitationId", json, ""); + pendingInvite.realmName = JsonUtils.getStringOr("worldName", json, ""); + pendingInvite.realmOwnerName = JsonUtils.getStringOr("worldOwnerName", json, ""); + pendingInvite.realmOwnerUuid = JsonUtils.getUuidOr("worldOwnerUuid", json, Util.NIL_UUID); + pendingInvite.date = JsonUtils.getDateOr("date", json); + } catch (Exception var3) { + LOGGER.error("Could not parse PendingInvite: {}", var3.getMessage()); + } + + return pendingInvite; + } +} diff --git a/com/mojang/realmsclient/dto/PendingInvitesList.java b/com/mojang/realmsclient/dto/PendingInvitesList.java new file mode 100644 index 00000000..ce942dc9 --- /dev/null +++ b/com/mojang/realmsclient/dto/PendingInvitesList.java @@ -0,0 +1,38 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Lists; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import java.util.Iterator; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class PendingInvitesList extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public List pendingInvites = Lists.newArrayList(); + + public static PendingInvitesList parse(String json) { + PendingInvitesList pendingInvitesList = new PendingInvitesList(); + + try { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + if (jsonObject.get("invites").isJsonArray()) { + Iterator iterator = jsonObject.get("invites").getAsJsonArray().iterator(); + + while (iterator.hasNext()) { + pendingInvitesList.pendingInvites.add(PendingInvite.parse(((JsonElement)iterator.next()).getAsJsonObject())); + } + } + } catch (Exception var5) { + LOGGER.error("Could not parse PendingInvitesList: {}", var5.getMessage()); + } + + return pendingInvitesList; + } +} diff --git a/com/mojang/realmsclient/dto/PingResult.java b/com/mojang/realmsclient/dto/PingResult.java new file mode 100644 index 00000000..948c45d1 --- /dev/null +++ b/com/mojang/realmsclient/dto/PingResult.java @@ -0,0 +1,15 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Lists; +import com.google.gson.annotations.SerializedName; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class PingResult extends ValueObject implements ReflectionBasedSerialization { + @SerializedName("pingResults") + public List pingResults = Lists.newArrayList(); + @SerializedName("worldIds") + public List realmIds = Lists.newArrayList(); +} diff --git a/com/mojang/realmsclient/dto/PlayerInfo.java b/com/mojang/realmsclient/dto/PlayerInfo.java new file mode 100644 index 00000000..c9ad64e8 --- /dev/null +++ b/com/mojang/realmsclient/dto/PlayerInfo.java @@ -0,0 +1,60 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.annotations.SerializedName; +import java.util.UUID; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class PlayerInfo extends ValueObject implements ReflectionBasedSerialization { + @SerializedName("name") + private String name; + @SerializedName("uuid") + private UUID uuid; + @SerializedName("operator") + private boolean operator; + @SerializedName("accepted") + private boolean accepted; + @SerializedName("online") + private boolean online; + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public UUID getUuid() { + return this.uuid; + } + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + public boolean isOperator() { + return this.operator; + } + + public void setOperator(boolean operator) { + this.operator = operator; + } + + public boolean getAccepted() { + return this.accepted; + } + + public void setAccepted(boolean accepted) { + this.accepted = accepted; + } + + public boolean getOnline() { + return this.online; + } + + public void setOnline(boolean online) { + this.online = online; + } +} diff --git a/com/mojang/realmsclient/dto/RealmsDescriptionDto.java b/com/mojang/realmsclient/dto/RealmsDescriptionDto.java new file mode 100644 index 00000000..cc6ea79c --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsDescriptionDto.java @@ -0,0 +1,18 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.annotations.SerializedName; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RealmsDescriptionDto extends ValueObject implements ReflectionBasedSerialization { + @SerializedName("name") + public String name; + @SerializedName("description") + public String description; + + public RealmsDescriptionDto(String name, String description) { + this.name = name; + this.description = description; + } +} diff --git a/com/mojang/realmsclient/dto/RealmsNews.java b/com/mojang/realmsclient/dto/RealmsNews.java new file mode 100644 index 00000000..6cf45589 --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsNews.java @@ -0,0 +1,29 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsNews extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public String newsLink; + + public static RealmsNews parse(String json) { + RealmsNews realmsNews = new RealmsNews(); + + try { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + realmsNews.newsLink = JsonUtils.getStringOr("newsLink", jsonObject, null); + } catch (Exception var4) { + LOGGER.error("Could not parse RealmsNews: {}", var4.getMessage()); + } + + return realmsNews; + } +} diff --git a/com/mojang/realmsclient/dto/RealmsNotification.java b/com/mojang/realmsclient/dto/RealmsNotification.java new file mode 100644 index 00000000..eebeea42 --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsNotification.java @@ -0,0 +1,201 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.PopupScreen; +import net.minecraft.client.gui.screens.ConfirmLinkScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsNotification { + static final Logger LOGGER = LogUtils.getLogger(); + private static final String NOTIFICATION_UUID = "notificationUuid"; + private static final String DISMISSABLE = "dismissable"; + private static final String SEEN = "seen"; + private static final String TYPE = "type"; + private static final String VISIT_URL = "visitUrl"; + private static final String INFO_POPUP = "infoPopup"; + static final Component BUTTON_TEXT_FALLBACK = Component.translatable("mco.notification.visitUrl.buttonText.default"); + final UUID uuid; + final boolean dismissable; + final boolean seen; + final String type; + + RealmsNotification(UUID uuid, boolean dismissable, boolean seen, String type) { + this.uuid = uuid; + this.dismissable = dismissable; + this.seen = seen; + this.type = type; + } + + public boolean seen() { + return this.seen; + } + + public boolean dismissable() { + return this.dismissable; + } + + public UUID uuid() { + return this.uuid; + } + + public static List parseList(String json) { + List list = new ArrayList(); + + try { + for (JsonElement jsonElement : JsonParser.parseString(json).getAsJsonObject().get("notifications").getAsJsonArray()) { + list.add(parse(jsonElement.getAsJsonObject())); + } + } catch (Exception var5) { + LOGGER.error("Could not parse list of RealmsNotifications", (Throwable)var5); + } + + return list; + } + + private static RealmsNotification parse(JsonObject json) { + UUID uUID = JsonUtils.getUuidOr("notificationUuid", json, null); + if (uUID == null) { + throw new IllegalStateException("Missing required property notificationUuid"); + } else { + boolean bl = JsonUtils.getBooleanOr("dismissable", json, true); + boolean bl2 = JsonUtils.getBooleanOr("seen", json, false); + String string = JsonUtils.getRequiredString("type", json); + RealmsNotification realmsNotification = new RealmsNotification(uUID, bl, bl2, string); + + return (RealmsNotification)(switch (string) { + case "visitUrl" -> RealmsNotification.VisitUrl.parse(realmsNotification, json); + case "infoPopup" -> RealmsNotification.InfoPopup.parse(realmsNotification, json); + default -> realmsNotification; + }); + } + } + + @Environment(EnvType.CLIENT) + public static class InfoPopup extends RealmsNotification { + private static final String TITLE = "title"; + private static final String MESSAGE = "message"; + private static final String IMAGE = "image"; + private static final String URL_BUTTON = "urlButton"; + private final RealmsText title; + private final RealmsText message; + private final ResourceLocation image; + @Nullable + private final RealmsNotification.UrlButton urlButton; + + private InfoPopup( + RealmsNotification notification, RealmsText title, RealmsText message, ResourceLocation image, @Nullable RealmsNotification.UrlButton urlButton + ) { + super(notification.uuid, notification.dismissable, notification.seen, notification.type); + this.title = title; + this.message = message; + this.image = image; + this.urlButton = urlButton; + } + + public static RealmsNotification.InfoPopup parse(RealmsNotification notification, JsonObject json) { + RealmsText realmsText = JsonUtils.getRequired("title", json, RealmsText::parse); + RealmsText realmsText2 = JsonUtils.getRequired("message", json, RealmsText::parse); + ResourceLocation resourceLocation = ResourceLocation.parse(JsonUtils.getRequiredString("image", json)); + RealmsNotification.UrlButton urlButton = JsonUtils.getOptional("urlButton", json, RealmsNotification.UrlButton::parse); + return new RealmsNotification.InfoPopup(notification, realmsText, realmsText2, resourceLocation, urlButton); + } + + @Nullable + public PopupScreen buildScreen(Screen backgroundScreen, Consumer uuidOutput) { + Component component = this.title.createComponent(); + if (component == null) { + RealmsNotification.LOGGER.warn("Realms info popup had title with no available translation: {}", this.title); + return null; + } else { + PopupScreen.Builder builder = new PopupScreen.Builder(backgroundScreen, component) + .setImage(this.image) + .setMessage(this.message.createComponent(CommonComponents.EMPTY)); + if (this.urlButton != null) { + builder.addButton(this.urlButton.urlText.createComponent(RealmsNotification.BUTTON_TEXT_FALLBACK), popupScreen -> { + Minecraft minecraft = Minecraft.getInstance(); + minecraft.setScreen(new ConfirmLinkScreen(bl -> { + if (bl) { + Util.getPlatform().openUri(this.urlButton.url); + minecraft.setScreen(backgroundScreen); + } else { + minecraft.setScreen(popupScreen); + } + }, this.urlButton.url, true)); + uuidOutput.accept(this.uuid()); + }); + } + + builder.addButton(CommonComponents.GUI_OK, popupScreen -> { + popupScreen.onClose(); + uuidOutput.accept(this.uuid()); + }); + builder.onClose(() -> uuidOutput.accept(this.uuid())); + return builder.build(); + } + } + } + + @Environment(EnvType.CLIENT) + record UrlButton(String url, RealmsText urlText) { + private static final String URL = "url"; + private static final String URL_TEXT = "urlText"; + + public static RealmsNotification.UrlButton parse(JsonObject json) { + String string = JsonUtils.getRequiredString("url", json); + RealmsText realmsText = JsonUtils.getRequired("urlText", json, RealmsText::parse); + return new RealmsNotification.UrlButton(string, realmsText); + } + } + + @Environment(EnvType.CLIENT) + public static class VisitUrl extends RealmsNotification { + private static final String URL = "url"; + private static final String BUTTON_TEXT = "buttonText"; + private static final String MESSAGE = "message"; + private final String url; + private final RealmsText buttonText; + private final RealmsText message; + + private VisitUrl(RealmsNotification notification, String url, RealmsText buttonText, RealmsText message) { + super(notification.uuid, notification.dismissable, notification.seen, notification.type); + this.url = url; + this.buttonText = buttonText; + this.message = message; + } + + public static RealmsNotification.VisitUrl parse(RealmsNotification notification, JsonObject json) { + String string = JsonUtils.getRequiredString("url", json); + RealmsText realmsText = JsonUtils.getRequired("buttonText", json, RealmsText::parse); + RealmsText realmsText2 = JsonUtils.getRequired("message", json, RealmsText::parse); + return new RealmsNotification.VisitUrl(notification, string, realmsText, realmsText2); + } + + public Component getMessage() { + return this.message.createComponent(Component.translatable("mco.notification.visitUrl.message.default")); + } + + public Button buildOpenLinkButton(Screen lastScreen) { + Component component = this.buttonText.createComponent(RealmsNotification.BUTTON_TEXT_FALLBACK); + return Button.builder(component, ConfirmLinkScreen.confirmLink(lastScreen, this.url)).build(); + } + } +} diff --git a/com/mojang/realmsclient/dto/RealmsServer.java b/com/mojang/realmsclient/dto/RealmsServer.java new file mode 100644 index 00000000..9528f8fb --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsServer.java @@ -0,0 +1,367 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.ComparisonChain; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.Comparator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; +import java.util.Map.Entry; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.multiplayer.ServerData; +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsServer extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final int NO_VALUE = -1; + public long id; + public String remoteSubscriptionId; + public String name; + public String motd; + public RealmsServer.State state; + public String owner; + public UUID ownerUUID = Util.NIL_UUID; + public List players; + public Map slots; + public boolean expired; + public boolean expiredTrial; + public int daysLeft; + public RealmsServer.WorldType worldType; + public int activeSlot; + @Nullable + public String minigameName; + public int minigameId; + public String minigameImage; + public long parentRealmId = -1L; + @Nullable + public String parentWorldName; + public String activeVersion = ""; + public RealmsServer.Compatibility compatibility = RealmsServer.Compatibility.UNVERIFIABLE; + + public String getDescription() { + return this.motd; + } + + public String getName() { + return this.name; + } + + @Nullable + public String getMinigameName() { + return this.minigameName; + } + + public void setName(String name) { + this.name = name; + } + + public void setDescription(String motd) { + this.motd = motd; + } + + public static RealmsServer parse(JsonObject json) { + RealmsServer realmsServer = new RealmsServer(); + + try { + realmsServer.id = JsonUtils.getLongOr("id", json, -1L); + realmsServer.remoteSubscriptionId = JsonUtils.getStringOr("remoteSubscriptionId", json, null); + realmsServer.name = JsonUtils.getStringOr("name", json, null); + realmsServer.motd = JsonUtils.getStringOr("motd", json, null); + realmsServer.state = getState(JsonUtils.getStringOr("state", json, RealmsServer.State.CLOSED.name())); + realmsServer.owner = JsonUtils.getStringOr("owner", json, null); + if (json.get("players") != null && json.get("players").isJsonArray()) { + realmsServer.players = parseInvited(json.get("players").getAsJsonArray()); + sortInvited(realmsServer); + } else { + realmsServer.players = Lists.newArrayList(); + } + + realmsServer.daysLeft = JsonUtils.getIntOr("daysLeft", json, 0); + realmsServer.expired = JsonUtils.getBooleanOr("expired", json, false); + realmsServer.expiredTrial = JsonUtils.getBooleanOr("expiredTrial", json, false); + realmsServer.worldType = getWorldType(JsonUtils.getStringOr("worldType", json, RealmsServer.WorldType.NORMAL.name())); + realmsServer.ownerUUID = JsonUtils.getUuidOr("ownerUUID", json, Util.NIL_UUID); + if (json.get("slots") != null && json.get("slots").isJsonArray()) { + realmsServer.slots = parseSlots(json.get("slots").getAsJsonArray()); + } else { + realmsServer.slots = createEmptySlots(); + } + + realmsServer.minigameName = JsonUtils.getStringOr("minigameName", json, null); + realmsServer.activeSlot = JsonUtils.getIntOr("activeSlot", json, -1); + realmsServer.minigameId = JsonUtils.getIntOr("minigameId", json, -1); + realmsServer.minigameImage = JsonUtils.getStringOr("minigameImage", json, null); + realmsServer.parentRealmId = JsonUtils.getLongOr("parentWorldId", json, -1L); + realmsServer.parentWorldName = JsonUtils.getStringOr("parentWorldName", json, null); + realmsServer.activeVersion = JsonUtils.getStringOr("activeVersion", json, ""); + realmsServer.compatibility = getCompatibility(JsonUtils.getStringOr("compatibility", json, RealmsServer.Compatibility.UNVERIFIABLE.name())); + } catch (Exception var3) { + LOGGER.error("Could not parse McoServer: {}", var3.getMessage()); + } + + return realmsServer; + } + + private static void sortInvited(RealmsServer realmsServer) { + realmsServer.players + .sort( + (playerInfo, playerInfo2) -> ComparisonChain.start() + .compareFalseFirst(playerInfo2.getAccepted(), playerInfo.getAccepted()) + .compare(playerInfo.getName().toLowerCase(Locale.ROOT), playerInfo2.getName().toLowerCase(Locale.ROOT)) + .result() + ); + } + + private static List parseInvited(JsonArray jsonArray) { + List list = Lists.newArrayList(); + + for (JsonElement jsonElement : jsonArray) { + try { + JsonObject jsonObject = jsonElement.getAsJsonObject(); + PlayerInfo playerInfo = new PlayerInfo(); + playerInfo.setName(JsonUtils.getStringOr("name", jsonObject, null)); + playerInfo.setUuid(JsonUtils.getUuidOr("uuid", jsonObject, Util.NIL_UUID)); + playerInfo.setOperator(JsonUtils.getBooleanOr("operator", jsonObject, false)); + playerInfo.setAccepted(JsonUtils.getBooleanOr("accepted", jsonObject, false)); + playerInfo.setOnline(JsonUtils.getBooleanOr("online", jsonObject, false)); + list.add(playerInfo); + } catch (Exception var6) { + } + } + + return list; + } + + private static Map parseSlots(JsonArray jsonArray) { + Map map = Maps.newHashMap(); + + for (JsonElement jsonElement : jsonArray) { + try { + JsonObject jsonObject = jsonElement.getAsJsonObject(); + JsonParser jsonParser = new JsonParser(); + JsonElement jsonElement2 = jsonParser.parse(jsonObject.get("options").getAsString()); + RealmsWorldOptions realmsWorldOptions; + if (jsonElement2 == null) { + realmsWorldOptions = RealmsWorldOptions.createDefaults(); + } else { + realmsWorldOptions = RealmsWorldOptions.parse(jsonElement2.getAsJsonObject()); + } + + int i = JsonUtils.getIntOr("slotId", jsonObject, -1); + map.put(i, realmsWorldOptions); + } catch (Exception var9) { + } + } + + for (int j = 1; j <= 3; j++) { + if (!map.containsKey(j)) { + map.put(j, RealmsWorldOptions.createEmptyDefaults()); + } + } + + return map; + } + + private static Map createEmptySlots() { + Map map = Maps.newHashMap(); + map.put(1, RealmsWorldOptions.createEmptyDefaults()); + map.put(2, RealmsWorldOptions.createEmptyDefaults()); + map.put(3, RealmsWorldOptions.createEmptyDefaults()); + return map; + } + + public static RealmsServer parse(String json) { + try { + return parse(new JsonParser().parse(json).getAsJsonObject()); + } catch (Exception var2) { + LOGGER.error("Could not parse McoServer: {}", var2.getMessage()); + return new RealmsServer(); + } + } + + private static RealmsServer.State getState(String name) { + try { + return RealmsServer.State.valueOf(name); + } catch (Exception var2) { + return RealmsServer.State.CLOSED; + } + } + + private static RealmsServer.WorldType getWorldType(String name) { + try { + return RealmsServer.WorldType.valueOf(name); + } catch (Exception var2) { + return RealmsServer.WorldType.NORMAL; + } + } + + public static RealmsServer.Compatibility getCompatibility(@Nullable String id) { + try { + return RealmsServer.Compatibility.valueOf(id); + } catch (Exception var2) { + return RealmsServer.Compatibility.UNVERIFIABLE; + } + } + + public boolean isCompatible() { + return this.compatibility.isCompatible(); + } + + public boolean needsUpgrade() { + return this.compatibility.needsUpgrade(); + } + + public boolean needsDowngrade() { + return this.compatibility.needsDowngrade(); + } + + public int hashCode() { + return Objects.hash(new Object[]{this.id, this.name, this.motd, this.state, this.owner, this.expired}); + } + + public boolean equals(Object object) { + if (object == null) { + return false; + } else if (object == this) { + return true; + } else if (object.getClass() != this.getClass()) { + return false; + } else { + RealmsServer realmsServer = (RealmsServer)object; + return new EqualsBuilder() + .append(this.id, realmsServer.id) + .append(this.name, realmsServer.name) + .append(this.motd, realmsServer.motd) + .append(this.state, realmsServer.state) + .append(this.owner, realmsServer.owner) + .append(this.expired, realmsServer.expired) + .append(this.worldType, this.worldType) + .isEquals(); + } + } + + public RealmsServer clone() { + RealmsServer realmsServer = new RealmsServer(); + realmsServer.id = this.id; + realmsServer.remoteSubscriptionId = this.remoteSubscriptionId; + realmsServer.name = this.name; + realmsServer.motd = this.motd; + realmsServer.state = this.state; + realmsServer.owner = this.owner; + realmsServer.players = this.players; + realmsServer.slots = this.cloneSlots(this.slots); + realmsServer.expired = this.expired; + realmsServer.expiredTrial = this.expiredTrial; + realmsServer.daysLeft = this.daysLeft; + realmsServer.worldType = this.worldType; + realmsServer.ownerUUID = this.ownerUUID; + realmsServer.minigameName = this.minigameName; + realmsServer.activeSlot = this.activeSlot; + realmsServer.minigameId = this.minigameId; + realmsServer.minigameImage = this.minigameImage; + realmsServer.parentWorldName = this.parentWorldName; + realmsServer.parentRealmId = this.parentRealmId; + realmsServer.activeVersion = this.activeVersion; + realmsServer.compatibility = this.compatibility; + return realmsServer; + } + + public Map cloneSlots(Map slots) { + Map map = Maps.newHashMap(); + + for (Entry entry : slots.entrySet()) { + map.put((Integer)entry.getKey(), ((RealmsWorldOptions)entry.getValue()).clone()); + } + + return map; + } + + public boolean isSnapshotRealm() { + return this.parentRealmId != -1L; + } + + public boolean isMinigameActive() { + return this.worldType == RealmsServer.WorldType.MINIGAME; + } + + public String getWorldName(int slot) { + return this.name + " (" + ((RealmsWorldOptions)this.slots.get(slot)).getSlotName(slot) + ")"; + } + + public ServerData toServerData(String ip) { + return new ServerData(this.name, ip, ServerData.Type.REALM); + } + + @Environment(EnvType.CLIENT) + public static enum Compatibility { + UNVERIFIABLE, + INCOMPATIBLE, + RELEASE_TYPE_INCOMPATIBLE, + NEEDS_DOWNGRADE, + NEEDS_UPGRADE, + COMPATIBLE; + + public boolean isCompatible() { + return this == COMPATIBLE; + } + + public boolean needsUpgrade() { + return this == NEEDS_UPGRADE; + } + + public boolean needsDowngrade() { + return this == NEEDS_DOWNGRADE; + } + } + + @Environment(EnvType.CLIENT) + public static class McoServerComparator implements Comparator { + private final String refOwner; + + public McoServerComparator(String refOwner) { + this.refOwner = refOwner; + } + + public int compare(RealmsServer first, RealmsServer second) { + return ComparisonChain.start() + .compareTrueFirst(first.isSnapshotRealm(), second.isSnapshotRealm()) + .compareTrueFirst(first.state == RealmsServer.State.UNINITIALIZED, second.state == RealmsServer.State.UNINITIALIZED) + .compareTrueFirst(first.expiredTrial, second.expiredTrial) + .compareTrueFirst(first.owner.equals(this.refOwner), second.owner.equals(this.refOwner)) + .compareFalseFirst(first.expired, second.expired) + .compareTrueFirst(first.state == RealmsServer.State.OPEN, second.state == RealmsServer.State.OPEN) + .compare(first.id, second.id) + .result(); + } + } + + @Environment(EnvType.CLIENT) + public static enum State { + CLOSED, + OPEN, + UNINITIALIZED; + } + + @Environment(EnvType.CLIENT) + public static enum WorldType { + NORMAL, + MINIGAME, + ADVENTUREMAP, + EXPERIENCE, + INSPIRATION; + } +} diff --git a/com/mojang/realmsclient/dto/RealmsServerAddress.java b/com/mojang/realmsclient/dto/RealmsServerAddress.java new file mode 100644 index 00000000..c2ab9d1d --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsServerAddress.java @@ -0,0 +1,33 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsServerAddress extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public String address; + public String resourcePackUrl; + public String resourcePackHash; + + public static RealmsServerAddress parse(String json) { + JsonParser jsonParser = new JsonParser(); + RealmsServerAddress realmsServerAddress = new RealmsServerAddress(); + + try { + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + realmsServerAddress.address = JsonUtils.getStringOr("address", jsonObject, null); + realmsServerAddress.resourcePackUrl = JsonUtils.getStringOr("resourcePackUrl", jsonObject, null); + realmsServerAddress.resourcePackHash = JsonUtils.getStringOr("resourcePackHash", jsonObject, null); + } catch (Exception var4) { + LOGGER.error("Could not parse RealmsServerAddress: {}", var4.getMessage()); + } + + return realmsServerAddress; + } +} diff --git a/com/mojang/realmsclient/dto/RealmsServerList.java b/com/mojang/realmsclient/dto/RealmsServerList.java new file mode 100644 index 00000000..06451031 --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsServerList.java @@ -0,0 +1,41 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Lists; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import java.util.Iterator; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsServerList extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public List servers; + + public static RealmsServerList parse(String json) { + RealmsServerList realmsServerList = new RealmsServerList(); + realmsServerList.servers = Lists.newArrayList(); + + try { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + if (jsonObject.get("servers").isJsonArray()) { + JsonArray jsonArray = jsonObject.get("servers").getAsJsonArray(); + Iterator iterator = jsonArray.iterator(); + + while (iterator.hasNext()) { + realmsServerList.servers.add(RealmsServer.parse(((JsonElement)iterator.next()).getAsJsonObject())); + } + } + } catch (Exception var6) { + LOGGER.error("Could not parse McoServerList: {}", var6.getMessage()); + } + + return realmsServerList; + } +} diff --git a/com/mojang/realmsclient/dto/RealmsServerPlayerLists.java b/com/mojang/realmsclient/dto/RealmsServerPlayerLists.java new file mode 100644 index 00000000..e08694b9 --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsServerPlayerLists.java @@ -0,0 +1,89 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import com.google.common.collect.ImmutableMap.Builder; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.authlib.minecraft.MinecraftSessionService; +import com.mojang.authlib.yggdrasil.ProfileResult; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.util.GsonHelper; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsServerPlayerLists extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public Map> servers = Map.of(); + + public static RealmsServerPlayerLists parse(String json) { + RealmsServerPlayerLists realmsServerPlayerLists = new RealmsServerPlayerLists(); + Builder> builder = ImmutableMap.builder(); + + try { + JsonObject jsonObject = GsonHelper.parse(json); + if (GsonHelper.isArrayNode(jsonObject, "lists")) { + for (JsonElement jsonElement : jsonObject.getAsJsonArray("lists")) { + JsonObject jsonObject2 = jsonElement.getAsJsonObject(); + String string = JsonUtils.getStringOr("playerList", jsonObject2, null); + List list; + if (string != null) { + JsonElement jsonElement2 = JsonParser.parseString(string); + if (jsonElement2.isJsonArray()) { + list = parsePlayers(jsonElement2.getAsJsonArray()); + } else { + list = Lists.newArrayList(); + } + } else { + list = Lists.newArrayList(); + } + + builder.put(JsonUtils.getLongOr("serverId", jsonObject2, -1L), list); + } + } + } catch (Exception var11) { + LOGGER.error("Could not parse RealmsServerPlayerLists: {}", var11.getMessage()); + } + + realmsServerPlayerLists.servers = builder.build(); + return realmsServerPlayerLists; + } + + private static List parsePlayers(JsonArray json) { + List list = new ArrayList(json.size()); + MinecraftSessionService minecraftSessionService = Minecraft.getInstance().getMinecraftSessionService(); + + for (JsonElement jsonElement : json) { + if (jsonElement.isJsonObject()) { + UUID uUID = JsonUtils.getUuidOr("playerId", jsonElement.getAsJsonObject(), null); + if (uUID != null && !Minecraft.getInstance().isLocalPlayer(uUID)) { + try { + ProfileResult profileResult = minecraftSessionService.fetchProfile(uUID, false); + if (profileResult != null) { + list.add(profileResult); + } + } catch (Exception var7) { + LOGGER.error("Could not get name for {}", uUID, var7); + } + } + } + } + + return list; + } + + public List getProfileResultsFor(long index) { + List list = (List)this.servers.get(index); + return list != null ? list : List.of(); + } +} diff --git a/com/mojang/realmsclient/dto/RealmsText.java b/com/mojang/realmsclient/dto/RealmsText.java new file mode 100644 index 00000000..dafe168c --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsText.java @@ -0,0 +1,61 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.Objects; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class RealmsText { + private static final String TRANSLATION_KEY = "translationKey"; + private static final String ARGS = "args"; + private final String translationKey; + @Nullable + private final String[] args; + + private RealmsText(String translationKey, @Nullable String[] args) { + this.translationKey = translationKey; + this.args = args; + } + + public Component createComponent(Component defaultValue) { + return (Component)Objects.requireNonNullElse(this.createComponent(), defaultValue); + } + + @Nullable + public Component createComponent() { + if (!I18n.exists(this.translationKey)) { + return null; + } else { + return this.args == null ? Component.translatable(this.translationKey) : Component.translatable(this.translationKey, this.args); + } + } + + public static RealmsText parse(JsonObject json) { + String string = JsonUtils.getRequiredString("translationKey", json); + JsonElement jsonElement = json.get("args"); + String[] strings; + if (jsonElement != null && !jsonElement.isJsonNull()) { + JsonArray jsonArray = jsonElement.getAsJsonArray(); + strings = new String[jsonArray.size()]; + + for (int i = 0; i < jsonArray.size(); i++) { + strings[i] = jsonArray.get(i).getAsString(); + } + } else { + strings = null; + } + + return new RealmsText(string, strings); + } + + public String toString() { + return this.translationKey; + } +} diff --git a/com/mojang/realmsclient/dto/RealmsWorldOptions.java b/com/mojang/realmsclient/dto/RealmsWorldOptions.java new file mode 100644 index 00000000..7a194505 --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsWorldOptions.java @@ -0,0 +1,188 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.Objects; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.util.StringUtil; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class RealmsWorldOptions extends ValueObject { + public final boolean pvp; + public final boolean spawnAnimals; + public final boolean spawnMonsters; + public final boolean spawnNPCs; + public final int spawnProtection; + public final boolean commandBlocks; + public final boolean forceGameMode; + public final int difficulty; + public final int gameMode; + private final String slotName; + public final String version; + public final RealmsServer.Compatibility compatibility; + public long templateId; + @Nullable + public String templateImage; + public boolean empty; + private static final boolean DEFAULT_FORCE_GAME_MODE = false; + private static final boolean DEFAULT_PVP = true; + private static final boolean DEFAULT_SPAWN_ANIMALS = true; + private static final boolean DEFAULT_SPAWN_MONSTERS = true; + private static final boolean DEFAULT_SPAWN_NPCS = true; + private static final int DEFAULT_SPAWN_PROTECTION = 0; + private static final boolean DEFAULT_COMMAND_BLOCKS = false; + private static final int DEFAULT_DIFFICULTY = 2; + private static final int DEFAULT_GAME_MODE = 0; + private static final String DEFAULT_SLOT_NAME = ""; + private static final String DEFAULT_VERSION = ""; + private static final RealmsServer.Compatibility DEFAULT_COMPATIBILITY = RealmsServer.Compatibility.UNVERIFIABLE; + private static final long DEFAULT_TEMPLATE_ID = -1L; + private static final String DEFAULT_TEMPLATE_IMAGE = null; + + public RealmsWorldOptions( + boolean pvp, + boolean spawnAnimals, + boolean spawnMonsters, + boolean spawnNPCs, + int spawnProtection, + boolean commandBlocks, + int difficulty, + int gameMode, + boolean forceGameMode, + String slotName, + String version, + RealmsServer.Compatibility compatibility + ) { + this.pvp = pvp; + this.spawnAnimals = spawnAnimals; + this.spawnMonsters = spawnMonsters; + this.spawnNPCs = spawnNPCs; + this.spawnProtection = spawnProtection; + this.commandBlocks = commandBlocks; + this.difficulty = difficulty; + this.gameMode = gameMode; + this.forceGameMode = forceGameMode; + this.slotName = slotName; + this.version = version; + this.compatibility = compatibility; + } + + public static RealmsWorldOptions createDefaults() { + return new RealmsWorldOptions(true, true, true, true, 0, false, 2, 0, false, "", "", DEFAULT_COMPATIBILITY); + } + + public static RealmsWorldOptions createEmptyDefaults() { + RealmsWorldOptions realmsWorldOptions = createDefaults(); + realmsWorldOptions.setEmpty(true); + return realmsWorldOptions; + } + + public void setEmpty(boolean empty) { + this.empty = empty; + } + + public static RealmsWorldOptions parse(JsonObject json) { + RealmsWorldOptions realmsWorldOptions = new RealmsWorldOptions( + JsonUtils.getBooleanOr("pvp", json, true), + JsonUtils.getBooleanOr("spawnAnimals", json, true), + JsonUtils.getBooleanOr("spawnMonsters", json, true), + JsonUtils.getBooleanOr("spawnNPCs", json, true), + JsonUtils.getIntOr("spawnProtection", json, 0), + JsonUtils.getBooleanOr("commandBlocks", json, false), + JsonUtils.getIntOr("difficulty", json, 2), + JsonUtils.getIntOr("gameMode", json, 0), + JsonUtils.getBooleanOr("forceGameMode", json, false), + JsonUtils.getRequiredStringOr("slotName", json, ""), + JsonUtils.getRequiredStringOr("version", json, ""), + RealmsServer.getCompatibility(JsonUtils.getRequiredStringOr("compatibility", json, RealmsServer.Compatibility.UNVERIFIABLE.name())) + ); + realmsWorldOptions.templateId = JsonUtils.getLongOr("worldTemplateId", json, -1L); + realmsWorldOptions.templateImage = JsonUtils.getStringOr("worldTemplateImage", json, DEFAULT_TEMPLATE_IMAGE); + return realmsWorldOptions; + } + + public String getSlotName(int slotIndex) { + if (StringUtil.isBlank(this.slotName)) { + return this.empty ? I18n.get("mco.configure.world.slot.empty") : this.getDefaultSlotName(slotIndex); + } else { + return this.slotName; + } + } + + public String getDefaultSlotName(int slotIndex) { + return I18n.get("mco.configure.world.slot", slotIndex); + } + + public String toJson() { + JsonObject jsonObject = new JsonObject(); + if (!this.pvp) { + jsonObject.addProperty("pvp", this.pvp); + } + + if (!this.spawnAnimals) { + jsonObject.addProperty("spawnAnimals", this.spawnAnimals); + } + + if (!this.spawnMonsters) { + jsonObject.addProperty("spawnMonsters", this.spawnMonsters); + } + + if (!this.spawnNPCs) { + jsonObject.addProperty("spawnNPCs", this.spawnNPCs); + } + + if (this.spawnProtection != 0) { + jsonObject.addProperty("spawnProtection", this.spawnProtection); + } + + if (this.commandBlocks) { + jsonObject.addProperty("commandBlocks", this.commandBlocks); + } + + if (this.difficulty != 2) { + jsonObject.addProperty("difficulty", this.difficulty); + } + + if (this.gameMode != 0) { + jsonObject.addProperty("gameMode", this.gameMode); + } + + if (this.forceGameMode) { + jsonObject.addProperty("forceGameMode", this.forceGameMode); + } + + if (!Objects.equals(this.slotName, "")) { + jsonObject.addProperty("slotName", this.slotName); + } + + if (!Objects.equals(this.version, "")) { + jsonObject.addProperty("version", this.version); + } + + if (this.compatibility != DEFAULT_COMPATIBILITY) { + jsonObject.addProperty("compatibility", this.compatibility.name()); + } + + return jsonObject.toString(); + } + + public RealmsWorldOptions clone() { + return new RealmsWorldOptions( + this.pvp, + this.spawnAnimals, + this.spawnMonsters, + this.spawnNPCs, + this.spawnProtection, + this.commandBlocks, + this.difficulty, + this.gameMode, + this.forceGameMode, + this.slotName, + this.version, + this.compatibility + ); + } +} diff --git a/com/mojang/realmsclient/dto/RealmsWorldResetDto.java b/com/mojang/realmsclient/dto/RealmsWorldResetDto.java new file mode 100644 index 00000000..26b6767f --- /dev/null +++ b/com/mojang/realmsclient/dto/RealmsWorldResetDto.java @@ -0,0 +1,28 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.annotations.SerializedName; +import java.util.Set; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RealmsWorldResetDto extends ValueObject implements ReflectionBasedSerialization { + @SerializedName("seed") + private final String seed; + @SerializedName("worldTemplateId") + private final long worldTemplateId; + @SerializedName("levelType") + private final int levelType; + @SerializedName("generateStructures") + private final boolean generateStructures; + @SerializedName("experiments") + private final Set experiments; + + public RealmsWorldResetDto(String seed, long worldTemplateId, int levelType, boolean generateStructures, Set experiments) { + this.seed = seed; + this.worldTemplateId = worldTemplateId; + this.levelType = levelType; + this.generateStructures = generateStructures; + this.experiments = experiments; + } +} diff --git a/com/mojang/realmsclient/dto/ReflectionBasedSerialization.java b/com/mojang/realmsclient/dto/ReflectionBasedSerialization.java new file mode 100644 index 00000000..ad760227 --- /dev/null +++ b/com/mojang/realmsclient/dto/ReflectionBasedSerialization.java @@ -0,0 +1,8 @@ +package com.mojang.realmsclient.dto; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface ReflectionBasedSerialization { +} diff --git a/com/mojang/realmsclient/dto/RegionPingResult.java b/com/mojang/realmsclient/dto/RegionPingResult.java new file mode 100644 index 00000000..2e09525f --- /dev/null +++ b/com/mojang/realmsclient/dto/RegionPingResult.java @@ -0,0 +1,28 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.annotations.SerializedName; +import java.util.Locale; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RegionPingResult extends ValueObject implements ReflectionBasedSerialization { + @SerializedName("regionName") + private final String regionName; + @SerializedName("ping") + private final int ping; + + public RegionPingResult(String regionName, int ping) { + this.regionName = regionName; + this.ping = ping; + } + + public int ping() { + return this.ping; + } + + @Override + public String toString() { + return String.format(Locale.ROOT, "%s --> %.2f ms", this.regionName, (float)this.ping); + } +} diff --git a/com/mojang/realmsclient/dto/ServerActivity.java b/com/mojang/realmsclient/dto/ServerActivity.java new file mode 100644 index 00000000..387e8e8b --- /dev/null +++ b/com/mojang/realmsclient/dto/ServerActivity.java @@ -0,0 +1,26 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.mojang.realmsclient.util.JsonUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class ServerActivity extends ValueObject { + public String profileUuid; + public long joinTime; + public long leaveTime; + + public static ServerActivity parse(JsonObject json) { + ServerActivity serverActivity = new ServerActivity(); + + try { + serverActivity.profileUuid = JsonUtils.getStringOr("profileUuid", json, null); + serverActivity.joinTime = JsonUtils.getLongOr("joinTime", json, Long.MIN_VALUE); + serverActivity.leaveTime = JsonUtils.getLongOr("leaveTime", json, Long.MIN_VALUE); + } catch (Exception var3) { + } + + return serverActivity; + } +} diff --git a/com/mojang/realmsclient/dto/ServerActivityList.java b/com/mojang/realmsclient/dto/ServerActivityList.java new file mode 100644 index 00000000..d3911eff --- /dev/null +++ b/com/mojang/realmsclient/dto/ServerActivityList.java @@ -0,0 +1,37 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Lists; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class ServerActivityList extends ValueObject { + public long periodInMillis; + public List serverActivities = Lists.newArrayList(); + + public static ServerActivityList parse(String json) { + ServerActivityList serverActivityList = new ServerActivityList(); + JsonParser jsonParser = new JsonParser(); + + try { + JsonElement jsonElement = jsonParser.parse(json); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + serverActivityList.periodInMillis = JsonUtils.getLongOr("periodInMillis", jsonObject, -1L); + JsonElement jsonElement2 = jsonObject.get("playerActivityDto"); + if (jsonElement2 != null && jsonElement2.isJsonArray()) { + for (JsonElement jsonElement3 : jsonElement2.getAsJsonArray()) { + ServerActivity serverActivity = ServerActivity.parse(jsonElement3.getAsJsonObject()); + serverActivityList.serverActivities.add(serverActivity); + } + } + } catch (Exception var10) { + } + + return serverActivityList; + } +} diff --git a/com/mojang/realmsclient/dto/Subscription.java b/com/mojang/realmsclient/dto/Subscription.java new file mode 100644 index 00000000..1233907f --- /dev/null +++ b/com/mojang/realmsclient/dto/Subscription.java @@ -0,0 +1,47 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class Subscription extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public long startDate; + public int daysLeft; + public Subscription.SubscriptionType type = Subscription.SubscriptionType.NORMAL; + + public static Subscription parse(String json) { + Subscription subscription = new Subscription(); + + try { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + subscription.startDate = JsonUtils.getLongOr("startDate", jsonObject, 0L); + subscription.daysLeft = JsonUtils.getIntOr("daysLeft", jsonObject, 0); + subscription.type = typeFrom(JsonUtils.getStringOr("subscriptionType", jsonObject, Subscription.SubscriptionType.NORMAL.name())); + } catch (Exception var4) { + LOGGER.error("Could not parse Subscription: {}", var4.getMessage()); + } + + return subscription; + } + + private static Subscription.SubscriptionType typeFrom(String name) { + try { + return Subscription.SubscriptionType.valueOf(name); + } catch (Exception var2) { + return Subscription.SubscriptionType.NORMAL; + } + } + + @Environment(EnvType.CLIENT) + public static enum SubscriptionType { + NORMAL, + RECURRING; + } +} diff --git a/com/mojang/realmsclient/dto/UploadInfo.java b/com/mojang/realmsclient/dto/UploadInfo.java new file mode 100644 index 00000000..006607b7 --- /dev/null +++ b/com/mojang/realmsclient/dto/UploadInfo.java @@ -0,0 +1,105 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.annotations.VisibleForTesting; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class UploadInfo extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final String DEFAULT_SCHEMA = "http://"; + private static final int DEFAULT_PORT = 8080; + private static final Pattern URI_SCHEMA_PATTERN = Pattern.compile("^[a-zA-Z][-a-zA-Z0-9+.]+:"); + private final boolean worldClosed; + @Nullable + private final String token; + private final URI uploadEndpoint; + + private UploadInfo(boolean worldClosed, @Nullable String token, URI uploadEndpoint) { + this.worldClosed = worldClosed; + this.token = token; + this.uploadEndpoint = uploadEndpoint; + } + + @Nullable + public static UploadInfo parse(String json) { + try { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + String string = JsonUtils.getStringOr("uploadEndpoint", jsonObject, null); + if (string != null) { + int i = JsonUtils.getIntOr("port", jsonObject, -1); + URI uRI = assembleUri(string, i); + if (uRI != null) { + boolean bl = JsonUtils.getBooleanOr("worldClosed", jsonObject, false); + String string2 = JsonUtils.getStringOr("token", jsonObject, null); + return new UploadInfo(bl, string2, uRI); + } + } + } catch (Exception var8) { + LOGGER.error("Could not parse UploadInfo: {}", var8.getMessage()); + } + + return null; + } + + @Nullable + @VisibleForTesting + public static URI assembleUri(String uri, int port) { + Matcher matcher = URI_SCHEMA_PATTERN.matcher(uri); + String string = ensureEndpointSchema(uri, matcher); + + try { + URI uRI = new URI(string); + int i = selectPortOrDefault(port, uRI.getPort()); + return i != uRI.getPort() ? new URI(uRI.getScheme(), uRI.getUserInfo(), uRI.getHost(), i, uRI.getPath(), uRI.getQuery(), uRI.getFragment()) : uRI; + } catch (URISyntaxException var6) { + LOGGER.warn("Failed to parse URI {}", string, var6); + return null; + } + } + + private static int selectPortOrDefault(int port, int defaultPort) { + if (port != -1) { + return port; + } else { + return defaultPort != -1 ? defaultPort : 8080; + } + } + + private static String ensureEndpointSchema(String uri, Matcher matcher) { + return matcher.find() ? uri : "http://" + uri; + } + + public static String createRequest(@Nullable String token) { + JsonObject jsonObject = new JsonObject(); + if (token != null) { + jsonObject.addProperty("token", token); + } + + return jsonObject.toString(); + } + + @Nullable + public String getToken() { + return this.token; + } + + public URI getUploadEndpoint() { + return this.uploadEndpoint; + } + + public boolean isWorldClosed() { + return this.worldClosed; + } +} diff --git a/com/mojang/realmsclient/dto/ValueObject.java b/com/mojang/realmsclient/dto/ValueObject.java new file mode 100644 index 00000000..17a107e8 --- /dev/null +++ b/com/mojang/realmsclient/dto/ValueObject.java @@ -0,0 +1,36 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.annotations.SerializedName; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public abstract class ValueObject { + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{"); + + for (Field field : this.getClass().getFields()) { + if (!isStatic(field)) { + try { + stringBuilder.append(getName(field)).append("=").append(field.get(this)).append(" "); + } catch (IllegalAccessException var7) { + } + } + } + + stringBuilder.deleteCharAt(stringBuilder.length() - 1); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + + private static String getName(Field field) { + SerializedName serializedName = (SerializedName)field.getAnnotation(SerializedName.class); + return serializedName != null ? serializedName.value() : field.getName(); + } + + private static boolean isStatic(Field field) { + return Modifier.isStatic(field.getModifiers()); + } +} diff --git a/com/mojang/realmsclient/dto/WorldDownload.java b/com/mojang/realmsclient/dto/WorldDownload.java new file mode 100644 index 00000000..8b1d5d1a --- /dev/null +++ b/com/mojang/realmsclient/dto/WorldDownload.java @@ -0,0 +1,33 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class WorldDownload extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public String downloadLink; + public String resourcePackUrl; + public String resourcePackHash; + + public static WorldDownload parse(String json) { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + WorldDownload worldDownload = new WorldDownload(); + + try { + worldDownload.downloadLink = JsonUtils.getStringOr("downloadLink", jsonObject, ""); + worldDownload.resourcePackUrl = JsonUtils.getStringOr("resourcePackUrl", jsonObject, ""); + worldDownload.resourcePackHash = JsonUtils.getStringOr("resourcePackHash", jsonObject, ""); + } catch (Exception var5) { + LOGGER.error("Could not parse WorldDownload: {}", var5.getMessage()); + } + + return worldDownload; + } +} diff --git a/com/mojang/realmsclient/dto/WorldTemplate.java b/com/mojang/realmsclient/dto/WorldTemplate.java new file mode 100644 index 00000000..3f337fca --- /dev/null +++ b/com/mojang/realmsclient/dto/WorldTemplate.java @@ -0,0 +1,53 @@ +package com.mojang.realmsclient.dto; + +import com.google.gson.JsonObject; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class WorldTemplate extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public String id = ""; + public String name = ""; + public String version = ""; + public String author = ""; + public String link = ""; + @Nullable + public String image; + public String trailer = ""; + public String recommendedPlayers = ""; + public WorldTemplate.WorldTemplateType type = WorldTemplate.WorldTemplateType.WORLD_TEMPLATE; + + public static WorldTemplate parse(JsonObject json) { + WorldTemplate worldTemplate = new WorldTemplate(); + + try { + worldTemplate.id = JsonUtils.getStringOr("id", json, ""); + worldTemplate.name = JsonUtils.getStringOr("name", json, ""); + worldTemplate.version = JsonUtils.getStringOr("version", json, ""); + worldTemplate.author = JsonUtils.getStringOr("author", json, ""); + worldTemplate.link = JsonUtils.getStringOr("link", json, ""); + worldTemplate.image = JsonUtils.getStringOr("image", json, null); + worldTemplate.trailer = JsonUtils.getStringOr("trailer", json, ""); + worldTemplate.recommendedPlayers = JsonUtils.getStringOr("recommendedPlayers", json, ""); + worldTemplate.type = WorldTemplate.WorldTemplateType.valueOf(JsonUtils.getStringOr("type", json, WorldTemplate.WorldTemplateType.WORLD_TEMPLATE.name())); + } catch (Exception var3) { + LOGGER.error("Could not parse WorldTemplate: {}", var3.getMessage()); + } + + return worldTemplate; + } + + @Environment(EnvType.CLIENT) + public static enum WorldTemplateType { + WORLD_TEMPLATE, + MINIGAME, + ADVENTUREMAP, + EXPERIENCE, + INSPIRATION; + } +} diff --git a/com/mojang/realmsclient/dto/WorldTemplatePaginatedList.java b/com/mojang/realmsclient/dto/WorldTemplatePaginatedList.java new file mode 100644 index 00000000..71ef55bb --- /dev/null +++ b/com/mojang/realmsclient/dto/WorldTemplatePaginatedList.java @@ -0,0 +1,62 @@ +package com.mojang.realmsclient.dto; + +import com.google.common.collect.Lists; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.JsonUtils; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class WorldTemplatePaginatedList extends ValueObject { + private static final Logger LOGGER = LogUtils.getLogger(); + public List templates; + public int page; + public int size; + public int total; + + public WorldTemplatePaginatedList() { + } + + public WorldTemplatePaginatedList(int size) { + this.templates = Collections.emptyList(); + this.page = 0; + this.size = size; + this.total = -1; + } + + public boolean isLastPage() { + return this.page * this.size >= this.total && this.page > 0 && this.total > 0 && this.size > 0; + } + + public static WorldTemplatePaginatedList parse(String json) { + WorldTemplatePaginatedList worldTemplatePaginatedList = new WorldTemplatePaginatedList(); + worldTemplatePaginatedList.templates = Lists.newArrayList(); + + try { + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject(); + if (jsonObject.get("templates").isJsonArray()) { + Iterator iterator = jsonObject.get("templates").getAsJsonArray().iterator(); + + while (iterator.hasNext()) { + worldTemplatePaginatedList.templates.add(WorldTemplate.parse(((JsonElement)iterator.next()).getAsJsonObject())); + } + } + + worldTemplatePaginatedList.page = JsonUtils.getIntOr("page", jsonObject, 0); + worldTemplatePaginatedList.size = JsonUtils.getIntOr("size", jsonObject, 0); + worldTemplatePaginatedList.total = JsonUtils.getIntOr("total", jsonObject, 0); + } catch (Exception var5) { + LOGGER.error("Could not parse WorldTemplatePaginatedList: {}", var5.getMessage()); + } + + return worldTemplatePaginatedList; + } +} diff --git a/com/mojang/realmsclient/dto/package-info.java b/com/mojang/realmsclient/dto/package-info.java new file mode 100644 index 00000000..1318ad90 --- /dev/null +++ b/com/mojang/realmsclient/dto/package-info.java @@ -0,0 +1,9 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.dto; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/exception/RealmsDefaultUncaughtExceptionHandler.java b/com/mojang/realmsclient/exception/RealmsDefaultUncaughtExceptionHandler.java new file mode 100644 index 00000000..73fb7fd9 --- /dev/null +++ b/com/mojang/realmsclient/exception/RealmsDefaultUncaughtExceptionHandler.java @@ -0,0 +1,19 @@ +package com.mojang.realmsclient.exception; + +import java.lang.Thread.UncaughtExceptionHandler; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsDefaultUncaughtExceptionHandler implements UncaughtExceptionHandler { + private final Logger logger; + + public RealmsDefaultUncaughtExceptionHandler(Logger logger) { + this.logger = logger; + } + + public void uncaughtException(Thread thread, Throwable throwable) { + this.logger.error("Caught previously unhandled exception", throwable); + } +} diff --git a/com/mojang/realmsclient/exception/RealmsHttpException.java b/com/mojang/realmsclient/exception/RealmsHttpException.java new file mode 100644 index 00000000..1eeaaf37 --- /dev/null +++ b/com/mojang/realmsclient/exception/RealmsHttpException.java @@ -0,0 +1,11 @@ +package com.mojang.realmsclient.exception; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RealmsHttpException extends RuntimeException { + public RealmsHttpException(String message, Exception cause) { + super(message, cause); + } +} diff --git a/com/mojang/realmsclient/exception/RealmsServiceException.java b/com/mojang/realmsclient/exception/RealmsServiceException.java new file mode 100644 index 00000000..a7f6ad80 --- /dev/null +++ b/com/mojang/realmsclient/exception/RealmsServiceException.java @@ -0,0 +1,18 @@ +package com.mojang.realmsclient.exception; + +import com.mojang.realmsclient.client.RealmsError; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RealmsServiceException extends Exception { + public final RealmsError realmsError; + + public RealmsServiceException(RealmsError realmsError) { + this.realmsError = realmsError; + } + + public String getMessage() { + return this.realmsError.logMessage(); + } +} diff --git a/com/mojang/realmsclient/exception/RetryCallException.java b/com/mojang/realmsclient/exception/RetryCallException.java new file mode 100644 index 00000000..f246ac4e --- /dev/null +++ b/com/mojang/realmsclient/exception/RetryCallException.java @@ -0,0 +1,20 @@ +package com.mojang.realmsclient.exception; + +import com.mojang.realmsclient.client.RealmsError; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RetryCallException extends RealmsServiceException { + public static final int DEFAULT_DELAY = 5; + public final int delaySeconds; + + public RetryCallException(int retryAfter, int httpResultCode) { + super(RealmsError.CustomError.retry(httpResultCode)); + if (retryAfter >= 0 && retryAfter <= 120) { + this.delaySeconds = retryAfter; + } else { + this.delaySeconds = 5; + } + } +} diff --git a/com/mojang/realmsclient/exception/package-info.java b/com/mojang/realmsclient/exception/package-info.java new file mode 100644 index 00000000..e3099852 --- /dev/null +++ b/com/mojang/realmsclient/exception/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.exception; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/gui/RealmsDataFetcher.java b/com/mojang/realmsclient/gui/RealmsDataFetcher.java new file mode 100644 index 00000000..831fe422 --- /dev/null +++ b/com/mojang/realmsclient/gui/RealmsDataFetcher.java @@ -0,0 +1,63 @@ +package com.mojang.realmsclient.gui; + +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsNews; +import com.mojang.realmsclient.dto.RealmsNotification; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsServerPlayerLists; +import com.mojang.realmsclient.gui.task.DataFetcher; +import com.mojang.realmsclient.gui.task.RepeatedDelayStrategy; +import com.mojang.realmsclient.util.RealmsPersistence; +import java.time.Duration; +import java.util.List; +import java.util.concurrent.TimeUnit; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; + +@Environment(EnvType.CLIENT) +public class RealmsDataFetcher { + public final DataFetcher dataFetcher = new DataFetcher(Util.ioPool(), TimeUnit.MILLISECONDS, Util.timeSource); + private final List> tasks; + public final DataFetcher.Task> notificationsTask; + public final DataFetcher.Task serverListUpdateTask; + public final DataFetcher.Task pendingInvitesTask; + public final DataFetcher.Task trialAvailabilityTask; + public final DataFetcher.Task newsTask; + public final DataFetcher.Task onlinePlayersTask; + public final RealmsNewsManager newsManager = new RealmsNewsManager(new RealmsPersistence()); + + public RealmsDataFetcher(RealmsClient realmsClient) { + this.serverListUpdateTask = this.dataFetcher + .createTask( + "server list", + () -> { + com.mojang.realmsclient.dto.RealmsServerList realmsServerList = realmsClient.listRealms(); + return RealmsMainScreen.isSnapshot() + ? new RealmsDataFetcher.ServerListData(realmsServerList.servers, realmsClient.listSnapshotEligibleRealms()) + : new RealmsDataFetcher.ServerListData(realmsServerList.servers, List.of()); + }, + Duration.ofSeconds(60L), + RepeatedDelayStrategy.CONSTANT + ); + this.pendingInvitesTask = this.dataFetcher + .createTask("pending invite count", realmsClient::pendingInvitesCount, Duration.ofSeconds(10L), RepeatedDelayStrategy.exponentialBackoff(360)); + this.trialAvailabilityTask = this.dataFetcher + .createTask("trial availablity", realmsClient::trialAvailable, Duration.ofSeconds(60L), RepeatedDelayStrategy.exponentialBackoff(60)); + this.newsTask = this.dataFetcher.createTask("unread news", realmsClient::getNews, Duration.ofMinutes(5L), RepeatedDelayStrategy.CONSTANT); + this.notificationsTask = this.dataFetcher.createTask("notifications", realmsClient::getNotifications, Duration.ofMinutes(5L), RepeatedDelayStrategy.CONSTANT); + this.onlinePlayersTask = this.dataFetcher.createTask("online players", realmsClient::getLiveStats, Duration.ofSeconds(10L), RepeatedDelayStrategy.CONSTANT); + this.tasks = List.of( + this.notificationsTask, this.serverListUpdateTask, this.pendingInvitesTask, this.trialAvailabilityTask, this.newsTask, this.onlinePlayersTask + ); + } + + public List> getTasks() { + return this.tasks; + } + + @Environment(EnvType.CLIENT) + public record ServerListData(List serverList, List availableSnapshotServers) { + } +} diff --git a/com/mojang/realmsclient/gui/RealmsNewsManager.java b/com/mojang/realmsclient/gui/RealmsNewsManager.java new file mode 100644 index 00000000..67850849 --- /dev/null +++ b/com/mojang/realmsclient/gui/RealmsNewsManager.java @@ -0,0 +1,48 @@ +package com.mojang.realmsclient.gui; + +import com.mojang.realmsclient.dto.RealmsNews; +import com.mojang.realmsclient.util.RealmsPersistence; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class RealmsNewsManager { + private final RealmsPersistence newsLocalStorage; + private boolean hasUnreadNews; + private String newsLink; + + public RealmsNewsManager(RealmsPersistence newsLocalStorage) { + this.newsLocalStorage = newsLocalStorage; + RealmsPersistence.RealmsPersistenceData realmsPersistenceData = newsLocalStorage.read(); + this.hasUnreadNews = realmsPersistenceData.hasUnreadNews; + this.newsLink = realmsPersistenceData.newsLink; + } + + public boolean hasUnreadNews() { + return this.hasUnreadNews; + } + + public String newsLink() { + return this.newsLink; + } + + public void updateUnreadNews(RealmsNews realmsNews) { + RealmsPersistence.RealmsPersistenceData realmsPersistenceData = this.updateNewsStorage(realmsNews); + this.hasUnreadNews = realmsPersistenceData.hasUnreadNews; + this.newsLink = realmsPersistenceData.newsLink; + } + + private RealmsPersistence.RealmsPersistenceData updateNewsStorage(RealmsNews realmsNews) { + RealmsPersistence.RealmsPersistenceData realmsPersistenceData = new RealmsPersistence.RealmsPersistenceData(); + realmsPersistenceData.newsLink = realmsNews.newsLink; + RealmsPersistence.RealmsPersistenceData realmsPersistenceData2 = this.newsLocalStorage.read(); + boolean bl = realmsPersistenceData.newsLink == null || realmsPersistenceData.newsLink.equals(realmsPersistenceData2.newsLink); + if (bl) { + return realmsPersistenceData2; + } else { + realmsPersistenceData.hasUnreadNews = true; + this.newsLocalStorage.save(realmsPersistenceData); + return realmsPersistenceData; + } + } +} diff --git a/com/mojang/realmsclient/gui/RealmsServerList.java b/com/mojang/realmsclient/gui/RealmsServerList.java new file mode 100644 index 00000000..7561bf16 --- /dev/null +++ b/com/mojang/realmsclient/gui/RealmsServerList.java @@ -0,0 +1,46 @@ +package com.mojang.realmsclient.gui; + +import com.mojang.realmsclient.dto.RealmsServer; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; + +@Environment(EnvType.CLIENT) +public class RealmsServerList implements Iterable { + private final Minecraft minecraft; + private final Set removedServers = new HashSet(); + private List servers = List.of(); + + public RealmsServerList(Minecraft minecraft) { + this.minecraft = minecraft; + } + + public void updateServersList(List servers) { + List list = new ArrayList(servers); + list.sort(new RealmsServer.McoServerComparator(this.minecraft.getUser().getName())); + boolean bl = list.removeAll(this.removedServers); + if (!bl) { + this.removedServers.clear(); + } + + this.servers = list; + } + + public void removeItem(RealmsServer server) { + this.servers.remove(server); + this.removedServers.add(server); + } + + public Iterator iterator() { + return this.servers.iterator(); + } + + public boolean isEmpty() { + return this.servers.isEmpty(); + } +} diff --git a/com/mojang/realmsclient/gui/RealmsWorldSlotButton.java b/com/mojang/realmsclient/gui/RealmsWorldSlotButton.java new file mode 100644 index 00000000..2bbf58f1 --- /dev/null +++ b/com/mojang/realmsclient/gui/RealmsWorldSlotButton.java @@ -0,0 +1,175 @@ +package com.mojang.realmsclient.gui; + +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsWorldOptions; +import com.mojang.realmsclient.util.RealmsTextureManager; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class RealmsWorldSlotButton extends Button { + private static final ResourceLocation SLOT_FRAME_SPRITE = ResourceLocation.withDefaultNamespace("widget/slot_frame"); + private static final ResourceLocation CHECKMARK_SPRITE = ResourceLocation.withDefaultNamespace("icon/checkmark"); + public static final ResourceLocation EMPTY_SLOT_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/empty_frame.png"); + public static final ResourceLocation DEFAULT_WORLD_SLOT_1 = ResourceLocation.withDefaultNamespace("textures/gui/title/background/panorama_0.png"); + public static final ResourceLocation DEFAULT_WORLD_SLOT_2 = ResourceLocation.withDefaultNamespace("textures/gui/title/background/panorama_2.png"); + public static final ResourceLocation DEFAULT_WORLD_SLOT_3 = ResourceLocation.withDefaultNamespace("textures/gui/title/background/panorama_3.png"); + private static final Component SLOT_ACTIVE_TOOLTIP = Component.translatable("mco.configure.world.slot.tooltip.active"); + private static final Component SWITCH_TO_MINIGAME_SLOT_TOOLTIP = Component.translatable("mco.configure.world.slot.tooltip.minigame"); + private static final Component SWITCH_TO_WORLD_SLOT_TOOLTIP = Component.translatable("mco.configure.world.slot.tooltip"); + static final Component MINIGAME = Component.translatable("mco.worldSlot.minigame"); + private final int slotIndex; + @Nullable + private RealmsWorldSlotButton.State state; + + public RealmsWorldSlotButton(int x, int y, int width, int height, int slotIndex, Button.OnPress onPress) { + super(x, y, width, height, CommonComponents.EMPTY, onPress, DEFAULT_NARRATION); + this.slotIndex = slotIndex; + } + + @Nullable + public RealmsWorldSlotButton.State getState() { + return this.state; + } + + public void setServerData(RealmsServer serverData) { + this.state = new RealmsWorldSlotButton.State(serverData, this.slotIndex); + this.setTooltipAndNarration(this.state, serverData.minigameName); + } + + private void setTooltipAndNarration(RealmsWorldSlotButton.State state, @Nullable String minigameName) { + Component component = switch (state.action) { + case SWITCH_SLOT -> state.minigame ? SWITCH_TO_MINIGAME_SLOT_TOOLTIP : SWITCH_TO_WORLD_SLOT_TOOLTIP; + case JOIN -> SLOT_ACTIVE_TOOLTIP; + default -> null; + }; + if (component != null) { + this.setTooltip(Tooltip.create(component)); + } + + MutableComponent mutableComponent = Component.literal(state.slotName); + if (state.minigame && minigameName != null) { + mutableComponent = mutableComponent.append(CommonComponents.SPACE).append(minigameName); + } + + this.setMessage(mutableComponent); + } + + static RealmsWorldSlotButton.Action getAction(RealmsServer realmsServer, boolean isCurrentlyActiveSlot, boolean minigame) { + if (isCurrentlyActiveSlot && !realmsServer.expired && realmsServer.state != RealmsServer.State.UNINITIALIZED) { + return RealmsWorldSlotButton.Action.JOIN; + } else { + return isCurrentlyActiveSlot || minigame && realmsServer.expired ? RealmsWorldSlotButton.Action.NOTHING : RealmsWorldSlotButton.Action.SWITCH_SLOT; + } + } + + @Override + public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + if (this.state != null) { + int i = this.getX(); + int j = this.getY(); + boolean bl = this.isHoveredOrFocused(); + ResourceLocation resourceLocation; + if (this.state.minigame) { + resourceLocation = RealmsTextureManager.worldTemplate(String.valueOf(this.state.imageId), this.state.image); + } else if (this.state.empty) { + resourceLocation = EMPTY_SLOT_LOCATION; + } else if (this.state.image != null && this.state.imageId != -1L) { + resourceLocation = RealmsTextureManager.worldTemplate(String.valueOf(this.state.imageId), this.state.image); + } else if (this.slotIndex == 1) { + resourceLocation = DEFAULT_WORLD_SLOT_1; + } else if (this.slotIndex == 2) { + resourceLocation = DEFAULT_WORLD_SLOT_2; + } else if (this.slotIndex == 3) { + resourceLocation = DEFAULT_WORLD_SLOT_3; + } else { + resourceLocation = EMPTY_SLOT_LOCATION; + } + + if (this.state.isCurrentlyActiveSlot) { + guiGraphics.setColor(0.56F, 0.56F, 0.56F, 1.0F); + } + + guiGraphics.blit(resourceLocation, i + 3, j + 3, 0.0F, 0.0F, 74, 74, 74, 74); + boolean bl2 = bl && this.state.action != RealmsWorldSlotButton.Action.NOTHING; + if (bl2) { + guiGraphics.setColor(1.0F, 1.0F, 1.0F, 1.0F); + } else if (this.state.isCurrentlyActiveSlot) { + guiGraphics.setColor(0.8F, 0.8F, 0.8F, 1.0F); + } else { + guiGraphics.setColor(0.56F, 0.56F, 0.56F, 1.0F); + } + + guiGraphics.blitSprite(SLOT_FRAME_SPRITE, i, j, 80, 80); + guiGraphics.setColor(1.0F, 1.0F, 1.0F, 1.0F); + if (this.state.isCurrentlyActiveSlot) { + RenderSystem.enableBlend(); + guiGraphics.blitSprite(CHECKMARK_SPRITE, i + 67, j + 4, 9, 8); + RenderSystem.disableBlend(); + } + + Font font = Minecraft.getInstance().font; + guiGraphics.drawCenteredString(font, this.state.slotName, i + 40, j + 66, -1); + guiGraphics.drawCenteredString( + font, RealmsMainScreen.getVersionComponent(this.state.slotVersion, this.state.compatibility.isCompatible()), i + 40, j + 80 + 2, -1 + ); + } + } + + @Environment(EnvType.CLIENT) + public static enum Action { + NOTHING, + SWITCH_SLOT, + JOIN; + } + + @Environment(EnvType.CLIENT) + public static class State { + final boolean isCurrentlyActiveSlot; + final String slotName; + final String slotVersion; + final RealmsServer.Compatibility compatibility; + final long imageId; + @Nullable + final String image; + public final boolean empty; + public final boolean minigame; + public final RealmsWorldSlotButton.Action action; + + public State(RealmsServer server, int slot) { + this.minigame = slot == 4; + if (this.minigame) { + this.isCurrentlyActiveSlot = server.isMinigameActive(); + this.slotName = RealmsWorldSlotButton.MINIGAME.getString(); + this.imageId = server.minigameId; + this.image = server.minigameImage; + this.empty = server.minigameId == -1; + this.slotVersion = ""; + this.compatibility = RealmsServer.Compatibility.UNVERIFIABLE; + } else { + RealmsWorldOptions realmsWorldOptions = (RealmsWorldOptions)server.slots.get(slot); + this.isCurrentlyActiveSlot = server.activeSlot == slot && !server.isMinigameActive(); + this.slotName = realmsWorldOptions.getSlotName(slot); + this.imageId = realmsWorldOptions.templateId; + this.image = realmsWorldOptions.templateImage; + this.empty = realmsWorldOptions.empty; + this.slotVersion = realmsWorldOptions.version; + this.compatibility = realmsWorldOptions.compatibility; + } + + this.action = RealmsWorldSlotButton.getAction(server, this.isCurrentlyActiveSlot, this.minigame); + } + } +} diff --git a/com/mojang/realmsclient/gui/RowButton.java b/com/mojang/realmsclient/gui/RowButton.java new file mode 100644 index 00000000..ab39ab23 --- /dev/null +++ b/com/mojang/realmsclient/gui/RowButton.java @@ -0,0 +1,71 @@ +package com.mojang.realmsclient.gui; + +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.ObjectSelectionList; +import net.minecraft.realms.RealmsObjectSelectionList; + +@Environment(EnvType.CLIENT) +public abstract class RowButton { + public final int width; + public final int height; + public final int xOffset; + public final int yOffset; + + public RowButton(int width, int height, int xOffset, int yOffset) { + this.width = width; + this.height = height; + this.xOffset = xOffset; + this.yOffset = yOffset; + } + + public void drawForRowAt(GuiGraphics guiGraphics, int x, int y, int mouseX, int mouseY) { + int i = x + this.xOffset; + int j = y + this.yOffset; + boolean bl = mouseX >= i && mouseX <= i + this.width && mouseY >= j && mouseY <= j + this.height; + this.draw(guiGraphics, i, j, bl); + } + + protected abstract void draw(GuiGraphics guiGraphics, int x, int y, boolean showTooltip); + + public int getRight() { + return this.xOffset + this.width; + } + + public int getBottom() { + return this.yOffset + this.height; + } + + public abstract void onClick(int index); + + public static void drawButtonsInRow( + GuiGraphics guiGraphics, List buttons, RealmsObjectSelectionList pendingInvitations, int x, int y, int mouseX, int mouseY + ) { + for (RowButton rowButton : buttons) { + if (pendingInvitations.getRowWidth() > rowButton.getRight()) { + rowButton.drawForRowAt(guiGraphics, x, y, mouseX, mouseY); + } + } + } + + public static void rowButtonMouseClicked( + RealmsObjectSelectionList list, ObjectSelectionList.Entry entry, List buttons, int button, double mouseX, double mouseY + ) { + int i = list.children().indexOf(entry); + if (i > -1) { + list.selectItem(i); + int j = list.getRowLeft(); + int k = list.getRowTop(i); + int l = (int)(mouseX - j); + int m = (int)(mouseY - k); + + for (RowButton rowButton : buttons) { + if (l >= rowButton.xOffset && l <= rowButton.getRight() && m >= rowButton.yOffset && m <= rowButton.getBottom()) { + rowButton.onClick(i); + } + } + } + } +} diff --git a/com/mojang/realmsclient/gui/package-info.java b/com/mojang/realmsclient/gui/package-info.java new file mode 100644 index 00000000..ff24885f --- /dev/null +++ b/com/mojang/realmsclient/gui/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.gui; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/gui/screens/AddRealmPopupScreen.java b/com/mojang/realmsclient/gui/screens/AddRealmPopupScreen.java new file mode 100644 index 00000000..ce9c0162 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/AddRealmPopupScreen.java @@ -0,0 +1,156 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.blaze3d.systems.RenderSystem; +import java.util.Collection; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.FittingMultiLineTextWidget; +import net.minecraft.client.gui.components.ImageButton; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.gui.components.WidgetSprites; +import net.minecraft.client.gui.screens.ConfirmLinkScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.util.CommonLinks; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class AddRealmPopupScreen extends RealmsScreen { + private static final Component POPUP_TEXT = Component.translatable("mco.selectServer.popup"); + private static final Component CLOSE_TEXT = Component.translatable("mco.selectServer.close"); + private static final ResourceLocation BACKGROUND_SPRITE = ResourceLocation.withDefaultNamespace("popup/background"); + private static final ResourceLocation TRIAL_AVAILABLE_SPRITE = ResourceLocation.withDefaultNamespace("icon/trial_available"); + private static final WidgetSprites CROSS_BUTTON_SPRITES = new WidgetSprites( + ResourceLocation.withDefaultNamespace("widget/cross_button"), ResourceLocation.withDefaultNamespace("widget/cross_button_highlighted") + ); + private static final int BG_TEXTURE_WIDTH = 236; + private static final int BG_TEXTURE_HEIGHT = 34; + private static final int BG_BORDER_SIZE = 6; + private static final int IMAGE_WIDTH = 195; + private static final int IMAGE_HEIGHT = 152; + private static final int BUTTON_SPACING = 4; + private static final int PADDING = 10; + private static final int WIDTH = 320; + private static final int HEIGHT = 172; + private static final int TEXT_WIDTH = 100; + private static final int BUTTON_WIDTH = 99; + private static final int CAROUSEL_SWITCH_INTERVAL = 100; + private static List carouselImages = List.of(); + private final Screen backgroundScreen; + private final boolean trialAvailable; + @Nullable + private Button createTrialButton; + private int carouselIndex; + private int carouselTick; + + public AddRealmPopupScreen(Screen backgroundScreen, boolean trialAvailable) { + super(POPUP_TEXT); + this.backgroundScreen = backgroundScreen; + this.trialAvailable = trialAvailable; + } + + public static void updateCarouselImages(ResourceManager resourceManager) { + Collection collection = resourceManager.listResources( + "textures/gui/images", resourceLocation -> resourceLocation.getPath().endsWith(".png") + ) + .keySet(); + carouselImages = collection.stream().filter(resourceLocation -> resourceLocation.getNamespace().equals("realms")).toList(); + } + + @Override + protected void init() { + this.backgroundScreen.resize(this.minecraft, this.width, this.height); + if (this.trialAvailable) { + this.createTrialButton = this.addRenderableWidget( + Button.builder(Component.translatable("mco.selectServer.trial"), ConfirmLinkScreen.confirmLink(this, CommonLinks.START_REALMS_TRIAL)) + .bounds(this.right() - 10 - 99, this.bottom() - 10 - 4 - 40, 99, 20) + .build() + ); + } + + this.addRenderableWidget( + Button.builder(Component.translatable("mco.selectServer.buy"), ConfirmLinkScreen.confirmLink(this, CommonLinks.BUY_REALMS)) + .bounds(this.right() - 10 - 99, this.bottom() - 10 - 20, 99, 20) + .build() + ); + ImageButton imageButton = this.addRenderableWidget( + new ImageButton(this.left() + 4, this.top() + 4, 14, 14, CROSS_BUTTON_SPRITES, button -> this.onClose(), CLOSE_TEXT) + ); + imageButton.setTooltip(Tooltip.create(CLOSE_TEXT)); + int i = 142 - (this.trialAvailable ? 40 : 20); + FittingMultiLineTextWidget fittingMultiLineTextWidget = new FittingMultiLineTextWidget( + this.right() - 10 - 100, this.top() + 10, 100, i, POPUP_TEXT, this.font + ); + if (fittingMultiLineTextWidget.showingScrollBar()) { + fittingMultiLineTextWidget.setWidth(100 - fittingMultiLineTextWidget.scrollbarWidth()); + } + + this.addRenderableWidget(fittingMultiLineTextWidget); + } + + @Override + public void tick() { + super.tick(); + if (++this.carouselTick > 100) { + this.carouselTick = 0; + this.carouselIndex = (this.carouselIndex + 1) % carouselImages.size(); + } + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + if (this.createTrialButton != null) { + renderDiamond(guiGraphics, this.createTrialButton); + } + } + + public static void renderDiamond(GuiGraphics guiGraphics, Button button) { + int i = 8; + guiGraphics.pose().pushPose(); + guiGraphics.pose().translate(0.0F, 0.0F, 110.0F); + guiGraphics.blitSprite(TRIAL_AVAILABLE_SPRITE, button.getX() + button.getWidth() - 8 - 4, button.getY() + button.getHeight() / 2 - 4, 8, 8); + guiGraphics.pose().popPose(); + } + + @Override + public void renderBackground(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + this.backgroundScreen.render(guiGraphics, -1, -1, partialTick); + guiGraphics.flush(); + RenderSystem.clear(256, Minecraft.ON_OSX); + this.clearTooltipForNextRenderPass(); + this.renderTransparentBackground(guiGraphics); + guiGraphics.blitSprite(BACKGROUND_SPRITE, this.left(), this.top(), 320, 172); + if (!carouselImages.isEmpty()) { + guiGraphics.blit((ResourceLocation)carouselImages.get(this.carouselIndex), this.left() + 10, this.top() + 10, 0, 0.0F, 0.0F, 195, 152, 195, 152); + } + } + + private int left() { + return (this.width - 320) / 2; + } + + private int top() { + return (this.height - 172) / 2; + } + + private int right() { + return this.left() + 320; + } + + private int bottom() { + return this.top() + 172; + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.backgroundScreen); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsBackupInfoScreen.java b/com/mojang/realmsclient/gui/screens/RealmsBackupInfoScreen.java new file mode 100644 index 00000000..f76cc593 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsBackupInfoScreen.java @@ -0,0 +1,153 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.realmsclient.dto.Backup; +import java.util.Locale; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.ObjectSelectionList; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.world.Difficulty; +import net.minecraft.world.level.GameType; + +@Environment(EnvType.CLIENT) +public class RealmsBackupInfoScreen extends RealmsScreen { + private static final Component TITLE = Component.translatable("mco.backup.info.title"); + private static final Component UNKNOWN = Component.translatable("mco.backup.unknown"); + private final Screen lastScreen; + final Backup backup; + final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + private RealmsBackupInfoScreen.BackupInfoList backupInfoList; + + public RealmsBackupInfoScreen(Screen lastScreen, Backup backup) { + super(TITLE); + this.lastScreen = lastScreen; + this.backup = backup; + } + + @Override + public void init() { + this.layout.addTitleHeader(TITLE, this.font); + this.backupInfoList = this.layout.addToContents(new RealmsBackupInfoScreen.BackupInfoList(this.minecraft)); + this.layout.addToFooter(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).build()); + this.repositionElements(); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + } + + @Override + protected void repositionElements() { + this.backupInfoList.setSize(this.width, this.layout.getContentHeight()); + this.layout.arrangeElements(); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + Component checkForSpecificMetadata(String key, String value) { + String string = key.toLowerCase(Locale.ROOT); + if (string.contains("game") && string.contains("mode")) { + return this.gameModeMetadata(value); + } else { + return (Component)(string.contains("game") && string.contains("difficulty") ? this.gameDifficultyMetadata(value) : Component.literal(value)); + } + } + + private Component gameDifficultyMetadata(String value) { + try { + return ((Difficulty)RealmsSlotOptionsScreen.DIFFICULTIES.get(Integer.parseInt(value))).getDisplayName(); + } catch (Exception var3) { + return UNKNOWN; + } + } + + private Component gameModeMetadata(String value) { + try { + return ((GameType)RealmsSlotOptionsScreen.GAME_MODES.get(Integer.parseInt(value))).getShortDisplayName(); + } catch (Exception var3) { + return UNKNOWN; + } + } + + @Environment(EnvType.CLIENT) + class BackupInfoList extends ObjectSelectionList { + public BackupInfoList(final Minecraft minecraft) { + super( + minecraft, + RealmsBackupInfoScreen.this.width, + RealmsBackupInfoScreen.this.layout.getContentHeight(), + RealmsBackupInfoScreen.this.layout.getHeaderHeight(), + 36 + ); + if (RealmsBackupInfoScreen.this.backup.changeList != null) { + RealmsBackupInfoScreen.this.backup + .changeList + .forEach((string, string2) -> this.addEntry(RealmsBackupInfoScreen.this.new BackupInfoListEntry(string, string2))); + } + } + } + + @Environment(EnvType.CLIENT) + class BackupInfoListEntry extends ObjectSelectionList.Entry { + private static final Component TEMPLATE_NAME = Component.translatable("mco.backup.entry.templateName"); + private static final Component GAME_DIFFICULTY = Component.translatable("mco.backup.entry.gameDifficulty"); + private static final Component NAME = Component.translatable("mco.backup.entry.name"); + private static final Component GAME_SERVER_VERSION = Component.translatable("mco.backup.entry.gameServerVersion"); + private static final Component UPLOADED = Component.translatable("mco.backup.entry.uploaded"); + private static final Component ENABLED_PACK = Component.translatable("mco.backup.entry.enabledPack"); + private static final Component DESCRIPTION = Component.translatable("mco.backup.entry.description"); + private static final Component GAME_MODE = Component.translatable("mco.backup.entry.gameMode"); + private static final Component SEED = Component.translatable("mco.backup.entry.seed"); + private static final Component WORLD_TYPE = Component.translatable("mco.backup.entry.worldType"); + private static final Component UNDEFINED = Component.translatable("mco.backup.entry.undefined"); + private final String key; + private final String value; + + public BackupInfoListEntry(final String key, final String value) { + this.key = key; + this.value = value; + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + guiGraphics.drawString(RealmsBackupInfoScreen.this.font, this.translateKey(this.key), left, top, -6250336); + guiGraphics.drawString(RealmsBackupInfoScreen.this.font, RealmsBackupInfoScreen.this.checkForSpecificMetadata(this.key, this.value), left, top + 12, -1); + } + + private Component translateKey(String key) { + return switch (key) { + case "template_name" -> TEMPLATE_NAME; + case "game_difficulty" -> GAME_DIFFICULTY; + case "name" -> NAME; + case "game_server_version" -> GAME_SERVER_VERSION; + case "uploaded" -> UPLOADED; + case "enabled_packs" -> ENABLED_PACK; + case "description" -> DESCRIPTION; + case "game_mode" -> GAME_MODE; + case "seed" -> SEED; + case "world_type" -> WORLD_TYPE; + default -> UNDEFINED; + }; + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + return true; + } + + @Override + public Component getNarration() { + return Component.translatable("narrator.select", this.key + " " + this.value); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsBackupScreen.java b/com/mojang/realmsclient/gui/screens/RealmsBackupScreen.java new file mode 100644 index 00000000..09cc0211 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsBackupScreen.java @@ -0,0 +1,321 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.Backup; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsWorldOptions; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.util.RealmsUtil; +import com.mojang.realmsclient.util.task.DownloadTask; +import com.mojang.realmsclient.util.task.RestoreTask; +import java.text.DateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.ContainerObjectSelectionList; +import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.narration.NarratableEntry; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsBackupScreen extends RealmsScreen { + static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.configure.world.backup"); + static final Component RESTORE_TOOLTIP = Component.translatable("mco.backup.button.restore"); + static final Component HAS_CHANGES_TOOLTIP = Component.translatable("mco.backup.changes.tooltip"); + private static final Component NO_BACKUPS_LABEL = Component.translatable("mco.backup.nobackups"); + private static final Component DOWNLOAD_LATEST = Component.translatable("mco.backup.button.download"); + private static final String UPLOADED_KEY = "uploaded"; + private static final int PADDING = 8; + final RealmsConfigureWorldScreen lastScreen; + List backups = Collections.emptyList(); + @Nullable + RealmsBackupScreen.BackupObjectSelectionList backupList; + final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + private final int slotId; + @Nullable + Button downloadButton; + final RealmsServer serverData; + boolean noBackups = false; + + public RealmsBackupScreen(RealmsConfigureWorldScreen lastScreen, RealmsServer serverData, int slotId) { + super(TITLE); + this.lastScreen = lastScreen; + this.serverData = serverData; + this.slotId = slotId; + } + + @Override + public void init() { + this.layout.addTitleHeader(TITLE, this.font); + this.backupList = this.layout.addToContents(new RealmsBackupScreen.BackupObjectSelectionList()); + LinearLayout linearLayout = this.layout.addToFooter(LinearLayout.horizontal().spacing(8)); + this.downloadButton = linearLayout.addChild(Button.builder(DOWNLOAD_LATEST, button -> this.downloadClicked()).build()); + this.downloadButton.active = false; + linearLayout.addChild(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + this.fetchRealmsBackups(); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + if (this.noBackups && this.backupList != null) { + guiGraphics.drawString( + this.font, + NO_BACKUPS_LABEL, + this.width / 2 - this.font.width(NO_BACKUPS_LABEL) / 2, + this.backupList.getY() + this.backupList.getHeight() / 2 - 9 / 2, + -1, + false + ); + } + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + if (this.backupList != null) { + this.backupList.updateSize(this.width, this.layout); + } + } + + private void fetchRealmsBackups() { + (new Thread("Realms-fetch-backups") { + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + try { + List list = realmsClient.backupsFor(RealmsBackupScreen.this.serverData.id).backups; + RealmsBackupScreen.this.minecraft.execute(() -> { + RealmsBackupScreen.this.backups = list; + RealmsBackupScreen.this.noBackups = RealmsBackupScreen.this.backups.isEmpty(); + if (!RealmsBackupScreen.this.noBackups && RealmsBackupScreen.this.downloadButton != null) { + RealmsBackupScreen.this.downloadButton.active = true; + } + + if (RealmsBackupScreen.this.backupList != null) { + RealmsBackupScreen.this.backupList.children().clear(); + + for (Backup backup : RealmsBackupScreen.this.backups) { + RealmsBackupScreen.this.backupList.addEntry(backup); + } + } + }); + } catch (RealmsServiceException var3) { + RealmsBackupScreen.LOGGER.error("Couldn't request backups", (Throwable)var3); + } + } + }).start(); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + private void downloadClicked() { + this.minecraft + .setScreen( + RealmsPopups.infoPopupScreen( + this, + Component.translatable("mco.configure.world.restore.download.question.line1"), + popupScreen -> this.minecraft + .setScreen( + new RealmsLongRunningMcoTaskScreen( + this.lastScreen.getNewScreen(), + new DownloadTask( + this.serverData.id, + this.slotId, + this.serverData.name + + " (" + + ((RealmsWorldOptions)this.serverData.slots.get(this.serverData.activeSlot)).getSlotName(this.serverData.activeSlot) + + ")", + this + ) + ) + ) + ) + ); + } + + @Environment(EnvType.CLIENT) + class BackupObjectSelectionList extends ContainerObjectSelectionList { + private static final int ITEM_HEIGHT = 36; + + public BackupObjectSelectionList() { + super( + Minecraft.getInstance(), + RealmsBackupScreen.this.width, + RealmsBackupScreen.this.layout.getContentHeight(), + RealmsBackupScreen.this.layout.getHeaderHeight(), + 36 + ); + } + + public void addEntry(Backup backup) { + this.addEntry(RealmsBackupScreen.this.new Entry(backup)); + } + + @Override + public int getMaxPosition() { + return this.getItemCount() * 36 + this.headerHeight; + } + + @Override + public int getRowWidth() { + return 300; + } + } + + @Environment(EnvType.CLIENT) + class Entry extends ContainerObjectSelectionList.Entry { + private static final int Y_PADDING = 2; + private final Backup backup; + @Nullable + private Button restoreButton; + @Nullable + private Button changesButton; + private final List children = new ArrayList(); + + public Entry(final Backup backup) { + this.backup = backup; + this.populateChangeList(backup); + if (!backup.changeList.isEmpty()) { + this.changesButton = Button.builder( + RealmsBackupScreen.HAS_CHANGES_TOOLTIP, + button -> RealmsBackupScreen.this.minecraft.setScreen(new RealmsBackupInfoScreen(RealmsBackupScreen.this, this.backup)) + ) + .width(8 + RealmsBackupScreen.this.font.width(RealmsBackupScreen.HAS_CHANGES_TOOLTIP)) + .createNarration( + supplier -> CommonComponents.joinForNarration(Component.translatable("mco.backup.narration", this.getShortBackupDate()), (Component)supplier.get()) + ) + .build(); + this.children.add(this.changesButton); + } + + if (!RealmsBackupScreen.this.serverData.expired) { + this.restoreButton = Button.builder(RealmsBackupScreen.RESTORE_TOOLTIP, button -> this.restoreClicked()) + .width(8 + RealmsBackupScreen.this.font.width(RealmsBackupScreen.HAS_CHANGES_TOOLTIP)) + .createNarration( + supplier -> CommonComponents.joinForNarration(Component.translatable("mco.backup.narration", this.getShortBackupDate()), (Component)supplier.get()) + ) + .build(); + this.children.add(this.restoreButton); + } + } + + private void populateChangeList(Backup backup) { + int i = RealmsBackupScreen.this.backups.indexOf(backup); + if (i != RealmsBackupScreen.this.backups.size() - 1) { + Backup backup2 = (Backup)RealmsBackupScreen.this.backups.get(i + 1); + + for (String string : backup.metadata.keySet()) { + if (!string.contains("uploaded") && backup2.metadata.containsKey(string)) { + if (!((String)backup.metadata.get(string)).equals(backup2.metadata.get(string))) { + this.addToChangeList(string); + } + } else { + this.addToChangeList(string); + } + } + } + } + + private void addToChangeList(String change) { + if (change.contains("uploaded")) { + String string = DateFormat.getDateTimeInstance(3, 3).format(this.backup.lastModifiedDate); + this.backup.changeList.put(change, string); + this.backup.setUploadedVersion(true); + } else { + this.backup.changeList.put(change, (String)this.backup.metadata.get(change)); + } + } + + private String getShortBackupDate() { + return DateFormat.getDateTimeInstance(3, 3).format(this.backup.lastModifiedDate); + } + + private void restoreClicked() { + Component component = RealmsUtil.convertToAgePresentationFromInstant(this.backup.lastModifiedDate); + Component component2 = Component.translatable("mco.configure.world.restore.question.line1", this.getShortBackupDate(), component); + RealmsBackupScreen.this.minecraft + .setScreen( + RealmsPopups.warningPopupScreen( + RealmsBackupScreen.this, + component2, + popupScreen -> RealmsBackupScreen.this.minecraft + .setScreen( + new RealmsLongRunningMcoTaskScreen( + RealmsBackupScreen.this.lastScreen.getNewScreen(), + new RestoreTask(this.backup, RealmsBackupScreen.this.serverData.id, RealmsBackupScreen.this.lastScreen) + ) + ) + ) + ); + } + + @Override + public List children() { + return this.children; + } + + @Override + public List narratables() { + return this.children; + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + int i = top + height / 2; + int j = i - 9 - 2; + int k = i + 2; + int l = this.backup.isUploadedVersion() ? -8388737 : -1; + guiGraphics.drawString( + RealmsBackupScreen.this.font, + Component.translatable("mco.backup.entry", RealmsUtil.convertToAgePresentationFromInstant(this.backup.lastModifiedDate)), + left, + j, + l, + false + ); + guiGraphics.drawString(RealmsBackupScreen.this.font, this.getMediumDatePresentation(this.backup.lastModifiedDate), left, k, 5000268, false); + int m = 0; + int n = top + height / 2 - 10; + if (this.restoreButton != null) { + m += this.restoreButton.getWidth() + 8; + this.restoreButton.setX(left + width - m); + this.restoreButton.setY(n); + this.restoreButton.render(guiGraphics, mouseX, mouseY, partialTick); + } + + if (this.changesButton != null) { + m += this.changesButton.getWidth() + 8; + this.changesButton.setX(left + width - m); + this.changesButton.setY(n); + this.changesButton.render(guiGraphics, mouseX, mouseY, partialTick); + } + } + + private String getMediumDatePresentation(Date date) { + return DateFormat.getDateTimeInstance(3, 3).format(date); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsBrokenWorldScreen.java b/com/mojang/realmsclient/gui/screens/RealmsBrokenWorldScreen.java new file mode 100644 index 00000000..7685ebc9 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsBrokenWorldScreen.java @@ -0,0 +1,275 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.Lists; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsWorldOptions; +import com.mojang.realmsclient.dto.WorldDownload; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.gui.RealmsWorldSlotButton; +import com.mojang.realmsclient.util.RealmsTextureManager; +import com.mojang.realmsclient.util.task.OpenServerTask; +import com.mojang.realmsclient.util.task.SwitchSlotTask; +import java.util.Collection; +import java.util.List; +import java.util.Map.Entry; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentUtils; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsBrokenWorldScreen extends RealmsScreen { + private static final ResourceLocation SLOT_FRAME_SPRITE = ResourceLocation.withDefaultNamespace("widget/slot_frame"); + private static final Logger LOGGER = LogUtils.getLogger(); + private static final int DEFAULT_BUTTON_WIDTH = 80; + private final Screen lastScreen; + @Nullable + private RealmsServer serverData; + private final long serverId; + private final Component[] message = new Component[]{ + Component.translatable("mco.brokenworld.message.line1"), Component.translatable("mco.brokenworld.message.line2") + }; + private int leftX; + private final List slotsThatHasBeenDownloaded = Lists.newArrayList(); + private int animTick; + + public RealmsBrokenWorldScreen(Screen lastScreen, long serverId, boolean isMinigame) { + super(isMinigame ? Component.translatable("mco.brokenworld.minigame.title") : Component.translatable("mco.brokenworld.title")); + this.lastScreen = lastScreen; + this.serverId = serverId; + } + + @Override + public void init() { + this.leftX = this.width / 2 - 150; + this.addRenderableWidget(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).bounds((this.width - 150) / 2, row(13) - 5, 150, 20).build()); + if (this.serverData == null) { + this.fetchServerData(this.serverId); + } else { + this.addButtons(); + } + } + + @Override + public Component getNarrationMessage() { + return ComponentUtils.formatList( + (Collection)Stream.concat(Stream.of(this.title), Stream.of(this.message)).collect(Collectors.toList()), CommonComponents.SPACE + ); + } + + private void addButtons() { + for (Entry entry : this.serverData.slots.entrySet()) { + int i = (Integer)entry.getKey(); + boolean bl = i != this.serverData.activeSlot || this.serverData.isMinigameActive(); + Button button; + if (bl) { + button = Button.builder( + Component.translatable("mco.brokenworld.play"), + buttonx -> this.minecraft + .setScreen(new RealmsLongRunningMcoTaskScreen(this.lastScreen, new SwitchSlotTask(this.serverData.id, i, this::doSwitchOrReset))) + ) + .bounds(this.getFramePositionX(i), row(8), 80, 20) + .build(); + button.active = !((RealmsWorldOptions)this.serverData.slots.get(i)).empty; + } else { + button = Button.builder( + Component.translatable("mco.brokenworld.download"), + buttonx -> this.minecraft + .setScreen( + RealmsPopups.infoPopupScreen(this, Component.translatable("mco.configure.world.restore.download.question.line1"), popupScreen -> this.downloadWorld(i)) + ) + ) + .bounds(this.getFramePositionX(i), row(8), 80, 20) + .build(); + } + + if (this.slotsThatHasBeenDownloaded.contains(i)) { + button.active = false; + button.setMessage(Component.translatable("mco.brokenworld.downloaded")); + } + + this.addRenderableWidget(button); + } + } + + @Override + public void tick() { + this.animTick++; + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 17, -1); + + for (int i = 0; i < this.message.length; i++) { + guiGraphics.drawCenteredString(this.font, this.message[i], this.width / 2, row(-1) + 3 + i * 12, -6250336); + } + + if (this.serverData != null) { + for (Entry entry : this.serverData.slots.entrySet()) { + if (((RealmsWorldOptions)entry.getValue()).templateImage != null && ((RealmsWorldOptions)entry.getValue()).templateId != -1L) { + this.drawSlotFrame( + guiGraphics, + this.getFramePositionX((Integer)entry.getKey()), + row(1) + 5, + mouseX, + mouseY, + this.serverData.activeSlot == (Integer)entry.getKey() && !this.isMinigame(), + ((RealmsWorldOptions)entry.getValue()).getSlotName((Integer)entry.getKey()), + (Integer)entry.getKey(), + ((RealmsWorldOptions)entry.getValue()).templateId, + ((RealmsWorldOptions)entry.getValue()).templateImage, + ((RealmsWorldOptions)entry.getValue()).empty + ); + } else { + this.drawSlotFrame( + guiGraphics, + this.getFramePositionX((Integer)entry.getKey()), + row(1) + 5, + mouseX, + mouseY, + this.serverData.activeSlot == (Integer)entry.getKey() && !this.isMinigame(), + ((RealmsWorldOptions)entry.getValue()).getSlotName((Integer)entry.getKey()), + (Integer)entry.getKey(), + -1L, + null, + ((RealmsWorldOptions)entry.getValue()).empty + ); + } + } + } + } + + private int getFramePositionX(int index) { + return this.leftX + (index - 1) * 110; + } + + private void fetchServerData(long serverId) { + new Thread(() -> { + RealmsClient realmsClient = RealmsClient.create(); + + try { + this.serverData = realmsClient.getOwnRealm(serverId); + this.addButtons(); + } catch (RealmsServiceException var5) { + LOGGER.error("Couldn't get own world", (Throwable)var5); + this.minecraft.setScreen(new RealmsGenericErrorScreen(var5, this.lastScreen)); + } + }).start(); + } + + public void doSwitchOrReset() { + new Thread( + () -> { + RealmsClient realmsClient = RealmsClient.create(); + if (this.serverData.state == RealmsServer.State.CLOSED) { + this.minecraft + .execute(() -> this.minecraft.setScreen(new RealmsLongRunningMcoTaskScreen(this, new OpenServerTask(this.serverData, this, true, this.minecraft)))); + } else { + try { + RealmsServer realmsServer = realmsClient.getOwnRealm(this.serverId); + this.minecraft.execute(() -> RealmsMainScreen.play(realmsServer, this)); + } catch (RealmsServiceException var3) { + LOGGER.error("Couldn't get own world", (Throwable)var3); + this.minecraft.execute(() -> this.minecraft.setScreen(this.lastScreen)); + } + } + } + ) + .start(); + } + + private void downloadWorld(int slotIndex) { + RealmsClient realmsClient = RealmsClient.create(); + + try { + WorldDownload worldDownload = realmsClient.requestDownloadInfo(this.serverData.id, slotIndex); + RealmsDownloadLatestWorldScreen realmsDownloadLatestWorldScreen = new RealmsDownloadLatestWorldScreen( + this, worldDownload, this.serverData.getWorldName(slotIndex), bl -> { + if (bl) { + this.slotsThatHasBeenDownloaded.add(slotIndex); + this.clearWidgets(); + this.addButtons(); + } else { + this.minecraft.setScreen(this); + } + } + ); + this.minecraft.setScreen(realmsDownloadLatestWorldScreen); + } catch (RealmsServiceException var5) { + LOGGER.error("Couldn't download world data", (Throwable)var5); + this.minecraft.setScreen(new RealmsGenericErrorScreen(var5, this)); + } + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + private boolean isMinigame() { + return this.serverData != null && this.serverData.isMinigameActive(); + } + + private void drawSlotFrame( + GuiGraphics guiGraphics, + int x, + int y, + int mouseX, + int mouseY, + boolean isActiveNonMinigame, + String text, + int slotIndex, + long templateId, + @Nullable String templateImage, + boolean hasTemplateImage + ) { + ResourceLocation resourceLocation; + if (hasTemplateImage) { + resourceLocation = RealmsWorldSlotButton.EMPTY_SLOT_LOCATION; + } else if (templateImage != null && templateId != -1L) { + resourceLocation = RealmsTextureManager.worldTemplate(String.valueOf(templateId), templateImage); + } else if (slotIndex == 1) { + resourceLocation = RealmsWorldSlotButton.DEFAULT_WORLD_SLOT_1; + } else if (slotIndex == 2) { + resourceLocation = RealmsWorldSlotButton.DEFAULT_WORLD_SLOT_2; + } else if (slotIndex == 3) { + resourceLocation = RealmsWorldSlotButton.DEFAULT_WORLD_SLOT_3; + } else { + resourceLocation = RealmsTextureManager.worldTemplate(String.valueOf(this.serverData.minigameId), this.serverData.minigameImage); + } + + if (!isActiveNonMinigame) { + guiGraphics.setColor(0.56F, 0.56F, 0.56F, 1.0F); + } else if (isActiveNonMinigame) { + float f = 0.9F + 0.1F * Mth.cos(this.animTick * 0.2F); + guiGraphics.setColor(f, f, f, 1.0F); + } + + guiGraphics.blit(resourceLocation, x + 3, y + 3, 0.0F, 0.0F, 74, 74, 74, 74); + if (isActiveNonMinigame) { + guiGraphics.setColor(1.0F, 1.0F, 1.0F, 1.0F); + } else { + guiGraphics.setColor(0.56F, 0.56F, 0.56F, 1.0F); + } + + guiGraphics.blitSprite(SLOT_FRAME_SPRITE, x, y, 80, 80); + guiGraphics.drawCenteredString(this.font, text, x + 40, y + 66, -1); + guiGraphics.setColor(1.0F, 1.0F, 1.0F, 1.0F); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsClientOutdatedScreen.java b/com/mojang/realmsclient/gui/screens/RealmsClientOutdatedScreen.java new file mode 100644 index 00000000..dffbe8d7 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsClientOutdatedScreen.java @@ -0,0 +1,53 @@ +package com.mojang.realmsclient.gui.screens; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.SharedConstants; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.MultiLineTextWidget; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; + +@Environment(EnvType.CLIENT) +public class RealmsClientOutdatedScreen extends RealmsScreen { + private static final Component INCOMPATIBLE_TITLE = Component.translatable("mco.client.incompatible.title").withColor(-65536); + private static final Component INCOMPATIBLE_CLIENT_VERSION = Component.literal(SharedConstants.getCurrentVersion().getName()).withColor(-65536); + private static final Component UNSUPPORTED_SNAPSHOT_VERSION = Component.translatable("mco.client.unsupported.snapshot.version", INCOMPATIBLE_CLIENT_VERSION); + private static final Component OUTDATED_STABLE_VERSION = Component.translatable("mco.client.outdated.stable.version", INCOMPATIBLE_CLIENT_VERSION); + private final Screen lastScreen; + private final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + + public RealmsClientOutdatedScreen(Screen lastScreen) { + super(INCOMPATIBLE_TITLE); + this.lastScreen = lastScreen; + } + + @Override + public void init() { + this.layout.addTitleHeader(INCOMPATIBLE_TITLE, this.font); + this.layout.addToContents(new MultiLineTextWidget(this.getErrorMessage(), this.font).setCentered(true)); + this.layout.addToFooter(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).width(200).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + private Component getErrorMessage() { + return SharedConstants.getCurrentVersion().isStable() ? OUTDATED_STABLE_VERSION : UNSUPPORTED_SNAPSHOT_VERSION; + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsConfigureWorldScreen.java b/com/mojang/realmsclient/gui/screens/RealmsConfigureWorldScreen.java new file mode 100644 index 00000000..d1256cab --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsConfigureWorldScreen.java @@ -0,0 +1,464 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.Lists; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsWorldOptions; +import com.mojang.realmsclient.dto.WorldTemplate; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.gui.RealmsWorldSlotButton; +import com.mojang.realmsclient.util.task.CloseServerTask; +import com.mojang.realmsclient.util.task.OpenServerTask; +import com.mojang.realmsclient.util.task.SwitchMinigameTask; +import com.mojang.realmsclient.util.task.SwitchSlotTask; +import java.util.List; +import java.util.function.Supplier; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.StringUtil; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsConfigureWorldScreen extends RealmsScreen { + private static final ResourceLocation EXPIRED_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/expired"); + private static final ResourceLocation EXPIRES_SOON_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/expires_soon"); + private static final ResourceLocation OPEN_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/open"); + private static final ResourceLocation CLOSED_SPRITE = ResourceLocation.withDefaultNamespace("realm_status/closed"); + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component WORLD_LIST_TITLE = Component.translatable("mco.configure.worlds.title"); + private static final Component TITLE = Component.translatable("mco.configure.world.title"); + private static final Component SERVER_EXPIRED_TOOLTIP = Component.translatable("mco.selectServer.expired"); + private static final Component SERVER_EXPIRING_SOON_TOOLTIP = Component.translatable("mco.selectServer.expires.soon"); + private static final Component SERVER_EXPIRING_IN_DAY_TOOLTIP = Component.translatable("mco.selectServer.expires.day"); + private static final Component SERVER_OPEN_TOOLTIP = Component.translatable("mco.selectServer.open"); + private static final Component SERVER_CLOSED_TOOLTIP = Component.translatable("mco.selectServer.closed"); + private static final int DEFAULT_BUTTON_WIDTH = 80; + private static final int DEFAULT_BUTTON_OFFSET = 5; + @Nullable + private Component toolTip; + private final RealmsMainScreen lastScreen; + @Nullable + private RealmsServer serverData; + private final long serverId; + private int leftX; + private int rightX; + private Button playersButton; + private Button settingsButton; + private Button subscriptionButton; + private Button optionsButton; + private Button backupButton; + private Button resetWorldButton; + private Button switchMinigameButton; + private boolean stateChanged; + private final List slotButtonList = Lists.newArrayList(); + + public RealmsConfigureWorldScreen(RealmsMainScreen lastScreen, long serverId) { + super(TITLE); + this.lastScreen = lastScreen; + this.serverId = serverId; + } + + @Override + public void init() { + if (this.serverData == null) { + this.fetchServerData(this.serverId); + } + + this.leftX = this.width / 2 - 187; + this.rightX = this.width / 2 + 190; + this.playersButton = this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.buttons.players"), button -> this.minecraft.setScreen(new RealmsPlayerScreen(this, this.serverData)) + ) + .bounds(this.centerButton(0, 3), row(0), 100, 20) + .build() + ); + this.settingsButton = this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.buttons.settings"), + button -> this.minecraft.setScreen(new RealmsSettingsScreen(this, this.serverData.clone())) + ) + .bounds(this.centerButton(1, 3), row(0), 100, 20) + .build() + ); + this.subscriptionButton = this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.buttons.subscription"), + button -> this.minecraft.setScreen(new RealmsSubscriptionInfoScreen(this, this.serverData.clone(), this.lastScreen)) + ) + .bounds(this.centerButton(2, 3), row(0), 100, 20) + .build() + ); + this.slotButtonList.clear(); + + for (int i = 1; i < 5; i++) { + this.slotButtonList.add(this.addSlotButton(i)); + } + + this.switchMinigameButton = this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.buttons.switchminigame"), + button -> this.minecraft + .setScreen( + new RealmsSelectWorldTemplateScreen( + Component.translatable("mco.template.title.minigame"), this::templateSelectionCallback, RealmsServer.WorldType.MINIGAME + ) + ) + ) + .bounds(this.leftButton(0), row(13) - 5, 100, 20) + .build() + ); + this.optionsButton = this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.buttons.options"), + button -> this.minecraft + .setScreen( + new RealmsSlotOptionsScreen( + this, ((RealmsWorldOptions)this.serverData.slots.get(this.serverData.activeSlot)).clone(), this.serverData.worldType, this.serverData.activeSlot + ) + ) + ) + .bounds(this.leftButton(0), row(13) - 5, 90, 20) + .build() + ); + this.backupButton = this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.backup"), + button -> this.minecraft.setScreen(new RealmsBackupScreen(this, this.serverData.clone(), this.serverData.activeSlot)) + ) + .bounds(this.leftButton(1), row(13) - 5, 90, 20) + .build() + ); + this.resetWorldButton = this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.buttons.resetworld"), + button -> this.minecraft + .setScreen( + RealmsResetWorldScreen.forResetSlot(this, this.serverData.clone(), () -> this.minecraft.execute(() -> this.minecraft.setScreen(this.getNewScreen()))) + ) + ) + .bounds(this.leftButton(2), row(13) - 5, 90, 20) + .build() + ); + this.addRenderableWidget(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).bounds(this.rightX - 80 + 8, row(13) - 5, 70, 20).build()); + this.backupButton.active = true; + if (this.serverData == null) { + this.hideMinigameButtons(); + this.hideRegularButtons(); + this.playersButton.active = false; + this.settingsButton.active = false; + this.subscriptionButton.active = false; + } else { + this.disableButtons(); + if (this.isMinigame()) { + this.hideRegularButtons(); + } else { + this.hideMinigameButtons(); + } + } + } + + private RealmsWorldSlotButton addSlotButton(int index) { + int i = this.frame(index); + int j = row(5) + 5; + RealmsWorldSlotButton realmsWorldSlotButton = new RealmsWorldSlotButton(i, j, 80, 80, index, button -> { + RealmsWorldSlotButton.State state = ((RealmsWorldSlotButton)button).getState(); + if (state != null) { + switch (state.action) { + case NOTHING: + break; + case JOIN: + this.joinRealm(this.serverData); + break; + case SWITCH_SLOT: + if (state.minigame) { + this.switchToMinigame(); + } else if (state.empty) { + this.switchToEmptySlot(index, this.serverData); + } else { + this.switchToFullSlot(index, this.serverData); + } + break; + default: + throw new IllegalStateException("Unknown action " + state.action); + } + } + }); + if (this.serverData != null) { + realmsWorldSlotButton.setServerData(this.serverData); + } + + return this.addRenderableWidget(realmsWorldSlotButton); + } + + private int leftButton(int index) { + return this.leftX + index * 95; + } + + private int centerButton(int row, int column) { + return this.width / 2 - (column * 105 - 5) / 2 + row * 105; + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.toolTip = null; + guiGraphics.drawCenteredString(this.font, WORLD_LIST_TITLE, this.width / 2, row(4), -1); + if (this.serverData == null) { + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 17, -1); + } else { + String string = this.serverData.getName(); + int i = this.font.width(string); + int j = this.serverData.state == RealmsServer.State.CLOSED ? -6250336 : 8388479; + int k = this.font.width(this.title); + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 12, -1); + guiGraphics.drawCenteredString(this.font, string, this.width / 2, 24, j); + int l = Math.min(this.centerButton(2, 3) + 80 - 11, this.width / 2 + i / 2 + k / 2 + 10); + this.drawServerStatus(guiGraphics, l, 7, mouseX, mouseY); + if (this.isMinigame()) { + String string2 = this.serverData.getMinigameName(); + if (string2 != null) { + guiGraphics.drawString(this.font, Component.translatable("mco.configure.world.minigame", string2), this.leftX + 80 + 20 + 10, row(13), -1, false); + } + } + } + } + + private int frame(int index) { + return this.leftX + (index - 1) * 98; + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + if (this.stateChanged) { + this.lastScreen.resetScreen(); + } + } + + private void fetchServerData(long serverId) { + new Thread(() -> { + RealmsClient realmsClient = RealmsClient.create(); + + try { + RealmsServer realmsServer = realmsClient.getOwnRealm(serverId); + this.minecraft.execute(() -> { + this.serverData = realmsServer; + this.disableButtons(); + if (this.isMinigame()) { + this.show(this.switchMinigameButton); + } else { + this.show(this.optionsButton); + this.show(this.backupButton); + this.show(this.resetWorldButton); + } + + for (RealmsWorldSlotButton realmsWorldSlotButton : this.slotButtonList) { + realmsWorldSlotButton.setServerData(realmsServer); + } + }); + } catch (RealmsServiceException var5) { + LOGGER.error("Couldn't get own world", (Throwable)var5); + this.minecraft.execute(() -> this.minecraft.setScreen(new RealmsGenericErrorScreen(var5, this.lastScreen))); + } + }).start(); + } + + private void disableButtons() { + this.playersButton.active = !this.serverData.expired; + this.settingsButton.active = !this.serverData.expired; + this.subscriptionButton.active = true; + this.switchMinigameButton.active = !this.serverData.expired; + this.optionsButton.active = !this.serverData.expired; + this.resetWorldButton.active = !this.serverData.expired; + } + + private void joinRealm(RealmsServer server) { + if (this.serverData.state == RealmsServer.State.OPEN) { + RealmsMainScreen.play(server, this); + } else { + this.openTheWorld(true); + } + } + + private void switchToMinigame() { + RealmsSelectWorldTemplateScreen realmsSelectWorldTemplateScreen = new RealmsSelectWorldTemplateScreen( + Component.translatable("mco.template.title.minigame"), this::templateSelectionCallback, RealmsServer.WorldType.MINIGAME + ); + realmsSelectWorldTemplateScreen.setWarning(Component.translatable("mco.minigame.world.info.line1"), Component.translatable("mco.minigame.world.info.line2")); + this.minecraft.setScreen(realmsSelectWorldTemplateScreen); + } + + private void switchToFullSlot(int slot, RealmsServer server) { + this.minecraft + .setScreen( + RealmsPopups.infoPopupScreen( + this, + Component.translatable("mco.configure.world.slot.switch.question.line1"), + popupScreen -> { + this.stateChanged(); + this.minecraft + .setScreen( + new RealmsLongRunningMcoTaskScreen( + this.lastScreen, new SwitchSlotTask(server.id, slot, () -> this.minecraft.execute(() -> this.minecraft.setScreen(this.getNewScreen()))) + ) + ); + } + ) + ); + } + + private void switchToEmptySlot(int slot, RealmsServer server) { + this.minecraft + .setScreen( + RealmsPopups.infoPopupScreen( + this, + Component.translatable("mco.configure.world.slot.switch.question.line1"), + popupScreen -> { + this.stateChanged(); + RealmsResetWorldScreen realmsResetWorldScreen = RealmsResetWorldScreen.forEmptySlot( + this, slot, server, () -> this.minecraft.execute(() -> this.minecraft.setScreen(this.getNewScreen())) + ); + this.minecraft.setScreen(realmsResetWorldScreen); + } + ) + ); + } + + private void drawServerStatus(GuiGraphics guiGraphics, int x, int y, int mouseX, int mouseY) { + if (this.serverData.expired) { + this.drawRealmStatus(guiGraphics, x, y, mouseX, mouseY, EXPIRED_SPRITE, () -> SERVER_EXPIRED_TOOLTIP); + } else if (this.serverData.state == RealmsServer.State.CLOSED) { + this.drawRealmStatus(guiGraphics, x, y, mouseX, mouseY, CLOSED_SPRITE, () -> SERVER_CLOSED_TOOLTIP); + } else if (this.serverData.state == RealmsServer.State.OPEN) { + if (this.serverData.daysLeft < 7) { + this.drawRealmStatus( + guiGraphics, + x, + y, + mouseX, + mouseY, + EXPIRES_SOON_SPRITE, + () -> { + if (this.serverData.daysLeft <= 0) { + return SERVER_EXPIRING_SOON_TOOLTIP; + } else { + return (Component)(this.serverData.daysLeft == 1 + ? SERVER_EXPIRING_IN_DAY_TOOLTIP + : Component.translatable("mco.selectServer.expires.days", this.serverData.daysLeft)); + } + } + ); + } else { + this.drawRealmStatus(guiGraphics, x, y, mouseX, mouseY, OPEN_SPRITE, () -> SERVER_OPEN_TOOLTIP); + } + } + } + + private void drawRealmStatus(GuiGraphics guiGraphics, int x, int y, int mouseX, int mouseY, ResourceLocation sprite, Supplier tooltipSupplier) { + guiGraphics.blitSprite(sprite, x, y, 10, 28); + if (mouseX >= x && mouseX <= x + 9 && mouseY >= y && mouseY <= y + 27) { + this.setTooltipForNextRenderPass((Component)tooltipSupplier.get()); + } + } + + private boolean isMinigame() { + return this.serverData != null && this.serverData.isMinigameActive(); + } + + private void hideRegularButtons() { + this.hide(this.optionsButton); + this.hide(this.backupButton); + this.hide(this.resetWorldButton); + } + + private void hide(Button button) { + button.visible = false; + } + + private void show(Button button) { + button.visible = true; + } + + private void hideMinigameButtons() { + this.hide(this.switchMinigameButton); + } + + public void saveSlotSettings(RealmsWorldOptions worldOptions) { + RealmsWorldOptions realmsWorldOptions = (RealmsWorldOptions)this.serverData.slots.get(this.serverData.activeSlot); + worldOptions.templateId = realmsWorldOptions.templateId; + worldOptions.templateImage = realmsWorldOptions.templateImage; + RealmsClient realmsClient = RealmsClient.create(); + + try { + realmsClient.updateSlot(this.serverData.id, this.serverData.activeSlot, worldOptions); + this.serverData.slots.put(this.serverData.activeSlot, worldOptions); + } catch (RealmsServiceException var5) { + LOGGER.error("Couldn't save slot settings", (Throwable)var5); + this.minecraft.setScreen(new RealmsGenericErrorScreen(var5, this)); + return; + } + + this.minecraft.setScreen(this); + } + + public void saveSettings(String key, String value) { + String string = StringUtil.isBlank(value) ? null : value; + RealmsClient realmsClient = RealmsClient.create(); + + try { + realmsClient.update(this.serverData.id, key, string); + this.serverData.setName(key); + this.serverData.setDescription(string); + this.stateChanged(); + } catch (RealmsServiceException var6) { + LOGGER.error("Couldn't save settings", (Throwable)var6); + this.minecraft.setScreen(new RealmsGenericErrorScreen(var6, this)); + return; + } + + this.minecraft.setScreen(this); + } + + public void openTheWorld(boolean join) { + RealmsConfigureWorldScreen realmsConfigureWorldScreen = this.getNewScreen(); + this.minecraft + .setScreen( + new RealmsLongRunningMcoTaskScreen(realmsConfigureWorldScreen, new OpenServerTask(this.serverData, realmsConfigureWorldScreen, join, this.minecraft)) + ); + } + + public void closeTheWorld() { + RealmsConfigureWorldScreen realmsConfigureWorldScreen = this.getNewScreen(); + this.minecraft.setScreen(new RealmsLongRunningMcoTaskScreen(realmsConfigureWorldScreen, new CloseServerTask(this.serverData, realmsConfigureWorldScreen))); + } + + public void stateChanged() { + this.stateChanged = true; + } + + private void templateSelectionCallback(@Nullable WorldTemplate worldTemplate) { + if (worldTemplate != null && WorldTemplate.WorldTemplateType.MINIGAME == worldTemplate.type) { + this.stateChanged(); + this.minecraft + .setScreen(new RealmsLongRunningMcoTaskScreen(this.lastScreen, new SwitchMinigameTask(this.serverData.id, worldTemplate, this.getNewScreen()))); + } else { + this.minecraft.setScreen(this); + } + } + + public RealmsConfigureWorldScreen getNewScreen() { + RealmsConfigureWorldScreen realmsConfigureWorldScreen = new RealmsConfigureWorldScreen(this.lastScreen, this.serverId); + realmsConfigureWorldScreen.stateChanged = this.stateChanged; + return realmsConfigureWorldScreen; + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsConfirmScreen.java b/com/mojang/realmsclient/gui/screens/RealmsConfirmScreen.java new file mode 100644 index 00000000..f2669d2b --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsConfirmScreen.java @@ -0,0 +1,38 @@ +package com.mojang.realmsclient.gui.screens; + +import it.unimi.dsi.fastutil.booleans.BooleanConsumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; + +@Environment(EnvType.CLIENT) +public class RealmsConfirmScreen extends RealmsScreen { + protected BooleanConsumer callback; + private final Component title1; + private final Component title2; + + public RealmsConfirmScreen(BooleanConsumer callback, Component title1, Component title2) { + super(GameNarrator.NO_TITLE); + this.callback = callback; + this.title1 = title1; + this.title2 = title2; + } + + @Override + public void init() { + this.addRenderableWidget(Button.builder(CommonComponents.GUI_YES, button -> this.callback.accept(true)).bounds(this.width / 2 - 105, row(9), 100, 20).build()); + this.addRenderableWidget(Button.builder(CommonComponents.GUI_NO, button -> this.callback.accept(false)).bounds(this.width / 2 + 5, row(9), 100, 20).build()); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.title1, this.width / 2, row(3), -1); + guiGraphics.drawCenteredString(this.font, this.title2, this.width / 2, row(5), -1); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsCreateRealmScreen.java b/com/mojang/realmsclient/gui/screens/RealmsCreateRealmScreen.java new file mode 100644 index 00000000..fc24b963 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsCreateRealmScreen.java @@ -0,0 +1,110 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.util.task.CreateSnapshotRealmTask; +import com.mojang.realmsclient.util.task.RealmCreationTask; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.client.gui.layouts.CommonLayouts; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.util.StringUtil; + +@Environment(EnvType.CLIENT) +public class RealmsCreateRealmScreen extends RealmsScreen { + private static final Component CREATE_REALM_TEXT = Component.translatable("mco.selectServer.create"); + private static final Component NAME_LABEL = Component.translatable("mco.configure.world.name"); + private static final Component DESCRIPTION_LABEL = Component.translatable("mco.configure.world.description"); + private static final int BUTTON_SPACING = 10; + private static final int CONTENT_WIDTH = 210; + private final RealmsMainScreen lastScreen; + private final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + private EditBox nameBox; + private EditBox descriptionBox; + private final Runnable createWorldRunnable; + + public RealmsCreateRealmScreen(RealmsMainScreen lastScreen, RealmsServer realmsServer) { + super(CREATE_REALM_TEXT); + this.lastScreen = lastScreen; + this.createWorldRunnable = () -> this.createWorld(realmsServer); + } + + public RealmsCreateRealmScreen(RealmsMainScreen lastScreen, long parentId) { + super(CREATE_REALM_TEXT); + this.lastScreen = lastScreen; + this.createWorldRunnable = () -> this.createSnapshotWorld(parentId); + } + + @Override + public void init() { + this.layout.addTitleHeader(this.title, this.font); + LinearLayout linearLayout = this.layout.addToContents(LinearLayout.vertical()).spacing(10); + Button button = Button.builder(CommonComponents.GUI_CONTINUE, buttonx -> this.createWorldRunnable.run()).build(); + button.active = false; + this.nameBox = new EditBox(this.font, 210, 20, NAME_LABEL); + this.nameBox.setResponder(string -> button.active = !StringUtil.isBlank(string)); + this.descriptionBox = new EditBox(this.font, 210, 20, DESCRIPTION_LABEL); + linearLayout.addChild(CommonLayouts.labeledElement(this.font, this.nameBox, NAME_LABEL)); + linearLayout.addChild(CommonLayouts.labeledElement(this.font, this.descriptionBox, DESCRIPTION_LABEL)); + LinearLayout linearLayout2 = this.layout.addToFooter(LinearLayout.horizontal().spacing(10)); + linearLayout2.addChild(button); + linearLayout2.addChild(Button.builder(CommonComponents.GUI_BACK, buttonx -> this.onClose()).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void setInitialFocus() { + this.setInitialFocus(this.nameBox); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + } + + private void createWorld(RealmsServer realmsServer) { + RealmCreationTask realmCreationTask = new RealmCreationTask(realmsServer.id, this.nameBox.getValue(), this.descriptionBox.getValue()); + RealmsResetWorldScreen realmsResetWorldScreen = RealmsResetWorldScreen.forNewRealm( + this, realmsServer, realmCreationTask, () -> this.minecraft.execute(() -> { + RealmsMainScreen.refreshServerList(); + this.minecraft.setScreen(this.lastScreen); + }) + ); + this.minecraft.setScreen(realmsResetWorldScreen); + } + + private void createSnapshotWorld(long parentId) { + Screen screen = new RealmsResetNormalWorldScreen( + worldGenerationInfo -> { + if (worldGenerationInfo == null) { + this.minecraft.setScreen(this); + } else { + this.minecraft + .setScreen( + new RealmsLongRunningMcoTaskScreen( + this, new CreateSnapshotRealmTask(this.lastScreen, parentId, worldGenerationInfo, this.nameBox.getValue(), this.descriptionBox.getValue()) + ) + ); + } + }, + CREATE_REALM_TEXT + ); + this.minecraft.setScreen(screen); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsDownloadLatestWorldScreen.java b/com/mojang/realmsclient/gui/screens/RealmsDownloadLatestWorldScreen.java new file mode 100644 index 00000000..c4987c6d --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsDownloadLatestWorldScreen.java @@ -0,0 +1,282 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.Lists; +import com.google.common.util.concurrent.RateLimiter; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.Unit; +import com.mojang.realmsclient.client.FileDownload; +import com.mojang.realmsclient.dto.WorldDownload; +import it.unimi.dsi.fastutil.booleans.BooleanConsumer; +import java.util.List; +import java.util.Locale; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.ReentrantLock; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsDownloadLatestWorldScreen extends RealmsScreen { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final ReentrantLock DOWNLOAD_LOCK = new ReentrantLock(); + private static final int BAR_WIDTH = 200; + private static final int BAR_TOP = 80; + private static final int BAR_BOTTOM = 95; + private static final int BAR_BORDER = 1; + private final Screen lastScreen; + private final WorldDownload worldDownload; + private final Component downloadTitle; + private final RateLimiter narrationRateLimiter; + private Button cancelButton; + private final String worldName; + private final RealmsDownloadLatestWorldScreen.DownloadStatus downloadStatus; + @Nullable + private volatile Component errorMessage; + private volatile Component status = Component.translatable("mco.download.preparing"); + @Nullable + private volatile String progress; + private volatile boolean cancelled; + private volatile boolean showDots = true; + private volatile boolean finished; + private volatile boolean extracting; + @Nullable + private Long previousWrittenBytes; + @Nullable + private Long previousTimeSnapshot; + private long bytesPersSecond; + private int animTick; + private static final String[] DOTS = new String[]{"", ".", ". .", ". . ."}; + private int dotIndex; + private boolean checked; + private final BooleanConsumer callback; + + public RealmsDownloadLatestWorldScreen(Screen lastScreen, WorldDownload worldDownload, String worldName, BooleanConsumer callback) { + super(GameNarrator.NO_TITLE); + this.callback = callback; + this.lastScreen = lastScreen; + this.worldName = worldName; + this.worldDownload = worldDownload; + this.downloadStatus = new RealmsDownloadLatestWorldScreen.DownloadStatus(); + this.downloadTitle = Component.translatable("mco.download.title"); + this.narrationRateLimiter = RateLimiter.create(0.1F); + } + + @Override + public void init() { + this.cancelButton = this.addRenderableWidget( + Button.builder(CommonComponents.GUI_CANCEL, button -> this.onClose()).bounds((this.width - 200) / 2, this.height - 42, 200, 20).build() + ); + this.checkDownloadSize(); + } + + private void checkDownloadSize() { + if (!this.finished && !this.checked) { + this.checked = true; + if (this.getContentLength(this.worldDownload.downloadLink) >= 5368709120L) { + Component component = Component.translatable("mco.download.confirmation.oversized", Unit.humanReadable(5368709120L)); + this.minecraft.setScreen(RealmsPopups.warningAcknowledgePopupScreen(this, component, popupScreen -> { + this.minecraft.setScreen(this); + this.downloadSave(); + })); + } else { + this.downloadSave(); + } + } + } + + private long getContentLength(String uri) { + FileDownload fileDownload = new FileDownload(); + return fileDownload.contentLength(uri); + } + + @Override + public void tick() { + super.tick(); + this.animTick++; + if (this.status != null && this.narrationRateLimiter.tryAcquire(1)) { + Component component = this.createProgressNarrationMessage(); + this.minecraft.getNarrator().sayNow(component); + } + } + + private Component createProgressNarrationMessage() { + List list = Lists.newArrayList(); + list.add(this.downloadTitle); + list.add(this.status); + if (this.progress != null) { + list.add(Component.translatable("mco.download.percent", this.progress)); + list.add(Component.translatable("mco.download.speed.narration", Unit.humanReadable(this.bytesPersSecond))); + } + + if (this.errorMessage != null) { + list.add(this.errorMessage); + } + + return CommonComponents.joinLines(list); + } + + @Override + public void onClose() { + this.cancelled = true; + if (this.finished && this.callback != null && this.errorMessage == null) { + this.callback.accept(true); + } + + this.minecraft.setScreen(this.lastScreen); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.downloadTitle, this.width / 2, 20, -1); + guiGraphics.drawCenteredString(this.font, this.status, this.width / 2, 50, -1); + if (this.showDots) { + this.drawDots(guiGraphics); + } + + if (this.downloadStatus.bytesWritten != 0L && !this.cancelled) { + this.drawProgressBar(guiGraphics); + this.drawDownloadSpeed(guiGraphics); + } + + if (this.errorMessage != null) { + guiGraphics.drawCenteredString(this.font, this.errorMessage, this.width / 2, 110, -65536); + } + } + + private void drawDots(GuiGraphics guiGraphics) { + int i = this.font.width(this.status); + if (this.animTick != 0 && this.animTick % 10 == 0) { + this.dotIndex++; + } + + guiGraphics.drawString(this.font, DOTS[this.dotIndex % DOTS.length], this.width / 2 + i / 2 + 5, 50, -1, false); + } + + private void drawProgressBar(GuiGraphics guiGraphics) { + double d = Math.min((double)this.downloadStatus.bytesWritten / this.downloadStatus.totalBytes, 1.0); + this.progress = String.format(Locale.ROOT, "%.1f", d * 100.0); + int i = (this.width - 200) / 2; + int j = i + (int)Math.round(200.0 * d); + guiGraphics.fill(i - 1, 79, j + 1, 96, -1); + guiGraphics.fill(i, 80, j, 95, -8355712); + guiGraphics.drawCenteredString(this.font, Component.translatable("mco.download.percent", this.progress), this.width / 2, 84, -1); + } + + private void drawDownloadSpeed(GuiGraphics guiGraphics) { + if (this.animTick % 20 == 0) { + if (this.previousWrittenBytes != null) { + long l = Util.getMillis() - this.previousTimeSnapshot; + if (l == 0L) { + l = 1L; + } + + this.bytesPersSecond = 1000L * (this.downloadStatus.bytesWritten - this.previousWrittenBytes) / l; + this.drawDownloadSpeed0(guiGraphics, this.bytesPersSecond); + } + + this.previousWrittenBytes = this.downloadStatus.bytesWritten; + this.previousTimeSnapshot = Util.getMillis(); + } else { + this.drawDownloadSpeed0(guiGraphics, this.bytesPersSecond); + } + } + + private void drawDownloadSpeed0(GuiGraphics guiGraphics, long bytesPerSecond) { + if (bytesPerSecond > 0L) { + int i = this.font.width(this.progress); + guiGraphics.drawString( + this.font, Component.translatable("mco.download.speed", Unit.humanReadable(bytesPerSecond)), this.width / 2 + i / 2 + 15, 84, -1, false + ); + } + } + + private void downloadSave() { + new Thread(() -> { + try { + try { + if (!DOWNLOAD_LOCK.tryLock(1L, TimeUnit.SECONDS)) { + this.status = Component.translatable("mco.download.failed"); + return; + } + + if (this.cancelled) { + this.downloadCancelled(); + return; + } + + this.status = Component.translatable("mco.download.downloading", this.worldName); + FileDownload fileDownload = new FileDownload(); + fileDownload.contentLength(this.worldDownload.downloadLink); + fileDownload.download(this.worldDownload, this.worldName, this.downloadStatus, this.minecraft.getLevelSource()); + + while (!fileDownload.isFinished()) { + if (fileDownload.isError()) { + fileDownload.cancel(); + this.errorMessage = Component.translatable("mco.download.failed"); + this.cancelButton.setMessage(CommonComponents.GUI_DONE); + return; + } + + if (fileDownload.isExtracting()) { + if (!this.extracting) { + this.status = Component.translatable("mco.download.extracting"); + } + + this.extracting = true; + } + + if (this.cancelled) { + fileDownload.cancel(); + this.downloadCancelled(); + return; + } + + try { + Thread.sleep(500L); + } catch (InterruptedException var8) { + LOGGER.error("Failed to check Realms backup download status"); + } + } + + this.finished = true; + this.status = Component.translatable("mco.download.done"); + this.cancelButton.setMessage(CommonComponents.GUI_DONE); + return; + } catch (InterruptedException var9) { + LOGGER.error("Could not acquire upload lock"); + } catch (Exception var10) { + this.errorMessage = Component.translatable("mco.download.failed"); + LOGGER.info("Exception while downloading world", (Throwable)var10); + } + } finally { + if (!DOWNLOAD_LOCK.isHeldByCurrentThread()) { + return; + } else { + DOWNLOAD_LOCK.unlock(); + this.showDots = false; + this.finished = true; + } + } + }).start(); + } + + private void downloadCancelled() { + this.status = Component.translatable("mco.download.cancelled"); + } + + @Environment(EnvType.CLIENT) + public static class DownloadStatus { + public volatile long bytesWritten; + public volatile long totalBytes; + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsGenericErrorScreen.java b/com/mojang/realmsclient/gui/screens/RealmsGenericErrorScreen.java new file mode 100644 index 00000000..b913866a --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsGenericErrorScreen.java @@ -0,0 +1,79 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.realmsclient.client.RealmsError; +import com.mojang.realmsclient.exception.RealmsServiceException; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.MultiLineLabel; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; + +@Environment(EnvType.CLIENT) +public class RealmsGenericErrorScreen extends RealmsScreen { + private final Screen nextScreen; + private final RealmsGenericErrorScreen.ErrorMessage lines; + private MultiLineLabel line2Split = MultiLineLabel.EMPTY; + + public RealmsGenericErrorScreen(RealmsServiceException serviceException, Screen nextScreen) { + super(GameNarrator.NO_TITLE); + this.nextScreen = nextScreen; + this.lines = errorMessage(serviceException); + } + + public RealmsGenericErrorScreen(Component message, Screen nextScreen) { + super(GameNarrator.NO_TITLE); + this.nextScreen = nextScreen; + this.lines = errorMessage(message); + } + + public RealmsGenericErrorScreen(Component title, Component line2, Screen message) { + super(GameNarrator.NO_TITLE); + this.nextScreen = message; + this.lines = errorMessage(title, line2); + } + + private static RealmsGenericErrorScreen.ErrorMessage errorMessage(RealmsServiceException exception) { + RealmsError realmsError = exception.realmsError; + return errorMessage(Component.translatable("mco.errorMessage.realmsService.realmsError", realmsError.errorCode()), realmsError.errorMessage()); + } + + private static RealmsGenericErrorScreen.ErrorMessage errorMessage(Component message) { + return errorMessage(Component.translatable("mco.errorMessage.generic"), message); + } + + private static RealmsGenericErrorScreen.ErrorMessage errorMessage(Component title, Component message) { + return new RealmsGenericErrorScreen.ErrorMessage(title, message); + } + + @Override + public void init() { + this.addRenderableWidget(Button.builder(CommonComponents.GUI_OK, button -> this.onClose()).bounds(this.width / 2 - 100, this.height - 52, 200, 20).build()); + this.line2Split = MultiLineLabel.create(this.font, this.lines.detail, this.width * 3 / 4); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.nextScreen); + } + + @Override + public Component getNarrationMessage() { + return Component.empty().append(this.lines.title).append(": ").append(this.lines.detail); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.lines.title, this.width / 2, 80, -1); + this.line2Split.renderCentered(guiGraphics, this.width / 2, 100, 9, -2142128); + } + + @Environment(EnvType.CLIENT) + record ErrorMessage(Component title, Component detail) { + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsInviteScreen.java b/com/mojang/realmsclient/gui/screens/RealmsInviteScreen.java new file mode 100644 index 00000000..a151686f --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsInviteScreen.java @@ -0,0 +1,119 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import java.util.concurrent.CompletableFuture; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.client.gui.layouts.CommonLayouts; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.util.StringUtil; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsInviteScreen extends RealmsScreen { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.configure.world.buttons.invite"); + private static final Component NAME_LABEL = Component.translatable("mco.configure.world.invite.profile.name").withColor(-6250336); + private static final Component INVITING_PLAYER_TEXT = Component.translatable("mco.configure.world.players.inviting").withColor(-6250336); + private static final Component NO_SUCH_PLAYER_ERROR_TEXT = Component.translatable("mco.configure.world.players.error").withColor(-65536); + private final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + private EditBox profileName; + private Button inviteButton; + private final RealmsServer serverData; + private final RealmsConfigureWorldScreen configureScreen; + private final Screen lastScreen; + @Nullable + private Component message; + + public RealmsInviteScreen(RealmsConfigureWorldScreen configureScreen, Screen lastScreen, RealmsServer serverData) { + super(TITLE); + this.configureScreen = configureScreen; + this.lastScreen = lastScreen; + this.serverData = serverData; + } + + @Override + public void init() { + this.layout.addTitleHeader(TITLE, this.font); + LinearLayout linearLayout = this.layout.addToContents(LinearLayout.vertical().spacing(8)); + this.profileName = new EditBox(this.minecraft.font, 200, 20, Component.translatable("mco.configure.world.invite.profile.name")); + linearLayout.addChild(CommonLayouts.labeledElement(this.font, this.profileName, NAME_LABEL)); + this.inviteButton = linearLayout.addChild(Button.builder(TITLE, button -> this.onInvite()).width(200).build()); + this.layout.addToFooter(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).width(200).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + } + + @Override + protected void setInitialFocus() { + this.setInitialFocus(this.profileName); + } + + private void onInvite() { + if (StringUtil.isBlank(this.profileName.getValue())) { + this.showMessage(NO_SUCH_PLAYER_ERROR_TEXT); + } else { + long l = this.serverData.id; + String string = this.profileName.getValue().trim(); + this.inviteButton.active = false; + this.profileName.setEditable(false); + this.showMessage(INVITING_PLAYER_TEXT); + CompletableFuture.supplyAsync(() -> { + try { + return RealmsClient.create().invite(l, string); + } catch (Exception var4) { + LOGGER.error("Couldn't invite user"); + return null; + } + }, Util.ioPool()).thenAcceptAsync(realmsServer -> { + if (realmsServer != null) { + this.serverData.players = realmsServer.players; + this.minecraft.setScreen(new RealmsPlayerScreen(this.configureScreen, this.serverData)); + } else { + this.showMessage(NO_SUCH_PLAYER_ERROR_TEXT); + } + + this.profileName.setEditable(true); + this.inviteButton.active = true; + }, this.screenExecutor); + } + } + + private void showMessage(Component message) { + this.message = message; + this.minecraft.getNarrator().sayNow(message); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + if (this.message != null) { + guiGraphics.drawCenteredString(this.font, this.message, this.width / 2, this.inviteButton.getY() + this.inviteButton.getHeight() + 8, -1); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsLongRunningMcoTaskScreen.java b/com/mojang/realmsclient/gui/screens/RealmsLongRunningMcoTaskScreen.java new file mode 100644 index 00000000..248c4592 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsLongRunningMcoTaskScreen.java @@ -0,0 +1,113 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.exception.RealmsDefaultUncaughtExceptionHandler; +import com.mojang.realmsclient.util.task.LongRunningTask; +import java.time.Duration; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.LoadingDotsWidget; +import net.minecraft.client.gui.layouts.FrameLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.realms.RepeatedNarrator; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsLongRunningMcoTaskScreen extends RealmsScreen { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final RepeatedNarrator REPEATED_NARRATOR = new RepeatedNarrator(Duration.ofSeconds(5L)); + private final List queuedTasks; + private final Screen lastScreen; + private final LinearLayout layout = LinearLayout.vertical(); + private volatile Component title; + @Nullable + private LoadingDotsWidget loadingDotsWidget; + + public RealmsLongRunningMcoTaskScreen(Screen lastScreen, LongRunningTask... queuedTasks) { + super(GameNarrator.NO_TITLE); + this.lastScreen = lastScreen; + this.queuedTasks = List.of(queuedTasks); + if (this.queuedTasks.isEmpty()) { + throw new IllegalArgumentException("No tasks added"); + } else { + this.title = ((LongRunningTask)this.queuedTasks.get(0)).getTitle(); + Runnable runnable = () -> { + for (LongRunningTask longRunningTask : queuedTasks) { + this.setTitle(longRunningTask.getTitle()); + if (longRunningTask.aborted()) { + break; + } + + longRunningTask.run(); + if (longRunningTask.aborted()) { + return; + } + } + }; + Thread thread = new Thread(runnable, "Realms-long-running-task"); + thread.setUncaughtExceptionHandler(new RealmsDefaultUncaughtExceptionHandler(LOGGER)); + thread.start(); + } + } + + @Override + public void tick() { + super.tick(); + if (this.loadingDotsWidget != null) { + REPEATED_NARRATOR.narrate(this.minecraft.getNarrator(), this.loadingDotsWidget.getMessage()); + } + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (keyCode == 256) { + this.cancel(); + return true; + } else { + return super.keyPressed(keyCode, scanCode, modifiers); + } + } + + @Override + public void init() { + this.layout.defaultCellSetting().alignHorizontallyCenter(); + this.loadingDotsWidget = new LoadingDotsWidget(this.font, this.title); + this.layout.addChild(this.loadingDotsWidget, layoutSettings -> layoutSettings.paddingBottom(30)); + this.layout.addChild(Button.builder(CommonComponents.GUI_CANCEL, button -> this.cancel()).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + FrameLayout.centerInRectangle(this.layout, this.getRectangle()); + } + + protected void cancel() { + for (LongRunningTask longRunningTask : this.queuedTasks) { + longRunningTask.abortTask(); + } + + this.minecraft.setScreen(this.lastScreen); + } + + public void setTitle(Component title) { + if (this.loadingDotsWidget != null) { + this.loadingDotsWidget.setMessage(title); + } + + this.title = title; + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsLongRunningMcoTickTaskScreen.java b/com/mojang/realmsclient/gui/screens/RealmsLongRunningMcoTickTaskScreen.java new file mode 100644 index 00000000..756af064 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsLongRunningMcoTickTaskScreen.java @@ -0,0 +1,28 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.realmsclient.util.task.LongRunningTask; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.screens.Screen; + +@Environment(EnvType.CLIENT) +public class RealmsLongRunningMcoTickTaskScreen extends RealmsLongRunningMcoTaskScreen { + private final LongRunningTask task; + + public RealmsLongRunningMcoTickTaskScreen(Screen lastScreen, LongRunningTask task) { + super(lastScreen, task); + this.task = task; + } + + @Override + public void tick() { + super.tick(); + this.task.tick(); + } + + @Override + protected void cancel() { + this.task.abortTask(); + super.cancel(); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsNotificationsScreen.java b/com/mojang/realmsclient/gui/screens/RealmsNotificationsScreen.java new file mode 100644 index 00000000..02715e73 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsNotificationsScreen.java @@ -0,0 +1,182 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.realmsclient.RealmsAvailability; +import com.mojang.realmsclient.dto.RealmsNotification; +import com.mojang.realmsclient.gui.RealmsDataFetcher; +import com.mojang.realmsclient.gui.task.DataFetcher; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.TitleScreen; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class RealmsNotificationsScreen extends RealmsScreen { + private static final ResourceLocation UNSEEN_NOTIFICATION_SPRITE = ResourceLocation.withDefaultNamespace("icon/unseen_notification"); + private static final ResourceLocation NEWS_SPRITE = ResourceLocation.withDefaultNamespace("icon/news"); + private static final ResourceLocation INVITE_SPRITE = ResourceLocation.withDefaultNamespace("icon/invite"); + private static final ResourceLocation TRIAL_AVAILABLE_SPRITE = ResourceLocation.withDefaultNamespace("icon/trial_available"); + private final CompletableFuture validClient = RealmsAvailability.get().thenApply(result -> result.type() == RealmsAvailability.Type.SUCCESS); + @Nullable + private DataFetcher.Subscription realmsDataSubscription; + @Nullable + private RealmsNotificationsScreen.DataFetcherConfiguration currentConfiguration; + private volatile int numberOfPendingInvites; + private static boolean trialAvailable; + private static boolean hasUnreadNews; + private static boolean hasUnseenNotifications; + private final RealmsNotificationsScreen.DataFetcherConfiguration showAll = new RealmsNotificationsScreen.DataFetcherConfiguration() { + @Override + public DataFetcher.Subscription initDataFetcher(RealmsDataFetcher dataFetcher) { + DataFetcher.Subscription subscription = dataFetcher.dataFetcher.createSubscription(); + RealmsNotificationsScreen.this.addNewsAndInvitesSubscriptions(dataFetcher, subscription); + RealmsNotificationsScreen.this.addNotificationsSubscriptions(dataFetcher, subscription); + return subscription; + } + + @Override + public boolean showOldNotifications() { + return true; + } + }; + private final RealmsNotificationsScreen.DataFetcherConfiguration onlyNotifications = new RealmsNotificationsScreen.DataFetcherConfiguration() { + @Override + public DataFetcher.Subscription initDataFetcher(RealmsDataFetcher dataFetcher) { + DataFetcher.Subscription subscription = dataFetcher.dataFetcher.createSubscription(); + RealmsNotificationsScreen.this.addNotificationsSubscriptions(dataFetcher, subscription); + return subscription; + } + + @Override + public boolean showOldNotifications() { + return false; + } + }; + + public RealmsNotificationsScreen() { + super(GameNarrator.NO_TITLE); + } + + @Override + public void init() { + if (this.realmsDataSubscription != null) { + this.realmsDataSubscription.forceUpdate(); + } + } + + @Override + public void added() { + super.added(); + this.minecraft.realmsDataFetcher().notificationsTask.reset(); + } + + @Nullable + private RealmsNotificationsScreen.DataFetcherConfiguration getConfiguration() { + boolean bl = this.inTitleScreen() && (Boolean)this.validClient.getNow(false); + if (!bl) { + return null; + } else { + return this.getRealmsNotificationsEnabled() ? this.showAll : this.onlyNotifications; + } + } + + @Override + public void tick() { + RealmsNotificationsScreen.DataFetcherConfiguration dataFetcherConfiguration = this.getConfiguration(); + if (!Objects.equals(this.currentConfiguration, dataFetcherConfiguration)) { + this.currentConfiguration = dataFetcherConfiguration; + if (this.currentConfiguration != null) { + this.realmsDataSubscription = this.currentConfiguration.initDataFetcher(this.minecraft.realmsDataFetcher()); + } else { + this.realmsDataSubscription = null; + } + } + + if (this.realmsDataSubscription != null) { + this.realmsDataSubscription.tick(); + } + } + + private boolean getRealmsNotificationsEnabled() { + return this.minecraft.options.realmsNotifications().get(); + } + + private boolean inTitleScreen() { + return this.minecraft.screen instanceof TitleScreen; + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + if ((Boolean)this.validClient.getNow(false)) { + this.drawIcons(guiGraphics); + } + } + + @Override + public void renderBackground(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + } + + private void drawIcons(GuiGraphics guiGraphics) { + int i = this.numberOfPendingInvites; + int j = 24; + int k = this.height / 4 + 48; + int l = this.width / 2 + 100; + int m = k + 48 + 2; + int n = l - 3; + if (hasUnseenNotifications) { + guiGraphics.blitSprite(UNSEEN_NOTIFICATION_SPRITE, n - 12, m + 3, 10, 10); + n -= 16; + } + + if (this.currentConfiguration != null && this.currentConfiguration.showOldNotifications()) { + if (hasUnreadNews) { + guiGraphics.blitSprite(NEWS_SPRITE, n - 14, m + 1, 14, 14); + n -= 16; + } + + if (i != 0) { + guiGraphics.blitSprite(INVITE_SPRITE, n - 14, m + 1, 14, 14); + n -= 16; + } + + if (trialAvailable) { + guiGraphics.blitSprite(TRIAL_AVAILABLE_SPRITE, n - 10, m + 4, 8, 8); + } + } + } + + void addNewsAndInvitesSubscriptions(RealmsDataFetcher dataFetcher, DataFetcher.Subscription subscription) { + subscription.subscribe(dataFetcher.pendingInvitesTask, integer -> this.numberOfPendingInvites = integer); + subscription.subscribe(dataFetcher.trialAvailabilityTask, boolean_ -> trialAvailable = boolean_); + subscription.subscribe(dataFetcher.newsTask, realmsNews -> { + dataFetcher.newsManager.updateUnreadNews(realmsNews); + hasUnreadNews = dataFetcher.newsManager.hasUnreadNews(); + }); + } + + void addNotificationsSubscriptions(RealmsDataFetcher dataFetcher, DataFetcher.Subscription subscription) { + subscription.subscribe(dataFetcher.notificationsTask, list -> { + hasUnseenNotifications = false; + + for (RealmsNotification realmsNotification : list) { + if (!realmsNotification.seen()) { + hasUnseenNotifications = true; + break; + } + } + }); + } + + @Environment(EnvType.CLIENT) + interface DataFetcherConfiguration { + DataFetcher.Subscription initDataFetcher(RealmsDataFetcher dataFetcher); + + boolean showOldNotifications(); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsParentalConsentScreen.java b/com/mojang/realmsclient/gui/screens/RealmsParentalConsentScreen.java new file mode 100644 index 00000000..abd450af --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsParentalConsentScreen.java @@ -0,0 +1,67 @@ +package com.mojang.realmsclient.gui.screens; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.MultiLineTextWidget; +import net.minecraft.client.gui.layouts.FrameLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.screens.ConfirmLinkScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.util.CommonLinks; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class RealmsParentalConsentScreen extends RealmsScreen { + private static final Component MESSAGE = Component.translatable("mco.account.privacy.information"); + private static final int SPACING = 15; + private final LinearLayout layout = LinearLayout.vertical(); + private final Screen lastScreen; + @Nullable + private MultiLineTextWidget textWidget; + + public RealmsParentalConsentScreen(Screen nextScreen) { + super(GameNarrator.NO_TITLE); + this.lastScreen = nextScreen; + } + + @Override + public void init() { + this.layout.spacing(15).defaultCellSetting().alignHorizontallyCenter(); + this.textWidget = new MultiLineTextWidget(MESSAGE, this.font).setCentered(true); + this.layout.addChild(this.textWidget); + LinearLayout linearLayout = this.layout.addChild(LinearLayout.horizontal().spacing(8)); + Component component = Component.translatable("mco.account.privacy.info.button"); + linearLayout.addChild(Button.builder(component, ConfirmLinkScreen.confirmLink(this, CommonLinks.GDPR)).build()); + linearLayout.addChild(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + @Override + protected void repositionElements() { + if (this.textWidget != null) { + this.textWidget.setMaxWidth(this.width - 15); + } + + this.layout.arrangeElements(); + FrameLayout.centerInRectangle(this.layout, this.getRectangle()); + } + + @Override + public Component getNarrationMessage() { + return MESSAGE; + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsPendingInvitesScreen.java b/com/mojang/realmsclient/gui/screens/RealmsPendingInvitesScreen.java new file mode 100644 index 00000000..196f6062 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsPendingInvitesScreen.java @@ -0,0 +1,265 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.PendingInvite; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.gui.RealmsDataFetcher; +import com.mojang.realmsclient.gui.RowButton; +import com.mojang.realmsclient.util.RealmsUtil; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.ObjectSelectionList; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsObjectSelectionList; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsPendingInvitesScreen extends RealmsScreen { + static final ResourceLocation ACCEPT_HIGHLIGHTED_SPRITE = ResourceLocation.withDefaultNamespace("pending_invite/accept_highlighted"); + static final ResourceLocation ACCEPT_SPRITE = ResourceLocation.withDefaultNamespace("pending_invite/accept"); + static final ResourceLocation REJECT_HIGHLIGHTED_SPRITE = ResourceLocation.withDefaultNamespace("pending_invite/reject_highlighted"); + static final ResourceLocation REJECT_SPRITE = ResourceLocation.withDefaultNamespace("pending_invite/reject"); + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component NO_PENDING_INVITES_TEXT = Component.translatable("mco.invites.nopending"); + static final Component ACCEPT_INVITE = Component.translatable("mco.invites.button.accept"); + static final Component REJECT_INVITE = Component.translatable("mco.invites.button.reject"); + private final Screen lastScreen; + private final CompletableFuture> pendingInvites = CompletableFuture.supplyAsync(() -> { + try { + return RealmsClient.create().pendingInvites().pendingInvites; + } catch (RealmsServiceException var1) { + LOGGER.error("Couldn't list invites", (Throwable)var1); + return List.of(); + } + }, Util.ioPool()); + @Nullable + Component toolTip; + RealmsPendingInvitesScreen.PendingInvitationSelectionList pendingInvitationSelectionList; + int selectedInvite = -1; + private Button acceptButton; + private Button rejectButton; + + public RealmsPendingInvitesScreen(Screen lastScreen, Component title) { + super(title); + this.lastScreen = lastScreen; + } + + @Override + public void init() { + RealmsMainScreen.refreshPendingInvites(); + this.pendingInvitationSelectionList = new RealmsPendingInvitesScreen.PendingInvitationSelectionList(); + this.pendingInvites.thenAcceptAsync(list -> { + List list2 = list.stream().map(pendingInvite -> new RealmsPendingInvitesScreen.Entry(pendingInvite)).toList(); + this.pendingInvitationSelectionList.replaceEntries(list2); + if (list2.isEmpty()) { + this.minecraft.getNarrator().say(NO_PENDING_INVITES_TEXT); + } + }, this.screenExecutor); + this.addRenderableWidget(this.pendingInvitationSelectionList); + this.acceptButton = this.addRenderableWidget(Button.builder(ACCEPT_INVITE, button -> { + this.handleInvitation(this.selectedInvite, true); + this.selectedInvite = -1; + this.updateButtonStates(); + }).bounds(this.width / 2 - 174, this.height - 32, 100, 20).build()); + this.addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, button -> this.onClose()).bounds(this.width / 2 - 50, this.height - 32, 100, 20).build()); + this.rejectButton = this.addRenderableWidget(Button.builder(REJECT_INVITE, button -> { + this.handleInvitation(this.selectedInvite, false); + this.selectedInvite = -1; + this.updateButtonStates(); + }).bounds(this.width / 2 + 74, this.height - 32, 100, 20).build()); + this.updateButtonStates(); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + void handleInvitation(int index, boolean shouldAccept) { + if (index < this.pendingInvitationSelectionList.getItemCount()) { + String string = ((RealmsPendingInvitesScreen.Entry)this.pendingInvitationSelectionList.children().get(index)).pendingInvite.invitationId; + CompletableFuture.supplyAsync(() -> { + try { + RealmsClient realmsClient = RealmsClient.create(); + if (shouldAccept) { + realmsClient.acceptInvitation(string); + } else { + realmsClient.rejectInvitation(string); + } + + return true; + } catch (RealmsServiceException var3x) { + LOGGER.error("Couldn't handle invite", (Throwable)var3x); + return false; + } + }, Util.ioPool()).thenAcceptAsync(boolean_ -> { + if (boolean_) { + this.pendingInvitationSelectionList.removeAtIndex(index); + RealmsDataFetcher realmsDataFetcher = this.minecraft.realmsDataFetcher(); + if (shouldAccept) { + realmsDataFetcher.serverListUpdateTask.reset(); + } + + realmsDataFetcher.pendingInvitesTask.reset(); + } + }, this.screenExecutor); + } + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.toolTip = null; + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 12, -1); + if (this.toolTip != null) { + guiGraphics.renderTooltip(this.font, this.toolTip, mouseX, mouseY); + } + + if (this.pendingInvites.isDone() && this.pendingInvitationSelectionList.getItemCount() == 0) { + guiGraphics.drawCenteredString(this.font, NO_PENDING_INVITES_TEXT, this.width / 2, this.height / 2 - 20, -1); + } + } + + void updateButtonStates() { + this.acceptButton.visible = this.shouldAcceptAndRejectButtonBeVisible(this.selectedInvite); + this.rejectButton.visible = this.shouldAcceptAndRejectButtonBeVisible(this.selectedInvite); + } + + private boolean shouldAcceptAndRejectButtonBeVisible(int selectedInvite) { + return selectedInvite != -1; + } + + @Environment(EnvType.CLIENT) + class Entry extends ObjectSelectionList.Entry { + private static final int TEXT_LEFT = 38; + final PendingInvite pendingInvite; + private final List rowButtons; + + Entry(final PendingInvite pendingInvite) { + this.pendingInvite = pendingInvite; + this.rowButtons = Arrays.asList(new RealmsPendingInvitesScreen.Entry.AcceptRowButton(), new RealmsPendingInvitesScreen.Entry.RejectRowButton()); + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + this.renderPendingInvitationItem(guiGraphics, this.pendingInvite, left, top, mouseX, mouseY); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + RowButton.rowButtonMouseClicked(RealmsPendingInvitesScreen.this.pendingInvitationSelectionList, this, this.rowButtons, button, mouseX, mouseY); + return super.mouseClicked(mouseX, mouseY, button); + } + + private void renderPendingInvitationItem(GuiGraphics guiGraphics, PendingInvite pendingInvite, int x, int y, int mouseX, int mouseY) { + guiGraphics.drawString(RealmsPendingInvitesScreen.this.font, pendingInvite.realmName, x + 38, y + 1, -1, false); + guiGraphics.drawString(RealmsPendingInvitesScreen.this.font, pendingInvite.realmOwnerName, x + 38, y + 12, 7105644, false); + guiGraphics.drawString( + RealmsPendingInvitesScreen.this.font, RealmsUtil.convertToAgePresentationFromInstant(pendingInvite.date), x + 38, y + 24, 7105644, false + ); + RowButton.drawButtonsInRow(guiGraphics, this.rowButtons, RealmsPendingInvitesScreen.this.pendingInvitationSelectionList, x, y, mouseX, mouseY); + RealmsUtil.renderPlayerFace(guiGraphics, x, y, 32, pendingInvite.realmOwnerUuid); + } + + @Override + public Component getNarration() { + Component component = CommonComponents.joinLines( + Component.literal(this.pendingInvite.realmName), + Component.literal(this.pendingInvite.realmOwnerName), + RealmsUtil.convertToAgePresentationFromInstant(this.pendingInvite.date) + ); + return Component.translatable("narrator.select", component); + } + + @Environment(EnvType.CLIENT) + class AcceptRowButton extends RowButton { + AcceptRowButton() { + super(15, 15, 215, 5); + } + + @Override + protected void draw(GuiGraphics guiGraphics, int x, int y, boolean showTooltip) { + guiGraphics.blitSprite(showTooltip ? RealmsPendingInvitesScreen.ACCEPT_HIGHLIGHTED_SPRITE : RealmsPendingInvitesScreen.ACCEPT_SPRITE, x, y, 18, 18); + if (showTooltip) { + RealmsPendingInvitesScreen.this.toolTip = RealmsPendingInvitesScreen.ACCEPT_INVITE; + } + } + + @Override + public void onClick(int index) { + RealmsPendingInvitesScreen.this.handleInvitation(index, true); + } + } + + @Environment(EnvType.CLIENT) + class RejectRowButton extends RowButton { + RejectRowButton() { + super(15, 15, 235, 5); + } + + @Override + protected void draw(GuiGraphics guiGraphics, int x, int y, boolean showTooltip) { + guiGraphics.blitSprite(showTooltip ? RealmsPendingInvitesScreen.REJECT_HIGHLIGHTED_SPRITE : RealmsPendingInvitesScreen.REJECT_SPRITE, x, y, 18, 18); + if (showTooltip) { + RealmsPendingInvitesScreen.this.toolTip = RealmsPendingInvitesScreen.REJECT_INVITE; + } + } + + @Override + public void onClick(int index) { + RealmsPendingInvitesScreen.this.handleInvitation(index, false); + } + } + } + + @Environment(EnvType.CLIENT) + class PendingInvitationSelectionList extends RealmsObjectSelectionList { + public PendingInvitationSelectionList() { + super(RealmsPendingInvitesScreen.this.width, RealmsPendingInvitesScreen.this.height - 72, 32, 36); + } + + public void removeAtIndex(int index) { + this.remove(index); + } + + @Override + public int getMaxPosition() { + return this.getItemCount() * 36; + } + + @Override + public int getRowWidth() { + return 260; + } + + @Override + public void selectItem(int index) { + super.selectItem(index); + this.selectInviteListItem(index); + } + + public void selectInviteListItem(int index) { + RealmsPendingInvitesScreen.this.selectedInvite = index; + RealmsPendingInvitesScreen.this.updateButtonStates(); + } + + public void setSelected(@Nullable RealmsPendingInvitesScreen.Entry selected) { + super.setSelected(selected); + RealmsPendingInvitesScreen.this.selectedInvite = this.children().indexOf(selected); + RealmsPendingInvitesScreen.this.updateButtonStates(); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsPlayerScreen.java b/com/mojang/realmsclient/gui/screens/RealmsPlayerScreen.java new file mode 100644 index 00000000..4adba735 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsPlayerScreen.java @@ -0,0 +1,287 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.ImmutableList; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.Ops; +import com.mojang.realmsclient.dto.PlayerInfo; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.util.RealmsUtil; +import java.util.List; +import java.util.UUID; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.ContainerObjectSelectionList; +import net.minecraft.client.gui.components.SpriteIconButton; +import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.narration.NarratableEntry; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsPlayerScreen extends RealmsScreen { + static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.configure.world.players.title"); + static final Component QUESTION_TITLE = Component.translatable("mco.question"); + private static final int PADDING = 8; + final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + private final RealmsConfigureWorldScreen lastScreen; + final RealmsServer serverData; + @Nullable + private RealmsPlayerScreen.InvitedObjectSelectionList invitedList; + boolean stateChanged; + + public RealmsPlayerScreen(RealmsConfigureWorldScreen lastScreen, RealmsServer serverData) { + super(TITLE); + this.lastScreen = lastScreen; + this.serverData = serverData; + } + + @Override + public void init() { + this.layout.addTitleHeader(TITLE, this.font); + this.invitedList = this.layout.addToContents(new RealmsPlayerScreen.InvitedObjectSelectionList()); + this.repopulateInvitedList(); + LinearLayout linearLayout = this.layout.addToFooter(LinearLayout.horizontal().spacing(8)); + linearLayout.addChild( + Button.builder( + Component.translatable("mco.configure.world.buttons.invite"), + button -> this.minecraft.setScreen(new RealmsInviteScreen(this.lastScreen, this, this.serverData)) + ) + .build() + ); + linearLayout.addChild(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + if (this.invitedList != null) { + this.invitedList.updateSize(this.width, this.layout); + } + } + + void repopulateInvitedList() { + if (this.invitedList != null) { + this.invitedList.children().clear(); + + for (PlayerInfo playerInfo : this.serverData.players) { + this.invitedList.children().add(new RealmsPlayerScreen.Entry(playerInfo)); + } + } + } + + @Override + public void onClose() { + this.backButtonClicked(); + } + + private void backButtonClicked() { + if (this.stateChanged) { + this.minecraft.setScreen(this.lastScreen.getNewScreen()); + } else { + this.minecraft.setScreen(this.lastScreen); + } + } + + @Environment(EnvType.CLIENT) + class Entry extends ContainerObjectSelectionList.Entry { + private static final Component NORMAL_USER_TEXT = Component.translatable("mco.configure.world.invites.normal.tooltip"); + private static final Component OP_TEXT = Component.translatable("mco.configure.world.invites.ops.tooltip"); + private static final Component REMOVE_TEXT = Component.translatable("mco.configure.world.invites.remove.tooltip"); + private static final ResourceLocation MAKE_OP_SPRITE = ResourceLocation.withDefaultNamespace("player_list/make_operator"); + private static final ResourceLocation REMOVE_OP_SPRITE = ResourceLocation.withDefaultNamespace("player_list/remove_operator"); + private static final ResourceLocation REMOVE_PLAYER_SPRITE = ResourceLocation.withDefaultNamespace("player_list/remove_player"); + private static final int ICON_WIDTH = 8; + private static final int ICON_HEIGHT = 7; + private final PlayerInfo playerInfo; + private final Button removeButton; + private final Button makeOpButton; + private final Button removeOpButton; + + public Entry(final PlayerInfo playerInfo) { + this.playerInfo = playerInfo; + int i = RealmsPlayerScreen.this.serverData.players.indexOf(this.playerInfo); + this.makeOpButton = SpriteIconButton.builder(NORMAL_USER_TEXT, button -> this.op(i), false) + .sprite(MAKE_OP_SPRITE, 8, 7) + .width(16 + RealmsPlayerScreen.this.font.width(NORMAL_USER_TEXT)) + .narration( + supplier -> CommonComponents.joinForNarration( + Component.translatable("mco.invited.player.narration", playerInfo.getName()), + (Component)supplier.get(), + Component.translatable("narration.cycle_button.usage.focused", OP_TEXT) + ) + ) + .build(); + this.removeOpButton = SpriteIconButton.builder(OP_TEXT, button -> this.deop(i), false) + .sprite(REMOVE_OP_SPRITE, 8, 7) + .width(16 + RealmsPlayerScreen.this.font.width(OP_TEXT)) + .narration( + supplier -> CommonComponents.joinForNarration( + Component.translatable("mco.invited.player.narration", playerInfo.getName()), + (Component)supplier.get(), + Component.translatable("narration.cycle_button.usage.focused", NORMAL_USER_TEXT) + ) + ) + .build(); + this.removeButton = SpriteIconButton.builder(REMOVE_TEXT, button -> this.uninvite(i), false) + .sprite(REMOVE_PLAYER_SPRITE, 8, 7) + .width(16 + RealmsPlayerScreen.this.font.width(REMOVE_TEXT)) + .narration( + supplier -> CommonComponents.joinForNarration(Component.translatable("mco.invited.player.narration", playerInfo.getName()), (Component)supplier.get()) + ) + .build(); + this.updateOpButtons(); + } + + private void op(int index) { + RealmsClient realmsClient = RealmsClient.create(); + UUID uUID = ((PlayerInfo)RealmsPlayerScreen.this.serverData.players.get(index)).getUuid(); + + try { + this.updateOps(realmsClient.op(RealmsPlayerScreen.this.serverData.id, uUID)); + } catch (RealmsServiceException var5) { + RealmsPlayerScreen.LOGGER.error("Couldn't op the user", (Throwable)var5); + } + + this.updateOpButtons(); + } + + private void deop(int index) { + RealmsClient realmsClient = RealmsClient.create(); + UUID uUID = ((PlayerInfo)RealmsPlayerScreen.this.serverData.players.get(index)).getUuid(); + + try { + this.updateOps(realmsClient.deop(RealmsPlayerScreen.this.serverData.id, uUID)); + } catch (RealmsServiceException var5) { + RealmsPlayerScreen.LOGGER.error("Couldn't deop the user", (Throwable)var5); + } + + this.updateOpButtons(); + } + + private void uninvite(int index) { + if (index >= 0 && index < RealmsPlayerScreen.this.serverData.players.size()) { + PlayerInfo playerInfo = (PlayerInfo)RealmsPlayerScreen.this.serverData.players.get(index); + RealmsConfirmScreen realmsConfirmScreen = new RealmsConfirmScreen(bl -> { + if (bl) { + RealmsClient realmsClient = RealmsClient.create(); + + try { + realmsClient.uninvite(RealmsPlayerScreen.this.serverData.id, playerInfo.getUuid()); + } catch (RealmsServiceException var6) { + RealmsPlayerScreen.LOGGER.error("Couldn't uninvite user", (Throwable)var6); + } + + RealmsPlayerScreen.this.serverData.players.remove(index); + RealmsPlayerScreen.this.repopulateInvitedList(); + } + + RealmsPlayerScreen.this.stateChanged = true; + RealmsPlayerScreen.this.minecraft.setScreen(RealmsPlayerScreen.this); + }, RealmsPlayerScreen.QUESTION_TITLE, Component.translatable("mco.configure.world.uninvite.player", playerInfo.getName())); + RealmsPlayerScreen.this.minecraft.setScreen(realmsConfirmScreen); + } + } + + private void updateOps(Ops ops) { + for (PlayerInfo playerInfo : RealmsPlayerScreen.this.serverData.players) { + playerInfo.setOperator(ops.ops.contains(playerInfo.getName())); + } + } + + private void updateOpButtons() { + this.makeOpButton.visible = !this.playerInfo.isOperator(); + this.removeOpButton.visible = !this.makeOpButton.visible; + } + + private Button activeOpButton() { + return this.makeOpButton.visible ? this.makeOpButton : this.removeOpButton; + } + + @Override + public List children() { + return ImmutableList.of(this.activeOpButton(), this.removeButton); + } + + @Override + public List narratables() { + return ImmutableList.of(this.activeOpButton(), this.removeButton); + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + int i; + if (!this.playerInfo.getAccepted()) { + i = -6250336; + } else if (this.playerInfo.getOnline()) { + i = 8388479; + } else { + i = -1; + } + + int j = top + height / 2 - 16; + RealmsUtil.renderPlayerFace(guiGraphics, left, j, 32, this.playerInfo.getUuid()); + int k = top + height / 2 - 9 / 2; + guiGraphics.drawString(RealmsPlayerScreen.this.font, this.playerInfo.getName(), left + 8 + 32, k, i, false); + int l = top + height / 2 - 10; + int m = left + width - this.removeButton.getWidth(); + this.removeButton.setPosition(m, l); + this.removeButton.render(guiGraphics, mouseX, mouseY, partialTick); + int n = m - this.activeOpButton().getWidth() - 8; + this.makeOpButton.setPosition(n, l); + this.makeOpButton.render(guiGraphics, mouseX, mouseY, partialTick); + this.removeOpButton.setPosition(n, l); + this.removeOpButton.render(guiGraphics, mouseX, mouseY, partialTick); + } + } + + @Environment(EnvType.CLIENT) + class InvitedObjectSelectionList extends ContainerObjectSelectionList { + private static final int ITEM_HEIGHT = 36; + + public InvitedObjectSelectionList() { + super( + Minecraft.getInstance(), + RealmsPlayerScreen.this.width, + RealmsPlayerScreen.this.layout.getContentHeight(), + RealmsPlayerScreen.this.layout.getHeaderHeight(), + 36 + ); + this.setRenderHeader(true, (int)(9.0F * 1.5F)); + } + + @Override + protected void renderHeader(GuiGraphics guiGraphics, int x, int y) { + String string = RealmsPlayerScreen.this.serverData.players != null ? Integer.toString(RealmsPlayerScreen.this.serverData.players.size()) : "0"; + Component component = Component.translatable("mco.configure.world.invited.number", string).withStyle(ChatFormatting.UNDERLINE); + guiGraphics.drawString(RealmsPlayerScreen.this.font, component, x + this.getRowWidth() / 2 - RealmsPlayerScreen.this.font.width(component) / 2, y, -1, false); + } + + @Override + public int getMaxPosition() { + return this.getItemCount() * this.itemHeight + this.headerHeight; + } + + @Override + public int getRowWidth() { + return 300; + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsPopups.java b/com/mojang/realmsclient/gui/screens/RealmsPopups.java new file mode 100644 index 00000000..849e974f --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsPopups.java @@ -0,0 +1,36 @@ +package com.mojang.realmsclient.gui.screens; + +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.components.PopupScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; + +@Environment(EnvType.CLIENT) +public class RealmsPopups { + private static final int COLOR_INFO = 8226750; + private static final Component INFO = Component.translatable("mco.info").withColor(8226750); + private static final Component WARNING = Component.translatable("mco.warning").withColor(-65536); + + public static PopupScreen infoPopupScreen(Screen backgroundScreen, Component message, Consumer onContinue) { + return new PopupScreen.Builder(backgroundScreen, INFO) + .setMessage(message) + .addButton(CommonComponents.GUI_CONTINUE, onContinue) + .addButton(CommonComponents.GUI_CANCEL, PopupScreen::onClose) + .build(); + } + + public static PopupScreen warningPopupScreen(Screen backgroundScreen, Component message, Consumer onContinue) { + return new PopupScreen.Builder(backgroundScreen, WARNING) + .setMessage(message) + .addButton(CommonComponents.GUI_CONTINUE, onContinue) + .addButton(CommonComponents.GUI_CANCEL, PopupScreen::onClose) + .build(); + } + + public static PopupScreen warningAcknowledgePopupScreen(Screen backgroundScreen, Component message, Consumer onContinue) { + return new PopupScreen.Builder(backgroundScreen, WARNING).setMessage(message).addButton(CommonComponents.GUI_OK, onContinue).build(); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsResetNormalWorldScreen.java b/com/mojang/realmsclient/gui/screens/RealmsResetNormalWorldScreen.java new file mode 100644 index 00000000..4386dc94 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsResetNormalWorldScreen.java @@ -0,0 +1,113 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.realmsclient.util.LevelType; +import com.mojang.realmsclient.util.WorldGenerationInfo; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.CycleButton; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.client.gui.layouts.CommonLayouts; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.screens.worldselection.ExperimentsScreen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.server.packs.repository.PackSource; +import net.minecraft.server.packs.repository.ServerPacksSource; + +@Environment(EnvType.CLIENT) +public class RealmsResetNormalWorldScreen extends RealmsScreen { + private static final Component SEED_LABEL = Component.translatable("mco.reset.world.seed"); + public static final Component TITLE = Component.translatable("mco.reset.world.generate"); + private static final int BUTTON_SPACING = 10; + private static final int CONTENT_WIDTH = 210; + private final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + private final Consumer callback; + private EditBox seedEdit; + private LevelType levelType = LevelType.DEFAULT; + private boolean generateStructures = true; + private final Set experiments = new HashSet(); + private final Component buttonTitle; + + public RealmsResetNormalWorldScreen(Consumer callback, Component buttonTitle) { + super(TITLE); + this.callback = callback; + this.buttonTitle = buttonTitle; + } + + @Override + public void init() { + this.seedEdit = new EditBox(this.font, 210, 20, Component.translatable("mco.reset.world.seed")); + this.seedEdit.setMaxLength(32); + this.layout.addTitleHeader(this.title, this.font); + LinearLayout linearLayout = this.layout.addToContents(LinearLayout.vertical()).spacing(10); + linearLayout.addChild(CommonLayouts.labeledElement(this.font, this.seedEdit, SEED_LABEL)); + linearLayout.addChild( + CycleButton.builder(LevelType::getName) + .withValues(LevelType.values()) + .withInitialValue(this.levelType) + .create(0, 0, 210, 20, Component.translatable("selectWorld.mapType"), (cycleButton, levelType) -> this.levelType = levelType) + ); + linearLayout.addChild( + CycleButton.onOffBuilder(this.generateStructures) + .create(0, 0, 210, 20, Component.translatable("selectWorld.mapFeatures"), (cycleButton, boolean_) -> this.generateStructures = boolean_) + ); + this.createExperimentsButton(linearLayout); + LinearLayout linearLayout2 = this.layout.addToFooter(LinearLayout.horizontal().spacing(10)); + linearLayout2.addChild(Button.builder(this.buttonTitle, button -> this.callback.accept(this.createWorldGenerationInfo())).build()); + linearLayout2.addChild(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void setInitialFocus() { + this.setInitialFocus(this.seedEdit); + } + + private void createExperimentsButton(LinearLayout layout) { + PackRepository packRepository = ServerPacksSource.createVanillaTrustedRepository(); + packRepository.reload(); + layout.addChild( + Button.builder( + Component.translatable("selectWorld.experiments"), button -> this.minecraft.setScreen(new ExperimentsScreen(this, packRepository, packRepositoryxx -> { + this.experiments.clear(); + + for (Pack pack : packRepositoryxx.getSelectedPacks()) { + if (pack.getPackSource() == PackSource.FEATURE) { + this.experiments.add(pack.getId()); + } + } + + this.minecraft.setScreen(this); + })) + ) + .width(210) + .build() + ); + } + + private WorldGenerationInfo createWorldGenerationInfo() { + return new WorldGenerationInfo(this.seedEdit.getValue(), this.levelType, this.generateStructures, this.experiments); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + } + + @Override + public void onClose() { + this.callback.accept(null); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsResetWorldScreen.java b/com/mojang/realmsclient/gui/screens/RealmsResetWorldScreen.java new file mode 100644 index 00000000..ec0b1a16 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsResetWorldScreen.java @@ -0,0 +1,295 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.WorldTemplate; +import com.mojang.realmsclient.dto.WorldTemplatePaginatedList; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.util.WorldGenerationInfo; +import com.mojang.realmsclient.util.task.LongRunningTask; +import com.mojang.realmsclient.util.task.RealmCreationTask; +import com.mojang.realmsclient.util.task.ResettingGeneratedWorldTask; +import com.mojang.realmsclient.util.task.ResettingTemplateWorldTask; +import com.mojang.realmsclient.util.task.SwitchSlotTask; +import java.util.ArrayList; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.StringWidget; +import net.minecraft.client.gui.layouts.GridLayout; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.LayoutSettings; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.layouts.SpacerElement; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsResetWorldScreen extends RealmsScreen { + static final Logger LOGGER = LogUtils.getLogger(); + private static final Component CREATE_REALM_TITLE = Component.translatable("mco.selectServer.create"); + private static final Component CREATE_REALM_SUBTITLE = Component.translatable("mco.selectServer.create.subtitle"); + private static final Component CREATE_WORLD_TITLE = Component.translatable("mco.configure.world.switch.slot"); + private static final Component CREATE_WORLD_SUBTITLE = Component.translatable("mco.configure.world.switch.slot.subtitle"); + private static final Component RESET_WORLD_TITLE = Component.translatable("mco.reset.world.title"); + private static final Component RESET_WORLD_SUBTITLE = Component.translatable("mco.reset.world.warning"); + public static final Component CREATE_WORLD_RESET_TASK_TITLE = Component.translatable("mco.create.world.reset.title"); + private static final Component RESET_WORLD_RESET_TASK_TITLE = Component.translatable("mco.reset.world.resetting.screen.title"); + private static final Component WORLD_TEMPLATES_TITLE = Component.translatable("mco.reset.world.template"); + private static final Component ADVENTURES_TITLE = Component.translatable("mco.reset.world.adventure"); + private static final Component EXPERIENCES_TITLE = Component.translatable("mco.reset.world.experience"); + private static final Component INSPIRATION_TITLE = Component.translatable("mco.reset.world.inspiration"); + private final Screen lastScreen; + private final RealmsServer serverData; + private final Component subtitle; + private final int subtitleColor; + private final Component resetTaskTitle; + private static final ResourceLocation UPLOAD_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/upload.png"); + private static final ResourceLocation ADVENTURE_MAP_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/adventure.png"); + private static final ResourceLocation SURVIVAL_SPAWN_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/survival_spawn.png"); + private static final ResourceLocation NEW_WORLD_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/new_world.png"); + private static final ResourceLocation EXPERIENCE_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/experience.png"); + private static final ResourceLocation INSPIRATION_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/realms/inspiration.png"); + WorldTemplatePaginatedList templates; + WorldTemplatePaginatedList adventuremaps; + WorldTemplatePaginatedList experiences; + WorldTemplatePaginatedList inspirations; + public final int slot; + @Nullable + private final RealmCreationTask realmCreationTask; + private final Runnable resetWorldRunnable; + private final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + + private RealmsResetWorldScreen( + Screen lastScreen, + RealmsServer serverData, + int slot, + Component title, + Component subtitle, + int subtitleColor, + Component resetTaskTitle, + Runnable resetWorldRunnable + ) { + this(lastScreen, serverData, slot, title, subtitle, subtitleColor, resetTaskTitle, null, resetWorldRunnable); + } + + public RealmsResetWorldScreen( + Screen lastScreen, + RealmsServer serverData, + int slot, + Component title, + Component subtitle, + int subtitleColor, + Component resetTaskTitle, + @Nullable RealmCreationTask realmCreationTask, + Runnable resetWorldRunnable + ) { + super(title); + this.lastScreen = lastScreen; + this.serverData = serverData; + this.slot = slot; + this.subtitle = subtitle; + this.subtitleColor = subtitleColor; + this.resetTaskTitle = resetTaskTitle; + this.realmCreationTask = realmCreationTask; + this.resetWorldRunnable = resetWorldRunnable; + } + + public static RealmsResetWorldScreen forNewRealm(Screen lastScreen, RealmsServer serverData, RealmCreationTask realmCreationTask, Runnable resetWorldRunnable) { + return new RealmsResetWorldScreen( + lastScreen, + serverData, + serverData.activeSlot, + CREATE_REALM_TITLE, + CREATE_REALM_SUBTITLE, + -6250336, + CREATE_WORLD_RESET_TASK_TITLE, + realmCreationTask, + resetWorldRunnable + ); + } + + public static RealmsResetWorldScreen forEmptySlot(Screen lastScreen, int slot, RealmsServer serverData, Runnable resetWorldRunnable) { + return new RealmsResetWorldScreen( + lastScreen, serverData, slot, CREATE_WORLD_TITLE, CREATE_WORLD_SUBTITLE, -6250336, CREATE_WORLD_RESET_TASK_TITLE, resetWorldRunnable + ); + } + + public static RealmsResetWorldScreen forResetSlot(Screen lastScreen, RealmsServer serverData, Runnable resetWorldRunnable) { + return new RealmsResetWorldScreen( + lastScreen, serverData, serverData.activeSlot, RESET_WORLD_TITLE, RESET_WORLD_SUBTITLE, -65536, RESET_WORLD_RESET_TASK_TITLE, resetWorldRunnable + ); + } + + @Override + public void init() { + LinearLayout linearLayout = this.layout.addToHeader(LinearLayout.vertical()); + linearLayout.defaultCellSetting().padding(9 / 3); + linearLayout.addChild(new StringWidget(this.title, this.font), LayoutSettings::alignHorizontallyCenter); + linearLayout.addChild(new StringWidget(this.subtitle, this.font).setColor(this.subtitleColor), LayoutSettings::alignHorizontallyCenter); + (new Thread("Realms-reset-world-fetcher") { + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + try { + WorldTemplatePaginatedList worldTemplatePaginatedList = realmsClient.fetchWorldTemplates(1, 10, RealmsServer.WorldType.NORMAL); + WorldTemplatePaginatedList worldTemplatePaginatedList2 = realmsClient.fetchWorldTemplates(1, 10, RealmsServer.WorldType.ADVENTUREMAP); + WorldTemplatePaginatedList worldTemplatePaginatedList3 = realmsClient.fetchWorldTemplates(1, 10, RealmsServer.WorldType.EXPERIENCE); + WorldTemplatePaginatedList worldTemplatePaginatedList4 = realmsClient.fetchWorldTemplates(1, 10, RealmsServer.WorldType.INSPIRATION); + RealmsResetWorldScreen.this.minecraft.execute(() -> { + RealmsResetWorldScreen.this.templates = worldTemplatePaginatedList; + RealmsResetWorldScreen.this.adventuremaps = worldTemplatePaginatedList2; + RealmsResetWorldScreen.this.experiences = worldTemplatePaginatedList3; + RealmsResetWorldScreen.this.inspirations = worldTemplatePaginatedList4; + }); + } catch (RealmsServiceException var6) { + RealmsResetWorldScreen.LOGGER.error("Couldn't fetch templates in reset world", (Throwable)var6); + } + } + }).start(); + GridLayout gridLayout = this.layout.addToContents(new GridLayout()); + GridLayout.RowHelper rowHelper = gridLayout.createRowHelper(3); + rowHelper.defaultCellSetting().paddingHorizontal(16); + rowHelper.addChild( + new RealmsResetWorldScreen.FrameButton( + this.minecraft.font, + RealmsResetNormalWorldScreen.TITLE, + NEW_WORLD_LOCATION, + button -> this.minecraft.setScreen(new RealmsResetNormalWorldScreen(this::generationSelectionCallback, this.title)) + ) + ); + rowHelper.addChild( + new RealmsResetWorldScreen.FrameButton( + this.minecraft.font, + RealmsSelectFileToUploadScreen.TITLE, + UPLOAD_LOCATION, + button -> this.minecraft.setScreen(new RealmsSelectFileToUploadScreen(this.realmCreationTask, this.serverData.id, this.slot, this)) + ) + ); + rowHelper.addChild( + new RealmsResetWorldScreen.FrameButton( + this.minecraft.font, + WORLD_TEMPLATES_TITLE, + SURVIVAL_SPAWN_LOCATION, + button -> this.minecraft + .setScreen(new RealmsSelectWorldTemplateScreen(WORLD_TEMPLATES_TITLE, this::templateSelectionCallback, RealmsServer.WorldType.NORMAL, this.templates)) + ) + ); + rowHelper.addChild(SpacerElement.height(16), 3); + rowHelper.addChild( + new RealmsResetWorldScreen.FrameButton( + this.minecraft.font, + ADVENTURES_TITLE, + ADVENTURE_MAP_LOCATION, + button -> this.minecraft + .setScreen(new RealmsSelectWorldTemplateScreen(ADVENTURES_TITLE, this::templateSelectionCallback, RealmsServer.WorldType.ADVENTUREMAP, this.adventuremaps)) + ) + ); + rowHelper.addChild( + new RealmsResetWorldScreen.FrameButton( + this.minecraft.font, + EXPERIENCES_TITLE, + EXPERIENCE_LOCATION, + button -> this.minecraft + .setScreen(new RealmsSelectWorldTemplateScreen(EXPERIENCES_TITLE, this::templateSelectionCallback, RealmsServer.WorldType.EXPERIENCE, this.experiences)) + ) + ); + rowHelper.addChild( + new RealmsResetWorldScreen.FrameButton( + this.minecraft.font, + INSPIRATION_TITLE, + INSPIRATION_LOCATION, + button -> this.minecraft + .setScreen(new RealmsSelectWorldTemplateScreen(INSPIRATION_TITLE, this::templateSelectionCallback, RealmsServer.WorldType.INSPIRATION, this.inspirations)) + ) + ); + this.layout.addToFooter(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).build()); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + } + + @Override + public Component getNarrationMessage() { + return CommonComponents.joinForNarration(this.getTitle(), this.subtitle); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + private void templateSelectionCallback(@Nullable WorldTemplate template) { + this.minecraft.setScreen(this); + if (template != null) { + this.runResetTasks(new ResettingTemplateWorldTask(template, this.serverData.id, this.resetTaskTitle, this.resetWorldRunnable)); + } + } + + private void generationSelectionCallback(@Nullable WorldGenerationInfo generationInfo) { + this.minecraft.setScreen(this); + if (generationInfo != null) { + this.runResetTasks(new ResettingGeneratedWorldTask(generationInfo, this.serverData.id, this.resetTaskTitle, this.resetWorldRunnable)); + } + } + + private void runResetTasks(LongRunningTask task) { + List list = new ArrayList(); + if (this.realmCreationTask != null) { + list.add(this.realmCreationTask); + } + + if (this.slot != this.serverData.activeSlot) { + list.add(new SwitchSlotTask(this.serverData.id, this.slot, () -> {})); + } + + list.add(task); + this.minecraft.setScreen(new RealmsLongRunningMcoTaskScreen(this.lastScreen, (LongRunningTask[])list.toArray(new LongRunningTask[0]))); + } + + @Environment(EnvType.CLIENT) + class FrameButton extends Button { + private static final ResourceLocation SLOT_FRAME_SPRITE = ResourceLocation.withDefaultNamespace("widget/slot_frame"); + private static final int FRAME_SIZE = 60; + private static final int FRAME_WIDTH = 2; + private static final int IMAGE_SIZE = 56; + private final ResourceLocation image; + + FrameButton(final Font font, final Component message, final ResourceLocation image, final Button.OnPress onPress) { + super(0, 0, 60, 60 + 9, message, onPress, DEFAULT_NARRATION); + this.image = image; + } + + @Override + public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + boolean bl = this.isHoveredOrFocused(); + if (bl) { + guiGraphics.setColor(0.56F, 0.56F, 0.56F, 1.0F); + } + + int i = this.getX(); + int j = this.getY(); + guiGraphics.blit(this.image, i + 2, j + 2, 0.0F, 0.0F, 56, 56, 56, 56); + guiGraphics.blitSprite(SLOT_FRAME_SPRITE, i, j, 60, 60); + guiGraphics.setColor(1.0F, 1.0F, 1.0F, 1.0F); + int k = bl ? -6250336 : -1; + guiGraphics.drawCenteredString(RealmsResetWorldScreen.this.font, this.getMessage(), i + 28, j - 14, k); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsSelectFileToUploadScreen.java b/com/mojang/realmsclient/gui/screens/RealmsSelectFileToUploadScreen.java new file mode 100644 index 00000000..aa159cb0 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsSelectFileToUploadScreen.java @@ -0,0 +1,203 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.Lists; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.util.task.RealmCreationTask; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.ObjectSelectionList; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsLabel; +import net.minecraft.realms.RealmsObjectSelectionList; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.world.level.storage.LevelStorageSource; +import net.minecraft.world.level.storage.LevelSummary; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsSelectFileToUploadScreen extends RealmsScreen { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final Component TITLE = Component.translatable("mco.upload.select.world.title"); + private static final Component UNABLE_TO_LOAD_WORLD = Component.translatable("selectWorld.unable_to_load"); + static final Component WORLD_TEXT = Component.translatable("selectWorld.world"); + private static final Component HARDCORE_TEXT = Component.translatable("mco.upload.hardcore").withColor(-65536); + private static final Component COMMANDS_TEXT = Component.translatable("selectWorld.commands"); + private static final DateFormat DATE_FORMAT = new SimpleDateFormat(); + @Nullable + private final RealmCreationTask realmCreationTask; + private final RealmsResetWorldScreen lastScreen; + private final long realmId; + private final int slotId; + Button uploadButton; + List levelList = Lists.newArrayList(); + int selectedWorld = -1; + RealmsSelectFileToUploadScreen.WorldSelectionList worldSelectionList; + + public RealmsSelectFileToUploadScreen(@Nullable RealmCreationTask realmCreationTask, long realmId, int slotId, RealmsResetWorldScreen lastScreen) { + super(TITLE); + this.realmCreationTask = realmCreationTask; + this.lastScreen = lastScreen; + this.realmId = realmId; + this.slotId = slotId; + } + + private void loadLevelList() { + LevelStorageSource.LevelCandidates levelCandidates = this.minecraft.getLevelSource().findLevelCandidates(); + this.levelList = (List)((List)this.minecraft.getLevelSource().loadLevelSummaries(levelCandidates).join()) + .stream() + .filter(LevelSummary::canUpload) + .collect(Collectors.toList()); + + for (LevelSummary levelSummary : this.levelList) { + this.worldSelectionList.addEntry(levelSummary); + } + } + + @Override + public void init() { + this.worldSelectionList = this.addRenderableWidget(new RealmsSelectFileToUploadScreen.WorldSelectionList()); + + try { + this.loadLevelList(); + } catch (Exception var2) { + LOGGER.error("Couldn't load level list", (Throwable)var2); + this.minecraft.setScreen(new RealmsGenericErrorScreen(UNABLE_TO_LOAD_WORLD, Component.nullToEmpty(var2.getMessage()), this.lastScreen)); + return; + } + + this.uploadButton = this.addRenderableWidget( + Button.builder(Component.translatable("mco.upload.button.name"), button -> this.upload()).bounds(this.width / 2 - 154, this.height - 32, 153, 20).build() + ); + this.uploadButton.active = this.selectedWorld >= 0 && this.selectedWorld < this.levelList.size(); + this.addRenderableWidget( + Button.builder(CommonComponents.GUI_BACK, button -> this.minecraft.setScreen(this.lastScreen)).bounds(this.width / 2 + 6, this.height - 32, 153, 20).build() + ); + this.addLabel(new RealmsLabel(Component.translatable("mco.upload.select.world.subtitle"), this.width / 2, row(-1), -6250336)); + if (this.levelList.isEmpty()) { + this.addLabel(new RealmsLabel(Component.translatable("mco.upload.select.world.none"), this.width / 2, this.height / 2 - 20, -1)); + } + } + + @Override + public Component getNarrationMessage() { + return CommonComponents.joinForNarration(this.getTitle(), this.createLabelNarration()); + } + + private void upload() { + if (this.selectedWorld != -1 && !((LevelSummary)this.levelList.get(this.selectedWorld)).isHardcore()) { + LevelSummary levelSummary = (LevelSummary)this.levelList.get(this.selectedWorld); + this.minecraft.setScreen(new RealmsUploadScreen(this.realmCreationTask, this.realmId, this.slotId, this.lastScreen, levelSummary)); + } + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 13, -1); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (keyCode == 256) { + this.minecraft.setScreen(this.lastScreen); + return true; + } else { + return super.keyPressed(keyCode, scanCode, modifiers); + } + } + + static Component gameModeName(LevelSummary levelSummary) { + return levelSummary.getGameMode().getLongDisplayName(); + } + + static String formatLastPlayed(LevelSummary levelSummary) { + return DATE_FORMAT.format(new Date(levelSummary.getLastPlayed())); + } + + @Environment(EnvType.CLIENT) + class Entry extends ObjectSelectionList.Entry { + private final LevelSummary levelSummary; + private final String name; + private final Component id; + private final Component info; + + public Entry(final LevelSummary levelSummary) { + this.levelSummary = levelSummary; + this.name = levelSummary.getLevelName(); + this.id = Component.translatable("mco.upload.entry.id", levelSummary.getLevelId(), RealmsSelectFileToUploadScreen.formatLastPlayed(levelSummary)); + this.info = levelSummary.getInfo(); + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + this.renderItem(guiGraphics, index, left, top); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + RealmsSelectFileToUploadScreen.this.worldSelectionList.selectItem(RealmsSelectFileToUploadScreen.this.levelList.indexOf(this.levelSummary)); + return super.mouseClicked(mouseX, mouseY, button); + } + + protected void renderItem(GuiGraphics guiGraphics, int index, int x, int y) { + String string; + if (this.name.isEmpty()) { + string = RealmsSelectFileToUploadScreen.WORLD_TEXT + " " + (index + 1); + } else { + string = this.name; + } + + guiGraphics.drawString(RealmsSelectFileToUploadScreen.this.font, string, x + 2, y + 1, 16777215, false); + guiGraphics.drawString(RealmsSelectFileToUploadScreen.this.font, this.id, x + 2, y + 12, -8355712, false); + guiGraphics.drawString(RealmsSelectFileToUploadScreen.this.font, this.info, x + 2, y + 12 + 10, -8355712, false); + } + + @Override + public Component getNarration() { + Component component = CommonComponents.joinLines( + Component.literal(this.levelSummary.getLevelName()), + Component.literal(RealmsSelectFileToUploadScreen.formatLastPlayed(this.levelSummary)), + RealmsSelectFileToUploadScreen.gameModeName(this.levelSummary) + ); + return Component.translatable("narrator.select", component); + } + } + + @Environment(EnvType.CLIENT) + class WorldSelectionList extends RealmsObjectSelectionList { + public WorldSelectionList() { + super( + RealmsSelectFileToUploadScreen.this.width, + RealmsSelectFileToUploadScreen.this.height - 40 - RealmsSelectFileToUploadScreen.row(0), + RealmsSelectFileToUploadScreen.row(0), + 36 + ); + } + + public void addEntry(LevelSummary levelSummary) { + this.addEntry(RealmsSelectFileToUploadScreen.this.new Entry(levelSummary)); + } + + @Override + public int getMaxPosition() { + return RealmsSelectFileToUploadScreen.this.levelList.size() * 36; + } + + public void setSelected(@Nullable RealmsSelectFileToUploadScreen.Entry selected) { + super.setSelected(selected); + RealmsSelectFileToUploadScreen.this.selectedWorld = this.children().indexOf(selected); + RealmsSelectFileToUploadScreen.this.uploadButton.active = RealmsSelectFileToUploadScreen.this.selectedWorld >= 0 + && RealmsSelectFileToUploadScreen.this.selectedWorld < this.getItemCount() + && !((LevelSummary)RealmsSelectFileToUploadScreen.this.levelList.get(RealmsSelectFileToUploadScreen.this.selectedWorld)).isHardcore(); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsSelectWorldTemplateScreen.java b/com/mojang/realmsclient/gui/screens/RealmsSelectWorldTemplateScreen.java new file mode 100644 index 00000000..59eb3244 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsSelectWorldTemplateScreen.java @@ -0,0 +1,394 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.Lists; +import com.mojang.datafixers.util.Either; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.WorldTemplate; +import com.mojang.realmsclient.dto.WorldTemplatePaginatedList; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.util.RealmsTextureManager; +import com.mojang.realmsclient.util.TextRenderingUtils; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.ImageButton; +import net.minecraft.client.gui.components.ObjectSelectionList; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.gui.components.WidgetSprites; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.layouts.LinearLayout; +import net.minecraft.client.gui.screens.ConfirmLinkScreen; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsObjectSelectionList; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.CommonLinks; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsSelectWorldTemplateScreen extends RealmsScreen { + static final Logger LOGGER = LogUtils.getLogger(); + static final ResourceLocation SLOT_FRAME_SPRITE = ResourceLocation.withDefaultNamespace("widget/slot_frame"); + private static final Component SELECT_BUTTON_NAME = Component.translatable("mco.template.button.select"); + private static final Component TRAILER_BUTTON_NAME = Component.translatable("mco.template.button.trailer"); + private static final Component PUBLISHER_BUTTON_NAME = Component.translatable("mco.template.button.publisher"); + private static final int BUTTON_WIDTH = 100; + private static final int BUTTON_SPACING = 10; + private final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + final Consumer callback; + RealmsSelectWorldTemplateScreen.WorldTemplateList worldTemplateList; + private final RealmsServer.WorldType worldType; + private Button selectButton; + private Button trailerButton; + private Button publisherButton; + @Nullable + WorldTemplate selectedTemplate = null; + @Nullable + String currentLink; + @Nullable + private Component[] warning; + @Nullable + List noTemplatesMessage; + + public RealmsSelectWorldTemplateScreen(Component title, Consumer callback, RealmsServer.WorldType worldType) { + this(title, callback, worldType, null); + } + + public RealmsSelectWorldTemplateScreen( + Component title, Consumer callback, RealmsServer.WorldType worldType, @Nullable WorldTemplatePaginatedList worldTemplatePaginatedList + ) { + super(title); + this.callback = callback; + this.worldType = worldType; + if (worldTemplatePaginatedList == null) { + this.worldTemplateList = new RealmsSelectWorldTemplateScreen.WorldTemplateList(); + this.fetchTemplatesAsync(new WorldTemplatePaginatedList(10)); + } else { + this.worldTemplateList = new RealmsSelectWorldTemplateScreen.WorldTemplateList(Lists.newArrayList(worldTemplatePaginatedList.templates)); + this.fetchTemplatesAsync(worldTemplatePaginatedList); + } + } + + public void setWarning(Component... warning) { + this.warning = warning; + } + + @Override + public void init() { + this.layout.addTitleHeader(this.title, this.font); + this.worldTemplateList = this.layout.addToContents(new RealmsSelectWorldTemplateScreen.WorldTemplateList(this.worldTemplateList.getTemplates())); + LinearLayout linearLayout = this.layout.addToFooter(LinearLayout.horizontal().spacing(10)); + linearLayout.defaultCellSetting().alignHorizontallyCenter(); + this.trailerButton = linearLayout.addChild(Button.builder(TRAILER_BUTTON_NAME, button -> this.onTrailer()).width(100).build()); + this.selectButton = linearLayout.addChild(Button.builder(SELECT_BUTTON_NAME, button -> this.selectTemplate()).width(100).build()); + linearLayout.addChild(Button.builder(CommonComponents.GUI_CANCEL, button -> this.onClose()).width(100).build()); + this.publisherButton = linearLayout.addChild(Button.builder(PUBLISHER_BUTTON_NAME, button -> this.onPublish()).width(100).build()); + this.updateButtonStates(); + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void repositionElements() { + this.worldTemplateList.setSize(this.width, this.height - this.layout.getFooterHeight() - this.getHeaderHeight()); + this.layout.arrangeElements(); + } + + @Override + public Component getNarrationMessage() { + List list = Lists.newArrayListWithCapacity(2); + list.add(this.title); + if (this.warning != null) { + list.addAll(Arrays.asList(this.warning)); + } + + return CommonComponents.joinLines(list); + } + + void updateButtonStates() { + this.publisherButton.visible = this.selectedTemplate != null && !this.selectedTemplate.link.isEmpty(); + this.trailerButton.visible = this.selectedTemplate != null && !this.selectedTemplate.trailer.isEmpty(); + this.selectButton.active = this.selectedTemplate != null; + } + + @Override + public void onClose() { + this.callback.accept(null); + } + + private void selectTemplate() { + if (this.selectedTemplate != null) { + this.callback.accept(this.selectedTemplate); + } + } + + private void onTrailer() { + if (this.selectedTemplate != null && !this.selectedTemplate.trailer.isBlank()) { + ConfirmLinkScreen.confirmLinkNow(this, this.selectedTemplate.trailer); + } + } + + private void onPublish() { + if (this.selectedTemplate != null && !this.selectedTemplate.link.isBlank()) { + ConfirmLinkScreen.confirmLinkNow(this, this.selectedTemplate.link); + } + } + + private void fetchTemplatesAsync(WorldTemplatePaginatedList output) { + (new Thread("realms-template-fetcher") { + public void run() { + WorldTemplatePaginatedList worldTemplatePaginatedList = output; + RealmsClient realmsClient = RealmsClient.create(); + + while (worldTemplatePaginatedList != null) { + Either either = RealmsSelectWorldTemplateScreen.this.fetchTemplates(worldTemplatePaginatedList, realmsClient); + worldTemplatePaginatedList = (WorldTemplatePaginatedList)RealmsSelectWorldTemplateScreen.this.minecraft + .submit( + () -> { + if (either.right().isPresent()) { + RealmsSelectWorldTemplateScreen.LOGGER.error("Couldn't fetch templates", (Throwable)either.right().get()); + if (RealmsSelectWorldTemplateScreen.this.worldTemplateList.isEmpty()) { + RealmsSelectWorldTemplateScreen.this.noTemplatesMessage = TextRenderingUtils.decompose(I18n.get("mco.template.select.failure")); + } + + return null; + } else { + WorldTemplatePaginatedList worldTemplatePaginatedListx = (WorldTemplatePaginatedList)either.left().get(); + + for (WorldTemplate worldTemplate : worldTemplatePaginatedListx.templates) { + RealmsSelectWorldTemplateScreen.this.worldTemplateList.addEntry(worldTemplate); + } + + if (worldTemplatePaginatedListx.templates.isEmpty()) { + if (RealmsSelectWorldTemplateScreen.this.worldTemplateList.isEmpty()) { + String string = I18n.get("mco.template.select.none", "%link"); + TextRenderingUtils.LineSegment lineSegment = TextRenderingUtils.LineSegment.link( + I18n.get("mco.template.select.none.linkTitle"), CommonLinks.REALMS_CONTENT_CREATION.toString() + ); + RealmsSelectWorldTemplateScreen.this.noTemplatesMessage = TextRenderingUtils.decompose(string, lineSegment); + } + + return null; + } else { + return worldTemplatePaginatedListx; + } + } + } + ) + .join(); + } + } + }) + .start(); + } + + Either fetchTemplates(WorldTemplatePaginatedList templates, RealmsClient realmsClient) { + try { + return Either.left(realmsClient.fetchWorldTemplates(templates.page + 1, templates.size, this.worldType)); + } catch (RealmsServiceException var4) { + return Either.right(var4); + } + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.currentLink = null; + if (this.noTemplatesMessage != null) { + this.renderMultilineMessage(guiGraphics, mouseX, mouseY, this.noTemplatesMessage); + } + + if (this.warning != null) { + for (int i = 0; i < this.warning.length; i++) { + Component component = this.warning[i]; + guiGraphics.drawCenteredString(this.font, component, this.width / 2, row(-1 + i), -6250336); + } + } + } + + private void renderMultilineMessage(GuiGraphics guiGraphics, int x, int y, List lines) { + for (int i = 0; i < lines.size(); i++) { + TextRenderingUtils.Line line = (TextRenderingUtils.Line)lines.get(i); + int j = row(4 + i); + int k = line.segments.stream().mapToInt(lineSegmentx -> this.font.width(lineSegmentx.renderedText())).sum(); + int l = this.width / 2 - k / 2; + + for (TextRenderingUtils.LineSegment lineSegment : line.segments) { + int m = lineSegment.isLink() ? 3368635 : -1; + int n = guiGraphics.drawString(this.font, lineSegment.renderedText(), l, j, m); + if (lineSegment.isLink() && x > l && x < n && y > j - 3 && y < j + 8) { + this.setTooltipForNextRenderPass(Component.literal(lineSegment.getLinkUrl())); + this.currentLink = lineSegment.getLinkUrl(); + } + + l = n; + } + } + } + + int getHeaderHeight() { + return this.warning != null ? row(1) : 33; + } + + @Environment(EnvType.CLIENT) + class Entry extends ObjectSelectionList.Entry { + private static final WidgetSprites WEBSITE_LINK_SPRITES = new WidgetSprites( + ResourceLocation.withDefaultNamespace("icon/link"), ResourceLocation.withDefaultNamespace("icon/link_highlighted") + ); + private static final WidgetSprites TRAILER_LINK_SPRITES = new WidgetSprites( + ResourceLocation.withDefaultNamespace("icon/video_link"), ResourceLocation.withDefaultNamespace("icon/video_link_highlighted") + ); + private static final Component PUBLISHER_LINK_TOOLTIP = Component.translatable("mco.template.info.tooltip"); + private static final Component TRAILER_LINK_TOOLTIP = Component.translatable("mco.template.trailer.tooltip"); + public final WorldTemplate template; + private long lastClickTime; + @Nullable + private ImageButton websiteButton; + @Nullable + private ImageButton trailerButton; + + public Entry(final WorldTemplate template) { + this.template = template; + if (!template.link.isBlank()) { + this.websiteButton = new ImageButton( + 15, 15, WEBSITE_LINK_SPRITES, ConfirmLinkScreen.confirmLink(RealmsSelectWorldTemplateScreen.this, template.link), PUBLISHER_LINK_TOOLTIP + ); + this.websiteButton.setTooltip(Tooltip.create(PUBLISHER_LINK_TOOLTIP)); + } + + if (!template.trailer.isBlank()) { + this.trailerButton = new ImageButton( + 15, 15, TRAILER_LINK_SPRITES, ConfirmLinkScreen.confirmLink(RealmsSelectWorldTemplateScreen.this, template.trailer), TRAILER_LINK_TOOLTIP + ); + this.trailerButton.setTooltip(Tooltip.create(TRAILER_LINK_TOOLTIP)); + } + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + RealmsSelectWorldTemplateScreen.this.selectedTemplate = this.template; + RealmsSelectWorldTemplateScreen.this.updateButtonStates(); + if (Util.getMillis() - this.lastClickTime < 250L && this.isFocused()) { + RealmsSelectWorldTemplateScreen.this.callback.accept(this.template); + } + + this.lastClickTime = Util.getMillis(); + if (this.websiteButton != null) { + this.websiteButton.mouseClicked(mouseX, mouseY, button); + } + + if (this.trailerButton != null) { + this.trailerButton.mouseClicked(mouseX, mouseY, button); + } + + return super.mouseClicked(mouseX, mouseY, button); + } + + @Override + public void render(GuiGraphics guiGraphics, int index, int top, int left, int width, int height, int mouseX, int mouseY, boolean hovering, float partialTick) { + guiGraphics.blit(RealmsTextureManager.worldTemplate(this.template.id, this.template.image), left + 1, top + 1 + 1, 0.0F, 0.0F, 38, 38, 38, 38); + guiGraphics.blitSprite(RealmsSelectWorldTemplateScreen.SLOT_FRAME_SPRITE, left, top + 1, 40, 40); + int i = 5; + int j = RealmsSelectWorldTemplateScreen.this.font.width(this.template.version); + if (this.websiteButton != null) { + this.websiteButton.setPosition(left + width - j - this.websiteButton.getWidth() - 10, top); + this.websiteButton.render(guiGraphics, mouseX, mouseY, partialTick); + } + + if (this.trailerButton != null) { + this.trailerButton.setPosition(left + width - j - this.trailerButton.getWidth() * 2 - 15, top); + this.trailerButton.render(guiGraphics, mouseX, mouseY, partialTick); + } + + int k = left + 45 + 20; + int l = top + 5; + guiGraphics.drawString(RealmsSelectWorldTemplateScreen.this.font, this.template.name, k, l, -1, false); + guiGraphics.drawString(RealmsSelectWorldTemplateScreen.this.font, this.template.version, left + width - j - 5, l, 7105644, false); + guiGraphics.drawString(RealmsSelectWorldTemplateScreen.this.font, this.template.author, k, l + 9 + 5, -6250336, false); + if (!this.template.recommendedPlayers.isBlank()) { + guiGraphics.drawString(RealmsSelectWorldTemplateScreen.this.font, this.template.recommendedPlayers, k, top + height - 9 / 2 - 5, 5000268, false); + } + } + + @Override + public Component getNarration() { + Component component = CommonComponents.joinLines( + Component.literal(this.template.name), + Component.translatable("mco.template.select.narrate.authors", this.template.author), + Component.literal(this.template.recommendedPlayers), + Component.translatable("mco.template.select.narrate.version", this.template.version) + ); + return Component.translatable("narrator.select", component); + } + } + + @Environment(EnvType.CLIENT) + class WorldTemplateList extends RealmsObjectSelectionList { + public WorldTemplateList() { + this(Collections.emptyList()); + } + + public WorldTemplateList(final Iterable templates) { + super( + RealmsSelectWorldTemplateScreen.this.width, + RealmsSelectWorldTemplateScreen.this.height - 33 - RealmsSelectWorldTemplateScreen.this.getHeaderHeight(), + RealmsSelectWorldTemplateScreen.this.getHeaderHeight(), + 46 + ); + templates.forEach(this::addEntry); + } + + public void addEntry(WorldTemplate template) { + this.addEntry(RealmsSelectWorldTemplateScreen.this.new Entry(template)); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (RealmsSelectWorldTemplateScreen.this.currentLink != null) { + ConfirmLinkScreen.confirmLinkNow(RealmsSelectWorldTemplateScreen.this, RealmsSelectWorldTemplateScreen.this.currentLink); + return true; + } else { + return super.mouseClicked(mouseX, mouseY, button); + } + } + + public void setSelected(@Nullable RealmsSelectWorldTemplateScreen.Entry selected) { + super.setSelected(selected); + RealmsSelectWorldTemplateScreen.this.selectedTemplate = selected == null ? null : selected.template; + RealmsSelectWorldTemplateScreen.this.updateButtonStates(); + } + + @Override + public int getMaxPosition() { + return this.getItemCount() * 46; + } + + @Override + public int getRowWidth() { + return 300; + } + + public boolean isEmpty() { + return this.getItemCount() == 0; + } + + public List getTemplates() { + return (List)this.children().stream().map(entry -> entry.template).collect(Collectors.toList()); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsSettingsScreen.java b/com/mojang/realmsclient/gui/screens/RealmsSettingsScreen.java new file mode 100644 index 00000000..976b9a76 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsSettingsScreen.java @@ -0,0 +1,88 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.realmsclient.dto.RealmsServer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.util.StringUtil; + +@Environment(EnvType.CLIENT) +public class RealmsSettingsScreen extends RealmsScreen { + private static final int COMPONENT_WIDTH = 212; + private static final Component NAME_LABEL = Component.translatable("mco.configure.world.name"); + private static final Component DESCRIPTION_LABEL = Component.translatable("mco.configure.world.description"); + private final RealmsConfigureWorldScreen configureWorldScreen; + private final RealmsServer serverData; + private EditBox descEdit; + private EditBox nameEdit; + + public RealmsSettingsScreen(RealmsConfigureWorldScreen configureWorldScreen, RealmsServer serverData) { + super(Component.translatable("mco.configure.world.settings.title")); + this.configureWorldScreen = configureWorldScreen; + this.serverData = serverData; + } + + @Override + public void init() { + int i = this.width / 2 - 106; + String string = this.serverData.state == RealmsServer.State.OPEN ? "mco.configure.world.buttons.close" : "mco.configure.world.buttons.open"; + Button button = Button.builder( + Component.translatable(string), + buttonx -> { + if (this.serverData.state == RealmsServer.State.OPEN) { + this.minecraft + .setScreen( + RealmsPopups.infoPopupScreen( + this, Component.translatable("mco.configure.world.close.question.line1"), popupScreen -> this.configureWorldScreen.closeTheWorld() + ) + ); + } else { + this.configureWorldScreen.openTheWorld(false); + } + } + ) + .bounds(this.width / 2 - 53, row(0), 106, 20) + .build(); + this.addRenderableWidget(button); + this.nameEdit = new EditBox(this.minecraft.font, i, row(4), 212, 20, Component.translatable("mco.configure.world.name")); + this.nameEdit.setMaxLength(32); + this.nameEdit.setValue(this.serverData.getName()); + this.addRenderableWidget(this.nameEdit); + this.descEdit = new EditBox(this.minecraft.font, i, row(8), 212, 20, Component.translatable("mco.configure.world.description")); + this.descEdit.setMaxLength(32); + this.descEdit.setValue(this.serverData.getDescription()); + this.addRenderableWidget(this.descEdit); + Button button2 = this.addRenderableWidget( + Button.builder(Component.translatable("mco.configure.world.buttons.done"), buttonx -> this.save()).bounds(i - 2, row(12), 106, 20).build() + ); + this.nameEdit.setResponder(stringx -> button2.active = !StringUtil.isBlank(stringx)); + this.addRenderableWidget(Button.builder(CommonComponents.GUI_CANCEL, buttonx -> this.onClose()).bounds(this.width / 2 + 2, row(12), 106, 20).build()); + } + + @Override + protected void setInitialFocus() { + this.setInitialFocus(this.nameEdit); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.configureWorldScreen); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 17, -1); + guiGraphics.drawString(this.font, NAME_LABEL, this.width / 2 - 106, row(3), -1, false); + guiGraphics.drawString(this.font, DESCRIPTION_LABEL, this.width / 2 - 106, row(7), -1, false); + } + + public void save() { + this.configureWorldScreen.saveSettings(this.nameEdit.getValue(), this.descEdit.getValue()); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsSlotOptionsScreen.java b/com/mojang/realmsclient/gui/screens/RealmsSlotOptionsScreen.java new file mode 100644 index 00000000..631bbf31 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsSlotOptionsScreen.java @@ -0,0 +1,329 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.ImmutableList; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsWorldOptions; +import java.util.List; +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractSliderButton; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.CycleButton; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsLabel; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.util.Mth; +import net.minecraft.world.Difficulty; +import net.minecraft.world.level.GameType; + +@Environment(EnvType.CLIENT) +public class RealmsSlotOptionsScreen extends RealmsScreen { + private static final int DEFAULT_DIFFICULTY = 2; + public static final List DIFFICULTIES = ImmutableList.of(Difficulty.PEACEFUL, Difficulty.EASY, Difficulty.NORMAL, Difficulty.HARD); + private static final int DEFAULT_GAME_MODE = 0; + public static final List GAME_MODES = ImmutableList.of(GameType.SURVIVAL, GameType.CREATIVE, GameType.ADVENTURE); + private static final Component NAME_LABEL = Component.translatable("mco.configure.world.edit.slot.name"); + static final Component SPAWN_PROTECTION_TEXT = Component.translatable("mco.configure.world.spawnProtection"); + private EditBox nameEdit; + protected final RealmsConfigureWorldScreen parentScreen; + private int column1X; + private int columnWidth; + private final RealmsWorldOptions options; + private final RealmsServer.WorldType worldType; + private Difficulty difficulty; + private GameType gameMode; + private final String defaultSlotName; + private String worldName; + private boolean pvp; + private boolean spawnNPCs; + private boolean spawnAnimals; + private boolean spawnMonsters; + int spawnProtection; + private boolean commandBlocks; + private boolean forceGameMode; + RealmsSlotOptionsScreen.SettingsSlider spawnProtectionButton; + + public RealmsSlotOptionsScreen(RealmsConfigureWorldScreen parent, RealmsWorldOptions options, RealmsServer.WorldType worldType, int activeSlot) { + super(Component.translatable("mco.configure.world.buttons.options")); + this.parentScreen = parent; + this.options = options; + this.worldType = worldType; + this.difficulty = findByIndex(DIFFICULTIES, options.difficulty, 2); + this.gameMode = findByIndex(GAME_MODES, options.gameMode, 0); + this.defaultSlotName = options.getDefaultSlotName(activeSlot); + this.setWorldName(options.getSlotName(activeSlot)); + if (worldType == RealmsServer.WorldType.NORMAL) { + this.pvp = options.pvp; + this.spawnProtection = options.spawnProtection; + this.forceGameMode = options.forceGameMode; + this.spawnAnimals = options.spawnAnimals; + this.spawnMonsters = options.spawnMonsters; + this.spawnNPCs = options.spawnNPCs; + this.commandBlocks = options.commandBlocks; + } else { + this.pvp = true; + this.spawnProtection = 0; + this.forceGameMode = false; + this.spawnAnimals = true; + this.spawnMonsters = true; + this.spawnNPCs = true; + this.commandBlocks = true; + } + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.parentScreen); + } + + private static T findByIndex(List list, int index, int fallback) { + try { + return (T)list.get(index); + } catch (IndexOutOfBoundsException var4) { + return (T)list.get(fallback); + } + } + + private static int findIndex(List list, T object, int fallback) { + int i = list.indexOf(object); + return i == -1 ? fallback : i; + } + + @Override + public void init() { + this.columnWidth = 170; + this.column1X = this.width / 2 - this.columnWidth; + int i = this.width / 2 + 10; + if (this.worldType != RealmsServer.WorldType.NORMAL) { + Component component; + if (this.worldType == RealmsServer.WorldType.ADVENTUREMAP) { + component = Component.translatable("mco.configure.world.edit.subscreen.adventuremap"); + } else if (this.worldType == RealmsServer.WorldType.INSPIRATION) { + component = Component.translatable("mco.configure.world.edit.subscreen.inspiration"); + } else { + component = Component.translatable("mco.configure.world.edit.subscreen.experience"); + } + + this.addLabel(new RealmsLabel(component, this.width / 2, 26, 16711680)); + } + + this.nameEdit = this.addWidget( + new EditBox(this.minecraft.font, this.column1X, row(1), this.columnWidth, 20, null, Component.translatable("mco.configure.world.edit.slot.name")) + ); + this.nameEdit.setMaxLength(10); + this.nameEdit.setValue(this.worldName); + this.nameEdit.setResponder(this::setWorldName); + CycleButton cycleButton = this.addRenderableWidget( + CycleButton.onOffBuilder(this.pvp) + .create(i, row(1), this.columnWidth, 20, Component.translatable("mco.configure.world.pvp"), (cycleButtonx, boolean_) -> this.pvp = boolean_) + ); + this.addRenderableWidget( + CycleButton.builder(GameType::getShortDisplayName) + .withValues(GAME_MODES) + .withInitialValue(this.gameMode) + .create(this.column1X, row(3), this.columnWidth, 20, Component.translatable("selectWorld.gameMode"), (cycleButtonx, gameType) -> this.gameMode = gameType) + ); + Component component2 = Component.translatable("mco.configure.world.spawn_toggle.message"); + CycleButton cycleButton2 = this.addRenderableWidget( + CycleButton.onOffBuilder(this.spawnAnimals) + .create( + i, + row(3), + this.columnWidth, + 20, + Component.translatable("mco.configure.world.spawnAnimals"), + this.confirmDangerousOption(component2, boolean_ -> this.spawnAnimals = boolean_) + ) + ); + CycleButton cycleButton3 = CycleButton.onOffBuilder(this.difficulty != Difficulty.PEACEFUL && this.spawnMonsters) + .create( + i, + row(5), + this.columnWidth, + 20, + Component.translatable("mco.configure.world.spawnMonsters"), + this.confirmDangerousOption(component2, boolean_ -> this.spawnMonsters = boolean_) + ); + this.addRenderableWidget( + CycleButton.builder(Difficulty::getDisplayName) + .withValues(DIFFICULTIES) + .withInitialValue(this.difficulty) + .create(this.column1X, row(5), this.columnWidth, 20, Component.translatable("options.difficulty"), (cycleButton2x, difficulty) -> { + this.difficulty = difficulty; + if (this.worldType == RealmsServer.WorldType.NORMAL) { + boolean bl = this.difficulty != Difficulty.PEACEFUL; + cycleButton3.active = bl; + cycleButton3.setValue(bl && this.spawnMonsters); + } + }) + ); + this.addRenderableWidget(cycleButton3); + this.spawnProtectionButton = this.addRenderableWidget( + new RealmsSlotOptionsScreen.SettingsSlider(this.column1X, row(7), this.columnWidth, this.spawnProtection, 0.0F, 16.0F) + ); + CycleButton cycleButton4 = this.addRenderableWidget( + CycleButton.onOffBuilder(this.spawnNPCs) + .create( + i, + row(7), + this.columnWidth, + 20, + Component.translatable("mco.configure.world.spawnNPCs"), + this.confirmDangerousOption(Component.translatable("mco.configure.world.spawn_toggle.message.npc"), boolean_ -> this.spawnNPCs = boolean_) + ) + ); + CycleButton cycleButton5 = this.addRenderableWidget( + CycleButton.onOffBuilder(this.forceGameMode) + .create( + this.column1X, + row(9), + this.columnWidth, + 20, + Component.translatable("mco.configure.world.forceGameMode"), + (cycleButtonx, boolean_) -> this.forceGameMode = boolean_ + ) + ); + CycleButton cycleButton6 = this.addRenderableWidget( + CycleButton.onOffBuilder(this.commandBlocks) + .create( + i, row(9), this.columnWidth, 20, Component.translatable("mco.configure.world.commandBlocks"), (cycleButtonx, boolean_) -> this.commandBlocks = boolean_ + ) + ); + if (this.worldType != RealmsServer.WorldType.NORMAL) { + cycleButton.active = false; + cycleButton2.active = false; + cycleButton4.active = false; + cycleButton3.active = false; + this.spawnProtectionButton.active = false; + cycleButton6.active = false; + cycleButton5.active = false; + } + + if (this.difficulty == Difficulty.PEACEFUL) { + cycleButton3.active = false; + } + + this.addRenderableWidget( + Button.builder(Component.translatable("mco.configure.world.buttons.done"), button -> this.saveSettings()) + .bounds(this.column1X, row(13), this.columnWidth, 20) + .build() + ); + this.addRenderableWidget(Button.builder(CommonComponents.GUI_CANCEL, button -> this.onClose()).bounds(i, row(13), this.columnWidth, 20).build()); + } + + private CycleButton.OnValueChange confirmDangerousOption(Component question, Consumer onPress) { + return (cycleButton, boolean_) -> { + if (boolean_) { + onPress.accept(true); + } else { + this.minecraft.setScreen(RealmsPopups.warningPopupScreen(this, question, popupScreen -> { + onPress.accept(false); + popupScreen.onClose(); + })); + } + }; + } + + @Override + public Component getNarrationMessage() { + return CommonComponents.joinForNarration(this.getTitle(), this.createLabelNarration()); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 17, -1); + guiGraphics.drawString(this.font, NAME_LABEL, this.column1X + this.columnWidth / 2 - this.font.width(NAME_LABEL) / 2, row(0) - 5, -1, false); + this.nameEdit.render(guiGraphics, mouseX, mouseY, partialTick); + } + + private void setWorldName(String name) { + if (name.equals(this.defaultSlotName)) { + this.worldName = ""; + } else { + this.worldName = name; + } + } + + private void saveSettings() { + int i = findIndex(DIFFICULTIES, this.difficulty, 2); + int j = findIndex(GAME_MODES, this.gameMode, 0); + if (this.worldType != RealmsServer.WorldType.ADVENTUREMAP + && this.worldType != RealmsServer.WorldType.EXPERIENCE + && this.worldType != RealmsServer.WorldType.INSPIRATION) { + boolean bl = this.worldType == RealmsServer.WorldType.NORMAL && this.difficulty != Difficulty.PEACEFUL && this.spawnMonsters; + this.parentScreen + .saveSlotSettings( + new RealmsWorldOptions( + this.pvp, + this.spawnAnimals, + bl, + this.spawnNPCs, + this.spawnProtection, + this.commandBlocks, + i, + j, + this.forceGameMode, + this.worldName, + this.options.version, + this.options.compatibility + ) + ); + } else { + this.parentScreen + .saveSlotSettings( + new RealmsWorldOptions( + this.options.pvp, + this.options.spawnAnimals, + this.options.spawnMonsters, + this.options.spawnNPCs, + this.options.spawnProtection, + this.options.commandBlocks, + i, + j, + this.options.forceGameMode, + this.worldName, + this.options.version, + this.options.compatibility + ) + ); + } + } + + @Environment(EnvType.CLIENT) + class SettingsSlider extends AbstractSliderButton { + private final double minValue; + private final double maxValue; + + public SettingsSlider(final int x, final int y, final int width, final int value, final float minValue, final float maxValue) { + super(x, y, width, 20, CommonComponents.EMPTY, 0.0); + this.minValue = minValue; + this.maxValue = maxValue; + this.value = (Mth.clamp((float)value, minValue, maxValue) - minValue) / (maxValue - minValue); + this.updateMessage(); + } + + @Override + public void applyValue() { + if (RealmsSlotOptionsScreen.this.spawnProtectionButton.active) { + RealmsSlotOptionsScreen.this.spawnProtection = (int)Mth.lerp(Mth.clamp(this.value, 0.0, 1.0), this.minValue, this.maxValue); + } + } + + @Override + protected void updateMessage() { + this.setMessage( + CommonComponents.optionNameValue( + RealmsSlotOptionsScreen.SPAWN_PROTECTION_TEXT, + (Component)(RealmsSlotOptionsScreen.this.spawnProtection == 0 + ? CommonComponents.OPTION_OFF + : Component.literal(String.valueOf(RealmsSlotOptionsScreen.this.spawnProtection))) + ) + ); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsSubscriptionInfoScreen.java b/com/mojang/realmsclient/gui/screens/RealmsSubscriptionInfoScreen.java new file mode 100644 index 00000000..f9eeebf1 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsSubscriptionInfoScreen.java @@ -0,0 +1,171 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.Subscription; +import com.mojang.realmsclient.exception.RealmsServiceException; +import java.text.DateFormat; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.TimeZone; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.FittingMultiLineTextWidget; +import net.minecraft.client.gui.screens.ConfirmLinkScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.util.CommonLinks; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsSubscriptionInfoScreen extends RealmsScreen { + static final Logger LOGGER = LogUtils.getLogger(); + private static final Component SUBSCRIPTION_TITLE = Component.translatable("mco.configure.world.subscription.title"); + private static final Component SUBSCRIPTION_START_LABEL = Component.translatable("mco.configure.world.subscription.start"); + private static final Component TIME_LEFT_LABEL = Component.translatable("mco.configure.world.subscription.timeleft"); + private static final Component DAYS_LEFT_LABEL = Component.translatable("mco.configure.world.subscription.recurring.daysleft"); + private static final Component SUBSCRIPTION_EXPIRED_TEXT = Component.translatable("mco.configure.world.subscription.expired"); + private static final Component SUBSCRIPTION_LESS_THAN_A_DAY_TEXT = Component.translatable("mco.configure.world.subscription.less_than_a_day"); + private static final Component UNKNOWN = Component.translatable("mco.configure.world.subscription.unknown"); + private static final Component RECURRING_INFO = Component.translatable("mco.configure.world.subscription.recurring.info"); + private final Screen lastScreen; + final RealmsServer serverData; + final Screen mainScreen; + private Component daysLeft = UNKNOWN; + private Component startDate = UNKNOWN; + @Nullable + private Subscription.SubscriptionType type; + + public RealmsSubscriptionInfoScreen(Screen lastScreen, RealmsServer serverData, Screen mainScreen) { + super(GameNarrator.NO_TITLE); + this.lastScreen = lastScreen; + this.serverData = serverData; + this.mainScreen = mainScreen; + } + + @Override + public void init() { + this.getSubscription(this.serverData.id); + this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.subscription.extend"), + button -> ConfirmLinkScreen.confirmLinkNow(this, CommonLinks.extendRealms(this.serverData.remoteSubscriptionId, this.minecraft.getUser().getProfileId())) + ) + .bounds(this.width / 2 - 100, row(6), 200, 20) + .build() + ); + if (this.serverData.expired) { + this.addRenderableWidget( + Button.builder( + Component.translatable("mco.configure.world.delete.button"), + button -> this.minecraft + .setScreen(RealmsPopups.warningPopupScreen(this, Component.translatable("mco.configure.world.delete.question.line1"), popupScreen -> this.deleteRealm())) + ) + .bounds(this.width / 2 - 100, row(10), 200, 20) + .build() + ); + } else if (RealmsMainScreen.isSnapshot() && this.serverData.parentWorldName != null) { + this.addRenderableWidget( + new FittingMultiLineTextWidget( + this.width / 2 - 100, row(8), 200, 46, Component.translatable("mco.snapshot.subscription.info", this.serverData.parentWorldName), this.font + ) + ); + } else { + this.addRenderableWidget(new FittingMultiLineTextWidget(this.width / 2 - 100, row(8), 200, 46, RECURRING_INFO, this.font)); + } + + this.addRenderableWidget(Button.builder(CommonComponents.GUI_BACK, button -> this.onClose()).bounds(this.width / 2 - 100, row(12), 200, 20).build()); + } + + @Override + public Component getNarrationMessage() { + return CommonComponents.joinLines(SUBSCRIPTION_TITLE, SUBSCRIPTION_START_LABEL, this.startDate, TIME_LEFT_LABEL, this.daysLeft); + } + + private void deleteRealm() { + (new Thread("Realms-delete-realm") { + public void run() { + try { + RealmsClient realmsClient = RealmsClient.create(); + realmsClient.deleteRealm(RealmsSubscriptionInfoScreen.this.serverData.id); + } catch (RealmsServiceException var2) { + RealmsSubscriptionInfoScreen.LOGGER.error("Couldn't delete world", (Throwable)var2); + } + + RealmsSubscriptionInfoScreen.this.minecraft + .execute(() -> RealmsSubscriptionInfoScreen.this.minecraft.setScreen(RealmsSubscriptionInfoScreen.this.mainScreen)); + } + }) + .start(); + this.minecraft.setScreen(this); + } + + private void getSubscription(long serverId) { + RealmsClient realmsClient = RealmsClient.create(); + + try { + Subscription subscription = realmsClient.subscriptionFor(serverId); + this.daysLeft = this.daysLeftPresentation(subscription.daysLeft); + this.startDate = localPresentation(subscription.startDate); + this.type = subscription.type; + } catch (RealmsServiceException var5) { + LOGGER.error("Couldn't get subscription", (Throwable)var5); + this.minecraft.setScreen(new RealmsGenericErrorScreen(var5, this.lastScreen)); + } + } + + private static Component localPresentation(long time) { + Calendar calendar = new GregorianCalendar(TimeZone.getDefault()); + calendar.setTimeInMillis(time); + return Component.literal(DateFormat.getDateTimeInstance().format(calendar.getTime())); + } + + @Override + public void onClose() { + this.minecraft.setScreen(this.lastScreen); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + int i = this.width / 2 - 100; + guiGraphics.drawCenteredString(this.font, SUBSCRIPTION_TITLE, this.width / 2, 17, -1); + guiGraphics.drawString(this.font, SUBSCRIPTION_START_LABEL, i, row(0), -6250336, false); + guiGraphics.drawString(this.font, this.startDate, i, row(1), -1, false); + if (this.type == Subscription.SubscriptionType.NORMAL) { + guiGraphics.drawString(this.font, TIME_LEFT_LABEL, i, row(3), -6250336, false); + } else if (this.type == Subscription.SubscriptionType.RECURRING) { + guiGraphics.drawString(this.font, DAYS_LEFT_LABEL, i, row(3), -6250336, false); + } + + guiGraphics.drawString(this.font, this.daysLeft, i, row(4), -1, false); + } + + private Component daysLeftPresentation(int daysLeft) { + if (daysLeft < 0 && this.serverData.expired) { + return SUBSCRIPTION_EXPIRED_TEXT; + } else if (daysLeft <= 1) { + return SUBSCRIPTION_LESS_THAN_A_DAY_TEXT; + } else { + int i = daysLeft / 30; + int j = daysLeft % 30; + boolean bl = i > 0; + boolean bl2 = j > 0; + if (bl && bl2) { + return Component.translatable("mco.configure.world.subscription.remaining.months.days", i, j); + } else if (bl) { + return Component.translatable("mco.configure.world.subscription.remaining.months", i); + } else { + return bl2 ? Component.translatable("mco.configure.world.subscription.remaining.days", j) : Component.empty(); + } + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsTermsScreen.java b/com/mojang/realmsclient/gui/screens/RealmsTermsScreen.java new file mode 100644 index 00000000..c1d3fdc6 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsTermsScreen.java @@ -0,0 +1,106 @@ +package com.mojang.realmsclient.gui.screens; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.util.task.GetServerDetailsTask; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.Style; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.util.CommonLinks; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsTermsScreen extends RealmsScreen { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.terms.title"); + private static final Component TERMS_STATIC_TEXT = Component.translatable("mco.terms.sentence.1"); + private static final Component TERMS_LINK_TEXT = CommonComponents.space() + .append(Component.translatable("mco.terms.sentence.2").withStyle(Style.EMPTY.withUnderlined(true))); + private final Screen lastScreen; + /** + * The screen to display when OK is clicked on the disconnect screen. + * + * Seems to be either null (integrated server) or an instance of either {@link MultiplayerScreen} (when connecting to a server) or {@link com.mojang.realmsclient.gui.screens.RealmsTermsScreen} (when connecting to MCO server) + */ + private final RealmsServer realmsServer; + private boolean onLink; + + public RealmsTermsScreen(Screen lastScreen, RealmsServer realmsServer) { + super(TITLE); + this.lastScreen = lastScreen; + this.realmsServer = realmsServer; + } + + @Override + public void init() { + int i = this.width / 4 - 2; + this.addRenderableWidget( + Button.builder(Component.translatable("mco.terms.buttons.agree"), button -> this.agreedToTos()).bounds(this.width / 4, row(12), i, 20).build() + ); + this.addRenderableWidget( + Button.builder(Component.translatable("mco.terms.buttons.disagree"), button -> this.minecraft.setScreen(this.lastScreen)) + .bounds(this.width / 2 + 4, row(12), i, 20) + .build() + ); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (keyCode == 256) { + this.minecraft.setScreen(this.lastScreen); + return true; + } else { + return super.keyPressed(keyCode, scanCode, modifiers); + } + } + + private void agreedToTos() { + RealmsClient realmsClient = RealmsClient.create(); + + try { + realmsClient.agreeToTos(); + this.minecraft.setScreen(new RealmsLongRunningMcoTaskScreen(this.lastScreen, new GetServerDetailsTask(this.lastScreen, this.realmsServer))); + } catch (RealmsServiceException var3) { + LOGGER.error("Couldn't agree to TOS", (Throwable)var3); + } + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (this.onLink) { + this.minecraft.keyboardHandler.setClipboard(CommonLinks.REALMS_TERMS.toString()); + Util.getPlatform().openUri(CommonLinks.REALMS_TERMS); + return true; + } else { + return super.mouseClicked(mouseX, mouseY, button); + } + } + + @Override + public Component getNarrationMessage() { + return CommonComponents.joinForNarration(super.getNarrationMessage(), TERMS_STATIC_TEXT).append(CommonComponents.SPACE).append(TERMS_LINK_TEXT); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 17, -1); + guiGraphics.drawString(this.font, TERMS_STATIC_TEXT, this.width / 2 - 120, row(5), -1, false); + int i = this.font.width(TERMS_STATIC_TEXT); + int j = this.width / 2 - 121 + i; + int k = row(5); + int l = j + this.font.width(TERMS_LINK_TEXT) + 1; + int m = k + 1 + 9; + this.onLink = j <= mouseX && mouseX <= l && k <= mouseY && mouseY <= m; + guiGraphics.drawString(this.font, TERMS_LINK_TEXT, this.width / 2 - 120 + i, row(5), this.onLink ? 7107012 : 3368635, false); + } +} diff --git a/com/mojang/realmsclient/gui/screens/RealmsUploadScreen.java b/com/mojang/realmsclient/gui/screens/RealmsUploadScreen.java new file mode 100644 index 00000000..3f1cdda7 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/RealmsUploadScreen.java @@ -0,0 +1,457 @@ +package com.mojang.realmsclient.gui.screens; + +import com.google.common.collect.Lists; +import com.google.common.util.concurrent.RateLimiter; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.Unit; +import com.mojang.realmsclient.client.FileUpload; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.client.UploadStatus; +import com.mojang.realmsclient.dto.UploadInfo; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.util.UploadTokenCache; +import com.mojang.realmsclient.util.task.LongRunningTask; +import com.mojang.realmsclient.util.task.RealmCreationTask; +import com.mojang.realmsclient.util.task.SwitchSlotTask; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.ReentrantLock; +import java.util.zip.GZIPOutputStream; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.SharedConstants; +import net.minecraft.Util; +import net.minecraft.client.GameNarrator; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.layouts.HeaderAndFooterLayout; +import net.minecraft.client.gui.screens.TitleScreen; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsScreen; +import net.minecraft.world.level.storage.LevelSummary; +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsUploadScreen extends RealmsScreen { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final ReentrantLock UPLOAD_LOCK = new ReentrantLock(); + private static final int BAR_WIDTH = 200; + private static final int BAR_TOP = 80; + private static final int BAR_BOTTOM = 95; + private static final int BAR_BORDER = 1; + private static final String[] DOTS = new String[]{"", ".", ". .", ". . ."}; + private static final Component VERIFYING_TEXT = Component.translatable("mco.upload.verifying"); + private final RealmsResetWorldScreen lastScreen; + private final LevelSummary selectedLevel; + @Nullable + private final RealmCreationTask realmCreationTask; + private final long realmId; + private final int slotId; + private final UploadStatus uploadStatus; + private final RateLimiter narrationRateLimiter; + @Nullable + private volatile Component[] errorMessage; + private volatile Component status = Component.translatable("mco.upload.preparing"); + @Nullable + private volatile String progress; + private volatile boolean cancelled; + private volatile boolean uploadFinished; + private volatile boolean showDots = true; + private volatile boolean uploadStarted; + @Nullable + private Button backButton; + @Nullable + private Button cancelButton; + private int tickCount; + @Nullable + private Long previousWrittenBytes; + @Nullable + private Long previousTimeSnapshot; + private long bytesPersSecond; + private final HeaderAndFooterLayout layout = new HeaderAndFooterLayout(this); + + public RealmsUploadScreen( + @Nullable RealmCreationTask realmCreationTask, long realmId, int slotId, RealmsResetWorldScreen lastScreen, LevelSummary selectedLevel + ) { + super(GameNarrator.NO_TITLE); + this.realmCreationTask = realmCreationTask; + this.realmId = realmId; + this.slotId = slotId; + this.lastScreen = lastScreen; + this.selectedLevel = selectedLevel; + this.uploadStatus = new UploadStatus(); + this.narrationRateLimiter = RateLimiter.create(0.1F); + } + + @Override + public void init() { + this.backButton = this.layout.addToFooter(Button.builder(CommonComponents.GUI_BACK, button -> this.onBack()).build()); + this.backButton.visible = false; + this.cancelButton = this.layout.addToFooter(Button.builder(CommonComponents.GUI_CANCEL, button -> this.onCancel()).build()); + if (!this.uploadStarted) { + if (this.lastScreen.slot == -1) { + this.uploadStarted = true; + this.upload(); + } else { + List list = new ArrayList(); + if (this.realmCreationTask != null) { + list.add(this.realmCreationTask); + } + + list.add(new SwitchSlotTask(this.realmId, this.lastScreen.slot, () -> { + if (!this.uploadStarted) { + this.uploadStarted = true; + this.minecraft.execute(() -> { + this.minecraft.setScreen(this); + this.upload(); + }); + } + })); + this.minecraft.setScreen(new RealmsLongRunningMcoTaskScreen(this.lastScreen, (LongRunningTask[])list.toArray(new LongRunningTask[0]))); + } + } + + this.layout.visitWidgets(guiEventListener -> { + AbstractWidget var10000 = this.addRenderableWidget(guiEventListener); + }); + this.repositionElements(); + } + + @Override + protected void repositionElements() { + this.layout.arrangeElements(); + } + + private void onBack() { + this.minecraft.setScreen(new RealmsConfigureWorldScreen(new RealmsMainScreen(new TitleScreen()), this.realmId)); + } + + private void onCancel() { + this.cancelled = true; + this.minecraft.setScreen(this.lastScreen); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (keyCode == 256) { + if (this.showDots) { + this.onCancel(); + } else { + this.onBack(); + } + + return true; + } else { + return super.keyPressed(keyCode, scanCode, modifiers); + } + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.render(guiGraphics, mouseX, mouseY, partialTick); + if (!this.uploadFinished + && this.uploadStatus.bytesWritten != 0L + && this.uploadStatus.bytesWritten == this.uploadStatus.totalBytes + && this.cancelButton != null) { + this.status = VERIFYING_TEXT; + this.cancelButton.active = false; + } + + guiGraphics.drawCenteredString(this.font, this.status, this.width / 2, 50, -1); + if (this.showDots) { + guiGraphics.drawString(this.font, DOTS[this.tickCount / 10 % DOTS.length], this.width / 2 + this.font.width(this.status) / 2 + 5, 50, -1, false); + } + + if (this.uploadStatus.bytesWritten != 0L && !this.cancelled) { + this.drawProgressBar(guiGraphics); + this.drawUploadSpeed(guiGraphics); + } + + Component[] components = this.errorMessage; + if (components != null) { + for (int i = 0; i < components.length; i++) { + guiGraphics.drawCenteredString(this.font, components[i], this.width / 2, 110 + 12 * i, -65536); + } + } + } + + private void drawProgressBar(GuiGraphics guiGraphics) { + double d = Math.min((double)this.uploadStatus.bytesWritten / this.uploadStatus.totalBytes, 1.0); + this.progress = String.format(Locale.ROOT, "%.1f", d * 100.0); + int i = (this.width - 200) / 2; + int j = i + (int)Math.round(200.0 * d); + guiGraphics.fill(i - 1, 79, j + 1, 96, -1); + guiGraphics.fill(i, 80, j, 95, -8355712); + guiGraphics.drawCenteredString(this.font, Component.translatable("mco.upload.percent", this.progress), this.width / 2, 84, -1); + } + + private void drawUploadSpeed(GuiGraphics guiGraphics) { + if (this.tickCount % 20 == 0) { + if (this.previousWrittenBytes != null && this.previousTimeSnapshot != null) { + long l = Util.getMillis() - this.previousTimeSnapshot; + if (l == 0L) { + l = 1L; + } + + this.bytesPersSecond = 1000L * (this.uploadStatus.bytesWritten - this.previousWrittenBytes) / l; + this.drawUploadSpeed0(guiGraphics, this.bytesPersSecond); + } + + this.previousWrittenBytes = this.uploadStatus.bytesWritten; + this.previousTimeSnapshot = Util.getMillis(); + } else { + this.drawUploadSpeed0(guiGraphics, this.bytesPersSecond); + } + } + + private void drawUploadSpeed0(GuiGraphics guiGraphics, long bytesPerSecond) { + String string = this.progress; + if (bytesPerSecond > 0L && string != null) { + int i = this.font.width(string); + String string2 = "(" + Unit.humanReadable(bytesPerSecond) + "/s)"; + guiGraphics.drawString(this.font, string2, this.width / 2 + i / 2 + 15, 84, -1, false); + } + } + + @Override + public void tick() { + super.tick(); + this.tickCount++; + if (this.narrationRateLimiter.tryAcquire(1)) { + Component component = this.createProgressNarrationMessage(); + this.minecraft.getNarrator().sayNow(component); + } + } + + private Component createProgressNarrationMessage() { + List list = Lists.newArrayList(); + list.add(this.status); + if (this.progress != null) { + list.add(Component.translatable("mco.upload.percent", this.progress)); + } + + Component[] components = this.errorMessage; + if (components != null) { + list.addAll(Arrays.asList(components)); + } + + return CommonComponents.joinLines(list); + } + + private void upload() { + new Thread( + () -> { + File file = null; + RealmsClient realmsClient = RealmsClient.create(); + + try { + if (!UPLOAD_LOCK.tryLock(1L, TimeUnit.SECONDS)) { + this.status = Component.translatable("mco.upload.close.failure"); + } else { + UploadInfo uploadInfo = null; + + for (int i = 0; i < 20; i++) { + try { + if (this.cancelled) { + this.uploadCancelled(); + return; + } + + uploadInfo = realmsClient.requestUploadInfo(this.realmId, UploadTokenCache.get(this.realmId)); + if (uploadInfo != null) { + break; + } + } catch (RetryCallException var18) { + Thread.sleep(var18.delaySeconds * 1000); + } + } + + if (uploadInfo == null) { + this.status = Component.translatable("mco.upload.close.failure"); + } else { + UploadTokenCache.put(this.realmId, uploadInfo.getToken()); + if (!uploadInfo.isWorldClosed()) { + this.status = Component.translatable("mco.upload.close.failure"); + } else if (this.cancelled) { + this.uploadCancelled(); + } else { + File file2 = new File(this.minecraft.gameDirectory.getAbsolutePath(), "saves"); + file = this.tarGzipArchive(new File(file2, this.selectedLevel.getLevelId())); + if (this.cancelled) { + this.uploadCancelled(); + } else if (this.verify(file)) { + this.status = Component.translatable("mco.upload.uploading", this.selectedLevel.getLevelName()); + FileUpload fileUpload = new FileUpload( + file, + this.realmId, + this.slotId, + uploadInfo, + this.minecraft.getUser(), + SharedConstants.getCurrentVersion().getName(), + this.selectedLevel.levelVersion().minecraftVersionName(), + this.uploadStatus + ); + fileUpload.upload(uploadResult -> { + if (uploadResult.statusCode >= 200 && uploadResult.statusCode < 300) { + this.uploadFinished = true; + this.status = Component.translatable("mco.upload.done"); + if (this.backButton != null) { + this.backButton.setMessage(CommonComponents.GUI_DONE); + } + + UploadTokenCache.invalidate(this.realmId); + } else if (uploadResult.statusCode == 400 && uploadResult.errorMessage != null) { + this.setErrorMessage(Component.translatable("mco.upload.failed", uploadResult.errorMessage)); + } else { + this.setErrorMessage(Component.translatable("mco.upload.failed", uploadResult.statusCode)); + } + }); + + while (!fileUpload.isFinished()) { + if (this.cancelled) { + fileUpload.cancel(); + this.uploadCancelled(); + return; + } + + try { + Thread.sleep(500L); + } catch (InterruptedException var17) { + LOGGER.error("Failed to check Realms file upload status"); + } + } + } else { + long l = file.length(); + Unit unit = Unit.getLargest(l); + Unit unit2 = Unit.getLargest(5368709120L); + if (Unit.humanReadable(l, unit).equals(Unit.humanReadable(5368709120L, unit2)) && unit != Unit.B) { + Unit unit3 = Unit.values()[unit.ordinal() - 1]; + this.setErrorMessage( + Component.translatable("mco.upload.size.failure.line1", this.selectedLevel.getLevelName()), + Component.translatable("mco.upload.size.failure.line2", Unit.humanReadable(l, unit3), Unit.humanReadable(5368709120L, unit3)) + ); + } else { + this.setErrorMessage( + Component.translatable("mco.upload.size.failure.line1", this.selectedLevel.getLevelName()), + Component.translatable("mco.upload.size.failure.line2", Unit.humanReadable(l, unit), Unit.humanReadable(5368709120L, unit2)) + ); + } + } + } + } + } + } catch (IOException var19) { + this.setErrorMessage(Component.translatable("mco.upload.failed", var19.getMessage())); + } catch (RealmsServiceException var20) { + this.setErrorMessage(Component.translatable("mco.upload.failed", var20.realmsError.errorMessage())); + } catch (InterruptedException var21) { + LOGGER.error("Could not acquire upload lock"); + } finally { + this.uploadFinished = true; + if (UPLOAD_LOCK.isHeldByCurrentThread()) { + UPLOAD_LOCK.unlock(); + this.showDots = false; + if (this.backButton != null) { + this.backButton.visible = true; + } + + if (this.cancelButton != null) { + this.cancelButton.visible = false; + } + + if (file != null) { + LOGGER.debug("Deleting file {}", file.getAbsolutePath()); + file.delete(); + } + } else { + return; + } + } + } + ) + .start(); + } + + private void setErrorMessage(Component... errorMessage) { + this.errorMessage = errorMessage; + } + + private void uploadCancelled() { + this.status = Component.translatable("mco.upload.cancelled"); + LOGGER.debug("Upload was cancelled"); + } + + private boolean verify(File file) { + return file.length() < 5368709120L; + } + + private File tarGzipArchive(File file) throws IOException { + TarArchiveOutputStream tarArchiveOutputStream = null; + + File var4; + try { + File file2 = File.createTempFile("realms-upload-file", ".tar.gz"); + tarArchiveOutputStream = new TarArchiveOutputStream(new GZIPOutputStream(new FileOutputStream(file2))); + tarArchiveOutputStream.setLongFileMode(3); + this.addFileToTarGz(tarArchiveOutputStream, file.getAbsolutePath(), "world", true); + tarArchiveOutputStream.finish(); + var4 = file2; + } finally { + if (tarArchiveOutputStream != null) { + tarArchiveOutputStream.close(); + } + } + + return var4; + } + + private void addFileToTarGz(TarArchiveOutputStream tarArchiveOutputStream, String pathname, String name, boolean rootDirectory) throws IOException { + if (!this.cancelled) { + File file = new File(pathname); + String string = rootDirectory ? name : name + file.getName(); + TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file, string); + tarArchiveOutputStream.putArchiveEntry(tarArchiveEntry); + if (file.isFile()) { + InputStream inputStream = new FileInputStream(file); + + try { + inputStream.transferTo(tarArchiveOutputStream); + } catch (Throwable var14) { + try { + inputStream.close(); + } catch (Throwable var13) { + var14.addSuppressed(var13); + } + + throw var14; + } + + inputStream.close(); + tarArchiveOutputStream.closeArchiveEntry(); + } else { + tarArchiveOutputStream.closeArchiveEntry(); + File[] files = file.listFiles(); + if (files != null) { + for (File file2 : files) { + this.addFileToTarGz(tarArchiveOutputStream, file2.getAbsolutePath(), string + "/", false); + } + } + } + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/UploadResult.java b/com/mojang/realmsclient/gui/screens/UploadResult.java new file mode 100644 index 00000000..4eff783e --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/UploadResult.java @@ -0,0 +1,37 @@ +package com.mojang.realmsclient.gui.screens; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class UploadResult { + public final int statusCode; + @Nullable + public final String errorMessage; + + UploadResult(int statusCode, String errorMessage) { + this.statusCode = statusCode; + this.errorMessage = errorMessage; + } + + @Environment(EnvType.CLIENT) + public static class Builder { + private int statusCode = -1; + private String errorMessage; + + public UploadResult.Builder withStatusCode(int statusCode) { + this.statusCode = statusCode; + return this; + } + + public UploadResult.Builder withErrorMessage(@Nullable String errorMessage) { + this.errorMessage = errorMessage; + return this; + } + + public UploadResult build() { + return new UploadResult(this.statusCode, this.errorMessage); + } + } +} diff --git a/com/mojang/realmsclient/gui/screens/package-info.java b/com/mojang/realmsclient/gui/screens/package-info.java new file mode 100644 index 00000000..c74c7232 --- /dev/null +++ b/com/mojang/realmsclient/gui/screens/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.gui.screens; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/gui/task/DataFetcher.java b/com/mojang/realmsclient/gui/task/DataFetcher.java new file mode 100644 index 00000000..6fe06c5d --- /dev/null +++ b/com/mojang/realmsclient/gui/task/DataFetcher.java @@ -0,0 +1,178 @@ +package com.mojang.realmsclient.gui.task; + +import com.mojang.datafixers.util.Either; +import com.mojang.logging.LogUtils; +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.TimeSource; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class DataFetcher { + static final Logger LOGGER = LogUtils.getLogger(); + final Executor executor; + final TimeUnit resolution; + final TimeSource timeSource; + + public DataFetcher(Executor executor, TimeUnit resolution, TimeSource timeSource) { + this.executor = executor; + this.resolution = resolution; + this.timeSource = timeSource; + } + + public DataFetcher.Task createTask(String id, Callable updater, Duration period, RepeatedDelayStrategy repeatStrategy) { + long l = this.resolution.convert(period); + if (l == 0L) { + throw new IllegalArgumentException("Period of " + period + " too short for selected resolution of " + this.resolution); + } else { + return new DataFetcher.Task<>(id, updater, l, repeatStrategy); + } + } + + public DataFetcher.Subscription createSubscription() { + return new DataFetcher.Subscription(); + } + + @Environment(EnvType.CLIENT) + record ComputationResult(Either value, long time) { + } + + @Environment(EnvType.CLIENT) + class SubscribedTask { + private final DataFetcher.Task task; + private final Consumer output; + private long lastCheckTime = -1L; + + SubscribedTask(final DataFetcher.Task task, final Consumer output) { + this.task = task; + this.output = output; + } + + void update(long time) { + this.task.updateIfNeeded(time); + this.runCallbackIfNeeded(); + } + + void runCallbackIfNeeded() { + DataFetcher.SuccessfulComputationResult successfulComputationResult = this.task.lastResult; + if (successfulComputationResult != null && this.lastCheckTime < successfulComputationResult.time) { + this.output.accept(successfulComputationResult.value); + this.lastCheckTime = successfulComputationResult.time; + } + } + + void runCallback() { + DataFetcher.SuccessfulComputationResult successfulComputationResult = this.task.lastResult; + if (successfulComputationResult != null) { + this.output.accept(successfulComputationResult.value); + this.lastCheckTime = successfulComputationResult.time; + } + } + + void reset() { + this.task.reset(); + this.lastCheckTime = -1L; + } + } + + @Environment(EnvType.CLIENT) + public class Subscription { + private final List> subscriptions = new ArrayList(); + + public void subscribe(DataFetcher.Task task, Consumer output) { + DataFetcher.SubscribedTask subscribedTask = DataFetcher.this.new SubscribedTask<>(task, output); + this.subscriptions.add(subscribedTask); + subscribedTask.runCallbackIfNeeded(); + } + + public void forceUpdate() { + for (DataFetcher.SubscribedTask subscribedTask : this.subscriptions) { + subscribedTask.runCallback(); + } + } + + public void tick() { + for (DataFetcher.SubscribedTask subscribedTask : this.subscriptions) { + subscribedTask.update(DataFetcher.this.timeSource.get(DataFetcher.this.resolution)); + } + } + + public void reset() { + for (DataFetcher.SubscribedTask subscribedTask : this.subscriptions) { + subscribedTask.reset(); + } + } + } + + @Environment(EnvType.CLIENT) + record SuccessfulComputationResult(T value, long time) { + } + + @Environment(EnvType.CLIENT) + public class Task { + private final String id; + private final Callable updater; + private final long period; + private final RepeatedDelayStrategy repeatStrategy; + @Nullable + private CompletableFuture> pendingTask; + @Nullable + DataFetcher.SuccessfulComputationResult lastResult; + private long nextUpdate = -1L; + + Task(final String id, final Callable updater, final long period, final RepeatedDelayStrategy repeatStrategy) { + this.id = id; + this.updater = updater; + this.period = period; + this.repeatStrategy = repeatStrategy; + } + + void updateIfNeeded(long time) { + if (this.pendingTask != null) { + DataFetcher.ComputationResult computationResult = (DataFetcher.ComputationResult)this.pendingTask.getNow(null); + if (computationResult == null) { + return; + } + + this.pendingTask = null; + long l = computationResult.time; + computationResult.value().ifLeft(object -> { + this.lastResult = new DataFetcher.SuccessfulComputationResult<>((T)object, l); + this.nextUpdate = l + this.period * this.repeatStrategy.delayCyclesAfterSuccess(); + }).ifRight(exception -> { + long m = this.repeatStrategy.delayCyclesAfterFailure(); + DataFetcher.LOGGER.warn("Failed to process task {}, will repeat after {} cycles", this.id, m, exception); + this.nextUpdate = l + this.period * m; + }); + } + + if (this.nextUpdate <= time) { + this.pendingTask = CompletableFuture.supplyAsync(() -> { + try { + T object = (T)this.updater.call(); + long lx = DataFetcher.this.timeSource.get(DataFetcher.this.resolution); + return new DataFetcher.ComputationResult<>(Either.left(object), lx); + } catch (Exception var4x) { + long lx = DataFetcher.this.timeSource.get(DataFetcher.this.resolution); + return new DataFetcher.ComputationResult(Either.right(var4x), lx); + } + }, DataFetcher.this.executor); + } + } + + public void reset() { + this.pendingTask = null; + this.lastResult = null; + this.nextUpdate = -1L; + } + } +} diff --git a/com/mojang/realmsclient/gui/task/RepeatedDelayStrategy.java b/com/mojang/realmsclient/gui/task/RepeatedDelayStrategy.java new file mode 100644 index 00000000..f162d81a --- /dev/null +++ b/com/mojang/realmsclient/gui/task/RepeatedDelayStrategy.java @@ -0,0 +1,46 @@ +package com.mojang.realmsclient.gui.task; + +import com.mojang.logging.LogUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public interface RepeatedDelayStrategy { + RepeatedDelayStrategy CONSTANT = new RepeatedDelayStrategy() { + @Override + public long delayCyclesAfterSuccess() { + return 1L; + } + + @Override + public long delayCyclesAfterFailure() { + return 1L; + } + }; + + long delayCyclesAfterSuccess(); + + long delayCyclesAfterFailure(); + + static RepeatedDelayStrategy exponentialBackoff(int maxFailureDelay) { + return new RepeatedDelayStrategy() { + private static final Logger LOGGER = LogUtils.getLogger(); + private int failureCount; + + @Override + public long delayCyclesAfterSuccess() { + this.failureCount = 0; + return 1L; + } + + @Override + public long delayCyclesAfterFailure() { + this.failureCount++; + long l = Math.min(1L << this.failureCount, maxFailureDelay); + LOGGER.debug("Skipping for {} extra cycles", l); + return l; + } + }; + } +} diff --git a/com/mojang/realmsclient/gui/task/package-info.java b/com/mojang/realmsclient/gui/task/package-info.java new file mode 100644 index 00000000..cf68ef15 --- /dev/null +++ b/com/mojang/realmsclient/gui/task/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.gui.task; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/package-info.java b/com/mojang/realmsclient/package-info.java new file mode 100644 index 00000000..c79055aa --- /dev/null +++ b/com/mojang/realmsclient/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/util/JsonUtils.java b/com/mojang/realmsclient/util/JsonUtils.java new file mode 100644 index 00000000..b4b4aec5 --- /dev/null +++ b/com/mojang/realmsclient/util/JsonUtils.java @@ -0,0 +1,103 @@ +package com.mojang.realmsclient.util; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.mojang.util.UndashedUuid; +import java.util.Date; +import java.util.UUID; +import java.util.function.Function; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class JsonUtils { + public static T getRequired(String key, JsonObject json, Function output) { + JsonElement jsonElement = json.get(key); + if (jsonElement == null || jsonElement.isJsonNull()) { + throw new IllegalStateException("Missing required property: " + key); + } else if (!jsonElement.isJsonObject()) { + throw new IllegalStateException("Required property " + key + " was not a JsonObject as espected"); + } else { + return (T)output.apply(jsonElement.getAsJsonObject()); + } + } + + @Nullable + public static T getOptional(String key, JsonObject json, Function output) { + JsonElement jsonElement = json.get(key); + if (jsonElement == null || jsonElement.isJsonNull()) { + return null; + } else if (!jsonElement.isJsonObject()) { + throw new IllegalStateException("Required property " + key + " was not a JsonObject as espected"); + } else { + return (T)output.apply(jsonElement.getAsJsonObject()); + } + } + + public static String getRequiredString(String key, JsonObject json) { + String string = getStringOr(key, json, null); + if (string == null) { + throw new IllegalStateException("Missing required property: " + key); + } else { + return string; + } + } + + public static String getRequiredStringOr(String key, JsonObject json, String defaultValue) { + JsonElement jsonElement = json.get(key); + if (jsonElement != null) { + return jsonElement.isJsonNull() ? defaultValue : jsonElement.getAsString(); + } else { + return defaultValue; + } + } + + @Nullable + public static String getStringOr(String key, JsonObject json, @Nullable String defaultValue) { + JsonElement jsonElement = json.get(key); + if (jsonElement != null) { + return jsonElement.isJsonNull() ? defaultValue : jsonElement.getAsString(); + } else { + return defaultValue; + } + } + + @Nullable + public static UUID getUuidOr(String key, JsonObject json, @Nullable UUID defaultValue) { + String string = getStringOr(key, json, null); + return string == null ? defaultValue : UndashedUuid.fromStringLenient(string); + } + + public static int getIntOr(String key, JsonObject json, int defaultValue) { + JsonElement jsonElement = json.get(key); + if (jsonElement != null) { + return jsonElement.isJsonNull() ? defaultValue : jsonElement.getAsInt(); + } else { + return defaultValue; + } + } + + public static long getLongOr(String key, JsonObject json, long defaultValue) { + JsonElement jsonElement = json.get(key); + if (jsonElement != null) { + return jsonElement.isJsonNull() ? defaultValue : jsonElement.getAsLong(); + } else { + return defaultValue; + } + } + + public static boolean getBooleanOr(String key, JsonObject json, boolean defaultValue) { + JsonElement jsonElement = json.get(key); + if (jsonElement != null) { + return jsonElement.isJsonNull() ? defaultValue : jsonElement.getAsBoolean(); + } else { + return defaultValue; + } + } + + public static Date getDateOr(String key, JsonObject json) { + JsonElement jsonElement = json.get(key); + return jsonElement != null ? new Date(Long.parseLong(jsonElement.getAsString())) : new Date(); + } +} diff --git a/com/mojang/realmsclient/util/LevelType.java b/com/mojang/realmsclient/util/LevelType.java new file mode 100644 index 00000000..03f0cf33 --- /dev/null +++ b/com/mojang/realmsclient/util/LevelType.java @@ -0,0 +1,32 @@ +package com.mojang.realmsclient.util; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.levelgen.presets.WorldPreset; +import net.minecraft.world.level.levelgen.presets.WorldPresets; + +@Environment(EnvType.CLIENT) +public enum LevelType { + DEFAULT(0, WorldPresets.NORMAL), + FLAT(1, WorldPresets.FLAT), + LARGE_BIOMES(2, WorldPresets.LARGE_BIOMES), + AMPLIFIED(3, WorldPresets.AMPLIFIED); + + private final int index; + private final Component name; + + private LevelType(final int index, final ResourceKey presetKey) { + this.index = index; + this.name = Component.translatable(presetKey.location().toLanguageKey("generator")); + } + + public Component getName() { + return this.name; + } + + public int getDtoIndex() { + return this.index; + } +} diff --git a/com/mojang/realmsclient/util/RealmsPersistence.java b/com/mojang/realmsclient/util/RealmsPersistence.java new file mode 100644 index 00000000..4118eab6 --- /dev/null +++ b/com/mojang/realmsclient/util/RealmsPersistence.java @@ -0,0 +1,67 @@ +package com.mojang.realmsclient.util; + +import com.google.gson.annotations.SerializedName; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.dto.GuardedSerializer; +import com.mojang.realmsclient.dto.ReflectionBasedSerialization; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.NoSuchFileException; +import java.nio.file.Path; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsPersistence { + private static final String FILE_NAME = "realms_persistence.json"; + private static final GuardedSerializer GSON = new GuardedSerializer(); + private static final Logger LOGGER = LogUtils.getLogger(); + + public RealmsPersistence.RealmsPersistenceData read() { + return readFile(); + } + + public void save(RealmsPersistence.RealmsPersistenceData persistenceData) { + writeFile(persistenceData); + } + + public static RealmsPersistence.RealmsPersistenceData readFile() { + Path path = getPathToData(); + + try { + String string = Files.readString(path, StandardCharsets.UTF_8); + RealmsPersistence.RealmsPersistenceData realmsPersistenceData = GSON.fromJson(string, RealmsPersistence.RealmsPersistenceData.class); + if (realmsPersistenceData != null) { + return realmsPersistenceData; + } + } catch (NoSuchFileException var3) { + } catch (Exception var4) { + LOGGER.warn("Failed to read Realms storage {}", path, var4); + } + + return new RealmsPersistence.RealmsPersistenceData(); + } + + public static void writeFile(RealmsPersistence.RealmsPersistenceData persistenceData) { + Path path = getPathToData(); + + try { + Files.writeString(path, GSON.toJson(persistenceData), StandardCharsets.UTF_8); + } catch (Exception var3) { + } + } + + private static Path getPathToData() { + return Minecraft.getInstance().gameDirectory.toPath().resolve("realms_persistence.json"); + } + + @Environment(EnvType.CLIENT) + public static class RealmsPersistenceData implements ReflectionBasedSerialization { + @SerializedName("newsLink") + public String newsLink; + @SerializedName("hasUnreadNews") + public boolean hasUnreadNews; + } +} diff --git a/com/mojang/realmsclient/util/RealmsTextureManager.java b/com/mojang/realmsclient/util/RealmsTextureManager.java new file mode 100644 index 00000000..94cd6a2a --- /dev/null +++ b/com/mojang/realmsclient/util/RealmsTextureManager.java @@ -0,0 +1,68 @@ +package com.mojang.realmsclient.util; + +import com.google.common.collect.Maps; +import com.mojang.blaze3d.platform.NativeImage; +import com.mojang.logging.LogUtils; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.Base64; +import java.util.Map; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.DynamicTexture; +import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import org.lwjgl.system.MemoryUtil; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmsTextureManager { + private static final Map TEXTURES = Maps.newHashMap(); + private static final Logger LOGGER = LogUtils.getLogger(); + private static final ResourceLocation TEMPLATE_ICON_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/presets/isles.png"); + + public static ResourceLocation worldTemplate(String key, @Nullable String image) { + return image == null ? TEMPLATE_ICON_LOCATION : getTexture(key, image); + } + + private static ResourceLocation getTexture(String key, String image) { + RealmsTextureManager.RealmsTexture realmsTexture = (RealmsTextureManager.RealmsTexture)TEXTURES.get(key); + if (realmsTexture != null && realmsTexture.image().equals(image)) { + return realmsTexture.textureId; + } else { + NativeImage nativeImage = loadImage(image); + if (nativeImage == null) { + ResourceLocation resourceLocation = MissingTextureAtlasSprite.getLocation(); + TEXTURES.put(key, new RealmsTextureManager.RealmsTexture(image, resourceLocation)); + return resourceLocation; + } else { + ResourceLocation resourceLocation = ResourceLocation.fromNamespaceAndPath("realms", "dynamic/" + key); + Minecraft.getInstance().getTextureManager().register(resourceLocation, new DynamicTexture(nativeImage)); + TEXTURES.put(key, new RealmsTextureManager.RealmsTexture(image, resourceLocation)); + return resourceLocation; + } + } + } + + @Nullable + private static NativeImage loadImage(String base64Image) { + byte[] bs = Base64.getDecoder().decode(base64Image); + ByteBuffer byteBuffer = MemoryUtil.memAlloc(bs.length); + + try { + return NativeImage.read(byteBuffer.put(bs).flip()); + } catch (IOException var7) { + LOGGER.warn("Failed to load world image: {}", base64Image, var7); + } finally { + MemoryUtil.memFree(byteBuffer); + } + + return null; + } + + @Environment(EnvType.CLIENT) + public record RealmsTexture(String image, ResourceLocation textureId) { + } +} diff --git a/com/mojang/realmsclient/util/RealmsUtil.java b/com/mojang/realmsclient/util/RealmsUtil.java new file mode 100644 index 00000000..596e3bd4 --- /dev/null +++ b/com/mojang/realmsclient/util/RealmsUtil.java @@ -0,0 +1,52 @@ +package com.mojang.realmsclient.util; + +import com.mojang.authlib.yggdrasil.ProfileResult; +import java.util.Date; +import java.util.UUID; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.PlayerFaceRenderer; +import net.minecraft.client.resources.DefaultPlayerSkin; +import net.minecraft.client.resources.PlayerSkin; +import net.minecraft.network.chat.Component; + +@Environment(EnvType.CLIENT) +public class RealmsUtil { + private static final Component RIGHT_NOW = Component.translatable("mco.util.time.now"); + private static final int MINUTES = 60; + private static final int HOURS = 3600; + private static final int DAYS = 86400; + + public static Component convertToAgePresentation(long millis) { + if (millis < 0L) { + return RIGHT_NOW; + } else { + long l = millis / 1000L; + if (l < 60L) { + return Component.translatable("mco.time.secondsAgo", l); + } else if (l < 3600L) { + long m = l / 60L; + return Component.translatable("mco.time.minutesAgo", m); + } else if (l < 86400L) { + long m = l / 3600L; + return Component.translatable("mco.time.hoursAgo", m); + } else { + long m = l / 86400L; + return Component.translatable("mco.time.daysAgo", m); + } + } + } + + public static Component convertToAgePresentationFromInstant(Date date) { + return convertToAgePresentation(System.currentTimeMillis() - date.getTime()); + } + + public static void renderPlayerFace(GuiGraphics guiGraphics, int x, int y, int size, UUID playerUuid) { + Minecraft minecraft = Minecraft.getInstance(); + ProfileResult profileResult = minecraft.getMinecraftSessionService().fetchProfile(playerUuid, false); + PlayerSkin playerSkin = profileResult != null ? minecraft.getSkinManager().getInsecureSkin(profileResult.profile()) : DefaultPlayerSkin.get(playerUuid); + PlayerFaceRenderer.draw(guiGraphics, playerSkin.texture(), x, y, size); + } +} diff --git a/com/mojang/realmsclient/util/TextRenderingUtils.java b/com/mojang/realmsclient/util/TextRenderingUtils.java new file mode 100644 index 00000000..81f323e9 --- /dev/null +++ b/com/mojang/realmsclient/util/TextRenderingUtils.java @@ -0,0 +1,175 @@ +package com.mojang.realmsclient.util; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.collect.Lists; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class TextRenderingUtils { + private TextRenderingUtils() { + } + + @VisibleForTesting + protected static List lineBreak(String text) { + return Arrays.asList(text.split("\\n")); + } + + public static List decompose(String text, TextRenderingUtils.LineSegment... segments) { + return decompose(text, Arrays.asList(segments)); + } + + private static List decompose(String text, List segments) { + List list = lineBreak(text); + return insertLinks(list, segments); + } + + private static List insertLinks(List lines, List segments) { + int i = 0; + List list = Lists.newArrayList(); + + for (String string : lines) { + List list2 = Lists.newArrayList(); + + for (String string2 : split(string, "%link")) { + if ("%link".equals(string2)) { + list2.add((TextRenderingUtils.LineSegment)segments.get(i++)); + } else { + list2.add(TextRenderingUtils.LineSegment.text(string2)); + } + } + + list.add(new TextRenderingUtils.Line(list2)); + } + + return list; + } + + public static List split(String toSplit, String delimiter) { + if (delimiter.isEmpty()) { + throw new IllegalArgumentException("Delimiter cannot be the empty string"); + } else { + List list = Lists.newArrayList(); + int i = 0; + + int j; + while ((j = toSplit.indexOf(delimiter, i)) != -1) { + if (j > i) { + list.add(toSplit.substring(i, j)); + } + + list.add(delimiter); + i = j + delimiter.length(); + } + + if (i < toSplit.length()) { + list.add(toSplit.substring(i)); + } + + return list; + } + } + + @Environment(EnvType.CLIENT) + public static class Line { + public final List segments; + + Line(TextRenderingUtils.LineSegment... segments) { + this(Arrays.asList(segments)); + } + + Line(List segments) { + this.segments = segments; + } + + public String toString() { + return "Line{segments=" + this.segments + "}"; + } + + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (object != null && this.getClass() == object.getClass()) { + TextRenderingUtils.Line line = (TextRenderingUtils.Line)object; + return Objects.equals(this.segments, line.segments); + } else { + return false; + } + } + + public int hashCode() { + return Objects.hash(new Object[]{this.segments}); + } + } + + @Environment(EnvType.CLIENT) + public static class LineSegment { + private final String fullText; + @Nullable + private final String linkTitle; + @Nullable + private final String linkUrl; + + private LineSegment(String fullText) { + this.fullText = fullText; + this.linkTitle = null; + this.linkUrl = null; + } + + private LineSegment(String fullText, @Nullable String linkTitle, @Nullable String linkUrl) { + this.fullText = fullText; + this.linkTitle = linkTitle; + this.linkUrl = linkUrl; + } + + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (object != null && this.getClass() == object.getClass()) { + TextRenderingUtils.LineSegment lineSegment = (TextRenderingUtils.LineSegment)object; + return Objects.equals(this.fullText, lineSegment.fullText) + && Objects.equals(this.linkTitle, lineSegment.linkTitle) + && Objects.equals(this.linkUrl, lineSegment.linkUrl); + } else { + return false; + } + } + + public int hashCode() { + return Objects.hash(new Object[]{this.fullText, this.linkTitle, this.linkUrl}); + } + + public String toString() { + return "Segment{fullText='" + this.fullText + "', linkTitle='" + this.linkTitle + "', linkUrl='" + this.linkUrl + "'}"; + } + + public String renderedText() { + return this.isLink() ? this.linkTitle : this.fullText; + } + + public boolean isLink() { + return this.linkTitle != null; + } + + public String getLinkUrl() { + if (!this.isLink()) { + throw new IllegalStateException("Not a link: " + this); + } else { + return this.linkUrl; + } + } + + public static TextRenderingUtils.LineSegment link(String linkTitle, String linkUrl) { + return new TextRenderingUtils.LineSegment(null, linkTitle, linkUrl); + } + + @VisibleForTesting + protected static TextRenderingUtils.LineSegment text(String fullText) { + return new TextRenderingUtils.LineSegment(fullText); + } + } +} diff --git a/com/mojang/realmsclient/util/UploadTokenCache.java b/com/mojang/realmsclient/util/UploadTokenCache.java new file mode 100644 index 00000000..968d23bf --- /dev/null +++ b/com/mojang/realmsclient/util/UploadTokenCache.java @@ -0,0 +1,23 @@ +package com.mojang.realmsclient.util; + +import it.unimi.dsi.fastutil.longs.Long2ObjectMap; +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class UploadTokenCache { + private static final Long2ObjectMap TOKEN_CACHE = new Long2ObjectOpenHashMap<>(); + + public static String get(long worldId) { + return TOKEN_CACHE.get(worldId); + } + + public static void invalidate(long worldId) { + TOKEN_CACHE.remove(worldId); + } + + public static void put(long worldId, String token) { + TOKEN_CACHE.put(worldId, token); + } +} diff --git a/com/mojang/realmsclient/util/WorldGenerationInfo.java b/com/mojang/realmsclient/util/WorldGenerationInfo.java new file mode 100644 index 00000000..954967fb --- /dev/null +++ b/com/mojang/realmsclient/util/WorldGenerationInfo.java @@ -0,0 +1,9 @@ +package com.mojang.realmsclient.util; + +import java.util.Set; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public record WorldGenerationInfo(String seed, LevelType levelType, boolean generateStructures, Set experiments) { +} diff --git a/com/mojang/realmsclient/util/package-info.java b/com/mojang/realmsclient/util/package-info.java new file mode 100644 index 00000000..d03b4144 --- /dev/null +++ b/com/mojang/realmsclient/util/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.util; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/com/mojang/realmsclient/util/task/CloseServerTask.java b/com/mojang/realmsclient/util/task/CloseServerTask.java new file mode 100644 index 00000000..164c1b63 --- /dev/null +++ b/com/mojang/realmsclient/util/task/CloseServerTask.java @@ -0,0 +1,62 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.gui.screens.RealmsConfigureWorldScreen; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class CloseServerTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.configure.world.closing"); + private final RealmsServer serverData; + private final RealmsConfigureWorldScreen configureScreen; + + public CloseServerTask(RealmsServer serverData, RealmsConfigureWorldScreen configureScreen) { + this.serverData = serverData; + this.configureScreen = configureScreen; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + for (int i = 0; i < 25; i++) { + if (this.aborted()) { + return; + } + + try { + boolean bl = realmsClient.close(this.serverData.id); + if (bl) { + this.configureScreen.stateChanged(); + this.serverData.state = RealmsServer.State.CLOSED; + setScreen(this.configureScreen); + break; + } + } catch (RetryCallException var4) { + if (this.aborted()) { + return; + } + + pause(var4.delaySeconds); + } catch (Exception var5) { + if (this.aborted()) { + return; + } + + LOGGER.error("Failed to close server", (Throwable)var5); + this.error(var5); + } + } + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/ConnectTask.java b/com/mojang/realmsclient/util/task/ConnectTask.java new file mode 100644 index 00000000..2e47ea06 --- /dev/null +++ b/com/mojang/realmsclient/util/task/ConnectTask.java @@ -0,0 +1,46 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsServerAddress; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.multiplayer.resolver.ServerAddress; +import net.minecraft.network.chat.Component; +import net.minecraft.realms.RealmsConnect; + +@Environment(EnvType.CLIENT) +public class ConnectTask extends LongRunningTask { + private static final Component TITLE = Component.translatable("mco.connect.connecting"); + private final RealmsConnect realmsConnect; + private final RealmsServer server; + private final RealmsServerAddress address; + + public ConnectTask(Screen onlineScreen, RealmsServer server, RealmsServerAddress address) { + this.server = server; + this.address = address; + this.realmsConnect = new RealmsConnect(onlineScreen); + } + + public void run() { + this.realmsConnect.connect(this.server, ServerAddress.parseString(this.address.address)); + } + + @Override + public void abortTask() { + super.abortTask(); + this.realmsConnect.abort(); + Minecraft.getInstance().getDownloadedPackSource().cleanupAfterDisconnect(); + } + + @Override + public void tick() { + this.realmsConnect.tick(); + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/CreateSnapshotRealmTask.java b/com/mojang/realmsclient/util/task/CreateSnapshotRealmTask.java new file mode 100644 index 00000000..143030c3 --- /dev/null +++ b/com/mojang/realmsclient/util/task/CreateSnapshotRealmTask.java @@ -0,0 +1,86 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.gui.screens.RealmsResetWorldScreen; +import com.mojang.realmsclient.util.WorldGenerationInfo; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class CreateSnapshotRealmTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.snapshot.creating"); + private final long parentId; + private final WorldGenerationInfo generationInfo; + private final String name; + private final String description; + private final RealmsMainScreen realmsMainScreen; + @Nullable + private RealmCreationTask creationTask; + @Nullable + private ResettingGeneratedWorldTask generateWorldTask; + + public CreateSnapshotRealmTask(RealmsMainScreen realmsMainScreen, long parentId, WorldGenerationInfo generationInfo, String name, String description) { + this.parentId = parentId; + this.generationInfo = generationInfo; + this.name = name; + this.description = description; + this.realmsMainScreen = realmsMainScreen; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + try { + RealmsServer realmsServer = realmsClient.createSnapshotRealm(this.parentId); + this.creationTask = new RealmCreationTask(realmsServer.id, this.name, this.description); + this.generateWorldTask = new ResettingGeneratedWorldTask( + this.generationInfo, + realmsServer.id, + RealmsResetWorldScreen.CREATE_WORLD_RESET_TASK_TITLE, + () -> Minecraft.getInstance().execute(() -> RealmsMainScreen.play(realmsServer, this.realmsMainScreen, true)) + ); + if (this.aborted()) { + return; + } + + this.creationTask.run(); + if (this.aborted()) { + return; + } + + this.generateWorldTask.run(); + } catch (RealmsServiceException var3) { + LOGGER.error("Couldn't create snapshot world", (Throwable)var3); + this.error(var3); + } catch (Exception var4) { + LOGGER.error("Couldn't create snapshot world", (Throwable)var4); + this.error(var4); + } + } + + @Override + public Component getTitle() { + return TITLE; + } + + @Override + public void abortTask() { + super.abortTask(); + if (this.creationTask != null) { + this.creationTask.abortTask(); + } + + if (this.generateWorldTask != null) { + this.generateWorldTask.abortTask(); + } + } +} diff --git a/com/mojang/realmsclient/util/task/DownloadTask.java b/com/mojang/realmsclient/util/task/DownloadTask.java new file mode 100644 index 00000000..4ed2fb5f --- /dev/null +++ b/com/mojang/realmsclient/util/task/DownloadTask.java @@ -0,0 +1,81 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.WorldDownload; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.gui.screens.RealmsDownloadLatestWorldScreen; +import com.mojang.realmsclient.gui.screens.RealmsGenericErrorScreen; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class DownloadTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.download.preparing"); + private final long realmId; + private final int slot; + private final Screen lastScreen; + private final String downloadName; + + public DownloadTask(long worldId, int slot, String downloadName, Screen lastScreen) { + this.realmId = worldId; + this.slot = slot; + this.lastScreen = lastScreen; + this.downloadName = downloadName; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + int i = 0; + + while (i < 25) { + try { + if (this.aborted()) { + return; + } + + WorldDownload worldDownload = realmsClient.requestDownloadInfo(this.realmId, this.slot); + pause(1L); + if (this.aborted()) { + return; + } + + setScreen(new RealmsDownloadLatestWorldScreen(this.lastScreen, worldDownload, this.downloadName, bl -> {})); + return; + } catch (RetryCallException var4) { + if (this.aborted()) { + return; + } + + pause(var4.delaySeconds); + i++; + } catch (RealmsServiceException var5) { + if (this.aborted()) { + return; + } + + LOGGER.error("Couldn't download world data", (Throwable)var5); + setScreen(new RealmsGenericErrorScreen(var5, this.lastScreen)); + return; + } catch (Exception var6) { + if (this.aborted()) { + return; + } + + LOGGER.error("Couldn't download world data", (Throwable)var6); + this.error(var6); + return; + } + } + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/GetServerDetailsTask.java b/com/mojang/realmsclient/util/task/GetServerDetailsTask.java new file mode 100644 index 00000000..c287e714 --- /dev/null +++ b/com/mojang/realmsclient/util/task/GetServerDetailsTask.java @@ -0,0 +1,147 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.dto.RealmsServerAddress; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.gui.screens.RealmsBrokenWorldScreen; +import com.mojang.realmsclient.gui.screens.RealmsGenericErrorScreen; +import com.mojang.realmsclient.gui.screens.RealmsLongRunningMcoTaskScreen; +import com.mojang.realmsclient.gui.screens.RealmsLongRunningMcoTickTaskScreen; +import com.mojang.realmsclient.gui.screens.RealmsPopups; +import com.mojang.realmsclient.gui.screens.RealmsTermsScreen; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.UUID; +import java.util.concurrent.CancellationException; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeoutException; +import java.util.function.Function; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.components.PopupScreen; +import net.minecraft.client.gui.screens.GenericMessageScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.resources.server.DownloadedPackSource; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class GetServerDetailsTask extends LongRunningTask { + private static final Component APPLYING_PACK_TEXT = Component.translatable("multiplayer.applyingPack"); + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.connect.connecting"); + private final RealmsServer server; + private final Screen lastScreen; + + public GetServerDetailsTask(Screen lastScreen, RealmsServer server) { + this.lastScreen = lastScreen; + this.server = server; + } + + public void run() { + RealmsServerAddress realmsServerAddress; + try { + realmsServerAddress = this.fetchServerAddress(); + } catch (CancellationException var4) { + LOGGER.info("User aborted connecting to realms"); + return; + } catch (RealmsServiceException var5) { + switch (var5.realmsError.errorCode()) { + case 6002: + setScreen(new RealmsTermsScreen(this.lastScreen, this.server)); + return; + case 6006: + boolean bl = Minecraft.getInstance().isLocalPlayer(this.server.ownerUUID); + setScreen( + (Screen)(bl + ? new RealmsBrokenWorldScreen(this.lastScreen, this.server.id, this.server.isMinigameActive()) + : new RealmsGenericErrorScreen( + Component.translatable("mco.brokenworld.nonowner.title"), Component.translatable("mco.brokenworld.nonowner.error"), this.lastScreen + )) + ); + return; + default: + this.error(var5); + LOGGER.error("Couldn't connect to world", (Throwable)var5); + return; + } + } catch (TimeoutException var6) { + this.error(Component.translatable("mco.errorMessage.connectionFailure")); + return; + } catch (Exception var7) { + LOGGER.error("Couldn't connect to world", (Throwable)var7); + this.error(var7); + return; + } + + boolean bl2 = realmsServerAddress.resourcePackUrl != null && realmsServerAddress.resourcePackHash != null; + Screen screen = (Screen)(bl2 + ? this.resourcePackDownloadConfirmationScreen(realmsServerAddress, generatePackId(this.server), this::connectScreen) + : this.connectScreen(realmsServerAddress)); + setScreen(screen); + } + + private static UUID generatePackId(RealmsServer realmsServer) { + return realmsServer.minigameName != null + ? UUID.nameUUIDFromBytes(("minigame:" + realmsServer.minigameName).getBytes(StandardCharsets.UTF_8)) + : UUID.nameUUIDFromBytes(("realms:" + realmsServer.name + ":" + realmsServer.activeSlot).getBytes(StandardCharsets.UTF_8)); + } + + @Override + public Component getTitle() { + return TITLE; + } + + private RealmsServerAddress fetchServerAddress() throws RealmsServiceException, TimeoutException, CancellationException { + RealmsClient realmsClient = RealmsClient.create(); + + for (int i = 0; i < 40; i++) { + if (this.aborted()) { + throw new CancellationException(); + } + + try { + return realmsClient.join(this.server.id); + } catch (RetryCallException var4) { + pause(var4.delaySeconds); + } + } + + throw new TimeoutException(); + } + + public RealmsLongRunningMcoTaskScreen connectScreen(RealmsServerAddress serverAddress) { + return new RealmsLongRunningMcoTickTaskScreen(this.lastScreen, new ConnectTask(this.lastScreen, this.server, serverAddress)); + } + + private PopupScreen resourcePackDownloadConfirmationScreen(RealmsServerAddress serverAddress, UUID packId, Function connectScreen) { + Component component = Component.translatable("mco.configure.world.resourcepack.question"); + return RealmsPopups.infoPopupScreen(this.lastScreen, component, popupScreen -> { + setScreen(new GenericMessageScreen(APPLYING_PACK_TEXT)); + this.scheduleResourcePackDownload(serverAddress, packId).thenRun(() -> setScreen((Screen)connectScreen.apply(serverAddress))).exceptionally(throwable -> { + Minecraft.getInstance().getDownloadedPackSource().cleanupAfterDisconnect(); + LOGGER.error("Failed to download resource pack from {}", serverAddress, throwable); + setScreen(new RealmsGenericErrorScreen(Component.translatable("mco.download.resourcePack.fail"), this.lastScreen)); + return null; + }); + }); + } + + private CompletableFuture scheduleResourcePackDownload(RealmsServerAddress serverAddress, UUID id) { + try { + DownloadedPackSource downloadedPackSource = Minecraft.getInstance().getDownloadedPackSource(); + CompletableFuture completableFuture = downloadedPackSource.waitForPackFeedback(id); + downloadedPackSource.allowServerPacks(); + downloadedPackSource.pushPack(id, new URL(serverAddress.resourcePackUrl), serverAddress.resourcePackHash); + return completableFuture; + } catch (Exception var5) { + CompletableFuture completableFuturex = new CompletableFuture(); + completableFuturex.completeExceptionally(var5); + return completableFuturex; + } + } +} diff --git a/com/mojang/realmsclient/util/task/LongRunningTask.java b/com/mojang/realmsclient/util/task/LongRunningTask.java new file mode 100644 index 00000000..ff9d635f --- /dev/null +++ b/com/mojang/realmsclient/util/task/LongRunningTask.java @@ -0,0 +1,68 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.gui.screens.RealmsGenericErrorScreen; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.TitleScreen; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public abstract class LongRunningTask implements Runnable { + protected static final int NUMBER_OF_RETRIES = 25; + private static final Logger LOGGER = LogUtils.getLogger(); + private boolean aborted = false; + + protected static void pause(long seconds) { + try { + Thread.sleep(seconds * 1000L); + } catch (InterruptedException var3) { + Thread.currentThread().interrupt(); + LOGGER.error("", (Throwable)var3); + } + } + + public static void setScreen(Screen screen) { + Minecraft minecraft = Minecraft.getInstance(); + minecraft.execute(() -> minecraft.setScreen(screen)); + } + + protected void error(Component message) { + this.abortTask(); + Minecraft minecraft = Minecraft.getInstance(); + minecraft.execute(() -> minecraft.setScreen(new RealmsGenericErrorScreen(message, new RealmsMainScreen(new TitleScreen())))); + } + + protected void error(Exception exception) { + if (exception instanceof RealmsServiceException realmsServiceException) { + this.error(realmsServiceException.realmsError.errorMessage()); + } else { + this.error(Component.literal(exception.getMessage())); + } + } + + protected void error(RealmsServiceException exception) { + this.error(exception.realmsError.errorMessage()); + } + + public abstract Component getTitle(); + + public boolean aborted() { + return this.aborted; + } + + public void tick() { + } + + public void init() { + } + + public void abortTask() { + this.aborted = true; + } +} diff --git a/com/mojang/realmsclient/util/task/OpenServerTask.java b/com/mojang/realmsclient/util/task/OpenServerTask.java new file mode 100644 index 00000000..b060f304 --- /dev/null +++ b/com/mojang/realmsclient/util/task/OpenServerTask.java @@ -0,0 +1,78 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.RealmsMainScreen; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.RealmsServer; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.gui.screens.RealmsConfigureWorldScreen; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class OpenServerTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.configure.world.opening"); + private final RealmsServer serverData; + private final Screen returnScreen; + private final boolean join; + private final Minecraft minecraft; + + public OpenServerTask(RealmsServer serverData, Screen returnScreen, boolean join, Minecraft minecraft) { + this.serverData = serverData; + this.returnScreen = returnScreen; + this.join = join; + this.minecraft = minecraft; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + for (int i = 0; i < 25; i++) { + if (this.aborted()) { + return; + } + + try { + boolean bl = realmsClient.open(this.serverData.id); + if (bl) { + this.minecraft.execute(() -> { + if (this.returnScreen instanceof RealmsConfigureWorldScreen) { + ((RealmsConfigureWorldScreen)this.returnScreen).stateChanged(); + } + + this.serverData.state = RealmsServer.State.OPEN; + if (this.join) { + RealmsMainScreen.play(this.serverData, this.returnScreen); + } else { + this.minecraft.setScreen(this.returnScreen); + } + }); + break; + } + } catch (RetryCallException var4) { + if (this.aborted()) { + return; + } + + pause(var4.delaySeconds); + } catch (Exception var5) { + if (this.aborted()) { + return; + } + + LOGGER.error("Failed to open server", (Throwable)var5); + this.error(var5); + } + } + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/RealmCreationTask.java b/com/mojang/realmsclient/util/task/RealmCreationTask.java new file mode 100644 index 00000000..27470ffe --- /dev/null +++ b/com/mojang/realmsclient/util/task/RealmCreationTask.java @@ -0,0 +1,43 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.exception.RealmsServiceException; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RealmCreationTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.create.world.wait"); + private final String name; + private final String motd; + private final long realmId; + + public RealmCreationTask(long realmId, String name, String motd) { + this.realmId = realmId; + this.name = name; + this.motd = motd; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + try { + realmsClient.initializeRealm(this.realmId, this.name, this.motd); + } catch (RealmsServiceException var3) { + LOGGER.error("Couldn't create world", (Throwable)var3); + this.error(var3); + } catch (Exception var4) { + LOGGER.error("Could not create world", (Throwable)var4); + this.error(var4); + } + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/ResettingGeneratedWorldTask.java b/com/mojang/realmsclient/util/task/ResettingGeneratedWorldTask.java new file mode 100644 index 00000000..6922958f --- /dev/null +++ b/com/mojang/realmsclient/util/task/ResettingGeneratedWorldTask.java @@ -0,0 +1,23 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.util.WorldGenerationInfo; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; + +@Environment(EnvType.CLIENT) +public class ResettingGeneratedWorldTask extends ResettingWorldTask { + private final WorldGenerationInfo generationInfo; + + public ResettingGeneratedWorldTask(WorldGenerationInfo generationInfo, long serverId, Component title, Runnable callback) { + super(serverId, title, callback); + this.generationInfo = generationInfo; + } + + @Override + protected void sendResetRequest(RealmsClient client, long serverId) throws RealmsServiceException { + client.resetWorldWithSeed(serverId, this.generationInfo); + } +} diff --git a/com/mojang/realmsclient/util/task/ResettingTemplateWorldTask.java b/com/mojang/realmsclient/util/task/ResettingTemplateWorldTask.java new file mode 100644 index 00000000..4fa688aa --- /dev/null +++ b/com/mojang/realmsclient/util/task/ResettingTemplateWorldTask.java @@ -0,0 +1,23 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.WorldTemplate; +import com.mojang.realmsclient.exception.RealmsServiceException; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; + +@Environment(EnvType.CLIENT) +public class ResettingTemplateWorldTask extends ResettingWorldTask { + private final WorldTemplate template; + + public ResettingTemplateWorldTask(WorldTemplate template, long serverId, Component title, Runnable callback) { + super(serverId, title, callback); + this.template = template; + } + + @Override + protected void sendResetRequest(RealmsClient client, long serverId) throws RealmsServiceException { + client.resetWorldWithTemplate(serverId, this.template.id); + } +} diff --git a/com/mojang/realmsclient/util/task/ResettingWorldTask.java b/com/mojang/realmsclient/util/task/ResettingWorldTask.java new file mode 100644 index 00000000..27125dd9 --- /dev/null +++ b/com/mojang/realmsclient/util/task/ResettingWorldTask.java @@ -0,0 +1,67 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.exception.RetryCallException; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public abstract class ResettingWorldTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private final long serverId; + private final Component title; + private final Runnable callback; + + public ResettingWorldTask(long serverId, Component title, Runnable callback) { + this.serverId = serverId; + this.title = title; + this.callback = callback; + } + + protected abstract void sendResetRequest(RealmsClient client, long serverId) throws RealmsServiceException; + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + int i = 0; + + while (i < 25) { + try { + if (this.aborted()) { + return; + } + + this.sendResetRequest(realmsClient, this.serverId); + if (this.aborted()) { + return; + } + + this.callback.run(); + return; + } catch (RetryCallException var4) { + if (this.aborted()) { + return; + } + + pause(var4.delaySeconds); + i++; + } catch (Exception var5) { + if (this.aborted()) { + return; + } + + LOGGER.error("Couldn't reset world"); + this.error(var5); + return; + } + } + } + + @Override + public Component getTitle() { + return this.title; + } +} diff --git a/com/mojang/realmsclient/util/task/RestoreTask.java b/com/mojang/realmsclient/util/task/RestoreTask.java new file mode 100644 index 00000000..a25ca9a7 --- /dev/null +++ b/com/mojang/realmsclient/util/task/RestoreTask.java @@ -0,0 +1,78 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.Backup; +import com.mojang.realmsclient.exception.RealmsServiceException; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.gui.screens.RealmsConfigureWorldScreen; +import com.mojang.realmsclient.gui.screens.RealmsGenericErrorScreen; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class RestoreTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.backup.restoring"); + private final Backup backup; + private final long realmId; + private final RealmsConfigureWorldScreen lastScreen; + + public RestoreTask(Backup backup, long worldId, RealmsConfigureWorldScreen lastScreen) { + this.backup = backup; + this.realmId = worldId; + this.lastScreen = lastScreen; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + int i = 0; + + while (i < 25) { + try { + if (this.aborted()) { + return; + } + + realmsClient.restoreWorld(this.realmId, this.backup.backupId); + pause(1L); + if (this.aborted()) { + return; + } + + setScreen(this.lastScreen.getNewScreen()); + return; + } catch (RetryCallException var4) { + if (this.aborted()) { + return; + } + + pause(var4.delaySeconds); + i++; + } catch (RealmsServiceException var5) { + if (this.aborted()) { + return; + } + + LOGGER.error("Couldn't restore backup", (Throwable)var5); + setScreen(new RealmsGenericErrorScreen(var5, this.lastScreen)); + return; + } catch (Exception var6) { + if (this.aborted()) { + return; + } + + LOGGER.error("Couldn't restore backup", (Throwable)var6); + this.error(var6); + return; + } + } + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/SwitchMinigameTask.java b/com/mojang/realmsclient/util/task/SwitchMinigameTask.java new file mode 100644 index 00000000..f4ccd121 --- /dev/null +++ b/com/mojang/realmsclient/util/task/SwitchMinigameTask.java @@ -0,0 +1,61 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.dto.WorldTemplate; +import com.mojang.realmsclient.exception.RetryCallException; +import com.mojang.realmsclient.gui.screens.RealmsConfigureWorldScreen; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class SwitchMinigameTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.minigame.world.starting.screen.title"); + private final long realmId; + private final WorldTemplate worldTemplate; + private final RealmsConfigureWorldScreen lastScreen; + + public SwitchMinigameTask(long worldId, WorldTemplate worldTemplate, RealmsConfigureWorldScreen lastScreen) { + this.realmId = worldId; + this.worldTemplate = worldTemplate; + this.lastScreen = lastScreen; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + for (int i = 0; i < 25; i++) { + try { + if (this.aborted()) { + return; + } + + if (realmsClient.putIntoMinigameMode(this.realmId, this.worldTemplate.id)) { + setScreen(this.lastScreen); + break; + } + } catch (RetryCallException var4) { + if (this.aborted()) { + return; + } + + pause(var4.delaySeconds); + } catch (Exception var5) { + if (this.aborted()) { + return; + } + + LOGGER.error("Couldn't start mini game!"); + this.error(var5); + } + } + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/SwitchSlotTask.java b/com/mojang/realmsclient/util/task/SwitchSlotTask.java new file mode 100644 index 00000000..9ac03d4c --- /dev/null +++ b/com/mojang/realmsclient/util/task/SwitchSlotTask.java @@ -0,0 +1,59 @@ +package com.mojang.realmsclient.util.task; + +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.exception.RetryCallException; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class SwitchSlotTask extends LongRunningTask { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final Component TITLE = Component.translatable("mco.minigame.world.slot.screen.title"); + private final long realmId; + private final int slot; + private final Runnable callback; + + public SwitchSlotTask(long worldId, int slot, Runnable callback) { + this.realmId = worldId; + this.slot = slot; + this.callback = callback; + } + + public void run() { + RealmsClient realmsClient = RealmsClient.create(); + + for (int i = 0; i < 25; i++) { + try { + if (this.aborted()) { + return; + } + + if (realmsClient.switchSlot(this.realmId, this.slot)) { + this.callback.run(); + break; + } + } catch (RetryCallException var4) { + if (this.aborted()) { + return; + } + + pause(var4.delaySeconds); + } catch (Exception var5) { + if (this.aborted()) { + return; + } + + LOGGER.error("Couldn't switch world!"); + this.error(var5); + } + } + } + + @Override + public Component getTitle() { + return TITLE; + } +} diff --git a/com/mojang/realmsclient/util/task/package-info.java b/com/mojang/realmsclient/util/task/package-info.java new file mode 100644 index 00000000..719d509e --- /dev/null +++ b/com/mojang/realmsclient/util/task/package-info.java @@ -0,0 +1,11 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +@Environment(EnvType.CLIENT) +package com.mojang.realmsclient.util.task; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/data/.mcassetsroot b/data/.mcassetsroot new file mode 100644 index 00000000..e69de29b diff --git a/data/minecraft/advancement/adventure/adventuring_time.json b/data/minecraft/advancement/adventure/adventuring_time.json new file mode 100644 index 00000000..698b3745 --- /dev/null +++ b/data/minecraft/advancement/adventure/adventuring_time.json @@ -0,0 +1,1031 @@ +{ + "parent": "minecraft:adventure/sleep_in_bed", + "criteria": { + "minecraft:badlands": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:badlands" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:bamboo_jungle": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:bamboo_jungle" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:beach": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:beach" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:birch_forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:birch_forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:cherry_grove": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:cherry_grove" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:cold_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:cold_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:dark_forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:dark_forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:deep_cold_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:deep_cold_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:deep_dark": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:deep_dark" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:deep_frozen_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:deep_frozen_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:deep_lukewarm_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:deep_lukewarm_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:deep_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:deep_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:desert": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:desert" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:dripstone_caves": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:dripstone_caves" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:eroded_badlands": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:eroded_badlands" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:flower_forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:flower_forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:frozen_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:frozen_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:frozen_peaks": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:frozen_peaks" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:frozen_river": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:frozen_river" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:grove": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:grove" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:ice_spikes": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:ice_spikes" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:jagged_peaks": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:jagged_peaks" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:jungle": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:jungle" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:lukewarm_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:lukewarm_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:lush_caves": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:lush_caves" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:mangrove_swamp": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:mangrove_swamp" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:meadow": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:meadow" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:mushroom_fields": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:mushroom_fields" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:old_growth_birch_forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:old_growth_birch_forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:old_growth_pine_taiga": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:old_growth_pine_taiga" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:old_growth_spruce_taiga": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:old_growth_spruce_taiga" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:plains": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:plains" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:river": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:river" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:savanna": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:savanna" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:savanna_plateau": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:savanna_plateau" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:snowy_beach": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:snowy_beach" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:snowy_plains": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:snowy_plains" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:snowy_slopes": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:snowy_slopes" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:snowy_taiga": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:snowy_taiga" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:sparse_jungle": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:sparse_jungle" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:stony_peaks": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:stony_peaks" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:stony_shore": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:stony_shore" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:sunflower_plains": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:sunflower_plains" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:swamp": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:swamp" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:taiga": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:taiga" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:warm_ocean": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:warm_ocean" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:windswept_forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:windswept_forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:windswept_gravelly_hills": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:windswept_gravelly_hills" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:windswept_hills": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:windswept_hills" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:windswept_savanna": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:windswept_savanna" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:wooded_badlands": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:wooded_badlands" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.adventuring_time.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:diamond_boots" + }, + "title": { + "translate": "advancements.adventure.adventuring_time.title" + } + }, + "requirements": [ + [ + "minecraft:mushroom_fields" + ], + [ + "minecraft:deep_frozen_ocean" + ], + [ + "minecraft:frozen_ocean" + ], + [ + "minecraft:deep_cold_ocean" + ], + [ + "minecraft:cold_ocean" + ], + [ + "minecraft:deep_ocean" + ], + [ + "minecraft:ocean" + ], + [ + "minecraft:deep_lukewarm_ocean" + ], + [ + "minecraft:lukewarm_ocean" + ], + [ + "minecraft:warm_ocean" + ], + [ + "minecraft:stony_shore" + ], + [ + "minecraft:swamp" + ], + [ + "minecraft:mangrove_swamp" + ], + [ + "minecraft:snowy_slopes" + ], + [ + "minecraft:snowy_plains" + ], + [ + "minecraft:snowy_beach" + ], + [ + "minecraft:windswept_gravelly_hills" + ], + [ + "minecraft:grove" + ], + [ + "minecraft:windswept_hills" + ], + [ + "minecraft:snowy_taiga" + ], + [ + "minecraft:windswept_forest" + ], + [ + "minecraft:taiga" + ], + [ + "minecraft:plains" + ], + [ + "minecraft:meadow" + ], + [ + "minecraft:beach" + ], + [ + "minecraft:forest" + ], + [ + "minecraft:old_growth_spruce_taiga" + ], + [ + "minecraft:flower_forest" + ], + [ + "minecraft:birch_forest" + ], + [ + "minecraft:dark_forest" + ], + [ + "minecraft:savanna_plateau" + ], + [ + "minecraft:savanna" + ], + [ + "minecraft:jungle" + ], + [ + "minecraft:badlands" + ], + [ + "minecraft:desert" + ], + [ + "minecraft:wooded_badlands" + ], + [ + "minecraft:jagged_peaks" + ], + [ + "minecraft:stony_peaks" + ], + [ + "minecraft:frozen_river" + ], + [ + "minecraft:river" + ], + [ + "minecraft:ice_spikes" + ], + [ + "minecraft:old_growth_pine_taiga" + ], + [ + "minecraft:sunflower_plains" + ], + [ + "minecraft:old_growth_birch_forest" + ], + [ + "minecraft:sparse_jungle" + ], + [ + "minecraft:bamboo_jungle" + ], + [ + "minecraft:eroded_badlands" + ], + [ + "minecraft:windswept_savanna" + ], + [ + "minecraft:cherry_grove" + ], + [ + "minecraft:frozen_peaks" + ], + [ + "minecraft:dripstone_caves" + ], + [ + "minecraft:lush_caves" + ], + [ + "minecraft:deep_dark" + ] + ], + "rewards": { + "experience": 500 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/arbalistic.json b/data/minecraft/advancement/adventure/arbalistic.json new file mode 100644 index 00000000..e5618874 --- /dev/null +++ b/data/minecraft/advancement/adventure/arbalistic.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:adventure/ol_betsy", + "criteria": { + "arbalistic": { + "conditions": { + "unique_entity_types": 5 + }, + "trigger": "minecraft:killed_by_crossbow" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.arbalistic.description" + }, + "frame": "challenge", + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:crossbow" + }, + "title": { + "translate": "advancements.adventure.arbalistic.title" + } + }, + "requirements": [ + [ + "arbalistic" + ] + ], + "rewards": { + "experience": 85 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/avoid_vibration.json b/data/minecraft/advancement/adventure/avoid_vibration.json new file mode 100644 index 00000000..4eeb713a --- /dev/null +++ b/data/minecraft/advancement/adventure/avoid_vibration.json @@ -0,0 +1,26 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "avoid_vibration": { + "trigger": "minecraft:avoid_vibration" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.avoid_vibration.description" + }, + "icon": { + "count": 1, + "id": "minecraft:sculk_sensor" + }, + "title": { + "translate": "advancements.adventure.avoid_vibration.title" + } + }, + "requirements": [ + [ + "avoid_vibration" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/blowback.json b/data/minecraft/advancement/adventure/blowback.json new file mode 100644 index 00000000..24260939 --- /dev/null +++ b/data/minecraft/advancement/adventure/blowback.json @@ -0,0 +1,52 @@ +{ + "parent": "minecraft:adventure/minecraft_trials_edition", + "criteria": { + "blowback": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:breeze" + } + } + ], + "killing_blow": { + "direct_entity": { + "type": "minecraft:breeze_wind_charge" + }, + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + } + ] + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.blowback.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:wind_charge" + }, + "title": { + "translate": "advancements.adventure.blowback.title" + } + }, + "requirements": [ + [ + "blowback" + ] + ], + "rewards": { + "experience": 40 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/brush_armadillo.json b/data/minecraft/advancement/adventure/brush_armadillo.json new file mode 100644 index 00000000..ac8d193d --- /dev/null +++ b/data/minecraft/advancement/adventure/brush_armadillo.json @@ -0,0 +1,40 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "brush_armadillo": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:armadillo" + } + } + ], + "item": { + "items": "minecraft:brush" + } + }, + "trigger": "minecraft:player_interacted_with_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.brush_armadillo.description" + }, + "icon": { + "count": 1, + "id": "minecraft:armadillo_scute" + }, + "title": { + "translate": "advancements.adventure.brush_armadillo.title" + } + }, + "requirements": [ + [ + "brush_armadillo" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/bullseye.json b/data/minecraft/advancement/adventure/bullseye.json new file mode 100644 index 00000000..2d635715 --- /dev/null +++ b/data/minecraft/advancement/adventure/bullseye.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:adventure/shoot_arrow", + "criteria": { + "bullseye": { + "conditions": { + "projectile": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "distance": { + "horizontal": { + "min": 30.0 + } + } + } + } + ], + "signal_strength": 15 + }, + "trigger": "minecraft:target_hit" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.bullseye.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:target" + }, + "title": { + "translate": "advancements.adventure.bullseye.title" + } + }, + "requirements": [ + [ + "bullseye" + ] + ], + "rewards": { + "experience": 50 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/craft_decorated_pot_using_only_sherds.json b/data/minecraft/advancement/adventure/craft_decorated_pot_using_only_sherds.json new file mode 100644 index 00000000..8f661b4f --- /dev/null +++ b/data/minecraft/advancement/adventure/craft_decorated_pot_using_only_sherds.json @@ -0,0 +1,51 @@ +{ + "parent": "minecraft:adventure/salvage_sherd", + "criteria": { + "pot_crafted_using_only_sherds": { + "conditions": { + "ingredients": [ + { + "items": "#minecraft:decorated_pot_sherds" + }, + { + "items": "#minecraft:decorated_pot_sherds" + }, + { + "items": "#minecraft:decorated_pot_sherds" + }, + { + "items": "#minecraft:decorated_pot_sherds" + } + ], + "recipe_id": "minecraft:decorated_pot" + }, + "trigger": "minecraft:recipe_crafted" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.craft_decorated_pot_using_only_sherds.description" + }, + "icon": { + "components": { + "minecraft:pot_decorations": [ + "minecraft:brick", + "minecraft:heart_pottery_sherd", + "minecraft:brick", + "minecraft:explorer_pottery_sherd" + ] + }, + "count": 1, + "id": "minecraft:decorated_pot" + }, + "title": { + "translate": "advancements.adventure.craft_decorated_pot_using_only_sherds.title" + } + }, + "requirements": [ + [ + "pot_crafted_using_only_sherds" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/crafters_crafting_crafters.json b/data/minecraft/advancement/adventure/crafters_crafting_crafters.json new file mode 100644 index 00000000..5ffe36e5 --- /dev/null +++ b/data/minecraft/advancement/adventure/crafters_crafting_crafters.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "crafter_crafted_crafter": { + "conditions": { + "recipe_id": "minecraft:crafter" + }, + "trigger": "minecraft:crafter_recipe_crafted" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.crafters_crafting_crafters.description" + }, + "icon": { + "count": 1, + "id": "minecraft:crafter" + }, + "title": { + "translate": "advancements.adventure.crafters_crafting_crafters.title" + } + }, + "requirements": [ + [ + "crafter_crafted_crafter" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/fall_from_world_height.json b/data/minecraft/advancement/adventure/fall_from_world_height.json new file mode 100644 index 00000000..8af22841 --- /dev/null +++ b/data/minecraft/advancement/adventure/fall_from_world_height.json @@ -0,0 +1,55 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "fall_from_world_height": { + "conditions": { + "distance": { + "y": { + "min": 379.0 + } + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "position": { + "y": { + "max": -59.0 + } + } + } + } + } + ], + "start_position": { + "position": { + "y": { + "min": 319.0 + } + } + } + }, + "trigger": "minecraft:fall_from_height" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.fall_from_world_height.description" + }, + "icon": { + "count": 1, + "id": "minecraft:water_bucket" + }, + "title": { + "translate": "advancements.adventure.fall_from_world_height.title" + } + }, + "requirements": [ + [ + "fall_from_world_height" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/hero_of_the_village.json b/data/minecraft/advancement/adventure/hero_of_the_village.json new file mode 100644 index 00000000..21a4bb0f --- /dev/null +++ b/data/minecraft/advancement/adventure/hero_of_the_village.json @@ -0,0 +1,69 @@ +{ + "parent": "minecraft:adventure/voluntary_exile", + "criteria": { + "hero_of_the_village": { + "trigger": "minecraft:hero_of_the_village" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.hero_of_the_village.description" + }, + "frame": "challenge", + "hidden": true, + "icon": { + "components": { + "minecraft:banner_patterns": [ + { + "color": "cyan", + "pattern": "minecraft:rhombus" + }, + { + "color": "light_gray", + "pattern": "minecraft:stripe_bottom" + }, + { + "color": "gray", + "pattern": "minecraft:stripe_center" + }, + { + "color": "light_gray", + "pattern": "minecraft:border" + }, + { + "color": "black", + "pattern": "minecraft:stripe_middle" + }, + { + "color": "light_gray", + "pattern": "minecraft:half_horizontal" + }, + { + "color": "light_gray", + "pattern": "minecraft:circle" + }, + { + "color": "black", + "pattern": "minecraft:border" + } + ], + "minecraft:hide_additional_tooltip": {}, + "minecraft:item_name": "{\"color\":\"gold\",\"translate\":\"block.minecraft.ominous_banner\"}" + }, + "count": 1, + "id": "minecraft:white_banner" + }, + "title": { + "translate": "advancements.adventure.hero_of_the_village.title" + } + }, + "requirements": [ + [ + "hero_of_the_village" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/honey_block_slide.json b/data/minecraft/advancement/adventure/honey_block_slide.json new file mode 100644 index 00000000..e665dbdf --- /dev/null +++ b/data/minecraft/advancement/adventure/honey_block_slide.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "honey_block_slide": { + "conditions": { + "block": "minecraft:honey_block" + }, + "trigger": "minecraft:slide_down_block" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.honey_block_slide.description" + }, + "icon": { + "count": 1, + "id": "minecraft:honey_block" + }, + "title": { + "translate": "advancements.adventure.honey_block_slide.title" + } + }, + "requirements": [ + [ + "honey_block_slide" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/kill_a_mob.json b/data/minecraft/advancement/adventure/kill_a_mob.json new file mode 100644 index 00000000..85ac6c83 --- /dev/null +++ b/data/minecraft/advancement/adventure/kill_a_mob.json @@ -0,0 +1,562 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "minecraft:blaze": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:blaze" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:bogged": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:bogged" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:breeze": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:breeze" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:cave_spider": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:cave_spider" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:creeper": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:creeper" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:drowned": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:drowned" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:elder_guardian": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:elder_guardian" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:ender_dragon": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ender_dragon" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:enderman": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:enderman" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:endermite": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:endermite" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:evoker": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:evoker" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:ghast": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ghast" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:guardian": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:guardian" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:hoglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:hoglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:husk": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:husk" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:magma_cube": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:magma_cube" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:phantom": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:phantom" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:piglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:piglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:piglin_brute": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:piglin_brute" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:pillager": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:pillager" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:ravager": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ravager" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:shulker": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:shulker" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:silverfish": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:silverfish" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:skeleton": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:skeleton" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:slime": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:slime" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:spider": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:spider" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:stray": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:stray" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:vex": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:vex" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:vindicator": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:vindicator" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:witch": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:witch" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:wither": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wither" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:wither_skeleton": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wither_skeleton" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zoglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zoglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zombie": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zombie" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zombie_villager": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zombie_villager" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zombified_piglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zombified_piglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.kill_a_mob.description" + }, + "icon": { + "count": 1, + "id": "minecraft:iron_sword" + }, + "title": { + "translate": "advancements.adventure.kill_a_mob.title" + } + }, + "requirements": [ + [ + "minecraft:blaze", + "minecraft:bogged", + "minecraft:breeze", + "minecraft:cave_spider", + "minecraft:creeper", + "minecraft:drowned", + "minecraft:elder_guardian", + "minecraft:ender_dragon", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:ghast", + "minecraft:guardian", + "minecraft:hoglin", + "minecraft:husk", + "minecraft:magma_cube", + "minecraft:phantom", + "minecraft:piglin", + "minecraft:piglin_brute", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:shulker", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:slime", + "minecraft:spider", + "minecraft:stray", + "minecraft:vex", + "minecraft:vindicator", + "minecraft:witch", + "minecraft:wither_skeleton", + "minecraft:wither", + "minecraft:zoglin", + "minecraft:zombie_villager", + "minecraft:zombie", + "minecraft:zombified_piglin" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/kill_all_mobs.json b/data/minecraft/advancement/adventure/kill_all_mobs.json new file mode 100644 index 00000000..e7ffa09a --- /dev/null +++ b/data/minecraft/advancement/adventure/kill_all_mobs.json @@ -0,0 +1,636 @@ +{ + "parent": "minecraft:adventure/kill_a_mob", + "criteria": { + "minecraft:blaze": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:blaze" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:bogged": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:bogged" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:breeze": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:breeze" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:cave_spider": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:cave_spider" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:creeper": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:creeper" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:drowned": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:drowned" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:elder_guardian": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:elder_guardian" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:ender_dragon": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ender_dragon" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:enderman": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:enderman" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:endermite": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:endermite" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:evoker": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:evoker" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:ghast": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ghast" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:guardian": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:guardian" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:hoglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:hoglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:husk": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:husk" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:magma_cube": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:magma_cube" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:phantom": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:phantom" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:piglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:piglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:piglin_brute": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:piglin_brute" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:pillager": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:pillager" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:ravager": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ravager" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:shulker": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:shulker" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:silverfish": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:silverfish" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:skeleton": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:skeleton" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:slime": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:slime" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:spider": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:spider" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:stray": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:stray" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:vex": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:vex" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:vindicator": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:vindicator" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:witch": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:witch" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:wither": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wither" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:wither_skeleton": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wither_skeleton" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zoglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zoglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zombie": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zombie" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zombie_villager": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zombie_villager" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + }, + "minecraft:zombified_piglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:zombified_piglin" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.kill_all_mobs.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:diamond_sword" + }, + "title": { + "translate": "advancements.adventure.kill_all_mobs.title" + } + }, + "requirements": [ + [ + "minecraft:blaze" + ], + [ + "minecraft:bogged" + ], + [ + "minecraft:breeze" + ], + [ + "minecraft:cave_spider" + ], + [ + "minecraft:creeper" + ], + [ + "minecraft:drowned" + ], + [ + "minecraft:elder_guardian" + ], + [ + "minecraft:ender_dragon" + ], + [ + "minecraft:enderman" + ], + [ + "minecraft:endermite" + ], + [ + "minecraft:evoker" + ], + [ + "minecraft:ghast" + ], + [ + "minecraft:guardian" + ], + [ + "minecraft:hoglin" + ], + [ + "minecraft:husk" + ], + [ + "minecraft:magma_cube" + ], + [ + "minecraft:phantom" + ], + [ + "minecraft:piglin" + ], + [ + "minecraft:piglin_brute" + ], + [ + "minecraft:pillager" + ], + [ + "minecraft:ravager" + ], + [ + "minecraft:shulker" + ], + [ + "minecraft:silverfish" + ], + [ + "minecraft:skeleton" + ], + [ + "minecraft:slime" + ], + [ + "minecraft:spider" + ], + [ + "minecraft:stray" + ], + [ + "minecraft:vex" + ], + [ + "minecraft:vindicator" + ], + [ + "minecraft:witch" + ], + [ + "minecraft:wither_skeleton" + ], + [ + "minecraft:wither" + ], + [ + "minecraft:zoglin" + ], + [ + "minecraft:zombie_villager" + ], + [ + "minecraft:zombie" + ], + [ + "minecraft:zombified_piglin" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/kill_mob_near_sculk_catalyst.json b/data/minecraft/advancement/adventure/kill_mob_near_sculk_catalyst.json new file mode 100644 index 00000000..e7218a4e --- /dev/null +++ b/data/minecraft/advancement/adventure/kill_mob_near_sculk_catalyst.json @@ -0,0 +1,27 @@ +{ + "parent": "minecraft:adventure/kill_a_mob", + "criteria": { + "kill_mob_near_sculk_catalyst": { + "trigger": "minecraft:kill_mob_near_sculk_catalyst" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.kill_mob_near_sculk_catalyst.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:sculk_catalyst" + }, + "title": { + "translate": "advancements.adventure.kill_mob_near_sculk_catalyst.title" + } + }, + "requirements": [ + [ + "kill_mob_near_sculk_catalyst" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/lighten_up.json b/data/minecraft/advancement/adventure/lighten_up.json new file mode 100644 index 00000000..43113974 --- /dev/null +++ b/data/minecraft/advancement/adventure/lighten_up.json @@ -0,0 +1,61 @@ +{ + "parent": "minecraft:adventure/minecraft_trials_edition", + "criteria": { + "lighten_up": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:oxidized_copper_bulb", + "minecraft:weathered_copper_bulb", + "minecraft:exposed_copper_bulb", + "minecraft:waxed_oxidized_copper_bulb", + "minecraft:waxed_weathered_copper_bulb", + "minecraft:waxed_exposed_copper_bulb" + ], + "state": { + "lit": "true" + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:wooden_axe", + "minecraft:golden_axe", + "minecraft:stone_axe", + "minecraft:iron_axe", + "minecraft:diamond_axe", + "minecraft:netherite_axe" + ] + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.lighten_up.description" + }, + "icon": { + "count": 1, + "id": "minecraft:copper_bulb" + }, + "title": { + "translate": "advancements.adventure.lighten_up.title" + } + }, + "requirements": [ + [ + "lighten_up" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/lightning_rod_with_villager_no_fire.json b/data/minecraft/advancement/adventure/lightning_rod_with_villager_no_fire.json new file mode 100644 index 00000000..24160c5d --- /dev/null +++ b/data/minecraft/advancement/adventure/lightning_rod_with_villager_no_fire.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "lightning_rod_with_villager_no_fire": { + "conditions": { + "bystander": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:villager" + } + } + ], + "lightning": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "distance": { + "absolute": { + "max": 30.0 + } + }, + "type_specific": { + "type": "minecraft:lightning", + "blocks_set_on_fire": 0 + } + } + } + ] + }, + "trigger": "minecraft:lightning_strike" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.lightning_rod_with_villager_no_fire.description" + }, + "icon": { + "count": 1, + "id": "minecraft:lightning_rod" + }, + "title": { + "translate": "advancements.adventure.lightning_rod_with_villager_no_fire.title" + } + }, + "requirements": [ + [ + "lightning_rod_with_villager_no_fire" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/minecraft_trials_edition.json b/data/minecraft/advancement/adventure/minecraft_trials_edition.json new file mode 100644 index 00000000..b89cb9d7 --- /dev/null +++ b/data/minecraft/advancement/adventure/minecraft_trials_edition.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "minecraft_trials_edition": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "minecraft:trial_chambers" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.minecraft_trials_edition.description" + }, + "icon": { + "count": 1, + "id": "minecraft:chiseled_tuff" + }, + "title": { + "translate": "advancements.adventure.minecraft_trials_edition.title" + } + }, + "requirements": [ + [ + "minecraft_trials_edition" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/ol_betsy.json b/data/minecraft/advancement/adventure/ol_betsy.json new file mode 100644 index 00000000..410ba6a1 --- /dev/null +++ b/data/minecraft/advancement/adventure/ol_betsy.json @@ -0,0 +1,31 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "shot_crossbow": { + "conditions": { + "item": { + "items": "minecraft:crossbow" + } + }, + "trigger": "minecraft:shot_crossbow" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.ol_betsy.description" + }, + "icon": { + "count": 1, + "id": "minecraft:crossbow" + }, + "title": { + "translate": "advancements.adventure.ol_betsy.title" + } + }, + "requirements": [ + [ + "shot_crossbow" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/overoverkill.json b/data/minecraft/advancement/adventure/overoverkill.json new file mode 100644 index 00000000..46745331 --- /dev/null +++ b/data/minecraft/advancement/adventure/overoverkill.json @@ -0,0 +1,53 @@ +{ + "parent": "minecraft:adventure/minecraft_trials_edition", + "criteria": { + "overoverkill": { + "conditions": { + "damage": { + "type": { + "direct_entity": { + "type": "minecraft:player", + "equipment": { + "mainhand": { + "items": "minecraft:mace" + } + } + }, + "tags": [ + { + "expected": true, + "id": "minecraft:is_player_attack" + } + ] + }, + "dealt": { + "min": 100.0 + } + } + }, + "trigger": "minecraft:player_hurt_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.overoverkill.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:mace" + }, + "title": { + "translate": "advancements.adventure.overoverkill.title" + } + }, + "requirements": [ + [ + "overoverkill" + ] + ], + "rewards": { + "experience": 50 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/play_jukebox_in_meadows.json b/data/minecraft/advancement/adventure/play_jukebox_in_meadows.json new file mode 100644 index 00000000..cc798d43 --- /dev/null +++ b/data/minecraft/advancement/adventure/play_jukebox_in_meadows.json @@ -0,0 +1,47 @@ +{ + "parent": "minecraft:adventure/sleep_in_bed", + "criteria": { + "play_jukebox_in_meadows": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "biomes": "minecraft:meadow", + "block": { + "blocks": "minecraft:jukebox" + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:jukebox_playable": {} + } + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.play_jukebox_in_meadows.description" + }, + "icon": { + "count": 1, + "id": "minecraft:jukebox" + }, + "title": { + "translate": "advancements.adventure.play_jukebox_in_meadows.title" + } + }, + "requirements": [ + [ + "play_jukebox_in_meadows" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/read_power_of_chiseled_bookshelf.json b/data/minecraft/advancement/adventure/read_power_of_chiseled_bookshelf.json new file mode 100644 index 00000000..7de7905e --- /dev/null +++ b/data/minecraft/advancement/adventure/read_power_of_chiseled_bookshelf.json @@ -0,0 +1,184 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "chiseled_bookshelf": { + "conditions": { + "location": [ + { + "block": "minecraft:chiseled_bookshelf", + "condition": "minecraft:block_state_property" + }, + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:location_check", + "offsetZ": 1, + "predicate": { + "block": { + "blocks": "minecraft:comparator", + "state": { + "facing": "north" + } + } + } + }, + { + "condition": "minecraft:location_check", + "offsetZ": -1, + "predicate": { + "block": { + "blocks": "minecraft:comparator", + "state": { + "facing": "south" + } + } + } + }, + { + "condition": "minecraft:location_check", + "offsetX": 1, + "predicate": { + "block": { + "blocks": "minecraft:comparator", + "state": { + "facing": "west" + } + } + } + }, + { + "condition": "minecraft:location_check", + "offsetX": -1, + "predicate": { + "block": { + "blocks": "minecraft:comparator", + "state": { + "facing": "east" + } + } + } + } + ] + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "comparator": { + "conditions": { + "location": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:all_of", + "terms": [ + { + "block": "minecraft:comparator", + "condition": "minecraft:block_state_property", + "properties": { + "facing": "north" + } + }, + { + "condition": "minecraft:location_check", + "offsetZ": -1, + "predicate": { + "block": { + "blocks": "minecraft:chiseled_bookshelf" + } + } + } + ] + }, + { + "condition": "minecraft:all_of", + "terms": [ + { + "block": "minecraft:comparator", + "condition": "minecraft:block_state_property", + "properties": { + "facing": "south" + } + }, + { + "condition": "minecraft:location_check", + "offsetZ": 1, + "predicate": { + "block": { + "blocks": "minecraft:chiseled_bookshelf" + } + } + } + ] + }, + { + "condition": "minecraft:all_of", + "terms": [ + { + "block": "minecraft:comparator", + "condition": "minecraft:block_state_property", + "properties": { + "facing": "west" + } + }, + { + "condition": "minecraft:location_check", + "offsetX": -1, + "predicate": { + "block": { + "blocks": "minecraft:chiseled_bookshelf" + } + } + } + ] + }, + { + "condition": "minecraft:all_of", + "terms": [ + { + "block": "minecraft:comparator", + "condition": "minecraft:block_state_property", + "properties": { + "facing": "east" + } + }, + { + "condition": "minecraft:location_check", + "offsetX": 1, + "predicate": { + "block": { + "blocks": "minecraft:chiseled_bookshelf" + } + } + } + ] + } + ] + } + ] + }, + "trigger": "minecraft:placed_block" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.read_power_from_chiseled_bookshelf.description" + }, + "icon": { + "count": 1, + "id": "minecraft:chiseled_bookshelf" + }, + "title": { + "translate": "advancements.adventure.read_power_from_chiseled_bookshelf.title" + } + }, + "requirements": [ + [ + "chiseled_bookshelf", + "comparator" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/revaulting.json b/data/minecraft/advancement/adventure/revaulting.json new file mode 100644 index 00000000..0c3d0c7a --- /dev/null +++ b/data/minecraft/advancement/adventure/revaulting.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:adventure/under_lock_and_key", + "criteria": { + "revaulting": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "minecraft:vault", + "state": { + "ominous": "true" + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:ominous_trial_key" + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.revaulting.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:ominous_trial_key" + }, + "title": { + "translate": "advancements.adventure.revaulting.title" + } + }, + "requirements": [ + [ + "revaulting" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/root.json b/data/minecraft/advancement/adventure/root.json new file mode 100644 index 00000000..a6b28551 --- /dev/null +++ b/data/minecraft/advancement/adventure/root.json @@ -0,0 +1,32 @@ +{ + "criteria": { + "killed_by_something": { + "trigger": "minecraft:entity_killed_player" + }, + "killed_something": { + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": false, + "background": "minecraft:textures/gui/advancements/backgrounds/adventure.png", + "description": { + "translate": "advancements.adventure.root.description" + }, + "icon": { + "count": 1, + "id": "minecraft:map" + }, + "show_toast": false, + "title": { + "translate": "advancements.adventure.root.title" + } + }, + "requirements": [ + [ + "killed_something", + "killed_by_something" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/salvage_sherd.json b/data/minecraft/advancement/adventure/salvage_sherd.json new file mode 100644 index 00000000..c2ea7aca --- /dev/null +++ b/data/minecraft/advancement/adventure/salvage_sherd.json @@ -0,0 +1,77 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "desert_pyramid": { + "conditions": { + "loot_table": "minecraft:archaeology/desert_pyramid" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "desert_well": { + "conditions": { + "loot_table": "minecraft:archaeology/desert_well" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "has_sherd": { + "conditions": { + "items": [ + { + "items": "#minecraft:decorated_pot_sherds" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "ocean_ruin_cold": { + "conditions": { + "loot_table": "minecraft:archaeology/ocean_ruin_cold" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "ocean_ruin_warm": { + "conditions": { + "loot_table": "minecraft:archaeology/ocean_ruin_warm" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "trail_ruins_common": { + "conditions": { + "loot_table": "minecraft:archaeology/trail_ruins_common" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "trail_ruins_rare": { + "conditions": { + "loot_table": "minecraft:archaeology/trail_ruins_rare" + }, + "trigger": "minecraft:player_generates_container_loot" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.salvage_sherd.description" + }, + "icon": { + "count": 1, + "id": "minecraft:brush" + }, + "title": { + "translate": "advancements.adventure.salvage_sherd.title" + } + }, + "requirements": [ + [ + "desert_pyramid", + "desert_well", + "ocean_ruin_cold", + "ocean_ruin_warm", + "trail_ruins_rare", + "trail_ruins_common" + ], + [ + "has_sherd" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/shoot_arrow.json b/data/minecraft/advancement/adventure/shoot_arrow.json new file mode 100644 index 00000000..5584f990 --- /dev/null +++ b/data/minecraft/advancement/adventure/shoot_arrow.json @@ -0,0 +1,41 @@ +{ + "parent": "minecraft:adventure/kill_a_mob", + "criteria": { + "shot_arrow": { + "conditions": { + "damage": { + "type": { + "direct_entity": { + "type": "#minecraft:arrows" + }, + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + } + ] + } + } + }, + "trigger": "minecraft:player_hurt_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.shoot_arrow.description" + }, + "icon": { + "count": 1, + "id": "minecraft:bow" + }, + "title": { + "translate": "advancements.adventure.shoot_arrow.title" + } + }, + "requirements": [ + [ + "shot_arrow" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/sleep_in_bed.json b/data/minecraft/advancement/adventure/sleep_in_bed.json new file mode 100644 index 00000000..3cd59de5 --- /dev/null +++ b/data/minecraft/advancement/adventure/sleep_in_bed.json @@ -0,0 +1,26 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "slept_in_bed": { + "trigger": "minecraft:slept_in_bed" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.sleep_in_bed.description" + }, + "icon": { + "count": 1, + "id": "minecraft:red_bed" + }, + "title": { + "translate": "advancements.adventure.sleep_in_bed.title" + } + }, + "requirements": [ + [ + "slept_in_bed" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/sniper_duel.json b/data/minecraft/advancement/adventure/sniper_duel.json new file mode 100644 index 00000000..c138880f --- /dev/null +++ b/data/minecraft/advancement/adventure/sniper_duel.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:adventure/shoot_arrow", + "criteria": { + "killed_skeleton": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:skeleton", + "distance": { + "horizontal": { + "min": 50.0 + } + } + } + } + ], + "killing_blow": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + } + ] + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.sniper_duel.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:arrow" + }, + "title": { + "translate": "advancements.adventure.sniper_duel.title" + } + }, + "requirements": [ + [ + "killed_skeleton" + ] + ], + "rewards": { + "experience": 50 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/spyglass_at_dragon.json b/data/minecraft/advancement/adventure/spyglass_at_dragon.json new file mode 100644 index 00000000..6063effe --- /dev/null +++ b/data/minecraft/advancement/adventure/spyglass_at_dragon.json @@ -0,0 +1,45 @@ +{ + "parent": "minecraft:adventure/spyglass_at_ghast", + "criteria": { + "spyglass_at_dragon": { + "conditions": { + "item": { + "items": "minecraft:spyglass" + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "looking_at": { + "type": "minecraft:ender_dragon" + } + } + } + } + ] + }, + "trigger": "minecraft:using_item" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.spyglass_at_dragon.description" + }, + "icon": { + "count": 1, + "id": "minecraft:spyglass" + }, + "title": { + "translate": "advancements.adventure.spyglass_at_dragon.title" + } + }, + "requirements": [ + [ + "spyglass_at_dragon" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/spyglass_at_ghast.json b/data/minecraft/advancement/adventure/spyglass_at_ghast.json new file mode 100644 index 00000000..03317f4a --- /dev/null +++ b/data/minecraft/advancement/adventure/spyglass_at_ghast.json @@ -0,0 +1,45 @@ +{ + "parent": "minecraft:adventure/spyglass_at_parrot", + "criteria": { + "spyglass_at_ghast": { + "conditions": { + "item": { + "items": "minecraft:spyglass" + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "looking_at": { + "type": "minecraft:ghast" + } + } + } + } + ] + }, + "trigger": "minecraft:using_item" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.spyglass_at_ghast.description" + }, + "icon": { + "count": 1, + "id": "minecraft:spyglass" + }, + "title": { + "translate": "advancements.adventure.spyglass_at_ghast.title" + } + }, + "requirements": [ + [ + "spyglass_at_ghast" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/spyglass_at_parrot.json b/data/minecraft/advancement/adventure/spyglass_at_parrot.json new file mode 100644 index 00000000..5453e1ee --- /dev/null +++ b/data/minecraft/advancement/adventure/spyglass_at_parrot.json @@ -0,0 +1,45 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "spyglass_at_parrot": { + "conditions": { + "item": { + "items": "minecraft:spyglass" + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "looking_at": { + "type": "minecraft:parrot" + } + } + } + } + ] + }, + "trigger": "minecraft:using_item" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.spyglass_at_parrot.description" + }, + "icon": { + "count": 1, + "id": "minecraft:spyglass" + }, + "title": { + "translate": "advancements.adventure.spyglass_at_parrot.title" + } + }, + "requirements": [ + [ + "spyglass_at_parrot" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/summon_iron_golem.json b/data/minecraft/advancement/adventure/summon_iron_golem.json new file mode 100644 index 00000000..6665e2a4 --- /dev/null +++ b/data/minecraft/advancement/adventure/summon_iron_golem.json @@ -0,0 +1,38 @@ +{ + "parent": "minecraft:adventure/trade", + "criteria": { + "summoned_golem": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:iron_golem" + } + } + ] + }, + "trigger": "minecraft:summoned_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.summon_iron_golem.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:carved_pumpkin" + }, + "title": { + "translate": "advancements.adventure.summon_iron_golem.title" + } + }, + "requirements": [ + [ + "summoned_golem" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/throw_trident.json b/data/minecraft/advancement/adventure/throw_trident.json new file mode 100644 index 00000000..c9094c67 --- /dev/null +++ b/data/minecraft/advancement/adventure/throw_trident.json @@ -0,0 +1,41 @@ +{ + "parent": "minecraft:adventure/kill_a_mob", + "criteria": { + "shot_trident": { + "conditions": { + "damage": { + "type": { + "direct_entity": { + "type": "minecraft:trident" + }, + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + } + ] + } + } + }, + "trigger": "minecraft:player_hurt_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.throw_trident.description" + }, + "icon": { + "count": 1, + "id": "minecraft:trident" + }, + "title": { + "translate": "advancements.adventure.throw_trident.title" + } + }, + "requirements": [ + [ + "shot_trident" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/totem_of_undying.json b/data/minecraft/advancement/adventure/totem_of_undying.json new file mode 100644 index 00000000..c5e907ce --- /dev/null +++ b/data/minecraft/advancement/adventure/totem_of_undying.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:adventure/kill_a_mob", + "criteria": { + "used_totem": { + "conditions": { + "item": { + "items": "minecraft:totem_of_undying" + } + }, + "trigger": "minecraft:used_totem" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.totem_of_undying.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:totem_of_undying" + }, + "title": { + "translate": "advancements.adventure.totem_of_undying.title" + } + }, + "requirements": [ + [ + "used_totem" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/trade.json b/data/minecraft/advancement/adventure/trade.json new file mode 100644 index 00000000..b2cbcfdc --- /dev/null +++ b/data/minecraft/advancement/adventure/trade.json @@ -0,0 +1,26 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "traded": { + "trigger": "minecraft:villager_trade" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.trade.description" + }, + "icon": { + "count": 1, + "id": "minecraft:emerald" + }, + "title": { + "translate": "advancements.adventure.trade.title" + } + }, + "requirements": [ + [ + "traded" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/trade_at_world_height.json b/data/minecraft/advancement/adventure/trade_at_world_height.json new file mode 100644 index 00000000..02faa838 --- /dev/null +++ b/data/minecraft/advancement/adventure/trade_at_world_height.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:adventure/trade", + "criteria": { + "trade_at_world_height": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "position": { + "y": { + "min": 319.0 + } + } + } + } + } + ] + }, + "trigger": "minecraft:villager_trade" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.trade_at_world_height.description" + }, + "icon": { + "count": 1, + "id": "minecraft:emerald" + }, + "title": { + "translate": "advancements.adventure.trade_at_world_height.title" + } + }, + "requirements": [ + [ + "trade_at_world_height" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/trim_with_all_exclusive_armor_patterns.json b/data/minecraft/advancement/adventure/trim_with_all_exclusive_armor_patterns.json new file mode 100644 index 00000000..a61139de --- /dev/null +++ b/data/minecraft/advancement/adventure/trim_with_all_exclusive_armor_patterns.json @@ -0,0 +1,96 @@ +{ + "parent": "minecraft:adventure/trim_with_any_armor_pattern", + "criteria": { + "armor_trimmed_minecraft:rib_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:rib_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:silence_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:silence_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:snout_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:snout_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:spire_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:spire_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:tide_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:tide_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:vex_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:vex_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:ward_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:ward_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:wayfinder_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:wayfinder_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.trim_with_all_exclusive_armor_patterns.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:silence_armor_trim_smithing_template" + }, + "title": { + "translate": "advancements.adventure.trim_with_all_exclusive_armor_patterns.title" + } + }, + "requirements": [ + [ + "armor_trimmed_minecraft:rib_armor_trim_smithing_template_smithing_trim" + ], + [ + "armor_trimmed_minecraft:silence_armor_trim_smithing_template_smithing_trim" + ], + [ + "armor_trimmed_minecraft:snout_armor_trim_smithing_template_smithing_trim" + ], + [ + "armor_trimmed_minecraft:spire_armor_trim_smithing_template_smithing_trim" + ], + [ + "armor_trimmed_minecraft:tide_armor_trim_smithing_template_smithing_trim" + ], + [ + "armor_trimmed_minecraft:vex_armor_trim_smithing_template_smithing_trim" + ], + [ + "armor_trimmed_minecraft:ward_armor_trim_smithing_template_smithing_trim" + ], + [ + "armor_trimmed_minecraft:wayfinder_armor_trim_smithing_template_smithing_trim" + ] + ], + "rewards": { + "experience": 150 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/trim_with_any_armor_pattern.json b/data/minecraft/advancement/adventure/trim_with_any_armor_pattern.json new file mode 100644 index 00000000..6576f32e --- /dev/null +++ b/data/minecraft/advancement/adventure/trim_with_any_armor_pattern.json @@ -0,0 +1,148 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "armor_trimmed_minecraft:bolt_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:bolt_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:coast_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:coast_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:dune_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:dune_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:eye_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:eye_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:flow_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:flow_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:host_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:host_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:raiser_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:raiser_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:rib_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:rib_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:sentry_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:sentry_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:shaper_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:shaper_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:silence_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:silence_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:snout_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:snout_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:spire_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:spire_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:tide_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:tide_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:vex_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:vex_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:ward_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:ward_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:wayfinder_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:wayfinder_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + }, + "armor_trimmed_minecraft:wild_armor_trim_smithing_template_smithing_trim": { + "conditions": { + "recipe_id": "minecraft:wild_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_crafted" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.trim_with_any_armor_pattern.description" + }, + "icon": { + "count": 1, + "id": "minecraft:dune_armor_trim_smithing_template" + }, + "title": { + "translate": "advancements.adventure.trim_with_any_armor_pattern.title" + } + }, + "requirements": [ + [ + "armor_trimmed_minecraft:bolt_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:coast_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:dune_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:eye_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:flow_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:host_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:raiser_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:rib_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:sentry_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:shaper_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:silence_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:snout_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:spire_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:tide_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:vex_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:ward_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:wayfinder_armor_trim_smithing_template_smithing_trim", + "armor_trimmed_minecraft:wild_armor_trim_smithing_template_smithing_trim" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/two_birds_one_arrow.json b/data/minecraft/advancement/adventure/two_birds_one_arrow.json new file mode 100644 index 00000000..adea2222 --- /dev/null +++ b/data/minecraft/advancement/adventure/two_birds_one_arrow.json @@ -0,0 +1,52 @@ +{ + "parent": "minecraft:adventure/ol_betsy", + "criteria": { + "two_birds": { + "conditions": { + "victims": [ + [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:phantom" + } + } + ], + [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:phantom" + } + } + ] + ] + }, + "trigger": "minecraft:killed_by_crossbow" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.two_birds_one_arrow.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:crossbow" + }, + "title": { + "translate": "advancements.adventure.two_birds_one_arrow.title" + } + }, + "requirements": [ + [ + "two_birds" + ] + ], + "rewards": { + "experience": 65 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/under_lock_and_key.json b/data/minecraft/advancement/adventure/under_lock_and_key.json new file mode 100644 index 00000000..952b4fd2 --- /dev/null +++ b/data/minecraft/advancement/adventure/under_lock_and_key.json @@ -0,0 +1,47 @@ +{ + "parent": "minecraft:adventure/minecraft_trials_edition", + "criteria": { + "under_lock_and_key": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "minecraft:vault", + "state": { + "ominous": "false" + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:trial_key" + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.under_lock_and_key.description" + }, + "icon": { + "count": 1, + "id": "minecraft:trial_key" + }, + "title": { + "translate": "advancements.adventure.under_lock_and_key.title" + } + }, + "requirements": [ + [ + "under_lock_and_key" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/very_very_frightening.json b/data/minecraft/advancement/adventure/very_very_frightening.json new file mode 100644 index 00000000..38e6ffc2 --- /dev/null +++ b/data/minecraft/advancement/adventure/very_very_frightening.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:adventure/throw_trident", + "criteria": { + "struck_villager": { + "conditions": { + "victims": [ + [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:villager" + } + } + ] + ] + }, + "trigger": "minecraft:channeled_lightning" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.very_very_frightening.description" + }, + "icon": { + "count": 1, + "id": "minecraft:trident" + }, + "title": { + "translate": "advancements.adventure.very_very_frightening.title" + } + }, + "requirements": [ + [ + "struck_villager" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/voluntary_exile.json b/data/minecraft/advancement/adventure/voluntary_exile.json new file mode 100644 index 00000000..e45f9f6b --- /dev/null +++ b/data/minecraft/advancement/adventure/voluntary_exile.json @@ -0,0 +1,129 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "voluntary_exile": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "#minecraft:raiders", + "equipment": { + "head": { + "components": { + "minecraft:attribute_modifiers": { + "modifiers": [] + }, + "minecraft:banner_patterns": [ + { + "color": "cyan", + "pattern": "minecraft:rhombus" + }, + { + "color": "light_gray", + "pattern": "minecraft:stripe_bottom" + }, + { + "color": "gray", + "pattern": "minecraft:stripe_center" + }, + { + "color": "light_gray", + "pattern": "minecraft:border" + }, + { + "color": "black", + "pattern": "minecraft:stripe_middle" + }, + { + "color": "light_gray", + "pattern": "minecraft:half_horizontal" + }, + { + "color": "light_gray", + "pattern": "minecraft:circle" + }, + { + "color": "black", + "pattern": "minecraft:border" + } + ], + "minecraft:enchantments": { + "levels": {} + }, + "minecraft:hide_additional_tooltip": {}, + "minecraft:item_name": "{\"color\":\"gold\",\"translate\":\"block.minecraft.ominous_banner\"}", + "minecraft:lore": [], + "minecraft:max_stack_size": 16, + "minecraft:rarity": "common", + "minecraft:repair_cost": 0 + }, + "items": "minecraft:white_banner" + } + } + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.voluntary_exile.description" + }, + "hidden": true, + "icon": { + "components": { + "minecraft:banner_patterns": [ + { + "color": "cyan", + "pattern": "minecraft:rhombus" + }, + { + "color": "light_gray", + "pattern": "minecraft:stripe_bottom" + }, + { + "color": "gray", + "pattern": "minecraft:stripe_center" + }, + { + "color": "light_gray", + "pattern": "minecraft:border" + }, + { + "color": "black", + "pattern": "minecraft:stripe_middle" + }, + { + "color": "light_gray", + "pattern": "minecraft:half_horizontal" + }, + { + "color": "light_gray", + "pattern": "minecraft:circle" + }, + { + "color": "black", + "pattern": "minecraft:border" + } + ], + "minecraft:hide_additional_tooltip": {}, + "minecraft:item_name": "{\"color\":\"gold\",\"translate\":\"block.minecraft.ominous_banner\"}" + }, + "count": 1, + "id": "minecraft:white_banner" + }, + "title": { + "translate": "advancements.adventure.voluntary_exile.title" + } + }, + "requirements": [ + [ + "voluntary_exile" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/walk_on_powder_snow_with_leather_boots.json b/data/minecraft/advancement/adventure/walk_on_powder_snow_with_leather_boots.json new file mode 100644 index 00000000..09ba1240 --- /dev/null +++ b/data/minecraft/advancement/adventure/walk_on_powder_snow_with_leather_boots.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:adventure/sleep_in_bed", + "criteria": { + "walk_on_powder_snow_with_leather_boots": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "feet": { + "items": "minecraft:leather_boots" + } + }, + "stepping_on": { + "block": { + "blocks": "minecraft:powder_snow" + } + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.walk_on_powder_snow_with_leather_boots.description" + }, + "icon": { + "count": 1, + "id": "minecraft:leather_boots" + }, + "title": { + "translate": "advancements.adventure.walk_on_powder_snow_with_leather_boots.title" + } + }, + "requirements": [ + [ + "walk_on_powder_snow_with_leather_boots" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/who_needs_rockets.json b/data/minecraft/advancement/adventure/who_needs_rockets.json new file mode 100644 index 00000000..2f087661 --- /dev/null +++ b/data/minecraft/advancement/adventure/who_needs_rockets.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:adventure/minecraft_trials_edition", + "criteria": { + "who_needs_rockets": { + "conditions": { + "cause": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wind_charge" + } + } + ], + "distance": { + "y": { + "min": 7.0 + } + } + }, + "trigger": "minecraft:fall_after_explosion" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.who_needs_rockets.description" + }, + "icon": { + "count": 1, + "id": "minecraft:wind_charge" + }, + "title": { + "translate": "advancements.adventure.who_needs_rockets.title" + } + }, + "requirements": [ + [ + "who_needs_rockets" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/adventure/whos_the_pillager_now.json b/data/minecraft/advancement/adventure/whos_the_pillager_now.json new file mode 100644 index 00000000..8a59f942 --- /dev/null +++ b/data/minecraft/advancement/adventure/whos_the_pillager_now.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:adventure/ol_betsy", + "criteria": { + "kill_pillager": { + "conditions": { + "victims": [ + [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:pillager" + } + } + ] + ] + }, + "trigger": "minecraft:killed_by_crossbow" + } + }, + "display": { + "description": { + "translate": "advancements.adventure.whos_the_pillager_now.description" + }, + "icon": { + "count": 1, + "id": "minecraft:crossbow" + }, + "title": { + "translate": "advancements.adventure.whos_the_pillager_now.title" + } + }, + "requirements": [ + [ + "kill_pillager" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/dragon_breath.json b/data/minecraft/advancement/end/dragon_breath.json new file mode 100644 index 00000000..4d8cf620 --- /dev/null +++ b/data/minecraft/advancement/end/dragon_breath.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:end/kill_dragon", + "criteria": { + "dragon_breath": { + "conditions": { + "items": [ + { + "items": "minecraft:dragon_breath" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.end.dragon_breath.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:dragon_breath" + }, + "title": { + "translate": "advancements.end.dragon_breath.title" + } + }, + "requirements": [ + [ + "dragon_breath" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/dragon_egg.json b/data/minecraft/advancement/end/dragon_egg.json new file mode 100644 index 00000000..906dbbc5 --- /dev/null +++ b/data/minecraft/advancement/end/dragon_egg.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:end/kill_dragon", + "criteria": { + "dragon_egg": { + "conditions": { + "items": [ + { + "items": "minecraft:dragon_egg" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.end.dragon_egg.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:dragon_egg" + }, + "title": { + "translate": "advancements.end.dragon_egg.title" + } + }, + "requirements": [ + [ + "dragon_egg" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/elytra.json b/data/minecraft/advancement/end/elytra.json new file mode 100644 index 00000000..41c0b55f --- /dev/null +++ b/data/minecraft/advancement/end/elytra.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:end/find_end_city", + "criteria": { + "elytra": { + "conditions": { + "items": [ + { + "items": "minecraft:elytra" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.end.elytra.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:elytra" + }, + "title": { + "translate": "advancements.end.elytra.title" + } + }, + "requirements": [ + [ + "elytra" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/enter_end_gateway.json b/data/minecraft/advancement/end/enter_end_gateway.json new file mode 100644 index 00000000..d0f44ef2 --- /dev/null +++ b/data/minecraft/advancement/end/enter_end_gateway.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:end/kill_dragon", + "criteria": { + "entered_end_gateway": { + "conditions": { + "block": "minecraft:end_gateway" + }, + "trigger": "minecraft:enter_block" + } + }, + "display": { + "description": { + "translate": "advancements.end.enter_end_gateway.description" + }, + "icon": { + "count": 1, + "id": "minecraft:ender_pearl" + }, + "title": { + "translate": "advancements.end.enter_end_gateway.title" + } + }, + "requirements": [ + [ + "entered_end_gateway" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/find_end_city.json b/data/minecraft/advancement/end/find_end_city.json new file mode 100644 index 00000000..d2c25c51 --- /dev/null +++ b/data/minecraft/advancement/end/find_end_city.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:end/enter_end_gateway", + "criteria": { + "in_city": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "minecraft:end_city" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.end.find_end_city.description" + }, + "icon": { + "count": 1, + "id": "minecraft:purpur_block" + }, + "title": { + "translate": "advancements.end.find_end_city.title" + } + }, + "requirements": [ + [ + "in_city" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/kill_dragon.json b/data/minecraft/advancement/end/kill_dragon.json new file mode 100644 index 00000000..d5e16375 --- /dev/null +++ b/data/minecraft/advancement/end/kill_dragon.json @@ -0,0 +1,37 @@ +{ + "parent": "minecraft:end/root", + "criteria": { + "killed_dragon": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ender_dragon" + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.end.kill_dragon.description" + }, + "icon": { + "count": 1, + "id": "minecraft:dragon_head" + }, + "title": { + "translate": "advancements.end.kill_dragon.title" + } + }, + "requirements": [ + [ + "killed_dragon" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/levitate.json b/data/minecraft/advancement/end/levitate.json new file mode 100644 index 00000000..9339790a --- /dev/null +++ b/data/minecraft/advancement/end/levitate.json @@ -0,0 +1,37 @@ +{ + "parent": "minecraft:end/find_end_city", + "criteria": { + "levitated": { + "conditions": { + "distance": { + "y": { + "min": 50.0 + } + } + }, + "trigger": "minecraft:levitation" + } + }, + "display": { + "description": { + "translate": "advancements.end.levitate.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:shulker_shell" + }, + "title": { + "translate": "advancements.end.levitate.title" + } + }, + "requirements": [ + [ + "levitated" + ] + ], + "rewards": { + "experience": 50 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/respawn_dragon.json b/data/minecraft/advancement/end/respawn_dragon.json new file mode 100644 index 00000000..c98fc91c --- /dev/null +++ b/data/minecraft/advancement/end/respawn_dragon.json @@ -0,0 +1,38 @@ +{ + "parent": "minecraft:end/kill_dragon", + "criteria": { + "summoned_dragon": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ender_dragon" + } + } + ] + }, + "trigger": "minecraft:summoned_entity" + } + }, + "display": { + "description": { + "translate": "advancements.end.respawn_dragon.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:end_crystal" + }, + "title": { + "translate": "advancements.end.respawn_dragon.title" + } + }, + "requirements": [ + [ + "summoned_dragon" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/end/root.json b/data/minecraft/advancement/end/root.json new file mode 100644 index 00000000..9d788a5d --- /dev/null +++ b/data/minecraft/advancement/end/root.json @@ -0,0 +1,31 @@ +{ + "criteria": { + "entered_end": { + "conditions": { + "to": "minecraft:the_end" + }, + "trigger": "minecraft:changed_dimension" + } + }, + "display": { + "announce_to_chat": false, + "background": "minecraft:textures/gui/advancements/backgrounds/end.png", + "description": { + "translate": "advancements.end.root.description" + }, + "icon": { + "count": 1, + "id": "minecraft:end_stone" + }, + "show_toast": false, + "title": { + "translate": "advancements.end.root.title" + } + }, + "requirements": [ + [ + "entered_end" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/allay_deliver_cake_to_note_block.json b/data/minecraft/advancement/husbandry/allay_deliver_cake_to_note_block.json new file mode 100644 index 00000000..523fc69d --- /dev/null +++ b/data/minecraft/advancement/husbandry/allay_deliver_cake_to_note_block.json @@ -0,0 +1,45 @@ +{ + "parent": "minecraft:husbandry/allay_deliver_item_to_player", + "criteria": { + "allay_deliver_cake_to_note_block": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "minecraft:note_block" + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:cake" + } + } + ] + }, + "trigger": "minecraft:allay_drop_item_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.allay_deliver_cake_to_note_block.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:note_block" + }, + "title": { + "translate": "advancements.husbandry.allay_deliver_cake_to_note_block.title" + } + }, + "requirements": [ + [ + "allay_deliver_cake_to_note_block" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/allay_deliver_item_to_player.json b/data/minecraft/advancement/husbandry/allay_deliver_item_to_player.json new file mode 100644 index 00000000..8bc02b91 --- /dev/null +++ b/data/minecraft/advancement/husbandry/allay_deliver_item_to_player.json @@ -0,0 +1,38 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "allay_deliver_item_to_player": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:allay" + } + } + ] + }, + "trigger": "minecraft:thrown_item_picked_up_by_player" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.allay_deliver_item_to_player.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:cookie" + }, + "title": { + "translate": "advancements.husbandry.allay_deliver_item_to_player.title" + } + }, + "requirements": [ + [ + "allay_deliver_item_to_player" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/axolotl_in_a_bucket.json b/data/minecraft/advancement/husbandry/axolotl_in_a_bucket.json new file mode 100644 index 00000000..a4d290e7 --- /dev/null +++ b/data/minecraft/advancement/husbandry/axolotl_in_a_bucket.json @@ -0,0 +1,31 @@ +{ + "parent": "minecraft:husbandry/tactical_fishing", + "criteria": { + "axolotl_bucket": { + "conditions": { + "item": { + "items": "minecraft:axolotl_bucket" + } + }, + "trigger": "minecraft:filled_bucket" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.axolotl_in_a_bucket.description" + }, + "icon": { + "count": 1, + "id": "minecraft:axolotl_bucket" + }, + "title": { + "translate": "advancements.husbandry.axolotl_in_a_bucket.title" + } + }, + "requirements": [ + [ + "axolotl_bucket" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/balanced_diet.json b/data/minecraft/advancement/husbandry/balanced_diet.json new file mode 100644 index 00000000..ced7a048 --- /dev/null +++ b/data/minecraft/advancement/husbandry/balanced_diet.json @@ -0,0 +1,464 @@ +{ + "parent": "minecraft:husbandry/plant_seed", + "criteria": { + "apple": { + "conditions": { + "item": { + "items": "minecraft:apple" + } + }, + "trigger": "minecraft:consume_item" + }, + "baked_potato": { + "conditions": { + "item": { + "items": "minecraft:baked_potato" + } + }, + "trigger": "minecraft:consume_item" + }, + "beef": { + "conditions": { + "item": { + "items": "minecraft:beef" + } + }, + "trigger": "minecraft:consume_item" + }, + "beetroot": { + "conditions": { + "item": { + "items": "minecraft:beetroot" + } + }, + "trigger": "minecraft:consume_item" + }, + "beetroot_soup": { + "conditions": { + "item": { + "items": "minecraft:beetroot_soup" + } + }, + "trigger": "minecraft:consume_item" + }, + "bread": { + "conditions": { + "item": { + "items": "minecraft:bread" + } + }, + "trigger": "minecraft:consume_item" + }, + "carrot": { + "conditions": { + "item": { + "items": "minecraft:carrot" + } + }, + "trigger": "minecraft:consume_item" + }, + "chicken": { + "conditions": { + "item": { + "items": "minecraft:chicken" + } + }, + "trigger": "minecraft:consume_item" + }, + "chorus_fruit": { + "conditions": { + "item": { + "items": "minecraft:chorus_fruit" + } + }, + "trigger": "minecraft:consume_item" + }, + "cod": { + "conditions": { + "item": { + "items": "minecraft:cod" + } + }, + "trigger": "minecraft:consume_item" + }, + "cooked_beef": { + "conditions": { + "item": { + "items": "minecraft:cooked_beef" + } + }, + "trigger": "minecraft:consume_item" + }, + "cooked_chicken": { + "conditions": { + "item": { + "items": "minecraft:cooked_chicken" + } + }, + "trigger": "minecraft:consume_item" + }, + "cooked_cod": { + "conditions": { + "item": { + "items": "minecraft:cooked_cod" + } + }, + "trigger": "minecraft:consume_item" + }, + "cooked_mutton": { + "conditions": { + "item": { + "items": "minecraft:cooked_mutton" + } + }, + "trigger": "minecraft:consume_item" + }, + "cooked_porkchop": { + "conditions": { + "item": { + "items": "minecraft:cooked_porkchop" + } + }, + "trigger": "minecraft:consume_item" + }, + "cooked_rabbit": { + "conditions": { + "item": { + "items": "minecraft:cooked_rabbit" + } + }, + "trigger": "minecraft:consume_item" + }, + "cooked_salmon": { + "conditions": { + "item": { + "items": "minecraft:cooked_salmon" + } + }, + "trigger": "minecraft:consume_item" + }, + "cookie": { + "conditions": { + "item": { + "items": "minecraft:cookie" + } + }, + "trigger": "minecraft:consume_item" + }, + "dried_kelp": { + "conditions": { + "item": { + "items": "minecraft:dried_kelp" + } + }, + "trigger": "minecraft:consume_item" + }, + "enchanted_golden_apple": { + "conditions": { + "item": { + "items": "minecraft:enchanted_golden_apple" + } + }, + "trigger": "minecraft:consume_item" + }, + "glow_berries": { + "conditions": { + "item": { + "items": "minecraft:glow_berries" + } + }, + "trigger": "minecraft:consume_item" + }, + "golden_apple": { + "conditions": { + "item": { + "items": "minecraft:golden_apple" + } + }, + "trigger": "minecraft:consume_item" + }, + "golden_carrot": { + "conditions": { + "item": { + "items": "minecraft:golden_carrot" + } + }, + "trigger": "minecraft:consume_item" + }, + "honey_bottle": { + "conditions": { + "item": { + "items": "minecraft:honey_bottle" + } + }, + "trigger": "minecraft:consume_item" + }, + "melon_slice": { + "conditions": { + "item": { + "items": "minecraft:melon_slice" + } + }, + "trigger": "minecraft:consume_item" + }, + "mushroom_stew": { + "conditions": { + "item": { + "items": "minecraft:mushroom_stew" + } + }, + "trigger": "minecraft:consume_item" + }, + "mutton": { + "conditions": { + "item": { + "items": "minecraft:mutton" + } + }, + "trigger": "minecraft:consume_item" + }, + "poisonous_potato": { + "conditions": { + "item": { + "items": "minecraft:poisonous_potato" + } + }, + "trigger": "minecraft:consume_item" + }, + "porkchop": { + "conditions": { + "item": { + "items": "minecraft:porkchop" + } + }, + "trigger": "minecraft:consume_item" + }, + "potato": { + "conditions": { + "item": { + "items": "minecraft:potato" + } + }, + "trigger": "minecraft:consume_item" + }, + "pufferfish": { + "conditions": { + "item": { + "items": "minecraft:pufferfish" + } + }, + "trigger": "minecraft:consume_item" + }, + "pumpkin_pie": { + "conditions": { + "item": { + "items": "minecraft:pumpkin_pie" + } + }, + "trigger": "minecraft:consume_item" + }, + "rabbit": { + "conditions": { + "item": { + "items": "minecraft:rabbit" + } + }, + "trigger": "minecraft:consume_item" + }, + "rabbit_stew": { + "conditions": { + "item": { + "items": "minecraft:rabbit_stew" + } + }, + "trigger": "minecraft:consume_item" + }, + "rotten_flesh": { + "conditions": { + "item": { + "items": "minecraft:rotten_flesh" + } + }, + "trigger": "minecraft:consume_item" + }, + "salmon": { + "conditions": { + "item": { + "items": "minecraft:salmon" + } + }, + "trigger": "minecraft:consume_item" + }, + "spider_eye": { + "conditions": { + "item": { + "items": "minecraft:spider_eye" + } + }, + "trigger": "minecraft:consume_item" + }, + "suspicious_stew": { + "conditions": { + "item": { + "items": "minecraft:suspicious_stew" + } + }, + "trigger": "minecraft:consume_item" + }, + "sweet_berries": { + "conditions": { + "item": { + "items": "minecraft:sweet_berries" + } + }, + "trigger": "minecraft:consume_item" + }, + "tropical_fish": { + "conditions": { + "item": { + "items": "minecraft:tropical_fish" + } + }, + "trigger": "minecraft:consume_item" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.balanced_diet.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:apple" + }, + "title": { + "translate": "advancements.husbandry.balanced_diet.title" + } + }, + "requirements": [ + [ + "apple" + ], + [ + "mushroom_stew" + ], + [ + "bread" + ], + [ + "porkchop" + ], + [ + "cooked_porkchop" + ], + [ + "golden_apple" + ], + [ + "enchanted_golden_apple" + ], + [ + "cod" + ], + [ + "salmon" + ], + [ + "tropical_fish" + ], + [ + "pufferfish" + ], + [ + "cooked_cod" + ], + [ + "cooked_salmon" + ], + [ + "cookie" + ], + [ + "melon_slice" + ], + [ + "beef" + ], + [ + "cooked_beef" + ], + [ + "chicken" + ], + [ + "cooked_chicken" + ], + [ + "rotten_flesh" + ], + [ + "spider_eye" + ], + [ + "carrot" + ], + [ + "potato" + ], + [ + "baked_potato" + ], + [ + "poisonous_potato" + ], + [ + "golden_carrot" + ], + [ + "pumpkin_pie" + ], + [ + "rabbit" + ], + [ + "cooked_rabbit" + ], + [ + "rabbit_stew" + ], + [ + "mutton" + ], + [ + "cooked_mutton" + ], + [ + "chorus_fruit" + ], + [ + "beetroot" + ], + [ + "beetroot_soup" + ], + [ + "dried_kelp" + ], + [ + "suspicious_stew" + ], + [ + "sweet_berries" + ], + [ + "honey_bottle" + ], + [ + "glow_berries" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/bred_all_animals.json b/data/minecraft/advancement/husbandry/bred_all_animals.json new file mode 100644 index 00000000..d87b0eb3 --- /dev/null +++ b/data/minecraft/advancement/husbandry/bred_all_animals.json @@ -0,0 +1,476 @@ +{ + "parent": "minecraft:husbandry/breed_an_animal", + "criteria": { + "minecraft:armadillo": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:armadillo" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:axolotl": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:axolotl" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:bee": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:bee" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:camel": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:camel" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:cat": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:cat" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:chicken": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:chicken" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:cow": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:cow" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:donkey": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:donkey" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:fox": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:fox" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:frog": { + "conditions": { + "parent": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:frog" + } + } + ], + "partner": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:frog" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:goat": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:goat" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:hoglin": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:hoglin" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:horse": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:horse" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:llama": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:llama" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:mooshroom": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:mooshroom" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:mule": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:mule" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:ocelot": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ocelot" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:panda": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:panda" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:pig": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:pig" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:rabbit": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:rabbit" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:sheep": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:sheep" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:sniffer": { + "conditions": { + "parent": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:sniffer" + } + } + ], + "partner": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:sniffer" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:strider": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:strider" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:turtle": { + "conditions": { + "parent": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:turtle" + } + } + ], + "partner": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:turtle" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + }, + "minecraft:wolf": { + "conditions": { + "child": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wolf" + } + } + ] + }, + "trigger": "minecraft:bred_animals" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.breed_all_animals.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:golden_carrot" + }, + "title": { + "translate": "advancements.husbandry.breed_all_animals.title" + } + }, + "requirements": [ + [ + "minecraft:horse" + ], + [ + "minecraft:donkey" + ], + [ + "minecraft:mule" + ], + [ + "minecraft:sheep" + ], + [ + "minecraft:cow" + ], + [ + "minecraft:mooshroom" + ], + [ + "minecraft:pig" + ], + [ + "minecraft:chicken" + ], + [ + "minecraft:wolf" + ], + [ + "minecraft:ocelot" + ], + [ + "minecraft:rabbit" + ], + [ + "minecraft:llama" + ], + [ + "minecraft:cat" + ], + [ + "minecraft:panda" + ], + [ + "minecraft:fox" + ], + [ + "minecraft:bee" + ], + [ + "minecraft:hoglin" + ], + [ + "minecraft:strider" + ], + [ + "minecraft:goat" + ], + [ + "minecraft:axolotl" + ], + [ + "minecraft:camel" + ], + [ + "minecraft:armadillo" + ], + [ + "minecraft:turtle" + ], + [ + "minecraft:frog" + ], + [ + "minecraft:sniffer" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/breed_an_animal.json b/data/minecraft/advancement/husbandry/breed_an_animal.json new file mode 100644 index 00000000..3379603d --- /dev/null +++ b/data/minecraft/advancement/husbandry/breed_an_animal.json @@ -0,0 +1,26 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "bred": { + "trigger": "minecraft:bred_animals" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.breed_an_animal.description" + }, + "icon": { + "count": 1, + "id": "minecraft:wheat" + }, + "title": { + "translate": "advancements.husbandry.breed_an_animal.title" + } + }, + "requirements": [ + [ + "bred" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/complete_catalogue.json b/data/minecraft/advancement/husbandry/complete_catalogue.json new file mode 100644 index 00000000..31749d55 --- /dev/null +++ b/data/minecraft/advancement/husbandry/complete_catalogue.json @@ -0,0 +1,244 @@ +{ + "parent": "minecraft:husbandry/tame_an_animal", + "criteria": { + "minecraft:all_black": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:all_black" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:black": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:black" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:british_shorthair": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:british_shorthair" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:calico": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:calico" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:jellie": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:jellie" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:persian": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:persian" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:ragdoll": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:ragdoll" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:red": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:red" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:siamese": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:siamese" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:tabby": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:tabby" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:white": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:cat", + "variant": "minecraft:white" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.complete_catalogue.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:cod" + }, + "title": { + "translate": "advancements.husbandry.complete_catalogue.title" + } + }, + "requirements": [ + [ + "minecraft:all_black" + ], + [ + "minecraft:black" + ], + [ + "minecraft:british_shorthair" + ], + [ + "minecraft:calico" + ], + [ + "minecraft:jellie" + ], + [ + "minecraft:persian" + ], + [ + "minecraft:ragdoll" + ], + [ + "minecraft:red" + ], + [ + "minecraft:siamese" + ], + [ + "minecraft:tabby" + ], + [ + "minecraft:white" + ] + ], + "rewards": { + "experience": 50 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/feed_snifflet.json b/data/minecraft/advancement/husbandry/feed_snifflet.json new file mode 100644 index 00000000..8ec72eb5 --- /dev/null +++ b/data/minecraft/advancement/husbandry/feed_snifflet.json @@ -0,0 +1,44 @@ +{ + "parent": "minecraft:husbandry/obtain_sniffer_egg", + "criteria": { + "feed_snifflet": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:sniffer", + "flags": { + "is_baby": true + } + } + } + ], + "item": { + "items": "#minecraft:sniffer_food" + } + }, + "trigger": "minecraft:player_interacted_with_entity" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.feed_snifflet.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:torchflower_seeds" + }, + "title": { + "translate": "advancements.husbandry.feed_snifflet.title" + } + }, + "requirements": [ + [ + "feed_snifflet" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/fishy_business.json b/data/minecraft/advancement/husbandry/fishy_business.json new file mode 100644 index 00000000..e9da5e3c --- /dev/null +++ b/data/minecraft/advancement/husbandry/fishy_business.json @@ -0,0 +1,58 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "cod": { + "conditions": { + "item": { + "items": "minecraft:cod" + } + }, + "trigger": "minecraft:fishing_rod_hooked" + }, + "pufferfish": { + "conditions": { + "item": { + "items": "minecraft:pufferfish" + } + }, + "trigger": "minecraft:fishing_rod_hooked" + }, + "salmon": { + "conditions": { + "item": { + "items": "minecraft:salmon" + } + }, + "trigger": "minecraft:fishing_rod_hooked" + }, + "tropical_fish": { + "conditions": { + "item": { + "items": "minecraft:tropical_fish" + } + }, + "trigger": "minecraft:fishing_rod_hooked" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.fishy_business.description" + }, + "icon": { + "count": 1, + "id": "minecraft:fishing_rod" + }, + "title": { + "translate": "advancements.husbandry.fishy_business.title" + } + }, + "requirements": [ + [ + "cod", + "tropical_fish", + "pufferfish", + "salmon" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/froglights.json b/data/minecraft/advancement/husbandry/froglights.json new file mode 100644 index 00000000..83dbb62d --- /dev/null +++ b/data/minecraft/advancement/husbandry/froglights.json @@ -0,0 +1,40 @@ +{ + "parent": "minecraft:husbandry/leash_all_frog_variants", + "criteria": { + "froglights": { + "conditions": { + "items": [ + { + "items": "minecraft:ochre_froglight" + }, + { + "items": "minecraft:pearlescent_froglight" + }, + { + "items": "minecraft:verdant_froglight" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.froglights.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:verdant_froglight" + }, + "title": { + "translate": "advancements.husbandry.froglights.title" + } + }, + "requirements": [ + [ + "froglights" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/kill_axolotl_target.json b/data/minecraft/advancement/husbandry/kill_axolotl_target.json new file mode 100644 index 00000000..1a556ff4 --- /dev/null +++ b/data/minecraft/advancement/husbandry/kill_axolotl_target.json @@ -0,0 +1,37 @@ +{ + "parent": "minecraft:husbandry/axolotl_in_a_bucket", + "criteria": { + "kill_axolotl_target": { + "conditions": { + "source": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:axolotl" + } + } + ] + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.kill_axolotl_target.description" + }, + "icon": { + "count": 1, + "id": "minecraft:tropical_fish_bucket" + }, + "title": { + "translate": "advancements.husbandry.kill_axolotl_target.title" + } + }, + "requirements": [ + [ + "kill_axolotl_target" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/leash_all_frog_variants.json b/data/minecraft/advancement/husbandry/leash_all_frog_variants.json new file mode 100644 index 00000000..52a2ded0 --- /dev/null +++ b/data/minecraft/advancement/husbandry/leash_all_frog_variants.json @@ -0,0 +1,92 @@ +{ + "parent": "minecraft:husbandry/tadpole_in_a_bucket", + "criteria": { + "minecraft:cold": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:cold" + } + } + } + ], + "item": { + "items": "minecraft:lead" + } + }, + "trigger": "minecraft:player_interacted_with_entity" + }, + "minecraft:temperate": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:temperate" + } + } + } + ], + "item": { + "items": "minecraft:lead" + } + }, + "trigger": "minecraft:player_interacted_with_entity" + }, + "minecraft:warm": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:warm" + } + } + } + ], + "item": { + "items": "minecraft:lead" + } + }, + "trigger": "minecraft:player_interacted_with_entity" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.leash_all_frog_variants.description" + }, + "icon": { + "count": 1, + "id": "minecraft:lead" + }, + "title": { + "translate": "advancements.husbandry.leash_all_frog_variants.title" + } + }, + "requirements": [ + [ + "minecraft:temperate" + ], + [ + "minecraft:warm" + ], + [ + "minecraft:cold" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/make_a_sign_glow.json b/data/minecraft/advancement/husbandry/make_a_sign_glow.json new file mode 100644 index 00000000..9195039c --- /dev/null +++ b/data/minecraft/advancement/husbandry/make_a_sign_glow.json @@ -0,0 +1,44 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "make_a_sign_glow": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:all_signs" + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:glow_ink_sac" + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.make_a_sign_glow.description" + }, + "icon": { + "count": 1, + "id": "minecraft:glow_ink_sac" + }, + "title": { + "translate": "advancements.husbandry.make_a_sign_glow.title" + } + }, + "requirements": [ + [ + "make_a_sign_glow" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/obtain_netherite_hoe.json b/data/minecraft/advancement/husbandry/obtain_netherite_hoe.json new file mode 100644 index 00000000..d7e27b4b --- /dev/null +++ b/data/minecraft/advancement/husbandry/obtain_netherite_hoe.json @@ -0,0 +1,37 @@ +{ + "parent": "minecraft:husbandry/plant_seed", + "criteria": { + "netherite_hoe": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_hoe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.netherite_hoe.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:netherite_hoe" + }, + "title": { + "translate": "advancements.husbandry.netherite_hoe.title" + } + }, + "requirements": [ + [ + "netherite_hoe" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/obtain_sniffer_egg.json b/data/minecraft/advancement/husbandry/obtain_sniffer_egg.json new file mode 100644 index 00000000..c9c9fddf --- /dev/null +++ b/data/minecraft/advancement/husbandry/obtain_sniffer_egg.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "obtain_sniffer_egg": { + "conditions": { + "items": [ + { + "items": "minecraft:sniffer_egg" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.obtain_sniffer_egg.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:sniffer_egg" + }, + "title": { + "translate": "advancements.husbandry.obtain_sniffer_egg.title" + } + }, + "requirements": [ + [ + "obtain_sniffer_egg" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/plant_any_sniffer_seed.json b/data/minecraft/advancement/husbandry/plant_any_sniffer_seed.json new file mode 100644 index 00000000..4bc25a96 --- /dev/null +++ b/data/minecraft/advancement/husbandry/plant_any_sniffer_seed.json @@ -0,0 +1,47 @@ +{ + "parent": "minecraft:husbandry/feed_snifflet", + "criteria": { + "pitcher_pod": { + "conditions": { + "location": [ + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "torchflower": { + "conditions": { + "location": [ + { + "block": "minecraft:torchflower_crop", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.plant_any_sniffer_seed.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:pitcher_pod" + }, + "title": { + "translate": "advancements.husbandry.plant_any_sniffer_seed.title" + } + }, + "requirements": [ + [ + "torchflower", + "pitcher_pod" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/plant_seed.json b/data/minecraft/advancement/husbandry/plant_seed.json new file mode 100644 index 00000000..494fcc6c --- /dev/null +++ b/data/minecraft/advancement/husbandry/plant_seed.json @@ -0,0 +1,106 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "beetroots": { + "conditions": { + "location": [ + { + "block": "minecraft:beetroots", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "melon_stem": { + "conditions": { + "location": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "nether_wart": { + "conditions": { + "location": [ + { + "block": "minecraft:nether_wart", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "pitcher_pod": { + "conditions": { + "location": [ + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "pumpkin_stem": { + "conditions": { + "location": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "torchflower": { + "conditions": { + "location": [ + { + "block": "minecraft:torchflower_crop", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + }, + "wheat": { + "conditions": { + "location": [ + { + "block": "minecraft:wheat", + "condition": "minecraft:block_state_property" + } + ] + }, + "trigger": "minecraft:placed_block" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.plant_seed.description" + }, + "icon": { + "count": 1, + "id": "minecraft:wheat" + }, + "title": { + "translate": "advancements.husbandry.plant_seed.title" + } + }, + "requirements": [ + [ + "wheat", + "pumpkin_stem", + "melon_stem", + "beetroots", + "nether_wart", + "torchflower", + "pitcher_pod" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/remove_wolf_armor.json b/data/minecraft/advancement/husbandry/remove_wolf_armor.json new file mode 100644 index 00000000..57c05fbf --- /dev/null +++ b/data/minecraft/advancement/husbandry/remove_wolf_armor.json @@ -0,0 +1,40 @@ +{ + "parent": "minecraft:husbandry/tame_an_animal", + "criteria": { + "remove_wolf_armor": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wolf" + } + } + ], + "item": { + "items": "minecraft:shears" + } + }, + "trigger": "minecraft:player_interacted_with_entity" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.remove_wolf_armor.description" + }, + "icon": { + "count": 1, + "id": "minecraft:shears" + }, + "title": { + "translate": "advancements.husbandry.remove_wolf_armor.title" + } + }, + "requirements": [ + [ + "remove_wolf_armor" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/repair_wolf_armor.json b/data/minecraft/advancement/husbandry/repair_wolf_armor.json new file mode 100644 index 00000000..c6ad2fb3 --- /dev/null +++ b/data/minecraft/advancement/husbandry/repair_wolf_armor.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:husbandry/tame_an_animal", + "criteria": { + "repair_wolf_armor": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wolf", + "equipment": { + "body": { + "components": { + "minecraft:damage": 0 + }, + "items": "minecraft:wolf_armor" + } + } + } + } + ], + "item": { + "items": "minecraft:armadillo_scute" + } + }, + "trigger": "minecraft:player_interacted_with_entity" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.repair_wolf_armor.description" + }, + "icon": { + "count": 1, + "id": "minecraft:wolf_armor" + }, + "title": { + "translate": "advancements.husbandry.repair_wolf_armor.title" + } + }, + "requirements": [ + [ + "repair_wolf_armor" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/ride_a_boat_with_a_goat.json b/data/minecraft/advancement/husbandry/ride_a_boat_with_a_goat.json new file mode 100644 index 00000000..0ae432c1 --- /dev/null +++ b/data/minecraft/advancement/husbandry/ride_a_boat_with_a_goat.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "ride_a_boat_with_a_goat": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "vehicle": { + "type": "minecraft:boat", + "passenger": { + "type": "minecraft:goat" + } + } + } + } + ] + }, + "trigger": "minecraft:started_riding" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.ride_a_boat_with_a_goat.description" + }, + "icon": { + "count": 1, + "id": "minecraft:oak_boat" + }, + "title": { + "translate": "advancements.husbandry.ride_a_boat_with_a_goat.title" + } + }, + "requirements": [ + [ + "ride_a_boat_with_a_goat" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/root.json b/data/minecraft/advancement/husbandry/root.json new file mode 100644 index 00000000..4061aa9b --- /dev/null +++ b/data/minecraft/advancement/husbandry/root.json @@ -0,0 +1,28 @@ +{ + "criteria": { + "consumed_item": { + "trigger": "minecraft:consume_item" + } + }, + "display": { + "announce_to_chat": false, + "background": "minecraft:textures/gui/advancements/backgrounds/husbandry.png", + "description": { + "translate": "advancements.husbandry.root.description" + }, + "icon": { + "count": 1, + "id": "minecraft:hay_block" + }, + "show_toast": false, + "title": { + "translate": "advancements.husbandry.root.title" + } + }, + "requirements": [ + [ + "consumed_item" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/safely_harvest_honey.json b/data/minecraft/advancement/husbandry/safely_harvest_honey.json new file mode 100644 index 00000000..f530dc17 --- /dev/null +++ b/data/minecraft/advancement/husbandry/safely_harvest_honey.json @@ -0,0 +1,45 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "safely_harvest_honey": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:beehives" + }, + "smokey": true + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:glass_bottle" + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.safely_harvest_honey.description" + }, + "icon": { + "count": 1, + "id": "minecraft:honey_bottle" + }, + "title": { + "translate": "advancements.husbandry.safely_harvest_honey.title" + } + }, + "requirements": [ + [ + "safely_harvest_honey" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/silk_touch_nest.json b/data/minecraft/advancement/husbandry/silk_touch_nest.json new file mode 100644 index 00000000..1fd94b8d --- /dev/null +++ b/data/minecraft/advancement/husbandry/silk_touch_nest.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "silk_touch_nest": { + "conditions": { + "block": "minecraft:bee_nest", + "item": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + }, + "num_bees_inside": 3 + }, + "trigger": "minecraft:bee_nest_destroyed" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.silk_touch_nest.description" + }, + "icon": { + "count": 1, + "id": "minecraft:bee_nest" + }, + "title": { + "translate": "advancements.husbandry.silk_touch_nest.title" + } + }, + "requirements": [ + [ + "silk_touch_nest" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/tactical_fishing.json b/data/minecraft/advancement/husbandry/tactical_fishing.json new file mode 100644 index 00000000..bc8efbe1 --- /dev/null +++ b/data/minecraft/advancement/husbandry/tactical_fishing.json @@ -0,0 +1,58 @@ +{ + "parent": "minecraft:husbandry/fishy_business", + "criteria": { + "cod_bucket": { + "conditions": { + "item": { + "items": "minecraft:cod_bucket" + } + }, + "trigger": "minecraft:filled_bucket" + }, + "pufferfish_bucket": { + "conditions": { + "item": { + "items": "minecraft:pufferfish_bucket" + } + }, + "trigger": "minecraft:filled_bucket" + }, + "salmon_bucket": { + "conditions": { + "item": { + "items": "minecraft:salmon_bucket" + } + }, + "trigger": "minecraft:filled_bucket" + }, + "tropical_fish_bucket": { + "conditions": { + "item": { + "items": "minecraft:tropical_fish_bucket" + } + }, + "trigger": "minecraft:filled_bucket" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.tactical_fishing.description" + }, + "icon": { + "count": 1, + "id": "minecraft:pufferfish_bucket" + }, + "title": { + "translate": "advancements.husbandry.tactical_fishing.title" + } + }, + "requirements": [ + [ + "cod_bucket", + "tropical_fish_bucket", + "pufferfish_bucket", + "salmon_bucket" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/tadpole_in_a_bucket.json b/data/minecraft/advancement/husbandry/tadpole_in_a_bucket.json new file mode 100644 index 00000000..66ee8d81 --- /dev/null +++ b/data/minecraft/advancement/husbandry/tadpole_in_a_bucket.json @@ -0,0 +1,31 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "tadpole_bucket": { + "conditions": { + "item": { + "items": "minecraft:tadpole_bucket" + } + }, + "trigger": "minecraft:filled_bucket" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.tadpole_in_a_bucket.description" + }, + "icon": { + "count": 1, + "id": "minecraft:tadpole_bucket" + }, + "title": { + "translate": "advancements.husbandry.tadpole_in_a_bucket.title" + } + }, + "requirements": [ + [ + "tadpole_bucket" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/tame_an_animal.json b/data/minecraft/advancement/husbandry/tame_an_animal.json new file mode 100644 index 00000000..69168b27 --- /dev/null +++ b/data/minecraft/advancement/husbandry/tame_an_animal.json @@ -0,0 +1,26 @@ +{ + "parent": "minecraft:husbandry/root", + "criteria": { + "tamed_animal": { + "trigger": "minecraft:tame_animal" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.tame_an_animal.description" + }, + "icon": { + "count": 1, + "id": "minecraft:lead" + }, + "title": { + "translate": "advancements.husbandry.tame_an_animal.title" + } + }, + "requirements": [ + [ + "tamed_animal" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/wax_off.json b/data/minecraft/advancement/husbandry/wax_off.json new file mode 100644 index 00000000..288ba95b --- /dev/null +++ b/data/minecraft/advancement/husbandry/wax_off.json @@ -0,0 +1,88 @@ +{ + "parent": "minecraft:husbandry/wax_on", + "criteria": { + "wax_off": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:waxed_copper_block", + "minecraft:waxed_exposed_copper", + "minecraft:waxed_weathered_copper", + "minecraft:waxed_oxidized_copper", + "minecraft:waxed_cut_copper", + "minecraft:waxed_exposed_cut_copper", + "minecraft:waxed_weathered_cut_copper", + "minecraft:waxed_oxidized_cut_copper", + "minecraft:waxed_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_chiseled_copper", + "minecraft:waxed_exposed_chiseled_copper", + "minecraft:waxed_weathered_chiseled_copper", + "minecraft:waxed_oxidized_chiseled_copper", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:waxed_oxidized_copper_door", + "minecraft:waxed_copper_trapdoor", + "minecraft:waxed_exposed_copper_trapdoor", + "minecraft:waxed_weathered_copper_trapdoor", + "minecraft:waxed_oxidized_copper_trapdoor", + "minecraft:waxed_copper_grate", + "minecraft:waxed_exposed_copper_grate", + "minecraft:waxed_weathered_copper_grate", + "minecraft:waxed_oxidized_copper_grate", + "minecraft:waxed_copper_bulb", + "minecraft:waxed_exposed_copper_bulb", + "minecraft:waxed_weathered_copper_bulb", + "minecraft:waxed_oxidized_copper_bulb" + ] + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:wooden_axe", + "minecraft:golden_axe", + "minecraft:stone_axe", + "minecraft:iron_axe", + "minecraft:diamond_axe", + "minecraft:netherite_axe" + ] + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.wax_off.description" + }, + "icon": { + "count": 1, + "id": "minecraft:stone_axe" + }, + "title": { + "translate": "advancements.husbandry.wax_off.title" + } + }, + "requirements": [ + [ + "wax_off" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/wax_on.json b/data/minecraft/advancement/husbandry/wax_on.json new file mode 100644 index 00000000..ca319bf0 --- /dev/null +++ b/data/minecraft/advancement/husbandry/wax_on.json @@ -0,0 +1,81 @@ +{ + "parent": "minecraft:husbandry/safely_harvest_honey", + "criteria": { + "wax_on": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:copper_block", + "minecraft:exposed_copper", + "minecraft:weathered_copper", + "minecraft:oxidized_copper", + "minecraft:cut_copper", + "minecraft:exposed_cut_copper", + "minecraft:weathered_cut_copper", + "minecraft:oxidized_cut_copper", + "minecraft:cut_copper_slab", + "minecraft:exposed_cut_copper_slab", + "minecraft:weathered_cut_copper_slab", + "minecraft:oxidized_cut_copper_slab", + "minecraft:cut_copper_stairs", + "minecraft:exposed_cut_copper_stairs", + "minecraft:weathered_cut_copper_stairs", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:chiseled_copper", + "minecraft:exposed_chiseled_copper", + "minecraft:weathered_chiseled_copper", + "minecraft:oxidized_chiseled_copper", + "minecraft:copper_door", + "minecraft:exposed_copper_door", + "minecraft:weathered_copper_door", + "minecraft:oxidized_copper_door", + "minecraft:copper_trapdoor", + "minecraft:exposed_copper_trapdoor", + "minecraft:weathered_copper_trapdoor", + "minecraft:oxidized_copper_trapdoor", + "minecraft:copper_grate", + "minecraft:exposed_copper_grate", + "minecraft:weathered_copper_grate", + "minecraft:oxidized_copper_grate", + "minecraft:copper_bulb", + "minecraft:exposed_copper_bulb", + "minecraft:weathered_copper_bulb", + "minecraft:oxidized_copper_bulb" + ] + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:honeycomb" + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.wax_on.description" + }, + "icon": { + "count": 1, + "id": "minecraft:honeycomb" + }, + "title": { + "translate": "advancements.husbandry.wax_on.title" + } + }, + "requirements": [ + [ + "wax_on" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/husbandry/whole_pack.json b/data/minecraft/advancement/husbandry/whole_pack.json new file mode 100644 index 00000000..26a20d57 --- /dev/null +++ b/data/minecraft/advancement/husbandry/whole_pack.json @@ -0,0 +1,204 @@ +{ + "parent": "minecraft:husbandry/tame_an_animal", + "criteria": { + "minecraft:ashen": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:ashen" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:black": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:black" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:chestnut": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:chestnut" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:pale": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:pale" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:rusty": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:rusty" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:snowy": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:snowy" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:spotted": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:spotted" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:striped": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:striped" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + }, + "minecraft:woods": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:wolf", + "variant": "minecraft:woods" + } + } + } + ] + }, + "trigger": "minecraft:tame_animal" + } + }, + "display": { + "description": { + "translate": "advancements.husbandry.whole_pack.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:bone" + }, + "title": { + "translate": "advancements.husbandry.whole_pack.title" + } + }, + "requirements": [ + [ + "minecraft:ashen" + ], + [ + "minecraft:black" + ], + [ + "minecraft:chestnut" + ], + [ + "minecraft:pale" + ], + [ + "minecraft:rusty" + ], + [ + "minecraft:snowy" + ], + [ + "minecraft:spotted" + ], + [ + "minecraft:striped" + ], + [ + "minecraft:woods" + ] + ], + "rewards": { + "experience": 50 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/all_effects.json b/data/minecraft/advancement/nether/all_effects.json new file mode 100644 index 00000000..fdf89aca --- /dev/null +++ b/data/minecraft/advancement/nether/all_effects.json @@ -0,0 +1,68 @@ +{ + "parent": "minecraft:nether/all_potions", + "criteria": { + "all_effects": { + "conditions": { + "effects": { + "minecraft:absorption": {}, + "minecraft:bad_omen": {}, + "minecraft:blindness": {}, + "minecraft:conduit_power": {}, + "minecraft:darkness": {}, + "minecraft:dolphins_grace": {}, + "minecraft:fire_resistance": {}, + "minecraft:glowing": {}, + "minecraft:haste": {}, + "minecraft:hero_of_the_village": {}, + "minecraft:hunger": {}, + "minecraft:infested": {}, + "minecraft:invisibility": {}, + "minecraft:jump_boost": {}, + "minecraft:levitation": {}, + "minecraft:mining_fatigue": {}, + "minecraft:nausea": {}, + "minecraft:night_vision": {}, + "minecraft:oozing": {}, + "minecraft:poison": {}, + "minecraft:raid_omen": {}, + "minecraft:regeneration": {}, + "minecraft:resistance": {}, + "minecraft:slow_falling": {}, + "minecraft:slowness": {}, + "minecraft:speed": {}, + "minecraft:strength": {}, + "minecraft:trial_omen": {}, + "minecraft:water_breathing": {}, + "minecraft:weakness": {}, + "minecraft:weaving": {}, + "minecraft:wind_charged": {}, + "minecraft:wither": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.all_effects.description" + }, + "frame": "challenge", + "hidden": true, + "icon": { + "count": 1, + "id": "minecraft:bucket" + }, + "title": { + "translate": "advancements.nether.all_effects.title" + } + }, + "requirements": [ + [ + "all_effects" + ] + ], + "rewards": { + "experience": 1000 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/all_potions.json b/data/minecraft/advancement/nether/all_potions.json new file mode 100644 index 00000000..43f6f1fc --- /dev/null +++ b/data/minecraft/advancement/nether/all_potions.json @@ -0,0 +1,51 @@ +{ + "parent": "minecraft:nether/brew_potion", + "criteria": { + "all_effects": { + "conditions": { + "effects": { + "minecraft:fire_resistance": {}, + "minecraft:infested": {}, + "minecraft:invisibility": {}, + "minecraft:jump_boost": {}, + "minecraft:night_vision": {}, + "minecraft:oozing": {}, + "minecraft:poison": {}, + "minecraft:regeneration": {}, + "minecraft:resistance": {}, + "minecraft:slow_falling": {}, + "minecraft:slowness": {}, + "minecraft:speed": {}, + "minecraft:strength": {}, + "minecraft:water_breathing": {}, + "minecraft:weakness": {}, + "minecraft:weaving": {}, + "minecraft:wind_charged": {} + } + }, + "trigger": "minecraft:effects_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.all_potions.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:milk_bucket" + }, + "title": { + "translate": "advancements.nether.all_potions.title" + } + }, + "requirements": [ + [ + "all_effects" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/brew_potion.json b/data/minecraft/advancement/nether/brew_potion.json new file mode 100644 index 00000000..c1801971 --- /dev/null +++ b/data/minecraft/advancement/nether/brew_potion.json @@ -0,0 +1,26 @@ +{ + "parent": "minecraft:nether/obtain_blaze_rod", + "criteria": { + "potion": { + "trigger": "minecraft:brewed_potion" + } + }, + "display": { + "description": { + "translate": "advancements.nether.brew_potion.description" + }, + "icon": { + "count": 1, + "id": "minecraft:potion" + }, + "title": { + "translate": "advancements.nether.brew_potion.title" + } + }, + "requirements": [ + [ + "potion" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/charge_respawn_anchor.json b/data/minecraft/advancement/nether/charge_respawn_anchor.json new file mode 100644 index 00000000..c7a2b372 --- /dev/null +++ b/data/minecraft/advancement/nether/charge_respawn_anchor.json @@ -0,0 +1,47 @@ +{ + "parent": "minecraft:nether/obtain_crying_obsidian", + "criteria": { + "charge_respawn_anchor": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "minecraft:respawn_anchor", + "state": { + "charges": "4" + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:glowstone" + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.nether.charge_respawn_anchor.description" + }, + "icon": { + "count": 1, + "id": "minecraft:respawn_anchor" + }, + "title": { + "translate": "advancements.nether.charge_respawn_anchor.title" + } + }, + "requirements": [ + [ + "charge_respawn_anchor" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/create_beacon.json b/data/minecraft/advancement/nether/create_beacon.json new file mode 100644 index 00000000..53aaad6f --- /dev/null +++ b/data/minecraft/advancement/nether/create_beacon.json @@ -0,0 +1,31 @@ +{ + "parent": "minecraft:nether/summon_wither", + "criteria": { + "beacon": { + "conditions": { + "level": { + "min": 1 + } + }, + "trigger": "minecraft:construct_beacon" + } + }, + "display": { + "description": { + "translate": "advancements.nether.create_beacon.description" + }, + "icon": { + "count": 1, + "id": "minecraft:beacon" + }, + "title": { + "translate": "advancements.nether.create_beacon.title" + } + }, + "requirements": [ + [ + "beacon" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/create_full_beacon.json b/data/minecraft/advancement/nether/create_full_beacon.json new file mode 100644 index 00000000..9744f0e0 --- /dev/null +++ b/data/minecraft/advancement/nether/create_full_beacon.json @@ -0,0 +1,30 @@ +{ + "parent": "minecraft:nether/create_beacon", + "criteria": { + "beacon": { + "conditions": { + "level": 4 + }, + "trigger": "minecraft:construct_beacon" + } + }, + "display": { + "description": { + "translate": "advancements.nether.create_full_beacon.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:beacon" + }, + "title": { + "translate": "advancements.nether.create_full_beacon.title" + } + }, + "requirements": [ + [ + "beacon" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/distract_piglin.json b/data/minecraft/advancement/nether/distract_piglin.json new file mode 100644 index 00000000..2faa7181 --- /dev/null +++ b/data/minecraft/advancement/nether/distract_piglin.json @@ -0,0 +1,180 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "distract_piglin": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:piglin", + "flags": { + "is_baby": false + } + } + } + ], + "item": { + "items": "#minecraft:piglin_loved" + }, + "player": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "head": { + "items": "minecraft:golden_helmet" + } + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "chest": { + "items": "minecraft:golden_chestplate" + } + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "legs": { + "items": "minecraft:golden_leggings" + } + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "feet": { + "items": "minecraft:golden_boots" + } + } + } + } + } + ] + }, + "trigger": "minecraft:thrown_item_picked_up_by_entity" + }, + "distract_piglin_directly": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:piglin", + "flags": { + "is_baby": false + } + } + } + ], + "item": { + "items": "minecraft:gold_ingot" + }, + "player": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "head": { + "items": "minecraft:golden_helmet" + } + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "chest": { + "items": "minecraft:golden_chestplate" + } + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "legs": { + "items": "minecraft:golden_leggings" + } + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "feet": { + "items": "minecraft:golden_boots" + } + } + } + } + } + ] + }, + "trigger": "minecraft:player_interacted_with_entity" + } + }, + "display": { + "description": { + "translate": "advancements.nether.distract_piglin.description" + }, + "icon": { + "count": 1, + "id": "minecraft:gold_ingot" + }, + "title": { + "translate": "advancements.nether.distract_piglin.title" + } + }, + "requirements": [ + [ + "distract_piglin", + "distract_piglin_directly" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/explore_nether.json b/data/minecraft/advancement/nether/explore_nether.json new file mode 100644 index 00000000..76fdf212 --- /dev/null +++ b/data/minecraft/advancement/nether/explore_nether.json @@ -0,0 +1,119 @@ +{ + "parent": "minecraft:nether/ride_strider", + "criteria": { + "minecraft:basalt_deltas": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:basalt_deltas" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:crimson_forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:crimson_forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:nether_wastes": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:nether_wastes" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:soul_sand_valley": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:soul_sand_valley" + } + } + } + ] + }, + "trigger": "minecraft:location" + }, + "minecraft:warped_forest": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biomes": "minecraft:warped_forest" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.nether.explore_nether.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:netherite_boots" + }, + "title": { + "translate": "advancements.nether.explore_nether.title" + } + }, + "requirements": [ + [ + "minecraft:nether_wastes" + ], + [ + "minecraft:soul_sand_valley" + ], + [ + "minecraft:crimson_forest" + ], + [ + "minecraft:warped_forest" + ], + [ + "minecraft:basalt_deltas" + ] + ], + "rewards": { + "experience": 500 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/fast_travel.json b/data/minecraft/advancement/nether/fast_travel.json new file mode 100644 index 00000000..3c611078 --- /dev/null +++ b/data/minecraft/advancement/nether/fast_travel.json @@ -0,0 +1,37 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "travelled": { + "conditions": { + "distance": { + "horizontal": { + "min": 7000.0 + } + } + }, + "trigger": "minecraft:nether_travel" + } + }, + "display": { + "description": { + "translate": "advancements.nether.fast_travel.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:map" + }, + "title": { + "translate": "advancements.nether.fast_travel.title" + } + }, + "requirements": [ + [ + "travelled" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/find_bastion.json b/data/minecraft/advancement/nether/find_bastion.json new file mode 100644 index 00000000..9b253467 --- /dev/null +++ b/data/minecraft/advancement/nether/find_bastion.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "bastion": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "minecraft:bastion_remnant" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.nether.find_bastion.description" + }, + "icon": { + "count": 1, + "id": "minecraft:polished_blackstone_bricks" + }, + "title": { + "translate": "advancements.nether.find_bastion.title" + } + }, + "requirements": [ + [ + "bastion" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/find_fortress.json b/data/minecraft/advancement/nether/find_fortress.json new file mode 100644 index 00000000..26b1ee35 --- /dev/null +++ b/data/minecraft/advancement/nether/find_fortress.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "fortress": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "minecraft:fortress" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.nether.find_fortress.description" + }, + "icon": { + "count": 1, + "id": "minecraft:nether_bricks" + }, + "title": { + "translate": "advancements.nether.find_fortress.title" + } + }, + "requirements": [ + [ + "fortress" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/get_wither_skull.json b/data/minecraft/advancement/nether/get_wither_skull.json new file mode 100644 index 00000000..aee6f712 --- /dev/null +++ b/data/minecraft/advancement/nether/get_wither_skull.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:nether/find_fortress", + "criteria": { + "wither_skull": { + "conditions": { + "items": [ + { + "items": "minecraft:wither_skeleton_skull" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.get_wither_skull.description" + }, + "icon": { + "count": 1, + "id": "minecraft:wither_skeleton_skull" + }, + "title": { + "translate": "advancements.nether.get_wither_skull.title" + } + }, + "requirements": [ + [ + "wither_skull" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/loot_bastion.json b/data/minecraft/advancement/nether/loot_bastion.json new file mode 100644 index 00000000..97a15e05 --- /dev/null +++ b/data/minecraft/advancement/nether/loot_bastion.json @@ -0,0 +1,50 @@ +{ + "parent": "minecraft:nether/find_bastion", + "criteria": { + "loot_bastion_bridge": { + "conditions": { + "loot_table": "minecraft:chests/bastion_bridge" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "loot_bastion_hoglin_stable": { + "conditions": { + "loot_table": "minecraft:chests/bastion_hoglin_stable" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "loot_bastion_other": { + "conditions": { + "loot_table": "minecraft:chests/bastion_other" + }, + "trigger": "minecraft:player_generates_container_loot" + }, + "loot_bastion_treasure": { + "conditions": { + "loot_table": "minecraft:chests/bastion_treasure" + }, + "trigger": "minecraft:player_generates_container_loot" + } + }, + "display": { + "description": { + "translate": "advancements.nether.loot_bastion.description" + }, + "icon": { + "count": 1, + "id": "minecraft:chest" + }, + "title": { + "translate": "advancements.nether.loot_bastion.title" + } + }, + "requirements": [ + [ + "loot_bastion_other", + "loot_bastion_treasure", + "loot_bastion_hoglin_stable", + "loot_bastion_bridge" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/netherite_armor.json b/data/minecraft/advancement/nether/netherite_armor.json new file mode 100644 index 00000000..29e64bad --- /dev/null +++ b/data/minecraft/advancement/nether/netherite_armor.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:nether/obtain_ancient_debris", + "criteria": { + "netherite_armor": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_helmet" + }, + { + "items": "minecraft:netherite_chestplate" + }, + { + "items": "minecraft:netherite_leggings" + }, + { + "items": "minecraft:netherite_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.netherite_armor.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:netherite_chestplate" + }, + "title": { + "translate": "advancements.nether.netherite_armor.title" + } + }, + "requirements": [ + [ + "netherite_armor" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/obtain_ancient_debris.json b/data/minecraft/advancement/nether/obtain_ancient_debris.json new file mode 100644 index 00000000..d1538102 --- /dev/null +++ b/data/minecraft/advancement/nether/obtain_ancient_debris.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "ancient_debris": { + "conditions": { + "items": [ + { + "items": "minecraft:ancient_debris" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.obtain_ancient_debris.description" + }, + "icon": { + "count": 1, + "id": "minecraft:ancient_debris" + }, + "title": { + "translate": "advancements.nether.obtain_ancient_debris.title" + } + }, + "requirements": [ + [ + "ancient_debris" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/obtain_blaze_rod.json b/data/minecraft/advancement/nether/obtain_blaze_rod.json new file mode 100644 index 00000000..e18cbbfa --- /dev/null +++ b/data/minecraft/advancement/nether/obtain_blaze_rod.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:nether/find_fortress", + "criteria": { + "blaze_rod": { + "conditions": { + "items": [ + { + "items": "minecraft:blaze_rod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.obtain_blaze_rod.description" + }, + "icon": { + "count": 1, + "id": "minecraft:blaze_rod" + }, + "title": { + "translate": "advancements.nether.obtain_blaze_rod.title" + } + }, + "requirements": [ + [ + "blaze_rod" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/obtain_crying_obsidian.json b/data/minecraft/advancement/nether/obtain_crying_obsidian.json new file mode 100644 index 00000000..8561c210 --- /dev/null +++ b/data/minecraft/advancement/nether/obtain_crying_obsidian.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "crying_obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:crying_obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.obtain_crying_obsidian.description" + }, + "icon": { + "count": 1, + "id": "minecraft:crying_obsidian" + }, + "title": { + "translate": "advancements.nether.obtain_crying_obsidian.title" + } + }, + "requirements": [ + [ + "crying_obsidian" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/return_to_sender.json b/data/minecraft/advancement/nether/return_to_sender.json new file mode 100644 index 00000000..22b88ee3 --- /dev/null +++ b/data/minecraft/advancement/nether/return_to_sender.json @@ -0,0 +1,52 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "killed_ghast": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ghast" + } + } + ], + "killing_blow": { + "direct_entity": { + "type": "minecraft:fireball" + }, + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + } + ] + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.nether.return_to_sender.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:fire_charge" + }, + "title": { + "translate": "advancements.nether.return_to_sender.title" + } + }, + "requirements": [ + [ + "killed_ghast" + ] + ], + "rewards": { + "experience": 50 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/ride_strider.json b/data/minecraft/advancement/nether/ride_strider.json new file mode 100644 index 00000000..376de8ee --- /dev/null +++ b/data/minecraft/advancement/nether/ride_strider.json @@ -0,0 +1,42 @@ +{ + "parent": "minecraft:nether/root", + "criteria": { + "used_warped_fungus_on_a_stick": { + "conditions": { + "item": { + "items": "minecraft:warped_fungus_on_a_stick" + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "vehicle": { + "type": "minecraft:strider" + } + } + } + ] + }, + "trigger": "minecraft:item_durability_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nether.ride_strider.description" + }, + "icon": { + "count": 1, + "id": "minecraft:warped_fungus_on_a_stick" + }, + "title": { + "translate": "advancements.nether.ride_strider.title" + } + }, + "requirements": [ + [ + "used_warped_fungus_on_a_stick" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/ride_strider_in_overworld_lava.json b/data/minecraft/advancement/nether/ride_strider_in_overworld_lava.json new file mode 100644 index 00000000..c172699d --- /dev/null +++ b/data/minecraft/advancement/nether/ride_strider_in_overworld_lava.json @@ -0,0 +1,47 @@ +{ + "parent": "minecraft:nether/ride_strider", + "criteria": { + "ride_entity_distance": { + "conditions": { + "distance": { + "horizontal": { + "min": 50.0 + } + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "dimension": "minecraft:overworld" + }, + "vehicle": { + "type": "minecraft:strider" + } + } + } + ] + }, + "trigger": "minecraft:ride_entity_in_lava" + } + }, + "display": { + "description": { + "translate": "advancements.nether.ride_strider_in_overworld_lava.description" + }, + "icon": { + "count": 1, + "id": "minecraft:warped_fungus_on_a_stick" + }, + "title": { + "translate": "advancements.nether.ride_strider_in_overworld_lava.title" + } + }, + "requirements": [ + [ + "ride_entity_distance" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/root.json b/data/minecraft/advancement/nether/root.json new file mode 100644 index 00000000..6ef424ea --- /dev/null +++ b/data/minecraft/advancement/nether/root.json @@ -0,0 +1,31 @@ +{ + "criteria": { + "entered_nether": { + "conditions": { + "to": "minecraft:the_nether" + }, + "trigger": "minecraft:changed_dimension" + } + }, + "display": { + "announce_to_chat": false, + "background": "minecraft:textures/gui/advancements/backgrounds/nether.png", + "description": { + "translate": "advancements.nether.root.description" + }, + "icon": { + "count": 1, + "id": "minecraft:red_nether_bricks" + }, + "show_toast": false, + "title": { + "translate": "advancements.nether.root.title" + } + }, + "requirements": [ + [ + "entered_nether" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/summon_wither.json b/data/minecraft/advancement/nether/summon_wither.json new file mode 100644 index 00000000..9c855568 --- /dev/null +++ b/data/minecraft/advancement/nether/summon_wither.json @@ -0,0 +1,37 @@ +{ + "parent": "minecraft:nether/get_wither_skull", + "criteria": { + "summoned": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:wither" + } + } + ] + }, + "trigger": "minecraft:summoned_entity" + } + }, + "display": { + "description": { + "translate": "advancements.nether.summon_wither.description" + }, + "icon": { + "count": 1, + "id": "minecraft:nether_star" + }, + "title": { + "translate": "advancements.nether.summon_wither.title" + } + }, + "requirements": [ + [ + "summoned" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/uneasy_alliance.json b/data/minecraft/advancement/nether/uneasy_alliance.json new file mode 100644 index 00000000..eb27bb74 --- /dev/null +++ b/data/minecraft/advancement/nether/uneasy_alliance.json @@ -0,0 +1,44 @@ +{ + "parent": "minecraft:nether/return_to_sender", + "criteria": { + "killed_ghast": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:ghast", + "location": { + "dimension": "minecraft:overworld" + } + } + } + ] + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "description": { + "translate": "advancements.nether.uneasy_alliance.description" + }, + "frame": "challenge", + "icon": { + "count": 1, + "id": "minecraft:ghast_tear" + }, + "title": { + "translate": "advancements.nether.uneasy_alliance.title" + } + }, + "requirements": [ + [ + "killed_ghast" + ] + ], + "rewards": { + "experience": 100 + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/nether/use_lodestone.json b/data/minecraft/advancement/nether/use_lodestone.json new file mode 100644 index 00000000..dfa084db --- /dev/null +++ b/data/minecraft/advancement/nether/use_lodestone.json @@ -0,0 +1,44 @@ +{ + "parent": "minecraft:nether/obtain_ancient_debris", + "criteria": { + "use_lodestone": { + "conditions": { + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "minecraft:lodestone" + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:compass" + } + } + ] + }, + "trigger": "minecraft:item_used_on_block" + } + }, + "display": { + "description": { + "translate": "advancements.nether.use_lodestone.description" + }, + "icon": { + "count": 1, + "id": "minecraft:lodestone" + }, + "title": { + "translate": "advancements.nether.use_lodestone.title" + } + }, + "requirements": [ + [ + "use_lodestone" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/blaze_powder.json b/data/minecraft/advancement/recipes/brewing/blaze_powder.json new file mode 100644 index 00000000..8d1ddddb --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/blaze_powder.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blaze_rod": { + "conditions": { + "items": [ + { + "items": "minecraft:blaze_rod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blaze_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blaze_rod" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blaze_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/brewing_stand.json b/data/minecraft/advancement/recipes/brewing/brewing_stand.json new file mode 100644 index 00000000..0ac47f8a --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/brewing_stand.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blaze_rod": { + "conditions": { + "items": [ + { + "items": "minecraft:blaze_rod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brewing_stand" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blaze_rod" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brewing_stand" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/cauldron.json b/data/minecraft/advancement/recipes/brewing/cauldron.json new file mode 100644 index 00000000..ff39eb35 --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/cauldron.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cauldron" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_water_bucket": { + "conditions": { + "items": [ + { + "items": "minecraft:water_bucket" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_water_bucket" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cauldron" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/fermented_spider_eye.json b/data/minecraft/advancement/recipes/brewing/fermented_spider_eye.json new file mode 100644 index 00000000..8a3761dc --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/fermented_spider_eye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spider_eye": { + "conditions": { + "items": [ + { + "items": "minecraft:spider_eye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:fermented_spider_eye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spider_eye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:fermented_spider_eye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/glass_bottle.json b/data/minecraft/advancement/recipes/brewing/glass_bottle.json new file mode 100644 index 00000000..fe21e431 --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/glass_bottle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:glass_bottle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:glass_bottle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/glistering_melon_slice.json b/data/minecraft/advancement/recipes/brewing/glistering_melon_slice.json new file mode 100644 index 00000000..857f041b --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/glistering_melon_slice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_melon": { + "conditions": { + "items": [ + { + "items": "minecraft:melon_slice" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:glistering_melon_slice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_melon" + ] + ], + "rewards": { + "recipes": [ + "minecraft:glistering_melon_slice" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/golden_carrot.json b/data/minecraft/advancement/recipes/brewing/golden_carrot.json new file mode 100644 index 00000000..08d9c0d4 --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/golden_carrot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_nugget": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_carrot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_nugget" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_carrot" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/brewing/magma_cream.json b/data/minecraft/advancement/recipes/brewing/magma_cream.json new file mode 100644 index 00000000..fc582504 --- /dev/null +++ b/data/minecraft/advancement/recipes/brewing/magma_cream.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blaze_powder": { + "conditions": { + "items": [ + { + "items": "minecraft:blaze_powder" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magma_cream" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blaze_powder" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magma_cream" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/acacia_planks.json b/data/minecraft/advancement/recipes/building_blocks/acacia_planks.json new file mode 100644 index 00000000..6ac8ef07 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/acacia_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "#minecraft:acacia_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/acacia_slab.json b/data/minecraft/advancement/recipes/building_blocks/acacia_slab.json new file mode 100644 index 00000000..b689bb16 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/acacia_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/acacia_stairs.json b/data/minecraft/advancement/recipes/building_blocks/acacia_stairs.json new file mode 100644 index 00000000..48d940b4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/acacia_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/acacia_wood.json b/data/minecraft/advancement/recipes/building_blocks/acacia_wood.json new file mode 100644 index 00000000..3e2bb81a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/acacia_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/amethyst_block.json b/data/minecraft/advancement/recipes/building_blocks/amethyst_block.json new file mode 100644 index 00000000..427da1bf --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/amethyst_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_amethyst_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:amethyst_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_amethyst_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:amethyst_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/andesite.json b/data/minecraft/advancement/recipes/building_blocks/andesite.json new file mode 100644 index 00000000..66f931d1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/andesite.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:andesite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:andesite" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/andesite_slab.json b/data/minecraft/advancement/recipes/building_blocks/andesite_slab.json new file mode 100644 index 00000000..34f4b6fe --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/andesite_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:andesite_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:andesite_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/andesite_slab_from_andesite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/andesite_slab_from_andesite_stonecutting.json new file mode 100644 index 00000000..fd703a55 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/andesite_slab_from_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:andesite_slab_from_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:andesite_slab_from_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/andesite_stairs.json b/data/minecraft/advancement/recipes/building_blocks/andesite_stairs.json new file mode 100644 index 00000000..a5645ee1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/andesite_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:andesite_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:andesite_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/andesite_stairs_from_andesite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/andesite_stairs_from_andesite_stonecutting.json new file mode 100644 index 00000000..2206f376 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/andesite_stairs_from_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:andesite_stairs_from_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:andesite_stairs_from_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bamboo_block.json b/data/minecraft/advancement/recipes/building_blocks/bamboo_block.json new file mode 100644 index 00000000..c738c907 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bamboo_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bamboo_mosaic_slab.json b/data/minecraft/advancement/recipes/building_blocks/bamboo_mosaic_slab.json new file mode 100644 index 00000000..9204c7f1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bamboo_mosaic_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_mosaic": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_mosaic" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_mosaic_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_mosaic" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_mosaic_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bamboo_mosaic_stairs.json b/data/minecraft/advancement/recipes/building_blocks/bamboo_mosaic_stairs.json new file mode 100644 index 00000000..7ba886be --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bamboo_mosaic_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_mosaic": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_mosaic" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_mosaic_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_mosaic" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_mosaic_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bamboo_planks.json b/data/minecraft/advancement/recipes/building_blocks/bamboo_planks.json new file mode 100644 index 00000000..f8a7cd8c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bamboo_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:bamboo_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bamboo_slab.json b/data/minecraft/advancement/recipes/building_blocks/bamboo_slab.json new file mode 100644 index 00000000..bd1270c7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bamboo_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bamboo_stairs.json b/data/minecraft/advancement/recipes/building_blocks/bamboo_stairs.json new file mode 100644 index 00000000..671a9915 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bamboo_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/birch_planks.json b/data/minecraft/advancement/recipes/building_blocks/birch_planks.json new file mode 100644 index 00000000..33ff4525 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/birch_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:birch_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/birch_slab.json b/data/minecraft/advancement/recipes/building_blocks/birch_slab.json new file mode 100644 index 00000000..22b07f02 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/birch_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/birch_stairs.json b/data/minecraft/advancement/recipes/building_blocks/birch_stairs.json new file mode 100644 index 00000000..93c4a0ae --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/birch_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/birch_wood.json b/data/minecraft/advancement/recipes/building_blocks/birch_wood.json new file mode 100644 index 00000000..ca814554 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/birch_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/black_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/black_concrete_powder.json new file mode 100644 index 00000000..cada244c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/black_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/black_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/black_stained_glass.json new file mode 100644 index 00000000..8cdecae5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/black_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/black_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/black_terracotta.json new file mode 100644 index 00000000..da09c67b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/black_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blackstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/blackstone_slab.json new file mode 100644 index 00000000..396bfc78 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blackstone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blackstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blackstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blackstone_slab_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/blackstone_slab_from_blackstone_stonecutting.json new file mode 100644 index 00000000..358fd4b2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blackstone_slab_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blackstone_slab_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blackstone_slab_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blackstone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/blackstone_stairs.json new file mode 100644 index 00000000..4d3708f6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blackstone_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blackstone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blackstone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blackstone_stairs_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/blackstone_stairs_from_blackstone_stonecutting.json new file mode 100644 index 00000000..41a99daa --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blackstone_stairs_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blackstone_stairs_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blackstone_stairs_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blue_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/blue_concrete_powder.json new file mode 100644 index 00000000..9f25469c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blue_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blue_ice.json b/data/minecraft/advancement/recipes/building_blocks/blue_ice.json new file mode 100644 index 00000000..da1920a3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blue_ice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_packed_ice": { + "conditions": { + "items": [ + { + "items": "minecraft:packed_ice" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_ice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_packed_ice" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_ice" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blue_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/blue_stained_glass.json new file mode 100644 index 00000000..abfc34c6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blue_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/blue_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/blue_terracotta.json new file mode 100644 index 00000000..76b6ed81 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/blue_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bone_block.json b/data/minecraft/advancement/recipes/building_blocks/bone_block.json new file mode 100644 index 00000000..efb51c73 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bone_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bone_meal": { + "conditions": { + "items": [ + { + "items": "minecraft:bone_meal" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bone_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bone_meal" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bone_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bookshelf.json b/data/minecraft/advancement/recipes/building_blocks/bookshelf.json new file mode 100644 index 00000000..940dc9dc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bookshelf.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_book": { + "conditions": { + "items": [ + { + "items": "minecraft:book" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bookshelf" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_book" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bookshelf" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/brick_slab.json new file mode 100644 index 00000000..bfc8c4a6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/brick_slab_from_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/brick_slab_from_bricks_stonecutting.json new file mode 100644 index 00000000..996dd7ea --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/brick_slab_from_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brick_slab_from_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brick_slab_from_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/brick_stairs.json new file mode 100644 index 00000000..ab6165aa --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/brick_stairs_from_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/brick_stairs_from_bricks_stonecutting.json new file mode 100644 index 00000000..10f026af --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/brick_stairs_from_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brick_stairs_from_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brick_stairs_from_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/bricks.json b/data/minecraft/advancement/recipes/building_blocks/bricks.json new file mode 100644 index 00000000..e7da1c7d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:brick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/brown_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/brown_concrete_powder.json new file mode 100644 index 00000000..0d704969 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/brown_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/brown_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/brown_stained_glass.json new file mode 100644 index 00000000..e16a209e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/brown_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/brown_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/brown_terracotta.json new file mode 100644 index 00000000..3bccb2ae --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/brown_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cherry_planks.json b/data/minecraft/advancement/recipes/building_blocks/cherry_planks.json new file mode 100644 index 00000000..00dde3c9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cherry_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "#minecraft:cherry_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cherry_slab.json b/data/minecraft/advancement/recipes/building_blocks/cherry_slab.json new file mode 100644 index 00000000..0ec95c01 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cherry_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cherry_stairs.json b/data/minecraft/advancement/recipes/building_blocks/cherry_stairs.json new file mode 100644 index 00000000..50c80f14 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cherry_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cherry_wood.json b/data/minecraft/advancement/recipes/building_blocks/cherry_wood.json new file mode 100644 index 00000000..083d3a3f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cherry_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_bookshelf.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_bookshelf.json new file mode 100644 index 00000000..4cac964b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_bookshelf.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_book": { + "conditions": { + "items": [ + { + "items": "minecraft:book" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_bookshelf" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_book" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_bookshelf" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_copper.json new file mode 100644 index 00000000..51c1eeb0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_copper_from_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_copper_from_copper_block_stonecutting.json new file mode 100644 index 00000000..5140c19e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_copper_from_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_copper_from_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_copper_from_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_copper_from_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_copper_from_cut_copper_stonecutting.json new file mode 100644 index 00000000..466dcf86 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_copper_from_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_copper_from_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_copper_from_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_deepslate.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_deepslate.json new file mode 100644 index 00000000..5150c4e7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_deepslate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_deepslate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_deepslate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..ccf8dc07 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_deepslate_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_deepslate_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_nether_bricks.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_nether_bricks.json new file mode 100644 index 00000000..88b409fe --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_nether_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_brick_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_brick_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_nether_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_brick_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_nether_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_nether_bricks_from_nether_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_nether_bricks_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..0c2324bc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_nether_bricks_from_nether_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_nether_bricks_from_nether_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_nether_bricks_from_nether_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone.json new file mode 100644 index 00000000..e089c93d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_polished_blackstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_polished_blackstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone_from_blackstone_stonecutting.json new file mode 100644 index 00000000..affd482b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_polished_blackstone_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_polished_blackstone_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..f084caa4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_polished_blackstone_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_polished_blackstone_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_polished_blackstone_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_quartz_block.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_quartz_block.json new file mode 100644 index 00000000..f56f83ae --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_quartz_block.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_pillar": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_pillar" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_quartz_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chiseled_quartz_block", + "has_quartz_block", + "has_quartz_pillar" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_quartz_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_quartz_block_from_quartz_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_quartz_block_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..2a50bf30 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_quartz_block_from_quartz_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_quartz_block_from_quartz_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_quartz_block_from_quartz_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_red_sandstone.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_red_sandstone.json new file mode 100644 index 00000000..236b2f26 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_red_sandstone.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_cut_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_red_sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone", + "has_chiseled_red_sandstone", + "has_cut_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_red_sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_red_sandstone_from_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_red_sandstone_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..2ecfb755 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_red_sandstone_from_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_red_sandstone_from_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_red_sandstone_from_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_sandstone.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_sandstone.json new file mode 100644 index 00000000..450da418 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_sandstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_sandstone_from_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_sandstone_from_sandstone_stonecutting.json new file mode 100644 index 00000000..8582a73b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_sandstone_from_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_sandstone_from_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_sandstone_from_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks.json new file mode 100644 index 00000000..d51c7aef --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_tag": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_stone_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tag" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_stone_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks_from_stone_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..d292337f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks_from_stone_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_stone_bricks_from_stone_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_stone_bricks_from_stone_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks_stone_from_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks_stone_from_stonecutting.json new file mode 100644 index 00000000..3e54dab1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_stone_bricks_stone_from_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_stone_bricks_stone_from_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_stone_bricks_stone_from_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff.json new file mode 100644 index 00000000..bf0d0329 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_tuff" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_tuff" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks.json new file mode 100644 index 00000000..471700c3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_tuff_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_brick_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_brick_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_brick_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_tuff_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..d6bcb51c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_tuff_bricks_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_tuff_bricks_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_tuff_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..6a64f40a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_tuff_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_tuff_bricks_from_tuff_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_tuff_bricks_from_tuff_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_tuff_stonecutting.json new file mode 100644 index 00000000..f6f51bac --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_bricks_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_tuff_bricks_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_tuff_bricks_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_from_tuff_stonecutting.json new file mode 100644 index 00000000..b596b5bf --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/chiseled_tuff_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_tuff_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_tuff_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/clay.json b/data/minecraft/advancement/recipes/building_blocks/clay.json new file mode 100644 index 00000000..ca22e415 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/clay.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_clay_ball": { + "conditions": { + "items": [ + { + "items": "minecraft:clay_ball" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:clay" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_clay_ball" + ] + ], + "rewards": { + "recipes": [ + "minecraft:clay" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/coal_block.json b/data/minecraft/advancement/recipes/building_blocks/coal_block.json new file mode 100644 index 00000000..fae9443d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/coal_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_coal": { + "conditions": { + "items": [ + { + "items": "minecraft:coal" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coal_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_coal" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coal_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/coarse_dirt.json b/data/minecraft/advancement/recipes/building_blocks/coarse_dirt.json new file mode 100644 index 00000000..f554b735 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/coarse_dirt.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coarse_dirt" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coarse_dirt" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_slab.json b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_slab.json new file mode 100644 index 00000000..514d2f31 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_deepslate_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_deepslate_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..c38bba27 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_stairs.json b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_stairs.json new file mode 100644 index 00000000..36881a5a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_deepslate_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_deepslate_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..dc6df980 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobblestone_slab.json b/data/minecraft/advancement/recipes/building_blocks/cobblestone_slab.json new file mode 100644 index 00000000..e9137a33 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobblestone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobblestone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobblestone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting.json new file mode 100644 index 00000000..5a2a0ca5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobblestone_slab_from_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobblestone_slab_from_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobblestone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/cobblestone_stairs.json new file mode 100644 index 00000000..313f238b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobblestone_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobblestone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobblestone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting.json new file mode 100644 index 00000000..0d7117d7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobblestone_stairs_from_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobblestone_stairs_from_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/copper_block.json b/data/minecraft/advancement/recipes/building_blocks/copper_block.json new file mode 100644 index 00000000..ccb1af3e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/copper_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/copper_grate.json new file mode 100644 index 00000000..0748aaa1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/copper_grate_from_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/copper_grate_from_copper_block_stonecutting.json new file mode 100644 index 00000000..db02a2ab --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/copper_grate_from_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_grate_from_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_grate_from_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cracked_deepslate_bricks.json b/data/minecraft/advancement/recipes/building_blocks/cracked_deepslate_bricks.json new file mode 100644 index 00000000..9d01062a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cracked_deepslate_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_deepslate_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_deepslate_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cracked_deepslate_tiles.json b/data/minecraft/advancement/recipes/building_blocks/cracked_deepslate_tiles.json new file mode 100644 index 00000000..a4088a47 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cracked_deepslate_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_tiles": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_tiles" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_deepslate_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_tiles" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_deepslate_tiles" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cracked_nether_bricks.json b/data/minecraft/advancement/recipes/building_blocks/cracked_nether_bricks.json new file mode 100644 index 00000000..8f52984a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cracked_nether_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_nether_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_nether_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cracked_polished_blackstone_bricks.json b/data/minecraft/advancement/recipes/building_blocks/cracked_polished_blackstone_bricks.json new file mode 100644 index 00000000..1c6e2b17 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cracked_polished_blackstone_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_polished_blackstone_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_polished_blackstone_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cracked_stone_bricks.json b/data/minecraft/advancement/recipes/building_blocks/cracked_stone_bricks.json new file mode 100644 index 00000000..afecad1f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cracked_stone_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_stone_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_stone_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/crimson_hyphae.json b/data/minecraft/advancement/recipes/building_blocks/crimson_hyphae.json new file mode 100644 index 00000000..ed56eba6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/crimson_hyphae.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_stem" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_hyphae" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_hyphae" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/crimson_planks.json b/data/minecraft/advancement/recipes/building_blocks/crimson_planks.json new file mode 100644 index 00000000..068c734a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/crimson_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:crimson_stems" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/crimson_slab.json b/data/minecraft/advancement/recipes/building_blocks/crimson_slab.json new file mode 100644 index 00000000..6287bba5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/crimson_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/crimson_stairs.json b/data/minecraft/advancement/recipes/building_blocks/crimson_stairs.json new file mode 100644 index 00000000..54629e82 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/crimson_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper.json new file mode 100644 index 00000000..5842a495 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper_from_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper_from_copper_block_stonecutting.json new file mode 100644 index 00000000..b0f42cef --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper_from_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper_from_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper_from_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab.json new file mode 100644 index 00000000..8cd916bc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab_from_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab_from_copper_block_stonecutting.json new file mode 100644 index 00000000..dd6699e8 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab_from_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper_slab_from_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper_slab_from_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab_from_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab_from_cut_copper_stonecutting.json new file mode 100644 index 00000000..1e1d3472 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper_slab_from_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper_slab_from_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper_slab_from_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs.json new file mode 100644 index 00000000..aa841a4e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs_from_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs_from_copper_block_stonecutting.json new file mode 100644 index 00000000..d6021a03 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs_from_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper_stairs_from_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper_stairs_from_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs_from_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs_from_cut_copper_stonecutting.json new file mode 100644 index 00000000..7ec35537 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_copper_stairs_from_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_copper_stairs_from_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_copper_stairs_from_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone.json b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone.json new file mode 100644 index 00000000..4f4e56d9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_red_sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_red_sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_from_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..2626bf8f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_from_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_red_sandstone_from_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_red_sandstone_from_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab.json new file mode 100644 index 00000000..a40ffcc3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_red_sandstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_red_sandstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting.json new file mode 100644 index 00000000..6e8c882a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab_from_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..d7c8a632 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_red_sandstone_slab_from_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_red_sandstone_slab_from_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_red_sandstone_slab_from_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_sandstone.json b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone.json new file mode 100644 index 00000000..a7b5cc6f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_from_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_from_sandstone_stonecutting.json new file mode 100644 index 00000000..73db84e9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_from_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_sandstone_from_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_sandstone_from_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab.json new file mode 100644 index 00000000..10affaab --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_sandstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_sandstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab_from_cut_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab_from_cut_sandstone_stonecutting.json new file mode 100644 index 00000000..b6346479 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab_from_cut_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_sandstone_slab_from_cut_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_sandstone_slab_from_cut_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab_from_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab_from_sandstone_stonecutting.json new file mode 100644 index 00000000..3017cd62 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cut_sandstone_slab_from_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_sandstone_slab_from_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_sandstone_slab_from_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cyan_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/cyan_concrete_powder.json new file mode 100644 index 00000000..7e56c077 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cyan_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cyan_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/cyan_stained_glass.json new file mode 100644 index 00000000..392dcac6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cyan_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/cyan_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/cyan_terracotta.json new file mode 100644 index 00000000..88981ad7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/cyan_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_oak_planks.json b/data/minecraft/advancement/recipes/building_blocks/dark_oak_planks.json new file mode 100644 index 00000000..c2edc97e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_oak_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "#minecraft:dark_oak_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_oak_slab.json b/data/minecraft/advancement/recipes/building_blocks/dark_oak_slab.json new file mode 100644 index 00000000..b9b79818 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_oak_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_oak_stairs.json b/data/minecraft/advancement/recipes/building_blocks/dark_oak_stairs.json new file mode 100644 index 00000000..37fef663 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_oak_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_oak_wood.json b/data/minecraft/advancement/recipes/building_blocks/dark_oak_wood.json new file mode 100644 index 00000000..7f626fbd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_oak_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_prismarine.json b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine.json new file mode 100644 index 00000000..c7f7a409 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_prismarine" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_prismarine" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_slab.json b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_slab.json new file mode 100644 index 00000000..1aebf45f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_prismarine_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_prismarine_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_slab_from_dark_prismarine_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_slab_from_dark_prismarine_stonecutting.json new file mode 100644 index 00000000..b3fb42e0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_slab_from_dark_prismarine_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_prismarine_slab_from_dark_prismarine_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_prismarine_slab_from_dark_prismarine_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_stairs.json b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_stairs.json new file mode 100644 index 00000000..50d5dcf1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_prismarine_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_prismarine_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_stairs_from_dark_prismarine_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_stairs_from_dark_prismarine_stonecutting.json new file mode 100644 index 00000000..911f69e4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dark_prismarine_stairs_from_dark_prismarine_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_prismarine_stairs_from_dark_prismarine_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_prismarine_stairs_from_dark_prismarine_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate.json b/data/minecraft/advancement/recipes/building_blocks/deepslate.json new file mode 100644 index 00000000..18d876e7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab.json new file mode 100644 index 00000000..9a8c5d77 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..32b6d215 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_slab_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_slab_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_deepslate_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..c0e76246 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_slab_from_deepslate_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_slab_from_deepslate_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..7fce54ba --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_slab_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_slab_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_slab_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs.json new file mode 100644 index 00000000..513cc8f9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..3739988c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_stairs_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_stairs_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_deepslate_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..49efdf86 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_stairs_from_deepslate_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_stairs_from_deepslate_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..b194ed1c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_brick_stairs_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_stairs_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_stairs_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks.json new file mode 100644 index 00000000..6f21d28c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..50bb9a99 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_bricks_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_bricks_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..aef6f1ca --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_bricks_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_bricks_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_bricks_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab.json new file mode 100644 index 00000000..8b156c17 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_tiles": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_tiles" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_tiles" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..a89f85d2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_slab_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_slab_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_deepslate_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..bea52e92 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_slab_from_deepslate_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_slab_from_deepslate_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_deepslate_tiles_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_deepslate_tiles_stonecutting.json new file mode 100644 index 00000000..35cd426f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_deepslate_tiles_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_tiles": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_tiles" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_slab_from_deepslate_tiles_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_tiles" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_slab_from_deepslate_tiles_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..b79c0f7a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_slab_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_slab_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_slab_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs.json new file mode 100644 index 00000000..7c3c72b2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_tiles": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_tiles" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_tiles" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..3ee1d0de --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_stairs_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_stairs_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_deepslate_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..3ba8b113 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_stairs_from_deepslate_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_stairs_from_deepslate_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_deepslate_tiles_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_deepslate_tiles_stonecutting.json new file mode 100644 index 00000000..3fd21053 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_deepslate_tiles_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_tiles": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_tiles" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_stairs_from_deepslate_tiles_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_tiles" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_stairs_from_deepslate_tiles_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..de129b1c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tile_stairs_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_stairs_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_stairs_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles.json new file mode 100644 index 00000000..3ecb7255 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tiles" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tiles" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..5c4cfb25 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tiles_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tiles_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_deepslate_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..afb22edc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tiles_from_deepslate_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tiles_from_deepslate_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..3236263b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/deepslate_tiles_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tiles_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tiles_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/diamond_block.json b/data/minecraft/advancement/recipes/building_blocks/diamond_block.json new file mode 100644 index 00000000..06ac57a4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/diamond_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/diorite.json b/data/minecraft/advancement/recipes/building_blocks/diorite.json new file mode 100644 index 00000000..4f8b5af0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/diorite.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diorite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diorite" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/diorite_slab.json b/data/minecraft/advancement/recipes/building_blocks/diorite_slab.json new file mode 100644 index 00000000..666f1f2f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/diorite_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diorite_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diorite_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/diorite_slab_from_diorite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/diorite_slab_from_diorite_stonecutting.json new file mode 100644 index 00000000..bee31440 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/diorite_slab_from_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diorite_slab_from_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diorite_slab_from_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/diorite_stairs.json b/data/minecraft/advancement/recipes/building_blocks/diorite_stairs.json new file mode 100644 index 00000000..70fd0448 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/diorite_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diorite_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diorite_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/diorite_stairs_from_diorite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/diorite_stairs_from_diorite_stonecutting.json new file mode 100644 index 00000000..fbb4c7f9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/diorite_stairs_from_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diorite_stairs_from_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diorite_stairs_from_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dried_kelp_block.json b/data/minecraft/advancement/recipes/building_blocks/dried_kelp_block.json new file mode 100644 index 00000000..6b5058dc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dried_kelp_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dried_kelp": { + "conditions": { + "items": [ + { + "items": "minecraft:dried_kelp" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dried_kelp_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dried_kelp" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dried_kelp_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dripstone_block.json b/data/minecraft/advancement/recipes/building_blocks/dripstone_block.json new file mode 100644 index 00000000..94c94194 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dripstone_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pointed_dripstone": { + "conditions": { + "items": [ + { + "items": "minecraft:pointed_dripstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dripstone_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pointed_dripstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dripstone_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_black_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_black_bed.json new file mode 100644 index 00000000..cf361c11 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_black_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:black_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_black_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_black_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_black_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_black_carpet.json new file mode 100644 index 00000000..39000276 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_black_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:black_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_black_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_black_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_black_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_black_wool.json new file mode 100644 index 00000000..f3040dca --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_black_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:black_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_black_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_black_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_blue_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_blue_bed.json new file mode 100644 index 00000000..dc6607d7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_blue_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_blue_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_blue_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_blue_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_blue_carpet.json new file mode 100644 index 00000000..f1efd205 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_blue_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_blue_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_blue_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_blue_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_blue_wool.json new file mode 100644 index 00000000..66b95b3a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_blue_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_blue_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_blue_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_brown_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_brown_bed.json new file mode 100644 index 00000000..f57f8d7d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_brown_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_brown_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_brown_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_brown_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_brown_carpet.json new file mode 100644 index 00000000..c6754e22 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_brown_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_brown_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_brown_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_brown_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_brown_wool.json new file mode 100644 index 00000000..8345ecb4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_brown_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_brown_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_brown_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_cyan_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_cyan_bed.json new file mode 100644 index 00000000..30eb18aa --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_cyan_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_cyan_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_cyan_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_cyan_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_cyan_carpet.json new file mode 100644 index 00000000..6dd04f3a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_cyan_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_cyan_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_cyan_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_cyan_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_cyan_wool.json new file mode 100644 index 00000000..dc500812 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_cyan_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_cyan_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_cyan_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_gray_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_gray_bed.json new file mode 100644 index 00000000..1b0e6ea6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_gray_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_gray_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_gray_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_gray_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_gray_carpet.json new file mode 100644 index 00000000..bcc80ed4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_gray_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_gray_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_gray_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_gray_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_gray_wool.json new file mode 100644 index 00000000..e7d85ca3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_gray_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_gray_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_gray_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_green_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_green_bed.json new file mode 100644 index 00000000..6211d9db --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_green_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_green_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_green_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_green_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_green_carpet.json new file mode 100644 index 00000000..c77daaec --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_green_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_green_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_green_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_green_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_green_wool.json new file mode 100644 index 00000000..70830bd2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_green_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_green_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_green_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_bed.json new file mode 100644 index 00000000..dd1cd70e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_light_blue_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_light_blue_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_carpet.json new file mode 100644 index 00000000..2d3c370c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_light_blue_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_light_blue_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_wool.json new file mode 100644 index 00000000..22148aec --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_light_blue_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_light_blue_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_light_blue_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_bed.json new file mode 100644 index 00000000..ef1f2b65 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_light_gray_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_light_gray_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_carpet.json new file mode 100644 index 00000000..15d9cd20 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_light_gray_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_light_gray_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_wool.json new file mode 100644 index 00000000..97d25d47 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_light_gray_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_light_gray_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_light_gray_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_lime_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_lime_bed.json new file mode 100644 index 00000000..775ac651 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_lime_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_lime_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_lime_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_lime_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_lime_carpet.json new file mode 100644 index 00000000..376f1be9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_lime_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_lime_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_lime_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_lime_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_lime_wool.json new file mode 100644 index 00000000..47e5df80 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_lime_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_lime_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_lime_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_magenta_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_magenta_bed.json new file mode 100644 index 00000000..d950fc6b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_magenta_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_magenta_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_magenta_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_magenta_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_magenta_carpet.json new file mode 100644 index 00000000..e6bc516c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_magenta_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_magenta_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_magenta_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_magenta_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_magenta_wool.json new file mode 100644 index 00000000..f4bf3fbf --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_magenta_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_magenta_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_magenta_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_orange_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_orange_bed.json new file mode 100644 index 00000000..1cdd1483 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_orange_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_orange_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_orange_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_orange_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_orange_carpet.json new file mode 100644 index 00000000..75628c75 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_orange_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_orange_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_orange_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_orange_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_orange_wool.json new file mode 100644 index 00000000..90541087 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_orange_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_orange_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_orange_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_pink_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_pink_bed.json new file mode 100644 index 00000000..48541cf1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_pink_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_pink_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_pink_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_pink_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_pink_carpet.json new file mode 100644 index 00000000..cd85f0a0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_pink_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_pink_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_pink_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_pink_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_pink_wool.json new file mode 100644 index 00000000..9b76b8b6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_pink_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_pink_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_pink_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_purple_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_purple_bed.json new file mode 100644 index 00000000..f3d0e29b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_purple_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_purple_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_purple_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_purple_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_purple_carpet.json new file mode 100644 index 00000000..9072913f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_purple_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_purple_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_purple_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_purple_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_purple_wool.json new file mode 100644 index 00000000..f59e38e5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_purple_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_purple_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_purple_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_red_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_red_bed.json new file mode 100644 index 00000000..9ca7efcc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_red_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_red_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_red_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_red_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_red_carpet.json new file mode 100644 index 00000000..26226afa --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_red_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_red_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_red_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_red_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_red_wool.json new file mode 100644 index 00000000..7b9456e5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_red_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_red_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_red_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_white_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_white_bed.json new file mode 100644 index 00000000..ac91e955 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_white_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_white_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_white_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_white_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_white_carpet.json new file mode 100644 index 00000000..3ee77f15 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_white_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_white_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_white_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_white_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_white_wool.json new file mode 100644 index 00000000..c5b267b7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_white_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_white_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_white_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_yellow_bed.json b/data/minecraft/advancement/recipes/building_blocks/dye_yellow_bed.json new file mode 100644 index 00000000..4945ceb9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_yellow_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_yellow_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_yellow_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_yellow_carpet.json b/data/minecraft/advancement/recipes/building_blocks/dye_yellow_carpet.json new file mode 100644 index 00000000..514a0403 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_yellow_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_yellow_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_yellow_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/dye_yellow_wool.json b/data/minecraft/advancement/recipes/building_blocks/dye_yellow_wool.json new file mode 100644 index 00000000..0a0186cb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/dye_yellow_wool.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_needed_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dye_yellow_wool" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_needed_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dye_yellow_wool" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/emerald_block.json b/data/minecraft/advancement/recipes/building_blocks/emerald_block.json new file mode 100644 index 00000000..7448651d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/emerald_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_emerald": { + "conditions": { + "items": [ + { + "items": "minecraft:emerald" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:emerald_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_emerald" + ] + ], + "rewards": { + "recipes": [ + "minecraft:emerald_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab.json new file mode 100644 index 00000000..3b54184d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab_from_end_stone_brick_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab_from_end_stone_brick_stonecutting.json new file mode 100644 index 00000000..9173497d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab_from_end_stone_brick_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_slab_from_end_stone_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_slab_from_end_stone_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab_from_end_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab_from_end_stone_stonecutting.json new file mode 100644 index 00000000..00394e8d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_slab_from_end_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_slab_from_end_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_slab_from_end_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs.json new file mode 100644 index 00000000..cf734dbd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs_from_end_stone_brick_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs_from_end_stone_brick_stonecutting.json new file mode 100644 index 00000000..e8281050 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs_from_end_stone_brick_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_stairs_from_end_stone_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_stairs_from_end_stone_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs_from_end_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs_from_end_stone_stonecutting.json new file mode 100644 index 00000000..750d97c9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_brick_stairs_from_end_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_stairs_from_end_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_stairs_from_end_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_bricks.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_bricks.json new file mode 100644 index 00000000..3887ba0e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/end_stone_bricks_from_end_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/end_stone_bricks_from_end_stone_stonecutting.json new file mode 100644 index 00000000..69e64180 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/end_stone_bricks_from_end_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_bricks_from_end_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_bricks_from_end_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper.json new file mode 100644 index 00000000..901494ac --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper_from_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..4856a0cf --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper_from_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_chiseled_copper_from_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_chiseled_copper_from_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper_from_exposed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper_from_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..41988aa4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_chiseled_copper_from_exposed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_chiseled_copper_from_exposed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_chiseled_copper_from_exposed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/exposed_copper_grate.json new file mode 100644 index 00000000..d0b76a60 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_copper_grate_from_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_copper_grate_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..a3935174 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_copper_grate_from_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_copper_grate_from_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_copper_grate_from_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper.json new file mode 100644 index 00000000..960ad069 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_from_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..32f962b6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_from_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper_from_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper_from_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab.json new file mode 100644 index 00000000..d815d619 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab_from_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..426fd674 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab_from_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper_slab_from_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper_slab_from_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..e9782fd4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs.json new file mode 100644 index 00000000..1d2bd270 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs_from_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..ee4a9fed --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs_from_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper_stairs_from_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper_stairs_from_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..8b077753 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/glass.json b/data/minecraft/advancement/recipes/building_blocks/glass.json new file mode 100644 index 00000000..fea555db --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smelts_to_glass": { + "conditions": { + "items": [ + { + "items": "#minecraft:smelts_to_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smelts_to_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/glowstone.json b/data/minecraft/advancement/recipes/building_blocks/glowstone.json new file mode 100644 index 00000000..aa0f34d2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/glowstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glowstone_dust": { + "conditions": { + "items": [ + { + "items": "minecraft:glowstone_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:glowstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glowstone_dust" + ] + ], + "rewards": { + "recipes": [ + "minecraft:glowstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/gold_block.json b/data/minecraft/advancement/recipes/building_blocks/gold_block.json new file mode 100644 index 00000000..4e4a46e9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/gold_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/granite.json b/data/minecraft/advancement/recipes/building_blocks/granite.json new file mode 100644 index 00000000..6bfad774 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/granite.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:granite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:granite" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/granite_slab.json b/data/minecraft/advancement/recipes/building_blocks/granite_slab.json new file mode 100644 index 00000000..46331621 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/granite_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:granite_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:granite_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/granite_slab_from_granite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/granite_slab_from_granite_stonecutting.json new file mode 100644 index 00000000..84cf8f1b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/granite_slab_from_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:granite_slab_from_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:granite_slab_from_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/granite_stairs.json b/data/minecraft/advancement/recipes/building_blocks/granite_stairs.json new file mode 100644 index 00000000..6603cc6a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/granite_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:granite_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:granite_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/granite_stairs_from_granite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/granite_stairs_from_granite_stonecutting.json new file mode 100644 index 00000000..6082c7f6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/granite_stairs_from_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:granite_stairs_from_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:granite_stairs_from_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/gray_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/gray_concrete_powder.json new file mode 100644 index 00000000..1f952538 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/gray_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/gray_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/gray_stained_glass.json new file mode 100644 index 00000000..dc962e80 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/gray_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/gray_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/gray_terracotta.json new file mode 100644 index 00000000..3df2b425 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/gray_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/green_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/green_concrete_powder.json new file mode 100644 index 00000000..007e2905 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/green_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/green_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/green_stained_glass.json new file mode 100644 index 00000000..09d32218 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/green_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/green_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/green_terracotta.json new file mode 100644 index 00000000..5a827b3b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/green_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/hay_block.json b/data/minecraft/advancement/recipes/building_blocks/hay_block.json new file mode 100644 index 00000000..7c3eca36 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/hay_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:hay_block" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wheat": { + "conditions": { + "items": [ + { + "items": "minecraft:wheat" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wheat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:hay_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/iron_block.json b/data/minecraft/advancement/recipes/building_blocks/iron_block.json new file mode 100644 index 00000000..d1f4ad33 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/iron_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/jack_o_lantern.json b/data/minecraft/advancement/recipes/building_blocks/jack_o_lantern.json new file mode 100644 index 00000000..2d437a5d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/jack_o_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_carved_pumpkin": { + "conditions": { + "items": [ + { + "items": "minecraft:carved_pumpkin" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jack_o_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_carved_pumpkin" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jack_o_lantern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/jungle_planks.json b/data/minecraft/advancement/recipes/building_blocks/jungle_planks.json new file mode 100644 index 00000000..ef63f549 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/jungle_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:jungle_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/jungle_slab.json b/data/minecraft/advancement/recipes/building_blocks/jungle_slab.json new file mode 100644 index 00000000..1ed3e968 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/jungle_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/jungle_stairs.json b/data/minecraft/advancement/recipes/building_blocks/jungle_stairs.json new file mode 100644 index 00000000..72e9cb8b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/jungle_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/jungle_wood.json b/data/minecraft/advancement/recipes/building_blocks/jungle_wood.json new file mode 100644 index 00000000..9b9f7497 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/jungle_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/lapis_block.json b/data/minecraft/advancement/recipes/building_blocks/lapis_block.json new file mode 100644 index 00000000..347dcbcc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/lapis_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lapis_lazuli": { + "conditions": { + "items": [ + { + "items": "minecraft:lapis_lazuli" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lapis_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lapis_lazuli" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lapis_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/light_blue_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/light_blue_concrete_powder.json new file mode 100644 index 00000000..99d9edf6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/light_blue_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/light_blue_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/light_blue_stained_glass.json new file mode 100644 index 00000000..ba006479 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/light_blue_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/light_blue_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/light_blue_terracotta.json new file mode 100644 index 00000000..89d3dff3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/light_blue_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/light_gray_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/light_gray_concrete_powder.json new file mode 100644 index 00000000..191b17a5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/light_gray_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/light_gray_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/light_gray_stained_glass.json new file mode 100644 index 00000000..e1b47866 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/light_gray_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/light_gray_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/light_gray_terracotta.json new file mode 100644 index 00000000..264ebe7d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/light_gray_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/lime_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/lime_concrete_powder.json new file mode 100644 index 00000000..7b68fd61 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/lime_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/lime_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/lime_stained_glass.json new file mode 100644 index 00000000..b13111b7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/lime_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/lime_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/lime_terracotta.json new file mode 100644 index 00000000..42f0ed59 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/lime_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/magenta_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/magenta_concrete_powder.json new file mode 100644 index 00000000..49b0cde6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/magenta_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/magenta_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/magenta_stained_glass.json new file mode 100644 index 00000000..8c72a24a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/magenta_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/magenta_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/magenta_terracotta.json new file mode 100644 index 00000000..d1c896f5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/magenta_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/magma_block.json b/data/minecraft/advancement/recipes/building_blocks/magma_block.json new file mode 100644 index 00000000..e3159511 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/magma_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magma_cream": { + "conditions": { + "items": [ + { + "items": "minecraft:magma_cream" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magma_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magma_cream" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magma_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mangrove_planks.json b/data/minecraft/advancement/recipes/building_blocks/mangrove_planks.json new file mode 100644 index 00000000..2a7cecdb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mangrove_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:mangrove_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mangrove_slab.json b/data/minecraft/advancement/recipes/building_blocks/mangrove_slab.json new file mode 100644 index 00000000..36e234ff --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mangrove_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mangrove_stairs.json b/data/minecraft/advancement/recipes/building_blocks/mangrove_stairs.json new file mode 100644 index 00000000..921298e8 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mangrove_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mangrove_wood.json b/data/minecraft/advancement/recipes/building_blocks/mangrove_wood.json new file mode 100644 index 00000000..d52aed59 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mangrove_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/melon.json b/data/minecraft/advancement/recipes/building_blocks/melon.json new file mode 100644 index 00000000..a23ca0f7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/melon.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_melon": { + "conditions": { + "items": [ + { + "items": "minecraft:melon_slice" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:melon" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_melon" + ] + ], + "rewards": { + "recipes": [ + "minecraft:melon" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_from_moss_block.json b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_from_moss_block.json new file mode 100644 index 00000000..0113de3c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_from_moss_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moss_block": { + "conditions": { + "items": [ + { + "items": "minecraft:moss_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_from_moss_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moss_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_from_moss_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_from_vine.json b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_from_vine.json new file mode 100644 index 00000000..9ff8e895 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_from_vine.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_from_vine" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_vine": { + "conditions": { + "items": [ + { + "items": "minecraft:vine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_vine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_from_vine" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_slab.json b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_slab.json new file mode 100644 index 00000000..ab6fcfd0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting.json new file mode 100644 index 00000000..1a7ce968 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_stairs.json new file mode 100644 index 00000000..a35129db --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting.json new file mode 100644 index 00000000..f6f19ce3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_slab.json new file mode 100644 index 00000000..a79f07a7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting.json new file mode 100644 index 00000000..bbcbeac5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_stairs.json new file mode 100644 index 00000000..71802c6e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting.json new file mode 100644 index 00000000..47c58b72 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_stone_bricks_from_moss_block.json b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_bricks_from_moss_block.json new file mode 100644 index 00000000..d63c5046 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_bricks_from_moss_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moss_block": { + "conditions": { + "items": [ + { + "items": "minecraft:moss_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_bricks_from_moss_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moss_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_bricks_from_moss_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mossy_stone_bricks_from_vine.json b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_bricks_from_vine.json new file mode 100644 index 00000000..f3b1e2ee --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mossy_stone_bricks_from_vine.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_bricks_from_vine" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_vine": { + "conditions": { + "items": [ + { + "items": "minecraft:vine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_vine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_bricks_from_vine" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mud_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/mud_brick_slab.json new file mode 100644 index 00000000..d2331ff7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mud_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mud_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mud_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mud_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mud_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mud_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mud_brick_slab_from_mud_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/mud_brick_slab_from_mud_bricks_stonecutting.json new file mode 100644 index 00000000..fed8ff7a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mud_brick_slab_from_mud_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mud_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mud_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mud_brick_slab_from_mud_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mud_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mud_brick_slab_from_mud_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mud_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/mud_brick_stairs.json new file mode 100644 index 00000000..dce37c82 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mud_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mud_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mud_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mud_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mud_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mud_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mud_brick_stairs_from_mud_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/mud_brick_stairs_from_mud_bricks_stonecutting.json new file mode 100644 index 00000000..6a1a23ed --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mud_brick_stairs_from_mud_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mud_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mud_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mud_brick_stairs_from_mud_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mud_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mud_brick_stairs_from_mud_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/mud_bricks.json b/data/minecraft/advancement/recipes/building_blocks/mud_bricks.json new file mode 100644 index 00000000..0c6d3aac --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/mud_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_packed_mud": { + "conditions": { + "items": [ + { + "items": "minecraft:packed_mud" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mud_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_packed_mud" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mud_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/muddy_mangrove_roots.json b/data/minecraft/advancement/recipes/building_blocks/muddy_mangrove_roots.json new file mode 100644 index 00000000..b704cb58 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/muddy_mangrove_roots.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mangrove_roots": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_roots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:muddy_mangrove_roots" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mangrove_roots" + ] + ], + "rewards": { + "recipes": [ + "minecraft:muddy_mangrove_roots" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/nether_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/nether_brick_slab.json new file mode 100644 index 00000000..c808e023 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/nether_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/nether_brick_slab_from_nether_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/nether_brick_slab_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..9e803c17 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/nether_brick_slab_from_nether_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick_slab_from_nether_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick_slab_from_nether_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/nether_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/nether_brick_stairs.json new file mode 100644 index 00000000..b57b9443 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/nether_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/nether_brick_stairs_from_nether_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/nether_brick_stairs_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..21500487 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/nether_brick_stairs_from_nether_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick_stairs_from_nether_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick_stairs_from_nether_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/nether_bricks.json b/data/minecraft/advancement/recipes/building_blocks/nether_bricks.json new file mode 100644 index 00000000..ed2c3ae2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/nether_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_brick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/nether_wart_block.json b/data/minecraft/advancement/recipes/building_blocks/nether_wart_block.json new file mode 100644 index 00000000..2728873b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/nether_wart_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_wart": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_wart" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_wart_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_wart" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_wart_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/netherite_block.json b/data/minecraft/advancement/recipes/building_blocks/netherite_block.json new file mode 100644 index 00000000..91d676a1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/netherite_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oak_planks.json b/data/minecraft/advancement/recipes/building_blocks/oak_planks.json new file mode 100644 index 00000000..6c78d047 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oak_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:oak_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oak_slab.json b/data/minecraft/advancement/recipes/building_blocks/oak_slab.json new file mode 100644 index 00000000..cef0e37e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oak_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oak_stairs.json b/data/minecraft/advancement/recipes/building_blocks/oak_stairs.json new file mode 100644 index 00000000..4a2b6cfc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oak_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oak_wood.json b/data/minecraft/advancement/recipes/building_blocks/oak_wood.json new file mode 100644 index 00000000..bd62427e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oak_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/orange_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/orange_concrete_powder.json new file mode 100644 index 00000000..81168005 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/orange_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/orange_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/orange_stained_glass.json new file mode 100644 index 00000000..5ae8d6fa --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/orange_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/orange_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/orange_terracotta.json new file mode 100644 index 00000000..ca71a5c7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/orange_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper.json new file mode 100644 index 00000000..6796d329 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper_from_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..0a2b0577 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper_from_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_chiseled_copper_from_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_chiseled_copper_from_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..dab869ac --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_copper_grate.json new file mode 100644 index 00000000..5cea8fc1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_copper_grate_from_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_copper_grate_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..ecb78079 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_copper_grate_from_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_copper_grate_from_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_copper_grate_from_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper.json new file mode 100644 index 00000000..7eb45a16 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_from_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..6f5bb3bb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_from_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper_from_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper_from_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab.json new file mode 100644 index 00000000..3cea579d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab_from_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..ec034dd4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab_from_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper_slab_from_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper_slab_from_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..d321f6f9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..02118cd8 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..3001961b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..30b343fd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/packed_ice.json b/data/minecraft/advancement/recipes/building_blocks/packed_ice.json new file mode 100644 index 00000000..e4ac8a5d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/packed_ice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ice": { + "conditions": { + "items": [ + { + "items": "minecraft:ice" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:packed_ice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_ice" + ] + ], + "rewards": { + "recipes": [ + "minecraft:packed_ice" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/packed_mud.json b/data/minecraft/advancement/recipes/building_blocks/packed_mud.json new file mode 100644 index 00000000..5cd96a04 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/packed_mud.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mud": { + "conditions": { + "items": [ + { + "items": "minecraft:mud" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:packed_mud" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mud" + ] + ], + "rewards": { + "recipes": [ + "minecraft:packed_mud" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/pink_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/pink_concrete_powder.json new file mode 100644 index 00000000..d66ee5ef --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/pink_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/pink_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/pink_stained_glass.json new file mode 100644 index 00000000..08559fc8 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/pink_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/pink_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/pink_terracotta.json new file mode 100644 index 00000000..77497150 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/pink_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite.json new file mode 100644 index 00000000..ec5ca856 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite_from_andesite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_from_andesite_stonecutting.json new file mode 100644 index 00000000..07256bf0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_from_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite_from_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite_from_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab.json new file mode 100644 index 00000000..7836486b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab_from_andesite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab_from_andesite_stonecutting.json new file mode 100644 index 00000000..d60cac02 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab_from_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite_slab_from_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite_slab_from_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab_from_polished_andesite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab_from_polished_andesite_stonecutting.json new file mode 100644 index 00000000..54578aee --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_slab_from_polished_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite_slab_from_polished_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite_slab_from_polished_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs.json new file mode 100644 index 00000000..f2083558 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs_from_andesite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs_from_andesite_stonecutting.json new file mode 100644 index 00000000..3d21f9e3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs_from_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite_stairs_from_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite_stairs_from_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs_from_polished_andesite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs_from_polished_andesite_stonecutting.json new file mode 100644 index 00000000..21b84f44 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_andesite_stairs_from_polished_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_andesite_stairs_from_polished_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_andesite_stairs_from_polished_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_basalt.json b/data/minecraft/advancement/recipes/building_blocks/polished_basalt.json new file mode 100644 index 00000000..f048e7a1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_basalt.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_basalt": { + "conditions": { + "items": [ + { + "items": "minecraft:basalt" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_basalt" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_basalt" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_basalt" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_basalt_from_basalt_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_basalt_from_basalt_stonecutting.json new file mode 100644 index 00000000..fad18170 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_basalt_from_basalt_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_basalt": { + "conditions": { + "items": [ + { + "items": "minecraft:basalt" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_basalt_from_basalt_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_basalt" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_basalt_from_basalt_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone.json new file mode 100644 index 00000000..13234a34 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab.json new file mode 100644 index 00000000..e30b651c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_blackstone_stonecutting.json new file mode 100644 index 00000000..ca112003 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_slab_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_slab_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting.json new file mode 100644 index 00000000..557a6c16 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..e3b0d310 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_slab_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_slab_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_slab_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs.json new file mode 100644 index 00000000..06d31c5b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_blackstone_stonecutting.json new file mode 100644 index 00000000..7b78a36f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_stairs_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_stairs_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting.json new file mode 100644 index 00000000..330d44ac --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..5570cf00 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks.json new file mode 100644 index 00000000..6d89484a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks_from_blackstone_stonecutting.json new file mode 100644 index 00000000..06d07a1a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_bricks_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_bricks_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..972c995c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_bricks_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_bricks_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_bricks_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_from_blackstone_stonecutting.json new file mode 100644 index 00000000..fc8687b7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab.json new file mode 100644 index 00000000..51e8b24c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab_from_blackstone_stonecutting.json new file mode 100644 index 00000000..28b6e2a4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_slab_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_slab_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..1f4768be --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_slab_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_slab_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_slab_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs.json new file mode 100644 index 00000000..2ef334c6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs_from_blackstone_stonecutting.json new file mode 100644 index 00000000..17146d8f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_stairs_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_stairs_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..16749d64 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_blackstone_stairs_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_stairs_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_stairs_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate.json new file mode 100644 index 00000000..ecbe21c0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..0cb2f0cc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab.json new file mode 100644 index 00000000..5a2f9c98 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..f5868a81 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_slab_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_slab_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..ea3650ab --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_slab_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_slab_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_slab_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs.json new file mode 100644 index 00000000..5b98823b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..1018229c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_stairs_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_stairs_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..ac64672a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_deepslate_stairs_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_stairs_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_stairs_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite.json new file mode 100644 index 00000000..8e20b110 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite_from_diorite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_from_diorite_stonecutting.json new file mode 100644 index 00000000..002402db --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_from_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite_from_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite_from_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab.json new file mode 100644 index 00000000..eee8ccf5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab_from_diorite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab_from_diorite_stonecutting.json new file mode 100644 index 00000000..911b2abd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab_from_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite_slab_from_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite_slab_from_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab_from_polished_diorite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab_from_polished_diorite_stonecutting.json new file mode 100644 index 00000000..c18e0885 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_slab_from_polished_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite_slab_from_polished_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite_slab_from_polished_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs.json new file mode 100644 index 00000000..622b47ed --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs_from_diorite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs_from_diorite_stonecutting.json new file mode 100644 index 00000000..c2a60aed --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs_from_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite_stairs_from_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite_stairs_from_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs_from_polished_diorite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs_from_polished_diorite_stonecutting.json new file mode 100644 index 00000000..ed96087e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_diorite_stairs_from_polished_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_diorite_stairs_from_polished_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_diorite_stairs_from_polished_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite.json new file mode 100644 index 00000000..5f1d37e4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite_from_granite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite_from_granite_stonecutting.json new file mode 100644 index 00000000..1e000496 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite_from_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite_from_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite_from_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab.json new file mode 100644 index 00000000..ac14683b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab_from_granite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab_from_granite_stonecutting.json new file mode 100644 index 00000000..b24757dd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab_from_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite_slab_from_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite_slab_from_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab_from_polished_granite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab_from_polished_granite_stonecutting.json new file mode 100644 index 00000000..6a43c4d6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite_slab_from_polished_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite_slab_from_polished_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite_slab_from_polished_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs.json new file mode 100644 index 00000000..2c2637b9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs_from_granite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs_from_granite_stonecutting.json new file mode 100644 index 00000000..b137a4e3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs_from_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite_stairs_from_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite_stairs_from_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs_from_polished_granite_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs_from_polished_granite_stonecutting.json new file mode 100644 index 00000000..117e9df1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_granite_stairs_from_polished_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_granite_stairs_from_polished_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_granite_stairs_from_polished_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff.json new file mode 100644 index 00000000..5e61bb3d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_from_tuff_stonecutting.json new file mode 100644 index 00000000..7f1be72b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab.json new file mode 100644 index 00000000..b4c6d5c4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..f4063a23 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_slab_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_slab_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab_from_tuff_stonecutting.json new file mode 100644 index 00000000..8d875be2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_slab_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_slab_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_slab_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs.json new file mode 100644 index 00000000..eace7ca0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..0633449d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_stairs_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_stairs_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs_from_tuff_stonecutting.json new file mode 100644 index 00000000..3b03faee --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/polished_tuff_stairs_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_stairs_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_stairs_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine.json b/data/minecraft/advancement/recipes/building_blocks/prismarine.json new file mode 100644 index 00000000..dc5eaf99 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_slab.json new file mode 100644 index 00000000..5614f52b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_slab_from_prismarine_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_slab_from_prismarine_stonecutting.json new file mode 100644 index 00000000..7d6f8bb9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_slab_from_prismarine_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_brick_slab_from_prismarine_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_brick_slab_from_prismarine_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_stairs.json new file mode 100644 index 00000000..27f1f326 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_stairs_from_prismarine_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_stairs_from_prismarine_stonecutting.json new file mode 100644 index 00000000..e7d6c7ba --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_brick_stairs_from_prismarine_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_brick_stairs_from_prismarine_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_brick_stairs_from_prismarine_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_bricks.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_bricks.json new file mode 100644 index 00000000..a3176dfd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_slab.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_slab.json new file mode 100644 index 00000000..abd366e3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_slab_from_prismarine_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_slab_from_prismarine_stonecutting.json new file mode 100644 index 00000000..41d9ae0c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_slab_from_prismarine_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_slab_from_prismarine_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_slab_from_prismarine_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_stairs.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_stairs.json new file mode 100644 index 00000000..a23db5e5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/prismarine_stairs_from_prismarine_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/prismarine_stairs_from_prismarine_stonecutting.json new file mode 100644 index 00000000..5808b086 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/prismarine_stairs_from_prismarine_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_stairs_from_prismarine_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_stairs_from_prismarine_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purple_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/purple_concrete_powder.json new file mode 100644 index 00000000..5de5d7ec --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purple_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purple_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/purple_stained_glass.json new file mode 100644 index 00000000..8289f1de --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purple_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purple_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/purple_terracotta.json new file mode 100644 index 00000000..81c7336f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purple_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purpur_block.json b/data/minecraft/advancement/recipes/building_blocks/purpur_block.json new file mode 100644 index 00000000..6ce1ad28 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purpur_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chorus_fruit_popped": { + "conditions": { + "items": [ + { + "items": "minecraft:popped_chorus_fruit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purpur_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chorus_fruit_popped" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purpur_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purpur_pillar.json b/data/minecraft/advancement/recipes/building_blocks/purpur_pillar.json new file mode 100644 index 00000000..5a128cfb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purpur_pillar.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purpur_block": { + "conditions": { + "items": [ + { + "items": "minecraft:purpur_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purpur_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purpur_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purpur_pillar" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purpur_pillar_from_purpur_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/purpur_pillar_from_purpur_block_stonecutting.json new file mode 100644 index 00000000..9d861ff4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purpur_pillar_from_purpur_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purpur_block": { + "conditions": { + "items": [ + { + "items": "minecraft:purpur_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purpur_pillar_from_purpur_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purpur_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purpur_pillar_from_purpur_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purpur_slab.json b/data/minecraft/advancement/recipes/building_blocks/purpur_slab.json new file mode 100644 index 00000000..ff760ee4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purpur_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purpur_block": { + "conditions": { + "items": [ + { + "items": "minecraft:purpur_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purpur_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purpur_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purpur_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purpur_slab_from_purpur_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/purpur_slab_from_purpur_block_stonecutting.json new file mode 100644 index 00000000..21ec6c90 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purpur_slab_from_purpur_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purpur_block": { + "conditions": { + "items": [ + { + "items": "minecraft:purpur_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purpur_slab_from_purpur_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purpur_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purpur_slab_from_purpur_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purpur_stairs.json b/data/minecraft/advancement/recipes/building_blocks/purpur_stairs.json new file mode 100644 index 00000000..de630a19 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purpur_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purpur_block": { + "conditions": { + "items": [ + { + "items": "minecraft:purpur_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purpur_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purpur_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purpur_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/purpur_stairs_from_purpur_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/purpur_stairs_from_purpur_block_stonecutting.json new file mode 100644 index 00000000..5747d072 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/purpur_stairs_from_purpur_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purpur_block": { + "conditions": { + "items": [ + { + "items": "minecraft:purpur_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purpur_stairs_from_purpur_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purpur_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purpur_stairs_from_purpur_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_block.json b/data/minecraft/advancement/recipes/building_blocks/quartz_block.json new file mode 100644 index 00000000..816d4cd3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_bricks.json b/data/minecraft/advancement/recipes/building_blocks/quartz_bricks.json new file mode 100644 index 00000000..36432426 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_bricks_from_quartz_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/quartz_bricks_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..ca69b17c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_bricks_from_quartz_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_bricks_from_quartz_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_bricks_from_quartz_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_pillar.json b/data/minecraft/advancement/recipes/building_blocks/quartz_pillar.json new file mode 100644 index 00000000..482fa9f0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_pillar.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_pillar": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_pillar" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chiseled_quartz_block", + "has_quartz_block", + "has_quartz_pillar" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_pillar" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_pillar_from_quartz_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/quartz_pillar_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..f5d143cc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_pillar_from_quartz_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_pillar_from_quartz_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_pillar_from_quartz_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_slab.json b/data/minecraft/advancement/recipes/building_blocks/quartz_slab.json new file mode 100644 index 00000000..5d18e2bf --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_slab.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_pillar": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_pillar" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chiseled_quartz_block", + "has_quartz_block", + "has_quartz_pillar" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_slab_from_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/quartz_slab_from_stonecutting.json new file mode 100644 index 00000000..6e37acc3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_slab_from_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_slab_from_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_slab_from_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_stairs.json b/data/minecraft/advancement/recipes/building_blocks/quartz_stairs.json new file mode 100644 index 00000000..de4f0810 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_stairs.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_quartz_pillar": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_pillar" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chiseled_quartz_block", + "has_quartz_block", + "has_quartz_pillar" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/quartz_stairs_from_quartz_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/quartz_stairs_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..d060a077 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/quartz_stairs_from_quartz_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_stairs_from_quartz_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_stairs_from_quartz_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/raw_copper_block.json b/data/minecraft/advancement/recipes/building_blocks/raw_copper_block.json new file mode 100644 index 00000000..007b887d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/raw_copper_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raw_copper_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raw_copper_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/raw_gold_block.json b/data/minecraft/advancement/recipes/building_blocks/raw_gold_block.json new file mode 100644 index 00000000..a86e63fb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/raw_gold_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raw_gold_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raw_gold_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/raw_iron_block.json b/data/minecraft/advancement/recipes/building_blocks/raw_iron_block.json new file mode 100644 index 00000000..2a415de4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/raw_iron_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raw_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raw_iron_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/red_concrete_powder.json new file mode 100644 index 00000000..4f2d6392 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_slab.json new file mode 100644 index 00000000..4cec61b3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:red_nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_nether_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_nether_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_slab_from_red_nether_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_slab_from_red_nether_bricks_stonecutting.json new file mode 100644 index 00000000..3ba4bf24 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_slab_from_red_nether_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:red_nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_nether_brick_slab_from_red_nether_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_nether_brick_slab_from_red_nether_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_stairs.json new file mode 100644 index 00000000..750c3b8b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:red_nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_nether_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_nether_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_stairs_from_red_nether_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_stairs_from_red_nether_bricks_stonecutting.json new file mode 100644 index 00000000..3ca8fe8a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_nether_brick_stairs_from_red_nether_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:red_nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_nether_brick_stairs_from_red_nether_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_nether_brick_stairs_from_red_nether_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_nether_bricks.json b/data/minecraft/advancement/recipes/building_blocks/red_nether_bricks.json new file mode 100644 index 00000000..fcbfe155 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_nether_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_wart": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_wart" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_nether_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_wart" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_nether_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_sandstone.json b/data/minecraft/advancement/recipes/building_blocks/red_sandstone.json new file mode 100644 index 00000000..c6932f48 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_sandstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_sandstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_slab.json new file mode 100644 index 00000000..37ffc7fc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_slab.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_sandstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone", + "has_chiseled_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_sandstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_sandstone_slab_from_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_slab_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..ae459a48 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_slab_from_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_sandstone_slab_from_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_sandstone_slab_from_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_sandstone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_stairs.json new file mode 100644 index 00000000..050e62eb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_stairs.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_cut_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_sandstone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone", + "has_chiseled_red_sandstone", + "has_cut_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_sandstone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_sandstone_stairs_from_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_stairs_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..6d5bc3e9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_sandstone_stairs_from_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_sandstone_stairs_from_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_sandstone_stairs_from_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/red_stained_glass.json new file mode 100644 index 00000000..b65c87a6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/red_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/red_terracotta.json new file mode 100644 index 00000000..6b9f6fdd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/red_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/sandstone.json b/data/minecraft/advancement/recipes/building_blocks/sandstone.json new file mode 100644 index 00000000..05ac5881 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/sandstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/sandstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/sandstone_slab.json new file mode 100644 index 00000000..5ea1df31 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/sandstone_slab.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sandstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone", + "has_chiseled_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sandstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/sandstone_slab_from_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/sandstone_slab_from_sandstone_stonecutting.json new file mode 100644 index 00000000..86898830 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/sandstone_slab_from_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sandstone_slab_from_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sandstone_slab_from_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/sandstone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/sandstone_stairs.json new file mode 100644 index 00000000..aff96ef7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/sandstone_stairs.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_cut_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sandstone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone", + "has_chiseled_sandstone", + "has_cut_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sandstone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/sandstone_stairs_from_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/sandstone_stairs_from_sandstone_stonecutting.json new file mode 100644 index 00000000..714dfad1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/sandstone_stairs_from_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sandstone_stairs_from_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sandstone_stairs_from_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/sea_lantern.json b/data/minecraft/advancement/recipes/building_blocks/sea_lantern.json new file mode 100644 index 00000000..1397713c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/sea_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine_crystals": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine_crystals" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sea_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine_crystals" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sea_lantern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_basalt.json b/data/minecraft/advancement/recipes/building_blocks/smooth_basalt.json new file mode 100644 index 00000000..4ded68bb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_basalt.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_basalt": { + "conditions": { + "items": [ + { + "items": "minecraft:basalt" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_basalt" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_basalt" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_basalt" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_quartz.json b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz.json new file mode 100644 index 00000000..b3866b8b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz_block": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_quartz" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_quartz" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_slab.json b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_slab.json new file mode 100644 index 00000000..e5ad9a90 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_quartz_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_quartz_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_slab_from_smooth_quartz_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_slab_from_smooth_quartz_stonecutting.json new file mode 100644 index 00000000..f14f27a8 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_slab_from_smooth_quartz_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_quartz_slab_from_smooth_quartz_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_quartz_slab_from_smooth_quartz_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_stairs.json b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_stairs.json new file mode 100644 index 00000000..915eb347 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_quartz_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_quartz_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_stairs_from_smooth_quartz_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_stairs_from_smooth_quartz_stonecutting.json new file mode 100644 index 00000000..7df6a2fc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_quartz_stairs_from_smooth_quartz_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_quartz_stairs_from_smooth_quartz_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_quartz_stairs_from_smooth_quartz_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone.json b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone.json new file mode 100644 index 00000000..f905834d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_red_sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_red_sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_slab.json new file mode 100644 index 00000000..53a07500 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_red_sandstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_red_sandstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting.json new file mode 100644 index 00000000..d7800ef4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_stairs.json new file mode 100644 index 00000000..e3bb9a35 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_red_sandstone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_red_sandstone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting.json new file mode 100644 index 00000000..ce5fe098 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone.json b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone.json new file mode 100644 index 00000000..0e7072e9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_sandstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_sandstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_slab.json b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_slab.json new file mode 100644 index 00000000..0bd95f73 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_sandstone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_sandstone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_slab_from_smooth_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_slab_from_smooth_sandstone_stonecutting.json new file mode 100644 index 00000000..f420e673 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_slab_from_smooth_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_sandstone_slab_from_smooth_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_sandstone_slab_from_smooth_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_stairs.json new file mode 100644 index 00000000..ce61f570 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_sandstone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_sandstone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting.json new file mode 100644 index 00000000..89fff18d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_sandstone_stairs_from_smooth_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_sandstone_stairs_from_smooth_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_stone.json b/data/minecraft/advancement/recipes/building_blocks/smooth_stone.json new file mode 100644 index 00000000..89b2fb04 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_stone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_stone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_stone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_stone_slab.json b/data/minecraft/advancement/recipes/building_blocks/smooth_stone_slab.json new file mode 100644 index 00000000..c8a50e84 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_stone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_stone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_stone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/smooth_stone_slab_from_smooth_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/smooth_stone_slab_from_smooth_stone_stonecutting.json new file mode 100644 index 00000000..3023896e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/smooth_stone_slab_from_smooth_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_stone_slab_from_smooth_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_stone_slab_from_smooth_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/snow_block.json b/data/minecraft/advancement/recipes/building_blocks/snow_block.json new file mode 100644 index 00000000..1daf6154 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/snow_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_snowball": { + "conditions": { + "items": [ + { + "items": "minecraft:snowball" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:snow_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_snowball" + ] + ], + "rewards": { + "recipes": [ + "minecraft:snow_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/sponge.json b/data/minecraft/advancement/recipes/building_blocks/sponge.json new file mode 100644 index 00000000..4295d894 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/sponge.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sponge" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wet_sponge": { + "conditions": { + "items": [ + { + "items": "minecraft:wet_sponge" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wet_sponge" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sponge" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/spruce_planks.json b/data/minecraft/advancement/recipes/building_blocks/spruce_planks.json new file mode 100644 index 00000000..67128d16 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/spruce_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:spruce_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/spruce_slab.json b/data/minecraft/advancement/recipes/building_blocks/spruce_slab.json new file mode 100644 index 00000000..9ab2ca88 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/spruce_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/spruce_stairs.json b/data/minecraft/advancement/recipes/building_blocks/spruce_stairs.json new file mode 100644 index 00000000..6c921e42 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/spruce_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/spruce_wood.json b/data/minecraft/advancement/recipes/building_blocks/spruce_wood.json new file mode 100644 index 00000000..049df90f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/spruce_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone.json b/data/minecraft/advancement/recipes/building_blocks/stone.json new file mode 100644 index 00000000..edf15f5f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab.json new file mode 100644 index 00000000..c8f46fca --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab_from_stone_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..1315d2da --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab_from_stone_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_slab_from_stone_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_slab_from_stone_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab_from_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab_from_stone_stonecutting.json new file mode 100644 index 00000000..1dca74f5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_brick_slab_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_slab_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_slab_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs.json new file mode 100644 index 00000000..cf2ece4f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs_from_stone_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..e5d0039e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs_from_stone_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_stairs_from_stone_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_stairs_from_stone_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs_from_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs_from_stone_stonecutting.json new file mode 100644 index 00000000..6d540f19 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_brick_stairs_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_stairs_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_stairs_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_bricks.json b/data/minecraft/advancement/recipes/building_blocks/stone_bricks.json new file mode 100644 index 00000000..22788b02 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_bricks_from_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/stone_bricks_from_stone_stonecutting.json new file mode 100644 index 00000000..389841bc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_bricks_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_bricks_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_bricks_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_slab.json b/data/minecraft/advancement/recipes/building_blocks/stone_slab.json new file mode 100644 index 00000000..52b39624 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_slab_from_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/stone_slab_from_stone_stonecutting.json new file mode 100644 index 00000000..9772a6ea --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_slab_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_slab_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_slab_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_stairs.json b/data/minecraft/advancement/recipes/building_blocks/stone_stairs.json new file mode 100644 index 00000000..59942e14 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stone_stairs_from_stone_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/stone_stairs_from_stone_stonecutting.json new file mode 100644 index 00000000..c10f6cd2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stone_stairs_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_stairs_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_stairs_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_acacia_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_acacia_wood.json new file mode 100644 index 00000000..6b9f12fc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_acacia_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_acacia_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_acacia_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_acacia_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_birch_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_birch_wood.json new file mode 100644 index 00000000..d8dc4d55 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_birch_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_birch_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_birch_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_birch_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_cherry_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_cherry_wood.json new file mode 100644 index 00000000..dbbe1592 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_cherry_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_cherry_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_cherry_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_cherry_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_crimson_hyphae.json b/data/minecraft/advancement/recipes/building_blocks/stripped_crimson_hyphae.json new file mode 100644 index 00000000..51c71c3e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_crimson_hyphae.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_crimson_stem" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_crimson_hyphae" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_crimson_hyphae" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_dark_oak_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_dark_oak_wood.json new file mode 100644 index 00000000..85bea3e7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_dark_oak_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_dark_oak_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_dark_oak_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_dark_oak_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_jungle_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_jungle_wood.json new file mode 100644 index 00000000..04a87235 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_jungle_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_jungle_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_jungle_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_jungle_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_mangrove_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_mangrove_wood.json new file mode 100644 index 00000000..7c021353 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_mangrove_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_mangrove_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_mangrove_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_mangrove_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_oak_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_oak_wood.json new file mode 100644 index 00000000..fc3cc865 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_oak_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_oak_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_oak_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_oak_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_spruce_wood.json b/data/minecraft/advancement/recipes/building_blocks/stripped_spruce_wood.json new file mode 100644 index 00000000..7bdbfb28 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_spruce_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_spruce_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_spruce_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_spruce_wood" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/stripped_warped_hyphae.json b/data/minecraft/advancement/recipes/building_blocks/stripped_warped_hyphae.json new file mode 100644 index 00000000..b0d9a4e2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/stripped_warped_hyphae.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_warped_stem" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stripped_warped_hyphae" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stripped_warped_hyphae" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/terracotta.json b/data/minecraft/advancement/recipes/building_blocks/terracotta.json new file mode 100644 index 00000000..81d3a796 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_clay_block": { + "conditions": { + "items": [ + { + "items": "minecraft:clay" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_clay_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tinted_glass.json b/data/minecraft/advancement/recipes/building_blocks/tinted_glass.json new file mode 100644 index 00000000..fedd8daf --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tinted_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_amethyst_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tinted_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_amethyst_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tinted_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab.json new file mode 100644 index 00000000..5af88e65 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..6fc042a1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_slab_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_slab_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_tuff_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..6d86a383 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_tuff_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_slab_from_tuff_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_slab_from_tuff_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_tuff_stonecutting.json new file mode 100644 index 00000000..997afe63 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_slab_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_slab_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_slab_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs.json new file mode 100644 index 00000000..b1b6ead9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..f0ff02ca --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_stairs_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_stairs_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_tuff_bricks_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..a28481c0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_tuff_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_stairs_from_tuff_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_stairs_from_tuff_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_tuff_stonecutting.json new file mode 100644 index 00000000..9480f34d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_brick_stairs_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_stairs_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_stairs_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_bricks.json b/data/minecraft/advancement/recipes/building_blocks/tuff_bricks.json new file mode 100644 index 00000000..56c6a18f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_bricks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_bricks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_bricks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_bricks_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_bricks_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..56159bee --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_bricks_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_bricks_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_bricks_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_bricks_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_bricks_from_tuff_stonecutting.json new file mode 100644 index 00000000..ebad311e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_bricks_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_bricks_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_bricks_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_slab.json b/data/minecraft/advancement/recipes/building_blocks/tuff_slab.json new file mode 100644 index 00000000..28dbd47a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_slab_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_slab_from_tuff_stonecutting.json new file mode 100644 index 00000000..498bb7b9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_slab_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_slab_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_slab_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_stairs.json b/data/minecraft/advancement/recipes/building_blocks/tuff_stairs.json new file mode 100644 index 00000000..1ac13897 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/tuff_stairs_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/tuff_stairs_from_tuff_stonecutting.json new file mode 100644 index 00000000..561d405e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/tuff_stairs_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_stairs_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_stairs_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/warped_hyphae.json b/data/minecraft/advancement/recipes/building_blocks/warped_hyphae.json new file mode 100644 index 00000000..46525e23 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/warped_hyphae.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_stem" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_hyphae" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_hyphae" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/warped_planks.json b/data/minecraft/advancement/recipes/building_blocks/warped_planks.json new file mode 100644 index 00000000..21ccebc6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/warped_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:warped_stems" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_planks" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/warped_slab.json b/data/minecraft/advancement/recipes/building_blocks/warped_slab.json new file mode 100644 index 00000000..2d302c6c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/warped_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/warped_stairs.json b/data/minecraft/advancement/recipes/building_blocks/warped_stairs.json new file mode 100644 index 00000000..bd52cf37 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/warped_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper.json new file mode 100644 index 00000000..20d25a37 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..23ebad7b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chiseled_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:chiseled_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_chiseled_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chiseled_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_chiseled_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_waxed_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..629cf874 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_chiseled_copper_from_waxed_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_chiseled_copper_from_waxed_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_waxed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_waxed_cut_copper_stonecutting.json new file mode 100644 index 00000000..83327907 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_chiseled_copper_from_waxed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_chiseled_copper_from_waxed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_chiseled_copper_from_waxed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_copper_block_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_block_from_honeycomb.json new file mode 100644 index 00000000..a65972d3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_block_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_block_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_block_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_copper_bulb_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..35a26766 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_bulb_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_bulb": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_bulb" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_bulb_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_bulb" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_bulb_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_copper_door_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_door_from_honeycomb.json new file mode 100644 index 00000000..cda86792 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_door_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_door": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_door" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_door_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_door" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_door_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate.json new file mode 100644 index 00000000..7e38162a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..b2e996eb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_grate": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_grate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_grate_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_grate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_grate_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate_from_waxed_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..56c39a24 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_grate_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_grate_from_waxed_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_grate_from_waxed_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_copper_trapdoor_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..67fe651b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_trapdoor": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_trapdoor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_trapdoor_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_trapdoor" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_trapdoor_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper.json new file mode 100644 index 00000000..a8f00595 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..99c3cde1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_from_waxed_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..d96b28da --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_from_waxed_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_from_waxed_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab.json new file mode 100644 index 00000000..159a33e0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..08b2f6e5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_slab_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_slab_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_waxed_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..0253a88d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_slab_from_waxed_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_slab_from_waxed_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting.json new file mode 100644 index 00000000..aa1b052c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs.json new file mode 100644 index 00000000..39346145 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..222709f3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_copper_stairs": { + "conditions": { + "items": [ + { + "items": "minecraft:cut_copper_stairs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_stairs_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cut_copper_stairs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_stairs_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..a058f90a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting.json new file mode 100644 index 00000000..ef6d1c06 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper.json new file mode 100644 index 00000000..09a9daef --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..aac7b5a3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_chiseled_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_chiseled_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_chiseled_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_chiseled_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_chiseled_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..e061d518 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..ffff639f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_bulb_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..71379ea9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_bulb_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper_bulb": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper_bulb" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_bulb_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper_bulb" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_bulb_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_door_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_door_from_honeycomb.json new file mode 100644 index 00000000..72d19907 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_door_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper_door": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper_door" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_door_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper_door" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_door_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_from_honeycomb.json new file mode 100644 index 00000000..ee54119a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate.json new file mode 100644 index 00000000..32d24008 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..2e0b6b5f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper_grate": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper_grate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_grate_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper_grate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_grate_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..08897f0e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_trapdoor_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..3b9514e5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper_trapdoor": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper_trapdoor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_trapdoor_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper_trapdoor" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_trapdoor_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper.json new file mode 100644 index 00000000..02896bc9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..ee22aede --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..09c272ab --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab.json new file mode 100644 index 00000000..1817e0c2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..64483506 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_slab_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_slab_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..ec5c46f8 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..7d9cc7c2 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs.json new file mode 100644 index 00000000..c8b842f9 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..b013c6ad --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_cut_copper_stairs": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_cut_copper_stairs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_stairs_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_cut_copper_stairs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_stairs_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..2049c56b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..3aebaf73 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper.json new file mode 100644 index 00000000..3d577204 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..cd81b902 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_chiseled_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_chiseled_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_chiseled_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_chiseled_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_chiseled_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..ac054612 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..00468ce4 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_bulb_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..9371e389 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_bulb_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper_bulb": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper_bulb" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_bulb_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper_bulb" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_bulb_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_door_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_door_from_honeycomb.json new file mode 100644 index 00000000..f943e07a --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_door_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper_door": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper_door" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_door_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper_door" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_door_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_from_honeycomb.json new file mode 100644 index 00000000..bc670d4c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate.json new file mode 100644 index 00000000..eb64938f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..acc1d3c5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper_grate": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper_grate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_grate_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper_grate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_grate_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..d2554e13 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_trapdoor_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..4e7e1f35 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper_trapdoor": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper_trapdoor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_trapdoor_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper_trapdoor" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_trapdoor_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper.json new file mode 100644 index 00000000..07cf847f --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..7443a840 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..b4d1d1cd --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab.json new file mode 100644 index 00000000..802efadc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..a11599c6 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_slab_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_slab_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..ae7d1e66 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..e85f4455 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..5e41ffe7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..8af01a83 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_cut_copper_stairs": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_cut_copper_stairs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_stairs_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_cut_copper_stairs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_stairs_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..40de729e --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..88f608e3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper.json new file mode 100644 index 00000000..67c1bed5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..64dfa3ce --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_chiseled_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_chiseled_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_chiseled_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_chiseled_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_chiseled_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..756dd418 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..c2c95198 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_bulb_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..f96fb0dc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_bulb_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_bulb_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper_bulb": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper_bulb" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper_bulb" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_bulb_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_door_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_door_from_honeycomb.json new file mode 100644 index 00000000..b9b5c909 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_door_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_door_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper_door": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper_door" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper_door" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_door_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_from_honeycomb.json new file mode 100644 index 00000000..0655153b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate.json new file mode 100644 index 00000000..136661a5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..c4d3064c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_grate_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper_grate": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper_grate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper_grate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_grate_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..a1921007 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_trapdoor_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..3f22f842 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_trapdoor_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper_trapdoor": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper_trapdoor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper_trapdoor" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_trapdoor_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper.json new file mode 100644 index 00000000..8e49d5b5 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..6c6aac2d --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..2683a9bc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab.json new file mode 100644 index 00000000..9400c115 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..d99fbf9c --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_slab_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_slab_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..c9dfd3a3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..ac6ccdc3 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs.json new file mode 100644 index 00000000..80eebfe7 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_honeycomb.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..72cf96eb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_stairs_from_honeycomb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper_stairs": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper_stairs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper_stairs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_stairs_from_honeycomb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..df3df9a0 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..82243853 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper.json b/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper.json new file mode 100644 index 00000000..86708450 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_chiseled_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_chiseled_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper_from_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..95c49ebb --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper_from_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_chiseled_copper_from_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_chiseled_copper_from_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper_from_weathered_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper_from_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..c0500e09 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_chiseled_copper_from_weathered_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_chiseled_copper_from_weathered_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_chiseled_copper_from_weathered_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_copper_grate.json b/data/minecraft/advancement/recipes/building_blocks/weathered_copper_grate.json new file mode 100644 index 00000000..126185ae --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_copper_grate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_copper_grate" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_copper_grate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_copper_grate_from_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_copper_grate_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..4fea89fa --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_copper_grate_from_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_copper_grate_from_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_copper_grate_from_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper.json new file mode 100644 index 00000000..c65fd54b --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_from_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..a5353723 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_from_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper_from_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper_from_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab.json new file mode 100644 index 00000000..ca088625 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper_slab" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper_slab" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab_from_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..c63d0b91 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab_from_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper_slab_from_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper_slab_from_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..63e0cfa1 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs.json new file mode 100644 index 00000000..346f9250 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper_stairs" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs_from_weathered_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..fa296b12 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs_from_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper_stairs_from_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper_stairs_from_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting.json b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..0a7bea31 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_cut_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_cut_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_cut_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/white_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/white_concrete_powder.json new file mode 100644 index 00000000..ac35a8ba --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/white_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/white_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/white_stained_glass.json new file mode 100644 index 00000000..55062706 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/white_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/white_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/white_terracotta.json new file mode 100644 index 00000000..95ae5884 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/white_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/white_wool_from_string.json b/data/minecraft/advancement/recipes/building_blocks/white_wool_from_string.json new file mode 100644 index 00000000..dced3658 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/white_wool_from_string.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_wool_from_string" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_wool_from_string" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/yellow_concrete_powder.json b/data/minecraft/advancement/recipes/building_blocks/yellow_concrete_powder.json new file mode 100644 index 00000000..4e540872 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/yellow_concrete_powder.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gravel": { + "conditions": { + "items": [ + { + "items": "minecraft:gravel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_concrete_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_gravel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_concrete_powder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/yellow_stained_glass.json b/data/minecraft/advancement/recipes/building_blocks/yellow_stained_glass.json new file mode 100644 index 00000000..7a414594 --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/yellow_stained_glass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_stained_glass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_stained_glass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/building_blocks/yellow_terracotta.json b/data/minecraft/advancement/recipes/building_blocks/yellow_terracotta.json new file mode 100644 index 00000000..b0f4b8cc --- /dev/null +++ b/data/minecraft/advancement/recipes/building_blocks/yellow_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/arrow.json b/data/minecraft/advancement/recipes/combat/arrow.json new file mode 100644 index 00000000..d9a949b7 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/arrow.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_feather": { + "conditions": { + "items": [ + { + "items": "minecraft:feather" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_flint": { + "conditions": { + "items": [ + { + "items": "minecraft:flint" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:arrow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_feather", + "has_flint" + ] + ], + "rewards": { + "recipes": [ + "minecraft:arrow" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/bow.json b/data/minecraft/advancement/recipes/combat/bow.json new file mode 100644 index 00000000..475ddb24 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/bow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bow" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/crossbow.json b/data/minecraft/advancement/recipes/combat/crossbow.json new file mode 100644 index 00000000..5690c1ea --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/crossbow.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crossbow" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string", + "has_iron_ingot", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crossbow" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/diamond_boots.json b/data/minecraft/advancement/recipes/combat/diamond_boots.json new file mode 100644 index 00000000..1bbffa7d --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/diamond_boots.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_boots" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_boots" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/diamond_chestplate.json b/data/minecraft/advancement/recipes/combat/diamond_chestplate.json new file mode 100644 index 00000000..22c62735 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/diamond_chestplate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_chestplate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_chestplate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/diamond_helmet.json b/data/minecraft/advancement/recipes/combat/diamond_helmet.json new file mode 100644 index 00000000..9eb5c199 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/diamond_helmet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_helmet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_helmet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/diamond_leggings.json b/data/minecraft/advancement/recipes/combat/diamond_leggings.json new file mode 100644 index 00000000..4107beaf --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/diamond_leggings.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_leggings" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_leggings" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/diamond_sword.json b/data/minecraft/advancement/recipes/combat/diamond_sword.json new file mode 100644 index 00000000..7b9fb0cf --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/diamond_sword.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_sword" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_sword" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/golden_boots.json b/data/minecraft/advancement/recipes/combat/golden_boots.json new file mode 100644 index 00000000..ce4e66db --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/golden_boots.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_boots" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_boots" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/golden_chestplate.json b/data/minecraft/advancement/recipes/combat/golden_chestplate.json new file mode 100644 index 00000000..1c40b6b2 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/golden_chestplate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_chestplate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_chestplate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/golden_helmet.json b/data/minecraft/advancement/recipes/combat/golden_helmet.json new file mode 100644 index 00000000..ee9bd55f --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/golden_helmet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_helmet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_helmet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/golden_leggings.json b/data/minecraft/advancement/recipes/combat/golden_leggings.json new file mode 100644 index 00000000..122729ad --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/golden_leggings.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_leggings" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_leggings" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/golden_sword.json b/data/minecraft/advancement/recipes/combat/golden_sword.json new file mode 100644 index 00000000..1b3dd220 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/golden_sword.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_sword" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_sword" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/iron_boots.json b/data/minecraft/advancement/recipes/combat/iron_boots.json new file mode 100644 index 00000000..04a213f7 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/iron_boots.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_boots" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_boots" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/iron_chestplate.json b/data/minecraft/advancement/recipes/combat/iron_chestplate.json new file mode 100644 index 00000000..0b2f5852 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/iron_chestplate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_chestplate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_chestplate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/iron_helmet.json b/data/minecraft/advancement/recipes/combat/iron_helmet.json new file mode 100644 index 00000000..53a1667d --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/iron_helmet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_helmet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_helmet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/iron_leggings.json b/data/minecraft/advancement/recipes/combat/iron_leggings.json new file mode 100644 index 00000000..0a5c437f --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/iron_leggings.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_leggings" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_leggings" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/iron_sword.json b/data/minecraft/advancement/recipes/combat/iron_sword.json new file mode 100644 index 00000000..2fc629c2 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/iron_sword.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_sword" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_sword" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/leather_boots.json b/data/minecraft/advancement/recipes/combat/leather_boots.json new file mode 100644 index 00000000..8394fc24 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/leather_boots.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_leather": { + "conditions": { + "items": [ + { + "items": "minecraft:leather" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:leather_boots" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_leather" + ] + ], + "rewards": { + "recipes": [ + "minecraft:leather_boots" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/leather_chestplate.json b/data/minecraft/advancement/recipes/combat/leather_chestplate.json new file mode 100644 index 00000000..a6626bcf --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/leather_chestplate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_leather": { + "conditions": { + "items": [ + { + "items": "minecraft:leather" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:leather_chestplate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_leather" + ] + ], + "rewards": { + "recipes": [ + "minecraft:leather_chestplate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/leather_helmet.json b/data/minecraft/advancement/recipes/combat/leather_helmet.json new file mode 100644 index 00000000..1b4e445d --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/leather_helmet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_leather": { + "conditions": { + "items": [ + { + "items": "minecraft:leather" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:leather_helmet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_leather" + ] + ], + "rewards": { + "recipes": [ + "minecraft:leather_helmet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/leather_leggings.json b/data/minecraft/advancement/recipes/combat/leather_leggings.json new file mode 100644 index 00000000..726c89aa --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/leather_leggings.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_leather": { + "conditions": { + "items": [ + { + "items": "minecraft:leather" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:leather_leggings" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_leather" + ] + ], + "rewards": { + "recipes": [ + "minecraft:leather_leggings" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/mace.json b/data/minecraft/advancement/recipes/combat/mace.json new file mode 100644 index 00000000..ba0263ba --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/mace.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_breeze_rod": { + "conditions": { + "items": [ + { + "items": "minecraft:breeze_rod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_heavy_core": { + "conditions": { + "items": [ + { + "items": "minecraft:heavy_core" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mace" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_breeze_rod", + "has_heavy_core" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mace" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/netherite_boots_smithing.json b/data/minecraft/advancement/recipes/combat/netherite_boots_smithing.json new file mode 100644 index 00000000..eed5d448 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/netherite_boots_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_boots_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_boots_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/netherite_chestplate_smithing.json b/data/minecraft/advancement/recipes/combat/netherite_chestplate_smithing.json new file mode 100644 index 00000000..37b29b56 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/netherite_chestplate_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_chestplate_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_chestplate_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/netherite_helmet_smithing.json b/data/minecraft/advancement/recipes/combat/netherite_helmet_smithing.json new file mode 100644 index 00000000..a8240ad1 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/netherite_helmet_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_helmet_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_helmet_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/netherite_leggings_smithing.json b/data/minecraft/advancement/recipes/combat/netherite_leggings_smithing.json new file mode 100644 index 00000000..da9d1c9f --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/netherite_leggings_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_leggings_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_leggings_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/netherite_sword_smithing.json b/data/minecraft/advancement/recipes/combat/netherite_sword_smithing.json new file mode 100644 index 00000000..3a45cc60 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/netherite_sword_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_sword_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_sword_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/shield.json b/data/minecraft/advancement/recipes/combat/shield.json new file mode 100644 index 00000000..b3e26b81 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/shield.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:shield" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:shield" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/spectral_arrow.json b/data/minecraft/advancement/recipes/combat/spectral_arrow.json new file mode 100644 index 00000000..af318e41 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/spectral_arrow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glowstone_dust": { + "conditions": { + "items": [ + { + "items": "minecraft:glowstone_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spectral_arrow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glowstone_dust" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spectral_arrow" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/stone_sword.json b/data/minecraft/advancement/recipes/combat/stone_sword.json new file mode 100644 index 00000000..9d3a6e91 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/stone_sword.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_sword" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_sword" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/turtle_helmet.json b/data/minecraft/advancement/recipes/combat/turtle_helmet.json new file mode 100644 index 00000000..81e034cf --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/turtle_helmet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:turtle_helmet" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_turtle_scute": { + "conditions": { + "items": [ + { + "items": "minecraft:turtle_scute" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_turtle_scute" + ] + ], + "rewards": { + "recipes": [ + "minecraft:turtle_helmet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/wolf_armor.json b/data/minecraft/advancement/recipes/combat/wolf_armor.json new file mode 100644 index 00000000..a280d0b0 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/wolf_armor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_armadillo_scute": { + "conditions": { + "items": [ + { + "items": "minecraft:armadillo_scute" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wolf_armor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_armadillo_scute" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wolf_armor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/combat/wooden_sword.json b/data/minecraft/advancement/recipes/combat/wooden_sword.json new file mode 100644 index 00000000..806742f7 --- /dev/null +++ b/data/minecraft/advancement/recipes/combat/wooden_sword.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stick": { + "conditions": { + "items": [ + { + "items": "minecraft:stick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wooden_sword" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wooden_sword" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/acacia_fence.json b/data/minecraft/advancement/recipes/decorations/acacia_fence.json new file mode 100644 index 00000000..679b762c --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/acacia_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/acacia_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/acacia_hanging_sign.json new file mode 100644 index 00000000..684ac230 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/acacia_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_acacia_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/acacia_sign.json b/data/minecraft/advancement/recipes/decorations/acacia_sign.json new file mode 100644 index 00000000..eb4acbdd --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/acacia_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/andesite_wall.json b/data/minecraft/advancement/recipes/decorations/andesite_wall.json new file mode 100644 index 00000000..540978aa --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/andesite_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:andesite_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:andesite_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/andesite_wall_from_andesite_stonecutting.json b/data/minecraft/advancement/recipes/decorations/andesite_wall_from_andesite_stonecutting.json new file mode 100644 index 00000000..5cc823b4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/andesite_wall_from_andesite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_andesite": { + "conditions": { + "items": [ + { + "items": "minecraft:andesite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:andesite_wall_from_andesite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_andesite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:andesite_wall_from_andesite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/anvil.json b/data/minecraft/advancement/recipes/decorations/anvil.json new file mode 100644 index 00000000..f8749cd9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/anvil.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_block": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:anvil" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:anvil" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/armor_stand.json b/data/minecraft/advancement/recipes/decorations/armor_stand.json new file mode 100644 index 00000000..9184521b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/armor_stand.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_stone_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:armor_stand" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:armor_stand" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/bamboo_fence.json b/data/minecraft/advancement/recipes/decorations/bamboo_fence.json new file mode 100644 index 00000000..8d8ae16a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/bamboo_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/bamboo_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/bamboo_hanging_sign.json new file mode 100644 index 00000000..3ced0557 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/bamboo_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_bamboo_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/bamboo_mosaic.json b/data/minecraft/advancement/recipes/decorations/bamboo_mosaic.json new file mode 100644 index 00000000..a300333d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/bamboo_mosaic.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_mosaic" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_mosaic" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/bamboo_sign.json b/data/minecraft/advancement/recipes/decorations/bamboo_sign.json new file mode 100644 index 00000000..360d08a9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/bamboo_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/barrel.json b/data/minecraft/advancement/recipes/decorations/barrel.json new file mode 100644 index 00000000..a78609db --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/barrel.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "#minecraft:planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:barrel" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wood_slab": { + "conditions": { + "items": [ + { + "items": "#minecraft:wooden_slabs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks", + "has_wood_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:barrel" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/beehive.json b/data/minecraft/advancement/recipes/decorations/beehive.json new file mode 100644 index 00000000..f1b9dc72 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/beehive.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_honeycomb": { + "conditions": { + "items": [ + { + "items": "minecraft:honeycomb" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:beehive" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_honeycomb" + ] + ], + "rewards": { + "recipes": [ + "minecraft:beehive" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/birch_fence.json b/data/minecraft/advancement/recipes/decorations/birch_fence.json new file mode 100644 index 00000000..c13058b6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/birch_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/birch_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/birch_hanging_sign.json new file mode 100644 index 00000000..38248fe6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/birch_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_birch_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/birch_sign.json b/data/minecraft/advancement/recipes/decorations/birch_sign.json new file mode 100644 index 00000000..66c8ce8d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/birch_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/black_banner.json b/data/minecraft/advancement/recipes/decorations/black_banner.json new file mode 100644 index 00000000..e10a4d48 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/black_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:black_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/black_bed.json b/data/minecraft/advancement/recipes/decorations/black_bed.json new file mode 100644 index 00000000..46216736 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/black_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:black_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/black_candle.json b/data/minecraft/advancement/recipes/decorations/black_candle.json new file mode 100644 index 00000000..37fed0ba --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/black_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:black_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/black_carpet.json b/data/minecraft/advancement/recipes/decorations/black_carpet.json new file mode 100644 index 00000000..a1d68c3b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/black_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:black_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/black_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/black_glazed_terracotta.json new file mode 100644 index 00000000..98fd4a64 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/black_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:black_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_black_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/black_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/black_stained_glass_pane.json new file mode 100644 index 00000000..88db2846 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/black_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:black_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/black_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/black_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..769364b1 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/black_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:black_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_black_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blackstone_wall.json b/data/minecraft/advancement/recipes/decorations/blackstone_wall.json new file mode 100644 index 00000000..e567cb89 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blackstone_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blackstone_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blackstone_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blackstone_wall_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/blackstone_wall_from_blackstone_stonecutting.json new file mode 100644 index 00000000..e4855a9c --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blackstone_wall_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blackstone_wall_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blackstone_wall_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blast_furnace.json b/data/minecraft/advancement/recipes/decorations/blast_furnace.json new file mode 100644 index 00000000..d1a6817e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blast_furnace.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smooth_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:smooth_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blast_furnace" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smooth_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blast_furnace" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blue_banner.json b/data/minecraft/advancement/recipes/decorations/blue_banner.json new file mode 100644 index 00000000..12fe9666 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blue_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blue_bed.json b/data/minecraft/advancement/recipes/decorations/blue_bed.json new file mode 100644 index 00000000..d27e9652 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blue_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blue_candle.json b/data/minecraft/advancement/recipes/decorations/blue_candle.json new file mode 100644 index 00000000..e793487f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blue_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blue_carpet.json b/data/minecraft/advancement/recipes/decorations/blue_carpet.json new file mode 100644 index 00000000..a8901ae0 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blue_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blue_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/blue_glazed_terracotta.json new file mode 100644 index 00000000..dd3a4fda --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blue_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blue_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/blue_stained_glass_pane.json new file mode 100644 index 00000000..a986fe40 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blue_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/blue_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/blue_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..b63151ee --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/blue_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_blue_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brick_wall.json b/data/minecraft/advancement/recipes/decorations/brick_wall.json new file mode 100644 index 00000000..e2f5d6d9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brick_wall_from_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/brick_wall_from_bricks_stonecutting.json new file mode 100644 index 00000000..ed610d9e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brick_wall_from_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brick_wall_from_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brick_wall_from_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brown_banner.json b/data/minecraft/advancement/recipes/decorations/brown_banner.json new file mode 100644 index 00000000..8ec9f5d7 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brown_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brown_bed.json b/data/minecraft/advancement/recipes/decorations/brown_bed.json new file mode 100644 index 00000000..03d31f4f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brown_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brown_candle.json b/data/minecraft/advancement/recipes/decorations/brown_candle.json new file mode 100644 index 00000000..ac9060c0 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brown_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brown_carpet.json b/data/minecraft/advancement/recipes/decorations/brown_carpet.json new file mode 100644 index 00000000..482d9674 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brown_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brown_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/brown_glazed_terracotta.json new file mode 100644 index 00000000..cfb97244 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brown_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brown_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/brown_stained_glass_pane.json new file mode 100644 index 00000000..b446f5fe --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brown_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/brown_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/brown_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..e13a7278 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/brown_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_brown_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/campfire.json b/data/minecraft/advancement/recipes/decorations/campfire.json new file mode 100644 index 00000000..66bca0ad --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/campfire.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_coal": { + "conditions": { + "items": [ + { + "items": "#minecraft:coals" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_stick": { + "conditions": { + "items": [ + { + "items": "minecraft:stick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:campfire" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stick", + "has_coal" + ] + ], + "rewards": { + "recipes": [ + "minecraft:campfire" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/candle.json b/data/minecraft/advancement/recipes/decorations/candle.json new file mode 100644 index 00000000..13521a09 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/candle.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_honeycomb": { + "conditions": { + "items": [ + { + "items": "minecraft:honeycomb" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string", + "has_honeycomb" + ] + ], + "rewards": { + "recipes": [ + "minecraft:candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cartography_table.json b/data/minecraft/advancement/recipes/decorations/cartography_table.json new file mode 100644 index 00000000..d3d9de0f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cartography_table.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_paper": { + "conditions": { + "items": [ + { + "items": "minecraft:paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cartography_table" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_paper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cartography_table" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/chain.json b/data/minecraft/advancement/recipes/decorations/chain.json new file mode 100644 index 00000000..fb24bb02 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/chain.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_nugget": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chain" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_nugget", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chain" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cherry_fence.json b/data/minecraft/advancement/recipes/decorations/cherry_fence.json new file mode 100644 index 00000000..2d21e1ea --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cherry_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cherry_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/cherry_hanging_sign.json new file mode 100644 index 00000000..9998ef4a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cherry_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_cherry_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cherry_sign.json b/data/minecraft/advancement/recipes/decorations/cherry_sign.json new file mode 100644 index 00000000..c1e2114d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cherry_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/chest.json b/data/minecraft/advancement/recipes/decorations/chest.json new file mode 100644 index 00000000..6e00416a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lots_of_items": { + "conditions": { + "slots": { + "occupied": { + "min": 10 + } + } + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lots_of_items" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chest" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cobbled_deepslate_wall.json b/data/minecraft/advancement/recipes/decorations/cobbled_deepslate_wall.json new file mode 100644 index 00000000..b695980b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cobbled_deepslate_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_deepslate_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_deepslate_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..caeac7f5 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cobblestone_wall.json b/data/minecraft/advancement/recipes/decorations/cobblestone_wall.json new file mode 100644 index 00000000..cde03a7f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cobblestone_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobblestone_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobblestone_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting.json new file mode 100644 index 00000000..9cf1be91 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobblestone_wall_from_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobblestone_wall_from_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/composter.json b/data/minecraft/advancement/recipes/decorations/composter.json new file mode 100644 index 00000000..eeb7a2eb --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/composter.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:composter" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wood_slab": { + "conditions": { + "items": [ + { + "items": "#minecraft:wooden_slabs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wood_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:composter" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/crafting_table.json b/data/minecraft/advancement/recipes/decorations/crafting_table.json new file mode 100644 index 00000000..a040c876 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/crafting_table.json @@ -0,0 +1,25 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crafting_table" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "unlock_right_away": { + "trigger": "minecraft:tick" + } + }, + "requirements": [ + [ + "has_the_recipe", + "unlock_right_away" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crafting_table" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/crimson_fence.json b/data/minecraft/advancement/recipes/decorations/crimson_fence.json new file mode 100644 index 00000000..0d2c70e4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/crimson_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/crimson_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/crimson_hanging_sign.json new file mode 100644 index 00000000..24af841e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/crimson_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_crimson_stem" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/crimson_sign.json b/data/minecraft/advancement/recipes/decorations/crimson_sign.json new file mode 100644 index 00000000..270f36a6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/crimson_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cyan_banner.json b/data/minecraft/advancement/recipes/decorations/cyan_banner.json new file mode 100644 index 00000000..acd7aebb --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cyan_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cyan_bed.json b/data/minecraft/advancement/recipes/decorations/cyan_bed.json new file mode 100644 index 00000000..7ea83de7 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cyan_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cyan_candle.json b/data/minecraft/advancement/recipes/decorations/cyan_candle.json new file mode 100644 index 00000000..b7b8f75e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cyan_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cyan_carpet.json b/data/minecraft/advancement/recipes/decorations/cyan_carpet.json new file mode 100644 index 00000000..dea236e3 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cyan_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cyan_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/cyan_glazed_terracotta.json new file mode 100644 index 00000000..90da75ab --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cyan_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cyan_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cyan_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/cyan_stained_glass_pane.json new file mode 100644 index 00000000..3b993179 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cyan_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/cyan_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/cyan_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..ff50f603 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/cyan_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cyan_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:cyan_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_cyan_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/dark_oak_fence.json b/data/minecraft/advancement/recipes/decorations/dark_oak_fence.json new file mode 100644 index 00000000..971316cb --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/dark_oak_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/dark_oak_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/dark_oak_hanging_sign.json new file mode 100644 index 00000000..a80fe559 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/dark_oak_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_dark_oak_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/dark_oak_sign.json b/data/minecraft/advancement/recipes/decorations/dark_oak_sign.json new file mode 100644 index 00000000..119fcef6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/dark_oak_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/decorated_pot_simple.json b/data/minecraft/advancement/recipes/decorations/decorated_pot_simple.json new file mode 100644 index 00000000..0b336480 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/decorated_pot_simple.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brick": { + "conditions": { + "items": [ + { + "items": "#minecraft:decorated_pot_ingredients" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:decorated_pot_simple" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:decorated_pot_simple" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall.json b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall.json new file mode 100644 index 00000000..ef37f9b8 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..5563bd2a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_wall_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_wall_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_deepslate_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..b16dae6b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_wall_from_deepslate_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_wall_from_deepslate_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..e9c3bbd6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_brick_wall_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_brick_wall_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_brick_wall_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall.json b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall.json new file mode 100644 index 00000000..9e33f69e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_tiles": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_tiles" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_tiles" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..d4dc2563 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_wall_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_wall_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_deepslate_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..f41a111c --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_wall_from_deepslate_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_wall_from_deepslate_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_deepslate_tiles_stonecutting.json b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_deepslate_tiles_stonecutting.json new file mode 100644 index 00000000..ef25a723 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_deepslate_tiles_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_tiles": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_tiles" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_wall_from_deepslate_tiles_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_tiles" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_wall_from_deepslate_tiles_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..d07c0242 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/deepslate_tile_wall_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:deepslate_tile_wall_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:deepslate_tile_wall_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/diorite_wall.json b/data/minecraft/advancement/recipes/decorations/diorite_wall.json new file mode 100644 index 00000000..44e7acd9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/diorite_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diorite_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diorite_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/diorite_wall_from_diorite_stonecutting.json b/data/minecraft/advancement/recipes/decorations/diorite_wall_from_diorite_stonecutting.json new file mode 100644 index 00000000..f1bb5f13 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/diorite_wall_from_diorite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diorite": { + "conditions": { + "items": [ + { + "items": "minecraft:diorite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diorite_wall_from_diorite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diorite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diorite_wall_from_diorite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/enchanting_table.json b/data/minecraft/advancement/recipes/decorations/enchanting_table.json new file mode 100644 index 00000000..771cfc3a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/enchanting_table.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:enchanting_table" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_obsidian" + ] + ], + "rewards": { + "recipes": [ + "minecraft:enchanting_table" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/end_crystal.json b/data/minecraft/advancement/recipes/decorations/end_crystal.json new file mode 100644 index 00000000..3ac71d8f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/end_crystal.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ender_eye": { + "conditions": { + "items": [ + { + "items": "minecraft:ender_eye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_crystal" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_ender_eye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_crystal" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/end_rod.json b/data/minecraft/advancement/recipes/decorations/end_rod.json new file mode 100644 index 00000000..e5a5de92 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/end_rod.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chorus_fruit_popped": { + "conditions": { + "items": [ + { + "items": "minecraft:popped_chorus_fruit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_rod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chorus_fruit_popped" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_rod" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall.json b/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall.json new file mode 100644 index 00000000..2fa03c7a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall_from_end_stone_brick_stonecutting.json b/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall_from_end_stone_brick_stonecutting.json new file mode 100644 index 00000000..e2f14b96 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall_from_end_stone_brick_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_wall_from_end_stone_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_wall_from_end_stone_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall_from_end_stone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall_from_end_stone_stonecutting.json new file mode 100644 index 00000000..eb59cb84 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/end_stone_brick_wall_from_end_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_end_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:end_stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:end_stone_brick_wall_from_end_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_end_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:end_stone_brick_wall_from_end_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/ender_chest.json b/data/minecraft/advancement/recipes/decorations/ender_chest.json new file mode 100644 index 00000000..75cc0f3b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/ender_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ender_eye": { + "conditions": { + "items": [ + { + "items": "minecraft:ender_eye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:ender_chest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_ender_eye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:ender_chest" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/fletching_table.json b/data/minecraft/advancement/recipes/decorations/fletching_table.json new file mode 100644 index 00000000..c35a3250 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/fletching_table.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_flint": { + "conditions": { + "items": [ + { + "items": "minecraft:flint" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:fletching_table" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_flint" + ] + ], + "rewards": { + "recipes": [ + "minecraft:fletching_table" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/flower_pot.json b/data/minecraft/advancement/recipes/decorations/flower_pot.json new file mode 100644 index 00000000..8cc4c029 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/flower_pot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brick": { + "conditions": { + "items": [ + { + "items": "minecraft:brick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:flower_pot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:flower_pot" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/furnace.json b/data/minecraft/advancement/recipes/decorations/furnace.json new file mode 100644 index 00000000..9e131324 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/furnace.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_crafting_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:furnace" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:furnace" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/glass_pane.json b/data/minecraft/advancement/recipes/decorations/glass_pane.json new file mode 100644 index 00000000..4a55af0d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/glow_item_frame.json b/data/minecraft/advancement/recipes/decorations/glow_item_frame.json new file mode 100644 index 00000000..60b0e3a3 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/glow_item_frame.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glow_ink_sac": { + "conditions": { + "items": [ + { + "items": "minecraft:glow_ink_sac" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_item_frame": { + "conditions": { + "items": [ + { + "items": "minecraft:item_frame" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:glow_item_frame" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item_frame", + "has_glow_ink_sac" + ] + ], + "rewards": { + "recipes": [ + "minecraft:glow_item_frame" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/granite_wall.json b/data/minecraft/advancement/recipes/decorations/granite_wall.json new file mode 100644 index 00000000..abf17098 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/granite_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:granite_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:granite_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/granite_wall_from_granite_stonecutting.json b/data/minecraft/advancement/recipes/decorations/granite_wall_from_granite_stonecutting.json new file mode 100644 index 00000000..bd0796c7 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/granite_wall_from_granite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_granite": { + "conditions": { + "items": [ + { + "items": "minecraft:granite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:granite_wall_from_granite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_granite" + ] + ], + "rewards": { + "recipes": [ + "minecraft:granite_wall_from_granite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/gray_banner.json b/data/minecraft/advancement/recipes/decorations/gray_banner.json new file mode 100644 index 00000000..0f5cdb66 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/gray_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/gray_bed.json b/data/minecraft/advancement/recipes/decorations/gray_bed.json new file mode 100644 index 00000000..5976b3a4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/gray_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/gray_candle.json b/data/minecraft/advancement/recipes/decorations/gray_candle.json new file mode 100644 index 00000000..819761c4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/gray_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/gray_carpet.json b/data/minecraft/advancement/recipes/decorations/gray_carpet.json new file mode 100644 index 00000000..3e17033a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/gray_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/gray_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/gray_glazed_terracotta.json new file mode 100644 index 00000000..37f33e67 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/gray_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/gray_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/gray_stained_glass_pane.json new file mode 100644 index 00000000..51b306c8 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/gray_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/gray_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/gray_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..41997e58 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/gray_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_gray_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_gray_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/green_banner.json b/data/minecraft/advancement/recipes/decorations/green_banner.json new file mode 100644 index 00000000..550a7fb6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/green_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:green_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/green_bed.json b/data/minecraft/advancement/recipes/decorations/green_bed.json new file mode 100644 index 00000000..acf62aa3 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/green_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:green_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/green_candle.json b/data/minecraft/advancement/recipes/decorations/green_candle.json new file mode 100644 index 00000000..4b3a88cd --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/green_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/green_carpet.json b/data/minecraft/advancement/recipes/decorations/green_carpet.json new file mode 100644 index 00000000..e10b5923 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/green_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:green_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/green_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/green_glazed_terracotta.json new file mode 100644 index 00000000..6e8830c4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/green_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:green_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/green_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/green_stained_glass_pane.json new file mode 100644 index 00000000..2d081cfc --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/green_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:green_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/green_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/green_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..6c03183e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/green_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_green_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_green_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/grindstone.json b/data/minecraft/advancement/recipes/decorations/grindstone.json new file mode 100644 index 00000000..57e51491 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/grindstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_slab": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_slab" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:grindstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_slab" + ] + ], + "rewards": { + "recipes": [ + "minecraft:grindstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/honeycomb_block.json b/data/minecraft/advancement/recipes/decorations/honeycomb_block.json new file mode 100644 index 00000000..77367ece --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/honeycomb_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_honeycomb": { + "conditions": { + "items": [ + { + "items": "minecraft:honeycomb" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:honeycomb_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_honeycomb" + ] + ], + "rewards": { + "recipes": [ + "minecraft:honeycomb_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/iron_bars.json b/data/minecraft/advancement/recipes/decorations/iron_bars.json new file mode 100644 index 00000000..0b0b56cc --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/iron_bars.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_bars" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_bars" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/item_frame.json b/data/minecraft/advancement/recipes/decorations/item_frame.json new file mode 100644 index 00000000..b9a85d94 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/item_frame.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_leather": { + "conditions": { + "items": [ + { + "items": "minecraft:leather" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:item_frame" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_leather" + ] + ], + "rewards": { + "recipes": [ + "minecraft:item_frame" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/jukebox.json b/data/minecraft/advancement/recipes/decorations/jukebox.json new file mode 100644 index 00000000..d4a6202d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/jukebox.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jukebox" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jukebox" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/jungle_fence.json b/data/minecraft/advancement/recipes/decorations/jungle_fence.json new file mode 100644 index 00000000..589f773b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/jungle_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/jungle_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/jungle_hanging_sign.json new file mode 100644 index 00000000..1a75d7fc --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/jungle_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_jungle_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/jungle_sign.json b/data/minecraft/advancement/recipes/decorations/jungle_sign.json new file mode 100644 index 00000000..e432d535 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/jungle_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/ladder.json b/data/minecraft/advancement/recipes/decorations/ladder.json new file mode 100644 index 00000000..6d3f284d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/ladder.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stick": { + "conditions": { + "items": [ + { + "items": "minecraft:stick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:ladder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:ladder" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lantern.json b/data/minecraft/advancement/recipes/decorations/lantern.json new file mode 100644 index 00000000..115abdb7 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lantern.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_nugget": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_nugget", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lantern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_blue_banner.json b/data/minecraft/advancement/recipes/decorations/light_blue_banner.json new file mode 100644 index 00000000..6a4fd4c9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_blue_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_blue_bed.json b/data/minecraft/advancement/recipes/decorations/light_blue_bed.json new file mode 100644 index 00000000..bfa709af --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_blue_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_blue_candle.json b/data/minecraft/advancement/recipes/decorations/light_blue_candle.json new file mode 100644 index 00000000..ddf547ae --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_blue_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_blue_carpet.json b/data/minecraft/advancement/recipes/decorations/light_blue_carpet.json new file mode 100644 index 00000000..d68bc4b2 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_blue_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_blue_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/light_blue_glazed_terracotta.json new file mode 100644 index 00000000..8648482a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_blue_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_blue_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_blue_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_blue_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/light_blue_stained_glass_pane.json new file mode 100644 index 00000000..959f02d5 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_blue_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_blue_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/light_blue_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..f21a4d14 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_blue_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_light_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_light_blue_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_gray_banner.json b/data/minecraft/advancement/recipes/decorations/light_gray_banner.json new file mode 100644 index 00000000..25d833f9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_gray_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_gray_bed.json b/data/minecraft/advancement/recipes/decorations/light_gray_bed.json new file mode 100644 index 00000000..264c7085 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_gray_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_gray_candle.json b/data/minecraft/advancement/recipes/decorations/light_gray_candle.json new file mode 100644 index 00000000..4d9e477a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_gray_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_gray_carpet.json b/data/minecraft/advancement/recipes/decorations/light_gray_carpet.json new file mode 100644 index 00000000..f378a58f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_gray_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_gray_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/light_gray_glazed_terracotta.json new file mode 100644 index 00000000..34d2cdde --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_gray_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_light_gray_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_light_gray_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_gray_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/light_gray_stained_glass_pane.json new file mode 100644 index 00000000..0a813c4a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_gray_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/light_gray_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/light_gray_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..ff3c07ec --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/light_gray_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_light_gray_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:light_gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_light_gray_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lime_banner.json b/data/minecraft/advancement/recipes/decorations/lime_banner.json new file mode 100644 index 00000000..525efd7d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lime_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lime_bed.json b/data/minecraft/advancement/recipes/decorations/lime_bed.json new file mode 100644 index 00000000..ebe169e4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lime_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lime_candle.json b/data/minecraft/advancement/recipes/decorations/lime_candle.json new file mode 100644 index 00000000..f11f19ac --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lime_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lime_carpet.json b/data/minecraft/advancement/recipes/decorations/lime_carpet.json new file mode 100644 index 00000000..d8096332 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lime_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lime_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/lime_glazed_terracotta.json new file mode 100644 index 00000000..e573f1dc --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lime_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lime_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lime_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lime_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/lime_stained_glass_pane.json new file mode 100644 index 00000000..7ddc0d34 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lime_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lime_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/lime_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..12eef0c6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lime_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_lime_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:lime_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_lime_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/lodestone.json b/data/minecraft/advancement/recipes/decorations/lodestone.json new file mode 100644 index 00000000..3ccf8e6e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/lodestone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lodestone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lodestone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/loom.json b/data/minecraft/advancement/recipes/decorations/loom.json new file mode 100644 index 00000000..c1829b79 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/loom.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:loom" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string" + ] + ], + "rewards": { + "recipes": [ + "minecraft:loom" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/magenta_banner.json b/data/minecraft/advancement/recipes/decorations/magenta_banner.json new file mode 100644 index 00000000..b9a0ce2f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/magenta_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/magenta_bed.json b/data/minecraft/advancement/recipes/decorations/magenta_bed.json new file mode 100644 index 00000000..eda1465d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/magenta_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/magenta_candle.json b/data/minecraft/advancement/recipes/decorations/magenta_candle.json new file mode 100644 index 00000000..201b5296 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/magenta_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/magenta_carpet.json b/data/minecraft/advancement/recipes/decorations/magenta_carpet.json new file mode 100644 index 00000000..01b52ff7 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/magenta_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/magenta_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/magenta_glazed_terracotta.json new file mode 100644 index 00000000..9d3ebde0 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/magenta_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_magenta_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_magenta_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/magenta_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/magenta_stained_glass_pane.json new file mode 100644 index 00000000..43b98405 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/magenta_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/magenta_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/magenta_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..0f1e26ea --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/magenta_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_magenta_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:magenta_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_magenta_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mangrove_fence.json b/data/minecraft/advancement/recipes/decorations/mangrove_fence.json new file mode 100644 index 00000000..103f4d12 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mangrove_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mangrove_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/mangrove_hanging_sign.json new file mode 100644 index 00000000..33d389ba --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mangrove_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_mangrove_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mangrove_sign.json b/data/minecraft/advancement/recipes/decorations/mangrove_sign.json new file mode 100644 index 00000000..172ecacd --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mangrove_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/moss_carpet.json b/data/minecraft/advancement/recipes/decorations/moss_carpet.json new file mode 100644 index 00000000..cec3703c --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/moss_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moss_block": { + "conditions": { + "items": [ + { + "items": "minecraft:moss_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moss_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moss_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moss_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mossy_cobblestone_wall.json b/data/minecraft/advancement/recipes/decorations/mossy_cobblestone_wall.json new file mode 100644 index 00000000..84af20f8 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mossy_cobblestone_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting.json new file mode 100644 index 00000000..672880e2 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mossy_stone_brick_wall.json b/data/minecraft/advancement/recipes/decorations/mossy_stone_brick_wall.json new file mode 100644 index 00000000..41ec8830 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mossy_stone_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting.json b/data/minecraft/advancement/recipes/decorations/mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting.json new file mode 100644 index 00000000..0ef0e101 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mossy_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mossy_stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mossy_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mud_brick_wall.json b/data/minecraft/advancement/recipes/decorations/mud_brick_wall.json new file mode 100644 index 00000000..03ecfc9f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mud_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mud_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mud_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mud_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mud_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mud_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/mud_brick_wall_from_mud_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/mud_brick_wall_from_mud_bricks_stonecutting.json new file mode 100644 index 00000000..60f73b68 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/mud_brick_wall_from_mud_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mud_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:mud_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mud_brick_wall_from_mud_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mud_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mud_brick_wall_from_mud_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/nether_brick_fence.json b/data/minecraft/advancement/recipes/decorations/nether_brick_fence.json new file mode 100644 index 00000000..689f18ef --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/nether_brick_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/nether_brick_wall.json b/data/minecraft/advancement/recipes/decorations/nether_brick_wall.json new file mode 100644 index 00000000..7742728b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/nether_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/nether_brick_wall_from_nether_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/nether_brick_wall_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..0cdfae72 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/nether_brick_wall_from_nether_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick_wall_from_nether_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick_wall_from_nether_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/oak_fence.json b/data/minecraft/advancement/recipes/decorations/oak_fence.json new file mode 100644 index 00000000..209d0d64 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/oak_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/oak_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/oak_hanging_sign.json new file mode 100644 index 00000000..9ce6308a --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/oak_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_oak_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/oak_sign.json b/data/minecraft/advancement/recipes/decorations/oak_sign.json new file mode 100644 index 00000000..d18ded65 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/oak_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/orange_banner.json b/data/minecraft/advancement/recipes/decorations/orange_banner.json new file mode 100644 index 00000000..0295ee43 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/orange_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/orange_bed.json b/data/minecraft/advancement/recipes/decorations/orange_bed.json new file mode 100644 index 00000000..46082788 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/orange_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/orange_candle.json b/data/minecraft/advancement/recipes/decorations/orange_candle.json new file mode 100644 index 00000000..d99adc25 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/orange_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/orange_carpet.json b/data/minecraft/advancement/recipes/decorations/orange_carpet.json new file mode 100644 index 00000000..2ff38e0e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/orange_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/orange_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/orange_glazed_terracotta.json new file mode 100644 index 00000000..b833cdf4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/orange_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/orange_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/orange_stained_glass_pane.json new file mode 100644 index 00000000..f5ec07f5 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/orange_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/orange_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/orange_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..293807ee --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/orange_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_orange_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_orange_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/painting.json b/data/minecraft/advancement/recipes/decorations/painting.json new file mode 100644 index 00000000..fe37a2d7 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/painting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:painting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wool": { + "conditions": { + "items": [ + { + "items": "#minecraft:wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:painting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/pink_banner.json b/data/minecraft/advancement/recipes/decorations/pink_banner.json new file mode 100644 index 00000000..20afae63 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/pink_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/pink_bed.json b/data/minecraft/advancement/recipes/decorations/pink_bed.json new file mode 100644 index 00000000..87d48fa4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/pink_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/pink_candle.json b/data/minecraft/advancement/recipes/decorations/pink_candle.json new file mode 100644 index 00000000..131449fd --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/pink_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/pink_carpet.json b/data/minecraft/advancement/recipes/decorations/pink_carpet.json new file mode 100644 index 00000000..35f60795 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/pink_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/pink_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/pink_glazed_terracotta.json new file mode 100644 index 00000000..2fdcf7f9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/pink_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/pink_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/pink_stained_glass_pane.json new file mode 100644 index 00000000..c85bffd1 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/pink_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/pink_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/pink_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..9b632ef9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/pink_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_pink_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_pink_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall.json b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall.json new file mode 100644 index 00000000..e1fa93f9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_blackstone_stonecutting.json new file mode 100644 index 00000000..5d31d82e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_wall_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_wall_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting.json new file mode 100644 index 00000000..13e22987 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..04ae817f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_blackstone_brick_wall_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_brick_wall_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_brick_wall_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall.json b/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall.json new file mode 100644 index 00000000..739c693d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall_from_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall_from_blackstone_stonecutting.json new file mode 100644 index 00000000..82b745e6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_wall_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_wall_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall_from_polished_blackstone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..530da8da --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_blackstone_wall_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_wall_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_wall_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall.json b/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall.json new file mode 100644 index 00000000..a58bfdad --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..71e72510 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:cobbled_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_wall_from_cobbled_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_wall_from_cobbled_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall_from_polished_deepslate_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..b6299852 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_deepslate_wall_from_polished_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_deepslate_wall_from_polished_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_deepslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_deepslate_wall_from_polished_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_tuff_wall.json b/data/minecraft/advancement/recipes/decorations/polished_tuff_wall.json new file mode 100644 index 00000000..401bcf28 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_tuff_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_tuff_wall_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_tuff_wall_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..5181c799 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_tuff_wall_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_wall_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_wall_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/polished_tuff_wall_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/decorations/polished_tuff_wall_from_tuff_stonecutting.json new file mode 100644 index 00000000..98f98157 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/polished_tuff_wall_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_tuff_wall_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_tuff_wall_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/prismarine_wall.json b/data/minecraft/advancement/recipes/decorations/prismarine_wall.json new file mode 100644 index 00000000..fbe39219 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/prismarine_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/prismarine_wall_from_prismarine_stonecutting.json b/data/minecraft/advancement/recipes/decorations/prismarine_wall_from_prismarine_stonecutting.json new file mode 100644 index 00000000..3d076295 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/prismarine_wall_from_prismarine_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prismarine": { + "conditions": { + "items": [ + { + "items": "minecraft:prismarine" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prismarine_wall_from_prismarine_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prismarine" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prismarine_wall_from_prismarine_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/purple_banner.json b/data/minecraft/advancement/recipes/decorations/purple_banner.json new file mode 100644 index 00000000..7ae53c0f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/purple_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/purple_bed.json b/data/minecraft/advancement/recipes/decorations/purple_bed.json new file mode 100644 index 00000000..6386d4c1 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/purple_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/purple_candle.json b/data/minecraft/advancement/recipes/decorations/purple_candle.json new file mode 100644 index 00000000..3f4d76da --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/purple_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/purple_carpet.json b/data/minecraft/advancement/recipes/decorations/purple_carpet.json new file mode 100644 index 00000000..5275850d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/purple_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/purple_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/purple_glazed_terracotta.json new file mode 100644 index 00000000..01c9ed29 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/purple_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_purple_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_purple_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/purple_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/purple_stained_glass_pane.json new file mode 100644 index 00000000..bb779838 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/purple_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/purple_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/purple_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..7e0bf03d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/purple_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_purple_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_purple_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_banner.json b/data/minecraft/advancement/recipes/decorations/red_banner.json new file mode 100644 index 00000000..77b5d97f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:red_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_banner" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_bed.json b/data/minecraft/advancement/recipes/decorations/red_bed.json new file mode 100644 index 00000000..7e5754fc --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:red_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_bed" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_candle.json b/data/minecraft/advancement/recipes/decorations/red_candle.json new file mode 100644 index 00000000..63bf3d66 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_candle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_carpet.json b/data/minecraft/advancement/recipes/decorations/red_carpet.json new file mode 100644 index 00000000..88d6459c --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:red_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/red_glazed_terracotta.json new file mode 100644 index 00000000..989a4504 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:red_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_nether_brick_wall.json b/data/minecraft/advancement/recipes/decorations/red_nether_brick_wall.json new file mode 100644 index 00000000..c82f4069 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_nether_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:red_nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_nether_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_nether_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_nether_brick_wall_from_red_nether_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/red_nether_brick_wall_from_red_nether_bricks_stonecutting.json new file mode 100644 index 00000000..5a21584f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_nether_brick_wall_from_red_nether_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_nether_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:red_nether_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_nether_brick_wall_from_red_nether_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_nether_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_nether_brick_wall_from_red_nether_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_sandstone_wall.json b/data/minecraft/advancement/recipes/decorations/red_sandstone_wall.json new file mode 100644 index 00000000..40242a45 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_sandstone_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_sandstone_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_sandstone_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_sandstone_wall_from_red_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/red_sandstone_wall_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..f9748732 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_sandstone_wall_from_red_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_sandstone_wall_from_red_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_sandstone_wall_from_red_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/red_stained_glass_pane.json new file mode 100644 index 00000000..86e58b98 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:red_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/red_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/red_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..94cb1aed --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/red_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_red_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/respawn_anchor.json b/data/minecraft/advancement/recipes/decorations/respawn_anchor.json new file mode 100644 index 00000000..ca1ad366 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/respawn_anchor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:crying_obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:respawn_anchor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_obsidian" + ] + ], + "rewards": { + "recipes": [ + "minecraft:respawn_anchor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/sandstone_wall.json b/data/minecraft/advancement/recipes/decorations/sandstone_wall.json new file mode 100644 index 00000000..25e00a10 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/sandstone_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sandstone_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sandstone_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/sandstone_wall_from_sandstone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/sandstone_wall_from_sandstone_stonecutting.json new file mode 100644 index 00000000..fa177930 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/sandstone_wall_from_sandstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sandstone": { + "conditions": { + "items": [ + { + "items": "minecraft:sandstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sandstone_wall_from_sandstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sandstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sandstone_wall_from_sandstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/scaffolding.json b/data/minecraft/advancement/recipes/decorations/scaffolding.json new file mode 100644 index 00000000..fc54ea8d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/scaffolding.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:scaffolding" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo" + ] + ], + "rewards": { + "recipes": [ + "minecraft:scaffolding" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/shulker_box.json b/data/minecraft/advancement/recipes/decorations/shulker_box.json new file mode 100644 index 00000000..05315846 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/shulker_box.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_shulker_shell": { + "conditions": { + "items": [ + { + "items": "minecraft:shulker_shell" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:shulker_box" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_shulker_shell" + ] + ], + "rewards": { + "recipes": [ + "minecraft:shulker_box" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/smithing_table.json b/data/minecraft/advancement/recipes/decorations/smithing_table.json new file mode 100644 index 00000000..bfc7a13f --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/smithing_table.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smithing_table" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smithing_table" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/smoker.json b/data/minecraft/advancement/recipes/decorations/smoker.json new file mode 100644 index 00000000..5a47eb48 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/smoker.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_furnace": { + "conditions": { + "items": [ + { + "items": "minecraft:furnace" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smoker" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_furnace" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smoker" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/snow.json b/data/minecraft/advancement/recipes/decorations/snow.json new file mode 100644 index 00000000..4d987ac0 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/snow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_snowball": { + "conditions": { + "items": [ + { + "items": "minecraft:snowball" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:snow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_snowball" + ] + ], + "rewards": { + "recipes": [ + "minecraft:snow" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/soul_campfire.json b/data/minecraft/advancement/recipes/decorations/soul_campfire.json new file mode 100644 index 00000000..b96e10fc --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/soul_campfire.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_soul_sand": { + "conditions": { + "items": [ + { + "items": "#minecraft:soul_fire_base_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:soul_campfire" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_soul_sand" + ] + ], + "rewards": { + "recipes": [ + "minecraft:soul_campfire" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/soul_lantern.json b/data/minecraft/advancement/recipes/decorations/soul_lantern.json new file mode 100644 index 00000000..d9cbfea1 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/soul_lantern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_soul_torch": { + "conditions": { + "items": [ + { + "items": "minecraft:soul_torch" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:soul_lantern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_soul_torch" + ] + ], + "rewards": { + "recipes": [ + "minecraft:soul_lantern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/soul_torch.json b/data/minecraft/advancement/recipes/decorations/soul_torch.json new file mode 100644 index 00000000..cb9bdd3c --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/soul_torch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_soul_sand": { + "conditions": { + "items": [ + { + "items": "#minecraft:soul_fire_base_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:soul_torch" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_soul_sand" + ] + ], + "rewards": { + "recipes": [ + "minecraft:soul_torch" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/spruce_fence.json b/data/minecraft/advancement/recipes/decorations/spruce_fence.json new file mode 100644 index 00000000..235f7614 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/spruce_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/spruce_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/spruce_hanging_sign.json new file mode 100644 index 00000000..7d476d12 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/spruce_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_spruce_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/spruce_sign.json b/data/minecraft/advancement/recipes/decorations/spruce_sign.json new file mode 100644 index 00000000..8087b5bb --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/spruce_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/stone_brick_wall.json b/data/minecraft/advancement/recipes/decorations/stone_brick_wall.json new file mode 100644 index 00000000..b02a9026 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/stone_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/stone_brick_wall_from_stone_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/stone_brick_wall_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..dd565944 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/stone_brick_wall_from_stone_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_wall_from_stone_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_wall_from_stone_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/stone_brick_walls_from_stone_stonecutting.json b/data/minecraft/advancement/recipes/decorations/stone_brick_walls_from_stone_stonecutting.json new file mode 100644 index 00000000..28b7e9eb --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/stone_brick_walls_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_brick_walls_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_brick_walls_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/stonecutter.json b/data/minecraft/advancement/recipes/decorations/stonecutter.json new file mode 100644 index 00000000..9965629d --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/stonecutter.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stonecutter" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stonecutter" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/torch.json b/data/minecraft/advancement/recipes/decorations/torch.json new file mode 100644 index 00000000..2c86ba82 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/torch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_pickaxe": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_pickaxe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:torch" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone_pickaxe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:torch" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/tuff_brick_wall.json b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall.json new file mode 100644 index 00000000..d42903ed --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_polished_tuff_stonecutting.json b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..1c9055b7 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_polished_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_wall_from_polished_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_wall_from_polished_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_tuff_bricks_stonecutting.json b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..6b311d71 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_tuff_bricks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_wall_from_tuff_bricks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff_bricks": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff_bricks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff_bricks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_wall_from_tuff_bricks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_tuff_stonecutting.json new file mode 100644 index 00000000..f5369992 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/tuff_brick_wall_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_brick_wall_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_brick_wall_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/tuff_wall.json b/data/minecraft/advancement/recipes/decorations/tuff_wall.json new file mode 100644 index 00000000..a9456cf0 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/tuff_wall.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_wall" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_wall" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/tuff_wall_from_tuff_stonecutting.json b/data/minecraft/advancement/recipes/decorations/tuff_wall_from_tuff_stonecutting.json new file mode 100644 index 00000000..6a83e7af --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/tuff_wall_from_tuff_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tuff_wall_from_tuff_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tuff": { + "conditions": { + "items": [ + { + "items": "minecraft:tuff" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tuff" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tuff_wall_from_tuff_stonecutting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/warped_fence.json b/data/minecraft/advancement/recipes/decorations/warped_fence.json new file mode 100644 index 00000000..d021617b --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/warped_fence.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_fence" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_fence" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/warped_hanging_sign.json b/data/minecraft/advancement/recipes/decorations/warped_hanging_sign.json new file mode 100644 index 00000000..c0257e32 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/warped_hanging_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_logs": { + "conditions": { + "items": [ + { + "items": "minecraft:stripped_warped_stem" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_hanging_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_logs" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_hanging_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/warped_sign.json b/data/minecraft/advancement/recipes/decorations/warped_sign.json new file mode 100644 index 00000000..6d4cc769 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/warped_sign.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_sign" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_sign" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/white_banner.json b/data/minecraft/advancement/recipes/decorations/white_banner.json new file mode 100644 index 00000000..b6c95cd4 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/white_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_banner" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:white_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/white_bed.json b/data/minecraft/advancement/recipes/decorations/white_bed.json new file mode 100644 index 00000000..85620b16 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/white_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_bed" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:white_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/white_candle.json b/data/minecraft/advancement/recipes/decorations/white_candle.json new file mode 100644 index 00000000..0ce919aa --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/white_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_candle" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/white_carpet.json b/data/minecraft/advancement/recipes/decorations/white_carpet.json new file mode 100644 index 00000000..58c14de6 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/white_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:white_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/white_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/white_glazed_terracotta.json new file mode 100644 index 00000000..a1fa24d9 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/white_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:white_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/white_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/white_stained_glass_pane.json new file mode 100644 index 00000000..60545827 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/white_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:white_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/white_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/white_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..8dafc5c8 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/white_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_white_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/yellow_banner.json b/data/minecraft/advancement/recipes/decorations/yellow_banner.json new file mode 100644 index 00000000..b3280824 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/yellow_banner.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_banner" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_banner" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/yellow_bed.json b/data/minecraft/advancement/recipes/decorations/yellow_bed.json new file mode 100644 index 00000000..00de75dd --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/yellow_bed.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_bed" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_bed" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/yellow_candle.json b/data/minecraft/advancement/recipes/decorations/yellow_candle.json new file mode 100644 index 00000000..75123753 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/yellow_candle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_candle" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_candle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/yellow_carpet.json b/data/minecraft/advancement/recipes/decorations/yellow_carpet.json new file mode 100644 index 00000000..aa60ede0 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/yellow_carpet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_carpet" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_wool": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_wool" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_wool" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_carpet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/yellow_glazed_terracotta.json b/data/minecraft/advancement/recipes/decorations/yellow_glazed_terracotta.json new file mode 100644 index 00000000..b1a4dca1 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/yellow_glazed_terracotta.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_glazed_terracotta" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_terracotta": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_terracotta" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_yellow_terracotta" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_glazed_terracotta" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/yellow_stained_glass_pane.json b/data/minecraft/advancement/recipes/decorations/yellow_stained_glass_pane.json new file mode 100644 index 00000000..3fb7b04e --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/yellow_stained_glass_pane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_stained_glass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_stained_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_stained_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/decorations/yellow_stained_glass_pane_from_glass_pane.json b/data/minecraft/advancement/recipes/decorations/yellow_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..76a23474 --- /dev/null +++ b/data/minecraft/advancement/recipes/decorations/yellow_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glass_pane": { + "conditions": { + "items": [ + { + "items": "minecraft:glass_pane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_stained_glass_pane_from_glass_pane" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glass_pane", + "has_yellow_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_stained_glass_pane_from_glass_pane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/baked_potato.json b/data/minecraft/advancement/recipes/food/baked_potato.json new file mode 100644 index 00000000..7f2a44f2 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/baked_potato.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_potato": { + "conditions": { + "items": [ + { + "items": "minecraft:potato" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:baked_potato" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_potato" + ] + ], + "rewards": { + "recipes": [ + "minecraft:baked_potato" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/baked_potato_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/baked_potato_from_campfire_cooking.json new file mode 100644 index 00000000..fd3565bb --- /dev/null +++ b/data/minecraft/advancement/recipes/food/baked_potato_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_potato": { + "conditions": { + "items": [ + { + "items": "minecraft:potato" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:baked_potato_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_potato" + ] + ], + "rewards": { + "recipes": [ + "minecraft:baked_potato_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/baked_potato_from_smoking.json b/data/minecraft/advancement/recipes/food/baked_potato_from_smoking.json new file mode 100644 index 00000000..73843d57 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/baked_potato_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_potato": { + "conditions": { + "items": [ + { + "items": "minecraft:potato" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:baked_potato_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_potato" + ] + ], + "rewards": { + "recipes": [ + "minecraft:baked_potato_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/beetroot_soup.json b/data/minecraft/advancement/recipes/food/beetroot_soup.json new file mode 100644 index 00000000..e04cda7a --- /dev/null +++ b/data/minecraft/advancement/recipes/food/beetroot_soup.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beetroot": { + "conditions": { + "items": [ + { + "items": "minecraft:beetroot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:beetroot_soup" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_beetroot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:beetroot_soup" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/bread.json b/data/minecraft/advancement/recipes/food/bread.json new file mode 100644 index 00000000..b092f4e6 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/bread.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bread" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wheat": { + "conditions": { + "items": [ + { + "items": "minecraft:wheat" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wheat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bread" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cake.json b/data/minecraft/advancement/recipes/food/cake.json new file mode 100644 index 00000000..1eaf9249 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cake.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_egg": { + "conditions": { + "items": [ + { + "items": "minecraft:egg" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cake" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_egg" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cake" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_beef.json b/data/minecraft/advancement/recipes/food/cooked_beef.json new file mode 100644 index 00000000..81d289ab --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_beef.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beef": { + "conditions": { + "items": [ + { + "items": "minecraft:beef" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_beef" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_beef" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_beef" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_beef_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/cooked_beef_from_campfire_cooking.json new file mode 100644 index 00000000..0fac9bbd --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_beef_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beef": { + "conditions": { + "items": [ + { + "items": "minecraft:beef" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_beef_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_beef" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_beef_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_beef_from_smoking.json b/data/minecraft/advancement/recipes/food/cooked_beef_from_smoking.json new file mode 100644 index 00000000..d8dc3f16 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_beef_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beef": { + "conditions": { + "items": [ + { + "items": "minecraft:beef" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_beef_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_beef" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_beef_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_chicken.json b/data/minecraft/advancement/recipes/food/cooked_chicken.json new file mode 100644 index 00000000..4174832c --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_chicken.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chicken": { + "conditions": { + "items": [ + { + "items": "minecraft:chicken" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_chicken" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chicken" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_chicken" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_chicken_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/cooked_chicken_from_campfire_cooking.json new file mode 100644 index 00000000..d2e1eb21 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_chicken_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chicken": { + "conditions": { + "items": [ + { + "items": "minecraft:chicken" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_chicken_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chicken" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_chicken_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_chicken_from_smoking.json b/data/minecraft/advancement/recipes/food/cooked_chicken_from_smoking.json new file mode 100644 index 00000000..4d13c860 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_chicken_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chicken": { + "conditions": { + "items": [ + { + "items": "minecraft:chicken" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_chicken_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chicken" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_chicken_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_cod.json b/data/minecraft/advancement/recipes/food/cooked_cod.json new file mode 100644 index 00000000..7e51363a --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_cod.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cod": { + "conditions": { + "items": [ + { + "items": "minecraft:cod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_cod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cod" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_cod" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_cod_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/cooked_cod_from_campfire_cooking.json new file mode 100644 index 00000000..d50367b3 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_cod_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cod": { + "conditions": { + "items": [ + { + "items": "minecraft:cod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_cod_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cod" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_cod_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_cod_from_smoking.json b/data/minecraft/advancement/recipes/food/cooked_cod_from_smoking.json new file mode 100644 index 00000000..e27bd2ff --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_cod_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cod": { + "conditions": { + "items": [ + { + "items": "minecraft:cod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_cod_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cod" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_cod_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_mutton.json b/data/minecraft/advancement/recipes/food/cooked_mutton.json new file mode 100644 index 00000000..f49a02a0 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_mutton.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mutton": { + "conditions": { + "items": [ + { + "items": "minecraft:mutton" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_mutton" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mutton" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_mutton" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_mutton_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/cooked_mutton_from_campfire_cooking.json new file mode 100644 index 00000000..da7a4a46 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_mutton_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mutton": { + "conditions": { + "items": [ + { + "items": "minecraft:mutton" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_mutton_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mutton" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_mutton_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_mutton_from_smoking.json b/data/minecraft/advancement/recipes/food/cooked_mutton_from_smoking.json new file mode 100644 index 00000000..9f3ed831 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_mutton_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mutton": { + "conditions": { + "items": [ + { + "items": "minecraft:mutton" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_mutton_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mutton" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_mutton_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_porkchop.json b/data/minecraft/advancement/recipes/food/cooked_porkchop.json new file mode 100644 index 00000000..3dbb5d6b --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_porkchop.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_porkchop": { + "conditions": { + "items": [ + { + "items": "minecraft:porkchop" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_porkchop" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_porkchop" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_porkchop" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_porkchop_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/cooked_porkchop_from_campfire_cooking.json new file mode 100644 index 00000000..7e42247e --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_porkchop_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_porkchop": { + "conditions": { + "items": [ + { + "items": "minecraft:porkchop" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_porkchop_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_porkchop" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_porkchop_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_porkchop_from_smoking.json b/data/minecraft/advancement/recipes/food/cooked_porkchop_from_smoking.json new file mode 100644 index 00000000..8c3d33bd --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_porkchop_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_porkchop": { + "conditions": { + "items": [ + { + "items": "minecraft:porkchop" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_porkchop_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_porkchop" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_porkchop_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_rabbit.json b/data/minecraft/advancement/recipes/food/cooked_rabbit.json new file mode 100644 index 00000000..df3b5749 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_rabbit.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rabbit": { + "conditions": { + "items": [ + { + "items": "minecraft:rabbit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_rabbit" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rabbit" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_rabbit" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_rabbit_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/cooked_rabbit_from_campfire_cooking.json new file mode 100644 index 00000000..7faa2567 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_rabbit_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rabbit": { + "conditions": { + "items": [ + { + "items": "minecraft:rabbit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_rabbit_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rabbit" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_rabbit_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_rabbit_from_smoking.json b/data/minecraft/advancement/recipes/food/cooked_rabbit_from_smoking.json new file mode 100644 index 00000000..46489a8e --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_rabbit_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rabbit": { + "conditions": { + "items": [ + { + "items": "minecraft:rabbit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_rabbit_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rabbit" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_rabbit_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_salmon.json b/data/minecraft/advancement/recipes/food/cooked_salmon.json new file mode 100644 index 00000000..f0eb80aa --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_salmon.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_salmon": { + "conditions": { + "items": [ + { + "items": "minecraft:salmon" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_salmon" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_salmon" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_salmon" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_salmon_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/cooked_salmon_from_campfire_cooking.json new file mode 100644 index 00000000..0cc70d99 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_salmon_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_salmon": { + "conditions": { + "items": [ + { + "items": "minecraft:salmon" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_salmon_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_salmon" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_salmon_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cooked_salmon_from_smoking.json b/data/minecraft/advancement/recipes/food/cooked_salmon_from_smoking.json new file mode 100644 index 00000000..0fa18094 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cooked_salmon_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_salmon": { + "conditions": { + "items": [ + { + "items": "minecraft:salmon" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cooked_salmon_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_salmon" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cooked_salmon_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/cookie.json b/data/minecraft/advancement/recipes/food/cookie.json new file mode 100644 index 00000000..d225100e --- /dev/null +++ b/data/minecraft/advancement/recipes/food/cookie.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cocoa": { + "conditions": { + "items": [ + { + "items": "minecraft:cocoa_beans" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cookie" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cocoa" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cookie" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/dried_kelp.json b/data/minecraft/advancement/recipes/food/dried_kelp.json new file mode 100644 index 00000000..e229120c --- /dev/null +++ b/data/minecraft/advancement/recipes/food/dried_kelp.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dried_kelp_block": { + "conditions": { + "items": [ + { + "items": "minecraft:dried_kelp_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dried_kelp" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dried_kelp_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dried_kelp" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/dried_kelp_from_campfire_cooking.json b/data/minecraft/advancement/recipes/food/dried_kelp_from_campfire_cooking.json new file mode 100644 index 00000000..3ad3fd82 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/dried_kelp_from_campfire_cooking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_kelp": { + "conditions": { + "items": [ + { + "items": "minecraft:kelp" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dried_kelp_from_campfire_cooking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_kelp" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dried_kelp_from_campfire_cooking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/dried_kelp_from_smelting.json b/data/minecraft/advancement/recipes/food/dried_kelp_from_smelting.json new file mode 100644 index 00000000..82bdc4fc --- /dev/null +++ b/data/minecraft/advancement/recipes/food/dried_kelp_from_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_kelp": { + "conditions": { + "items": [ + { + "items": "minecraft:kelp" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dried_kelp_from_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_kelp" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dried_kelp_from_smelting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/dried_kelp_from_smoking.json b/data/minecraft/advancement/recipes/food/dried_kelp_from_smoking.json new file mode 100644 index 00000000..146078a4 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/dried_kelp_from_smoking.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_kelp": { + "conditions": { + "items": [ + { + "items": "minecraft:kelp" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dried_kelp_from_smoking" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_kelp" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dried_kelp_from_smoking" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/golden_apple.json b/data/minecraft/advancement/recipes/food/golden_apple.json new file mode 100644 index 00000000..69a539d8 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/golden_apple.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_apple" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_apple" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/honey_bottle.json b/data/minecraft/advancement/recipes/food/honey_bottle.json new file mode 100644 index 00000000..53930599 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/honey_bottle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_honey_block": { + "conditions": { + "items": [ + { + "items": "minecraft:honey_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:honey_bottle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_honey_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:honey_bottle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/mushroom_stew.json b/data/minecraft/advancement/recipes/food/mushroom_stew.json new file mode 100644 index 00000000..976a5fc1 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/mushroom_stew.json @@ -0,0 +1,65 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bowl": { + "conditions": { + "items": [ + { + "items": "minecraft:bowl" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_brown_mushroom": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_mushroom" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mushroom_stew": { + "conditions": { + "items": [ + { + "items": "minecraft:mushroom_stew" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_mushroom": { + "conditions": { + "items": [ + { + "items": "minecraft:red_mushroom" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mushroom_stew" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mushroom_stew", + "has_bowl", + "has_brown_mushroom", + "has_red_mushroom" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mushroom_stew" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/pumpkin_pie.json b/data/minecraft/advancement/recipes/food/pumpkin_pie.json new file mode 100644 index 00000000..9819648d --- /dev/null +++ b/data/minecraft/advancement/recipes/food/pumpkin_pie.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_carved_pumpkin": { + "conditions": { + "items": [ + { + "items": "minecraft:carved_pumpkin" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_pumpkin": { + "conditions": { + "items": [ + { + "items": "minecraft:pumpkin" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pumpkin_pie" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_carved_pumpkin", + "has_pumpkin" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pumpkin_pie" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/rabbit_stew_from_brown_mushroom.json b/data/minecraft/advancement/recipes/food/rabbit_stew_from_brown_mushroom.json new file mode 100644 index 00000000..c9e2eaf0 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/rabbit_stew_from_brown_mushroom.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cooked_rabbit": { + "conditions": { + "items": [ + { + "items": "minecraft:cooked_rabbit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:rabbit_stew_from_brown_mushroom" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cooked_rabbit" + ] + ], + "rewards": { + "recipes": [ + "minecraft:rabbit_stew_from_brown_mushroom" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/food/rabbit_stew_from_red_mushroom.json b/data/minecraft/advancement/recipes/food/rabbit_stew_from_red_mushroom.json new file mode 100644 index 00000000..bec51966 --- /dev/null +++ b/data/minecraft/advancement/recipes/food/rabbit_stew_from_red_mushroom.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cooked_rabbit": { + "conditions": { + "items": [ + { + "items": "minecraft:cooked_rabbit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:rabbit_stew_from_red_mushroom" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cooked_rabbit" + ] + ], + "rewards": { + "recipes": [ + "minecraft:rabbit_stew_from_red_mushroom" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/beacon.json b/data/minecraft/advancement/recipes/misc/beacon.json new file mode 100644 index 00000000..b14a3492 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/beacon.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_star": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_star" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:beacon" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_star" + ] + ], + "rewards": { + "recipes": [ + "minecraft:beacon" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/black_dye.json b/data/minecraft/advancement/recipes/misc/black_dye.json new file mode 100644 index 00000000..d06cfdb7 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/black_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ink_sac": { + "conditions": { + "items": [ + { + "items": "minecraft:ink_sac" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_ink_sac" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/black_dye_from_wither_rose.json b/data/minecraft/advancement/recipes/misc/black_dye_from_wither_rose.json new file mode 100644 index 00000000..2dfe2bb5 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/black_dye_from_wither_rose.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:black_dye_from_wither_rose" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wither_rose": { + "conditions": { + "items": [ + { + "items": "minecraft:wither_rose" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wither_rose" + ] + ], + "rewards": { + "recipes": [ + "minecraft:black_dye_from_wither_rose" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/blue_dye.json b/data/minecraft/advancement/recipes/misc/blue_dye.json new file mode 100644 index 00000000..e8af8c79 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/blue_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lapis_lazuli": { + "conditions": { + "items": [ + { + "items": "minecraft:lapis_lazuli" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lapis_lazuli" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/blue_dye_from_cornflower.json b/data/minecraft/advancement/recipes/misc/blue_dye_from_cornflower.json new file mode 100644 index 00000000..d57f3926 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/blue_dye_from_cornflower.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cornflower": { + "conditions": { + "items": [ + { + "items": "minecraft:cornflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:blue_dye_from_cornflower" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cornflower" + ] + ], + "rewards": { + "recipes": [ + "minecraft:blue_dye_from_cornflower" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/bolt_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/bolt_armor_trim_smithing_template.json new file mode 100644 index 00000000..d98a2829 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/bolt_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bolt_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:bolt_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bolt_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bolt_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bolt_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/bolt_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/bolt_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..d33371a0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/bolt_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:bolt_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bolt_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bolt_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/bone_meal.json b/data/minecraft/advancement/recipes/misc/bone_meal.json new file mode 100644 index 00000000..ca492283 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/bone_meal.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bone": { + "conditions": { + "items": [ + { + "items": "minecraft:bone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bone_meal" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bone_meal" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/bone_meal_from_bone_block.json b/data/minecraft/advancement/recipes/misc/bone_meal_from_bone_block.json new file mode 100644 index 00000000..557e21ea --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/bone_meal_from_bone_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bone_block": { + "conditions": { + "items": [ + { + "items": "minecraft:bone_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bone_meal_from_bone_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bone_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bone_meal_from_bone_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/book.json b/data/minecraft/advancement/recipes/misc/book.json new file mode 100644 index 00000000..1495fbd1 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/book.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_paper": { + "conditions": { + "items": [ + { + "items": "minecraft:paper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:book" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_paper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:book" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/bowl.json b/data/minecraft/advancement/recipes/misc/bowl.json new file mode 100644 index 00000000..0c6dad6e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/bowl.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brown_mushroom": { + "conditions": { + "items": [ + { + "items": "minecraft:brown_mushroom" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mushroom_stew": { + "conditions": { + "items": [ + { + "items": "minecraft:mushroom_stew" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_mushroom": { + "conditions": { + "items": [ + { + "items": "minecraft:red_mushroom" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bowl" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brown_mushroom", + "has_red_mushroom", + "has_mushroom_stew" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bowl" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/brick.json b/data/minecraft/advancement/recipes/misc/brick.json new file mode 100644 index 00000000..ca618ad0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/brick.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_clay_ball": { + "conditions": { + "items": [ + { + "items": "minecraft:clay_ball" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_clay_ball" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brick" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/brown_dye.json b/data/minecraft/advancement/recipes/misc/brown_dye.json new file mode 100644 index 00000000..2e28670a --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/brown_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cocoa_beans": { + "conditions": { + "items": [ + { + "items": "minecraft:cocoa_beans" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brown_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cocoa_beans" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brown_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/bucket.json b/data/minecraft/advancement/recipes/misc/bucket.json new file mode 100644 index 00000000..4c60b01c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/bucket.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bucket" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bucket" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/charcoal.json b/data/minecraft/advancement/recipes/misc/charcoal.json new file mode 100644 index 00000000..0b8ef61e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/charcoal.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_log": { + "conditions": { + "items": [ + { + "items": "#minecraft:logs_that_burn" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:charcoal" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_log" + ] + ], + "rewards": { + "recipes": [ + "minecraft:charcoal" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/coal.json b/data/minecraft/advancement/recipes/misc/coal.json new file mode 100644 index 00000000..3c91cfb3 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/coal.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_coal_block": { + "conditions": { + "items": [ + { + "items": "minecraft:coal_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coal" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_coal_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coal" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/coal_from_blasting_coal_ore.json b/data/minecraft/advancement/recipes/misc/coal_from_blasting_coal_ore.json new file mode 100644 index 00000000..cdef977d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/coal_from_blasting_coal_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_coal_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:coal_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coal_from_blasting_coal_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_coal_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coal_from_blasting_coal_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/coal_from_blasting_deepslate_coal_ore.json b/data/minecraft/advancement/recipes/misc/coal_from_blasting_deepslate_coal_ore.json new file mode 100644 index 00000000..c1986a92 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/coal_from_blasting_deepslate_coal_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_coal_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_coal_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coal_from_blasting_deepslate_coal_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_coal_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coal_from_blasting_deepslate_coal_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/coal_from_smelting_coal_ore.json b/data/minecraft/advancement/recipes/misc/coal_from_smelting_coal_ore.json new file mode 100644 index 00000000..989271bb --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/coal_from_smelting_coal_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_coal_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:coal_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coal_from_smelting_coal_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_coal_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coal_from_smelting_coal_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/coal_from_smelting_deepslate_coal_ore.json b/data/minecraft/advancement/recipes/misc/coal_from_smelting_deepslate_coal_ore.json new file mode 100644 index 00000000..e1b9837d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/coal_from_smelting_deepslate_coal_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_coal_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_coal_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coal_from_smelting_deepslate_coal_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_coal_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coal_from_smelting_deepslate_coal_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/coast_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/coast_armor_trim_smithing_template.json new file mode 100644 index 00000000..96dfc374 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/coast_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_coast_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:coast_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coast_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_coast_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coast_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/coast_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/coast_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..1d0c534f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/coast_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:coast_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:coast_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:coast_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/conduit.json b/data/minecraft/advancement/recipes/misc/conduit.json new file mode 100644 index 00000000..b9efe8b3 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/conduit.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nautilus_core": { + "conditions": { + "items": [ + { + "items": "minecraft:heart_of_the_sea" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_nautilus_shell": { + "conditions": { + "items": [ + { + "items": "minecraft:nautilus_shell" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:conduit" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nautilus_core", + "has_nautilus_shell" + ] + ], + "rewards": { + "recipes": [ + "minecraft:conduit" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot.json b/data/minecraft/advancement/recipes/misc/copper_ingot.json new file mode 100644 index 00000000..2e8f4119 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_copper_ore.json b/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_copper_ore.json new file mode 100644 index 00000000..37c06adb --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_copper_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot_from_blasting_copper_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot_from_blasting_copper_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_deepslate_copper_ore.json b/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_deepslate_copper_ore.json new file mode 100644 index 00000000..ac09de74 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_deepslate_copper_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_copper_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_copper_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot_from_blasting_deepslate_copper_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_copper_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot_from_blasting_deepslate_copper_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_raw_copper.json b/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_raw_copper.json new file mode 100644 index 00000000..0b7081c0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot_from_blasting_raw_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot_from_blasting_raw_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot_from_blasting_raw_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_copper_ore.json b/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_copper_ore.json new file mode 100644 index 00000000..4a5b2d55 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_copper_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot_from_smelting_copper_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot_from_smelting_copper_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_deepslate_copper_ore.json b/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_deepslate_copper_ore.json new file mode 100644 index 00000000..f43f7adc --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_deepslate_copper_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_copper_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_copper_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot_from_smelting_deepslate_copper_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_copper_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot_from_smelting_deepslate_copper_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_raw_copper.json b/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_raw_copper.json new file mode 100644 index 00000000..caf783c8 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot_from_smelting_raw_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot_from_smelting_raw_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot_from_smelting_raw_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/copper_ingot_from_waxed_copper_block.json b/data/minecraft/advancement/recipes/misc/copper_ingot_from_waxed_copper_block.json new file mode 100644 index 00000000..6779c8f0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/copper_ingot_from_waxed_copper_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_ingot_from_waxed_copper_block" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_ingot_from_waxed_copper_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/creeper_banner_pattern.json b/data/minecraft/advancement/recipes/misc/creeper_banner_pattern.json new file mode 100644 index 00000000..324e408b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/creeper_banner_pattern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_creeper_head": { + "conditions": { + "items": [ + { + "items": "minecraft:creeper_head" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:creeper_banner_pattern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_creeper_head" + ] + ], + "rewards": { + "recipes": [ + "minecraft:creeper_banner_pattern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/cyan_dye.json b/data/minecraft/advancement/recipes/misc/cyan_dye.json new file mode 100644 index 00000000..6c4f40c8 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/cyan_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_green_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_dye", + "has_blue_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/cyan_dye_from_pitcher_plant.json b/data/minecraft/advancement/recipes/misc/cyan_dye_from_pitcher_plant.json new file mode 100644 index 00000000..116d15df --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/cyan_dye_from_pitcher_plant.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pitcher_plant": { + "conditions": { + "items": [ + { + "items": "minecraft:pitcher_plant" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cyan_dye_from_pitcher_plant" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pitcher_plant" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cyan_dye_from_pitcher_plant" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/diamond.json b/data/minecraft/advancement/recipes/misc/diamond.json new file mode 100644 index 00000000..e6fed724 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/diamond.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond_block": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/diamond_from_blasting_deepslate_diamond_ore.json b/data/minecraft/advancement/recipes/misc/diamond_from_blasting_deepslate_diamond_ore.json new file mode 100644 index 00000000..65f3bb48 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/diamond_from_blasting_deepslate_diamond_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_diamond_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_diamond_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_from_blasting_deepslate_diamond_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_diamond_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_from_blasting_deepslate_diamond_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/diamond_from_blasting_diamond_ore.json b/data/minecraft/advancement/recipes/misc/diamond_from_blasting_diamond_ore.json new file mode 100644 index 00000000..61e4459d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/diamond_from_blasting_diamond_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_from_blasting_diamond_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_from_blasting_diamond_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/diamond_from_smelting_deepslate_diamond_ore.json b/data/minecraft/advancement/recipes/misc/diamond_from_smelting_deepslate_diamond_ore.json new file mode 100644 index 00000000..ebeb39b7 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/diamond_from_smelting_deepslate_diamond_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_diamond_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_diamond_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_from_smelting_deepslate_diamond_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_diamond_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_from_smelting_deepslate_diamond_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/diamond_from_smelting_diamond_ore.json b/data/minecraft/advancement/recipes/misc/diamond_from_smelting_diamond_ore.json new file mode 100644 index 00000000..2b1afe88 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/diamond_from_smelting_diamond_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_from_smelting_diamond_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_from_smelting_diamond_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/dune_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/dune_armor_trim_smithing_template.json new file mode 100644 index 00000000..e696da78 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/dune_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dune_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:dune_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dune_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dune_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dune_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/dune_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/dune_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..297a8829 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/dune_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:dune_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dune_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dune_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/emerald.json b/data/minecraft/advancement/recipes/misc/emerald.json new file mode 100644 index 00000000..2cd28b7d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/emerald.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_emerald_block": { + "conditions": { + "items": [ + { + "items": "minecraft:emerald_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:emerald" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_emerald_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:emerald" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/emerald_from_blasting_deepslate_emerald_ore.json b/data/minecraft/advancement/recipes/misc/emerald_from_blasting_deepslate_emerald_ore.json new file mode 100644 index 00000000..d7774a7f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/emerald_from_blasting_deepslate_emerald_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_emerald_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_emerald_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:emerald_from_blasting_deepslate_emerald_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_emerald_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:emerald_from_blasting_deepslate_emerald_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/emerald_from_blasting_emerald_ore.json b/data/minecraft/advancement/recipes/misc/emerald_from_blasting_emerald_ore.json new file mode 100644 index 00000000..0876a9ea --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/emerald_from_blasting_emerald_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_emerald_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:emerald_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:emerald_from_blasting_emerald_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_emerald_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:emerald_from_blasting_emerald_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/emerald_from_smelting_deepslate_emerald_ore.json b/data/minecraft/advancement/recipes/misc/emerald_from_smelting_deepslate_emerald_ore.json new file mode 100644 index 00000000..2ca8e2f5 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/emerald_from_smelting_deepslate_emerald_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_emerald_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_emerald_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:emerald_from_smelting_deepslate_emerald_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_emerald_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:emerald_from_smelting_deepslate_emerald_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/emerald_from_smelting_emerald_ore.json b/data/minecraft/advancement/recipes/misc/emerald_from_smelting_emerald_ore.json new file mode 100644 index 00000000..a7e2e784 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/emerald_from_smelting_emerald_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_emerald_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:emerald_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:emerald_from_smelting_emerald_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_emerald_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:emerald_from_smelting_emerald_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/ender_eye.json b/data/minecraft/advancement/recipes/misc/ender_eye.json new file mode 100644 index 00000000..796e5948 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/ender_eye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blaze_powder": { + "conditions": { + "items": [ + { + "items": "minecraft:blaze_powder" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:ender_eye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blaze_powder" + ] + ], + "rewards": { + "recipes": [ + "minecraft:ender_eye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/eye_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/eye_armor_trim_smithing_template.json new file mode 100644 index 00000000..80ecd636 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/eye_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_eye_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:eye_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:eye_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_eye_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:eye_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/eye_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/eye_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..9a9412bc --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/eye_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:eye_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:eye_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:eye_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/fire_charge.json b/data/minecraft/advancement/recipes/misc/fire_charge.json new file mode 100644 index 00000000..8104ff1c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/fire_charge.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blaze_powder": { + "conditions": { + "items": [ + { + "items": "minecraft:blaze_powder" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:fire_charge" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blaze_powder" + ] + ], + "rewards": { + "recipes": [ + "minecraft:fire_charge" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/firework_rocket_simple.json b/data/minecraft/advancement/recipes/misc/firework_rocket_simple.json new file mode 100644 index 00000000..6a35e5c1 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/firework_rocket_simple.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gunpowder": { + "conditions": { + "items": [ + { + "items": "minecraft:gunpowder" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:firework_rocket_simple" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gunpowder" + ] + ], + "rewards": { + "recipes": [ + "minecraft:firework_rocket_simple" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/flow_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/flow_armor_trim_smithing_template.json new file mode 100644 index 00000000..e6648847 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/flow_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_flow_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:flow_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:flow_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_flow_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:flow_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/flow_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/flow_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..de75086b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/flow_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:flow_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:flow_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:flow_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/flower_banner_pattern.json b/data/minecraft/advancement/recipes/misc/flower_banner_pattern.json new file mode 100644 index 00000000..43678b87 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/flower_banner_pattern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxeye_daisy": { + "conditions": { + "items": [ + { + "items": "minecraft:oxeye_daisy" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:flower_banner_pattern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxeye_daisy" + ] + ], + "rewards": { + "recipes": [ + "minecraft:flower_banner_pattern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_deepslate_gold_ore.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_deepslate_gold_ore.json new file mode 100644 index 00000000..5f1ac8a8 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_deepslate_gold_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_gold_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_gold_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_blasting_deepslate_gold_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_gold_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_blasting_deepslate_gold_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_gold_ore.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_gold_ore.json new file mode 100644 index 00000000..9482a9b3 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_gold_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_blasting_gold_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_blasting_gold_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_nether_gold_ore.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_nether_gold_ore.json new file mode 100644 index 00000000..71a722d6 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_nether_gold_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_gold_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_gold_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_blasting_nether_gold_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_gold_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_blasting_nether_gold_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_raw_gold.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_raw_gold.json new file mode 100644 index 00000000..a04bbd66 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_blasting_raw_gold.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_blasting_raw_gold" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_blasting_raw_gold" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_gold_block.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_gold_block.json new file mode 100644 index 00000000..989fc724 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_gold_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_block": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_gold_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_gold_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_nuggets.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_nuggets.json new file mode 100644 index 00000000..849a182c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_nuggets.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_nugget": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_nuggets" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_nugget" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_nuggets" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_deepslate_gold_ore.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_deepslate_gold_ore.json new file mode 100644 index 00000000..f080f27b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_deepslate_gold_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_gold_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_gold_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_smelting_deepslate_gold_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_gold_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_smelting_deepslate_gold_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_gold_ore.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_gold_ore.json new file mode 100644 index 00000000..d2331d3b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_gold_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_smelting_gold_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_smelting_gold_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_nether_gold_ore.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_nether_gold_ore.json new file mode 100644 index 00000000..556d16a1 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_nether_gold_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_gold_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_gold_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_smelting_nether_gold_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_gold_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_smelting_nether_gold_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_raw_gold.json b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_raw_gold.json new file mode 100644 index 00000000..18fe8e0c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_ingot_from_smelting_raw_gold.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_gold": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_ingot_from_smelting_raw_gold" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_gold" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_ingot_from_smelting_raw_gold" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_nugget.json b/data/minecraft/advancement/recipes/misc/gold_nugget.json new file mode 100644 index 00000000..6eeaf564 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_nugget.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_nugget" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_nugget" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_nugget_from_blasting.json b/data/minecraft/advancement/recipes/misc/gold_nugget_from_blasting.json new file mode 100644 index 00000000..df1002d3 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_nugget_from_blasting.json @@ -0,0 +1,131 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_golden_axe": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_axe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_hoe": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_hoe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_horse_armor": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_horse_armor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_pickaxe": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_pickaxe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_shovel": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_shovel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_sword": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_sword" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_nugget_from_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_golden_pickaxe", + "has_golden_shovel", + "has_golden_axe", + "has_golden_hoe", + "has_golden_sword", + "has_golden_helmet", + "has_golden_chestplate", + "has_golden_leggings", + "has_golden_boots", + "has_golden_horse_armor" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_nugget_from_blasting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gold_nugget_from_smelting.json b/data/minecraft/advancement/recipes/misc/gold_nugget_from_smelting.json new file mode 100644 index 00000000..034942fb --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gold_nugget_from_smelting.json @@ -0,0 +1,131 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_golden_axe": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_axe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_hoe": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_hoe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_horse_armor": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_horse_armor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_pickaxe": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_pickaxe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_shovel": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_shovel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_golden_sword": { + "conditions": { + "items": [ + { + "items": "minecraft:golden_sword" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gold_nugget_from_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_golden_pickaxe", + "has_golden_shovel", + "has_golden_axe", + "has_golden_hoe", + "has_golden_sword", + "has_golden_helmet", + "has_golden_chestplate", + "has_golden_leggings", + "has_golden_boots", + "has_golden_horse_armor" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gold_nugget_from_smelting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/gray_dye.json b/data/minecraft/advancement/recipes/misc/gray_dye.json new file mode 100644 index 00000000..55be0c29 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/gray_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:black_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:gray_dye" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_dye", + "has_black_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:gray_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/green_dye.json b/data/minecraft/advancement/recipes/misc/green_dye.json new file mode 100644 index 00000000..aca5bc6f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/green_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cactus": { + "conditions": { + "items": [ + { + "items": "minecraft:cactus" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:green_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cactus" + ] + ], + "rewards": { + "recipes": [ + "minecraft:green_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/host_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/host_armor_trim_smithing_template.json new file mode 100644 index 00000000..94be097a --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/host_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_host_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:host_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:host_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_host_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:host_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/host_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/host_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..ab6ffc49 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/host_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:host_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:host_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:host_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_deepslate_iron_ore.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_deepslate_iron_ore.json new file mode 100644 index 00000000..ddbdc90c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_deepslate_iron_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_iron_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_iron_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_blasting_deepslate_iron_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_iron_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_blasting_deepslate_iron_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_iron_ore.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_iron_ore.json new file mode 100644 index 00000000..76bad9a7 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_iron_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_blasting_iron_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_blasting_iron_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_raw_iron.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_raw_iron.json new file mode 100644 index 00000000..1d02a7f7 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_blasting_raw_iron.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_blasting_raw_iron" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_blasting_raw_iron" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_iron_block.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_iron_block.json new file mode 100644 index 00000000..9de9119f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_iron_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_block": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_iron_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_nuggets.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_nuggets.json new file mode 100644 index 00000000..d344b901 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_nuggets.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_nugget": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_nuggets" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_nugget" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_nuggets" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_deepslate_iron_ore.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_deepslate_iron_ore.json new file mode 100644 index 00000000..3515fe9c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_deepslate_iron_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_iron_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_iron_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_smelting_deepslate_iron_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_iron_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_smelting_deepslate_iron_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_iron_ore.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_iron_ore.json new file mode 100644 index 00000000..1f59473f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_iron_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_smelting_iron_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_smelting_iron_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_raw_iron.json b/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_raw_iron.json new file mode 100644 index 00000000..997b86c0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_ingot_from_smelting_raw_iron.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_iron": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_ingot_from_smelting_raw_iron" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_iron" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_ingot_from_smelting_raw_iron" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_nugget.json b/data/minecraft/advancement/recipes/misc/iron_nugget.json new file mode 100644 index 00000000..b6f1d12b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_nugget.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_nugget" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_nugget" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_nugget_from_blasting.json b/data/minecraft/advancement/recipes/misc/iron_nugget_from_blasting.json new file mode 100644 index 00000000..abd38c89 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_nugget_from_blasting.json @@ -0,0 +1,175 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chainmail_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_chainmail_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_chainmail_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_chainmail_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_axe": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_axe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_hoe": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_hoe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_horse_armor": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_horse_armor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_pickaxe": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_pickaxe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_shovel": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_shovel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_sword": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_sword" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_nugget_from_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_pickaxe", + "has_iron_shovel", + "has_iron_axe", + "has_iron_hoe", + "has_iron_sword", + "has_iron_helmet", + "has_iron_chestplate", + "has_iron_leggings", + "has_iron_boots", + "has_iron_horse_armor", + "has_chainmail_helmet", + "has_chainmail_chestplate", + "has_chainmail_leggings", + "has_chainmail_boots" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_nugget_from_blasting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/iron_nugget_from_smelting.json b/data/minecraft/advancement/recipes/misc/iron_nugget_from_smelting.json new file mode 100644 index 00000000..ac5733ea --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/iron_nugget_from_smelting.json @@ -0,0 +1,175 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chainmail_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_chainmail_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_chainmail_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_chainmail_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:chainmail_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_axe": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_axe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_hoe": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_hoe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_horse_armor": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_horse_armor" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_pickaxe": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_pickaxe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_shovel": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_shovel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_sword": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_sword" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_nugget_from_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_pickaxe", + "has_iron_shovel", + "has_iron_axe", + "has_iron_hoe", + "has_iron_sword", + "has_iron_helmet", + "has_iron_chestplate", + "has_iron_leggings", + "has_iron_boots", + "has_iron_horse_armor", + "has_chainmail_helmet", + "has_chainmail_chestplate", + "has_chainmail_leggings", + "has_chainmail_boots" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_nugget_from_smelting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/lapis_lazuli.json b/data/minecraft/advancement/recipes/misc/lapis_lazuli.json new file mode 100644 index 00000000..14e93292 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/lapis_lazuli.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lapis_block": { + "conditions": { + "items": [ + { + "items": "minecraft:lapis_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lapis_lazuli" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lapis_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lapis_lazuli" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_blasting_deepslate_lapis_ore.json b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_blasting_deepslate_lapis_ore.json new file mode 100644 index 00000000..04418e80 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_blasting_deepslate_lapis_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_lapis_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_lapis_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lapis_lazuli_from_blasting_deepslate_lapis_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_lapis_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lapis_lazuli_from_blasting_deepslate_lapis_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_blasting_lapis_ore.json b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_blasting_lapis_ore.json new file mode 100644 index 00000000..b72a2c3c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_blasting_lapis_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lapis_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:lapis_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lapis_lazuli_from_blasting_lapis_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lapis_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lapis_lazuli_from_blasting_lapis_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_smelting_deepslate_lapis_ore.json b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_smelting_deepslate_lapis_ore.json new file mode 100644 index 00000000..99265db5 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_smelting_deepslate_lapis_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_lapis_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_lapis_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lapis_lazuli_from_smelting_deepslate_lapis_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_lapis_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lapis_lazuli_from_smelting_deepslate_lapis_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_smelting_lapis_ore.json b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_smelting_lapis_ore.json new file mode 100644 index 00000000..8830f060 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/lapis_lazuli_from_smelting_lapis_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lapis_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:lapis_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lapis_lazuli_from_smelting_lapis_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lapis_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lapis_lazuli_from_smelting_lapis_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/leather.json b/data/minecraft/advancement/recipes/misc/leather.json new file mode 100644 index 00000000..125ece1d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/leather.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rabbit_hide": { + "conditions": { + "items": [ + { + "items": "minecraft:rabbit_hide" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:leather" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rabbit_hide" + ] + ], + "rewards": { + "recipes": [ + "minecraft:leather" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/leather_horse_armor.json b/data/minecraft/advancement/recipes/misc/leather_horse_armor.json new file mode 100644 index 00000000..ba8c8914 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/leather_horse_armor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_leather": { + "conditions": { + "items": [ + { + "items": "minecraft:leather" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:leather_horse_armor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_leather" + ] + ], + "rewards": { + "recipes": [ + "minecraft:leather_horse_armor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/light_blue_dye_from_blue_orchid.json b/data/minecraft/advancement/recipes/misc/light_blue_dye_from_blue_orchid.json new file mode 100644 index 00000000..3e1a7ce2 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/light_blue_dye_from_blue_orchid.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_orchid": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_orchid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_dye_from_blue_orchid" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_orchid" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_dye_from_blue_orchid" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/light_blue_dye_from_blue_white_dye.json b/data/minecraft/advancement/recipes/misc/light_blue_dye_from_blue_white_dye.json new file mode 100644 index 00000000..db51ab9e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/light_blue_dye_from_blue_white_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_blue_dye_from_blue_white_dye" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_dye", + "has_white_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_blue_dye_from_blue_white_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/light_gray_dye_from_azure_bluet.json b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_azure_bluet.json new file mode 100644 index 00000000..16d5a695 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_azure_bluet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_azure_bluet": { + "conditions": { + "items": [ + { + "items": "minecraft:azure_bluet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_dye_from_azure_bluet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_azure_bluet" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_dye_from_azure_bluet" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/light_gray_dye_from_black_white_dye.json b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_black_white_dye.json new file mode 100644 index 00000000..5bcb43d0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_black_white_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_black_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:black_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_dye_from_black_white_dye" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_dye", + "has_black_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_dye_from_black_white_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/light_gray_dye_from_gray_white_dye.json b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_gray_white_dye.json new file mode 100644 index 00000000..70baee04 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_gray_white_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gray_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:gray_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_dye_from_gray_white_dye" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gray_dye", + "has_white_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_dye_from_gray_white_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/light_gray_dye_from_oxeye_daisy.json b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_oxeye_daisy.json new file mode 100644 index 00000000..ba5e104f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_oxeye_daisy.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxeye_daisy": { + "conditions": { + "items": [ + { + "items": "minecraft:oxeye_daisy" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_dye_from_oxeye_daisy" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxeye_daisy" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_dye_from_oxeye_daisy" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/light_gray_dye_from_white_tulip.json b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_white_tulip.json new file mode 100644 index 00000000..0dcf3613 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/light_gray_dye_from_white_tulip.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_gray_dye_from_white_tulip" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_tulip": { + "conditions": { + "items": [ + { + "items": "minecraft:white_tulip" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_tulip" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_gray_dye_from_white_tulip" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/lime_dye.json b/data/minecraft/advancement/recipes/misc/lime_dye.json new file mode 100644 index 00000000..0e3495e0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/lime_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_green_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:green_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_dye" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_green_dye", + "has_white_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/lime_dye_from_smelting.json b/data/minecraft/advancement/recipes/misc/lime_dye_from_smelting.json new file mode 100644 index 00000000..acda1076 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/lime_dye_from_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sea_pickle": { + "conditions": { + "items": [ + { + "items": "minecraft:sea_pickle" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lime_dye_from_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sea_pickle" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lime_dye_from_smelting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/magenta_dye_from_allium.json b/data/minecraft/advancement/recipes/misc/magenta_dye_from_allium.json new file mode 100644 index 00000000..ae728273 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/magenta_dye_from_allium.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_allium": { + "conditions": { + "items": [ + { + "items": "minecraft:allium" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_dye_from_allium" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_allium" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_dye_from_allium" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/magenta_dye_from_blue_red_pink.json b/data/minecraft/advancement/recipes/misc/magenta_dye_from_blue_red_pink.json new file mode 100644 index 00000000..6b147f6d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/magenta_dye_from_blue_red_pink.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_pink_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_dye_from_blue_red_pink" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_dye", + "has_blue_dye", + "has_red_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_dye_from_blue_red_pink" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/magenta_dye_from_blue_red_white_dye.json b/data/minecraft/advancement/recipes/misc/magenta_dye_from_blue_red_white_dye.json new file mode 100644 index 00000000..9c5f1010 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/magenta_dye_from_blue_red_white_dye.json @@ -0,0 +1,54 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_rose_red": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_dye_from_blue_red_white_dye" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_dye", + "has_rose_red", + "has_white_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_dye_from_blue_red_white_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/magenta_dye_from_lilac.json b/data/minecraft/advancement/recipes/misc/magenta_dye_from_lilac.json new file mode 100644 index 00000000..56f9ba23 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/magenta_dye_from_lilac.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lilac": { + "conditions": { + "items": [ + { + "items": "minecraft:lilac" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_dye_from_lilac" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lilac" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_dye_from_lilac" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/magenta_dye_from_purple_and_pink.json b/data/minecraft/advancement/recipes/misc/magenta_dye_from_purple_and_pink.json new file mode 100644 index 00000000..687b375d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/magenta_dye_from_purple_and_pink.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_purple_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:purple_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:magenta_dye_from_purple_and_pink" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_dye", + "has_purple_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:magenta_dye_from_purple_and_pink" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/map.json b/data/minecraft/advancement/recipes/misc/map.json new file mode 100644 index 00000000..016bfe2e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/map.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_compass": { + "conditions": { + "items": [ + { + "items": "minecraft:compass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:map" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_compass" + ] + ], + "rewards": { + "recipes": [ + "minecraft:map" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/melon_seeds.json b/data/minecraft/advancement/recipes/misc/melon_seeds.json new file mode 100644 index 00000000..64b5c509 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/melon_seeds.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_melon": { + "conditions": { + "items": [ + { + "items": "minecraft:melon_slice" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:melon_seeds" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_melon" + ] + ], + "rewards": { + "recipes": [ + "minecraft:melon_seeds" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/mojang_banner_pattern.json b/data/minecraft/advancement/recipes/misc/mojang_banner_pattern.json new file mode 100644 index 00000000..4051b979 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/mojang_banner_pattern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_enchanted_golden_apple": { + "conditions": { + "items": [ + { + "items": "minecraft:enchanted_golden_apple" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mojang_banner_pattern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_enchanted_golden_apple" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mojang_banner_pattern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/music_disc_5.json b/data/minecraft/advancement/recipes/misc/music_disc_5.json new file mode 100644 index 00000000..c0ae1449 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/music_disc_5.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_disc_fragment_5": { + "conditions": { + "items": [ + { + "items": "minecraft:disc_fragment_5" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:music_disc_5" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_disc_fragment_5" + ] + ], + "rewards": { + "recipes": [ + "minecraft:music_disc_5" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/nether_brick.json b/data/minecraft/advancement/recipes/misc/nether_brick.json new file mode 100644 index 00000000..6be93064 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/nether_brick.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherrack": { + "conditions": { + "items": [ + { + "items": "minecraft:netherrack" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:nether_brick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherrack" + ] + ], + "rewards": { + "recipes": [ + "minecraft:nether_brick" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/netherite_ingot.json b/data/minecraft/advancement/recipes/misc/netherite_ingot.json new file mode 100644 index 00000000..e302547e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/netherite_ingot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_scrap": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_scrap" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_ingot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_scrap" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_ingot" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/netherite_ingot_from_netherite_block.json b/data/minecraft/advancement/recipes/misc/netherite_ingot_from_netherite_block.json new file mode 100644 index 00000000..058f380b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/netherite_ingot_from_netherite_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_block": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_ingot_from_netherite_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_ingot_from_netherite_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/netherite_scrap.json b/data/minecraft/advancement/recipes/misc/netherite_scrap.json new file mode 100644 index 00000000..ff6c6376 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/netherite_scrap.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ancient_debris": { + "conditions": { + "items": [ + { + "items": "minecraft:ancient_debris" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_scrap" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_ancient_debris" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_scrap" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/netherite_scrap_from_blasting.json b/data/minecraft/advancement/recipes/misc/netherite_scrap_from_blasting.json new file mode 100644 index 00000000..999fa98f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/netherite_scrap_from_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ancient_debris": { + "conditions": { + "items": [ + { + "items": "minecraft:ancient_debris" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_scrap_from_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_ancient_debris" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_scrap_from_blasting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/netherite_upgrade_smithing_template.json b/data/minecraft/advancement/recipes/misc/netherite_upgrade_smithing_template.json new file mode 100644 index 00000000..b8234c13 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/netherite_upgrade_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_upgrade_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_upgrade_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_upgrade_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_upgrade_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_upgrade_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/orange_dye_from_orange_tulip.json b/data/minecraft/advancement/recipes/misc/orange_dye_from_orange_tulip.json new file mode 100644 index 00000000..4f415e10 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/orange_dye_from_orange_tulip.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_orange_tulip": { + "conditions": { + "items": [ + { + "items": "minecraft:orange_tulip" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_dye_from_orange_tulip" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_orange_tulip" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_dye_from_orange_tulip" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/orange_dye_from_red_yellow.json b/data/minecraft/advancement/recipes/misc/orange_dye_from_red_yellow.json new file mode 100644 index 00000000..e0b836f6 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/orange_dye_from_red_yellow.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_dye_from_red_yellow" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_yellow_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:yellow_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_dye", + "has_yellow_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_dye_from_red_yellow" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/orange_dye_from_torchflower.json b/data/minecraft/advancement/recipes/misc/orange_dye_from_torchflower.json new file mode 100644 index 00000000..87b4a3a2 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/orange_dye_from_torchflower.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:orange_dye_from_torchflower" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_torchflower": { + "conditions": { + "items": [ + { + "items": "minecraft:torchflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_torchflower" + ] + ], + "rewards": { + "recipes": [ + "minecraft:orange_dye_from_torchflower" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/paper.json b/data/minecraft/advancement/recipes/misc/paper.json new file mode 100644 index 00000000..7d00fd6e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/paper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_reeds": { + "conditions": { + "items": [ + { + "items": "minecraft:sugar_cane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:paper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_reeds" + ] + ], + "rewards": { + "recipes": [ + "minecraft:paper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/pink_dye_from_peony.json b/data/minecraft/advancement/recipes/misc/pink_dye_from_peony.json new file mode 100644 index 00000000..2a417b0f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/pink_dye_from_peony.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_peony": { + "conditions": { + "items": [ + { + "items": "minecraft:peony" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_dye_from_peony" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_peony" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_dye_from_peony" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/pink_dye_from_pink_petals.json b/data/minecraft/advancement/recipes/misc/pink_dye_from_pink_petals.json new file mode 100644 index 00000000..5f7f04c1 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/pink_dye_from_pink_petals.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_petals": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_petals" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_dye_from_pink_petals" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_petals" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_dye_from_pink_petals" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/pink_dye_from_pink_tulip.json b/data/minecraft/advancement/recipes/misc/pink_dye_from_pink_tulip.json new file mode 100644 index 00000000..205ec848 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/pink_dye_from_pink_tulip.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pink_tulip": { + "conditions": { + "items": [ + { + "items": "minecraft:pink_tulip" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_dye_from_pink_tulip" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pink_tulip" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_dye_from_pink_tulip" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/pink_dye_from_red_white_dye.json b/data/minecraft/advancement/recipes/misc/pink_dye_from_red_white_dye.json new file mode 100644 index 00000000..003371ce --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/pink_dye_from_red_white_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pink_dye_from_red_white_dye" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:white_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_white_dye", + "has_red_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pink_dye_from_red_white_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/popped_chorus_fruit.json b/data/minecraft/advancement/recipes/misc/popped_chorus_fruit.json new file mode 100644 index 00000000..565ca38e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/popped_chorus_fruit.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_chorus_fruit": { + "conditions": { + "items": [ + { + "items": "minecraft:chorus_fruit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:popped_chorus_fruit" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_chorus_fruit" + ] + ], + "rewards": { + "recipes": [ + "minecraft:popped_chorus_fruit" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/pumpkin_seeds.json b/data/minecraft/advancement/recipes/misc/pumpkin_seeds.json new file mode 100644 index 00000000..b2681bdf --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/pumpkin_seeds.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pumpkin": { + "conditions": { + "items": [ + { + "items": "minecraft:pumpkin" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:pumpkin_seeds" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pumpkin" + ] + ], + "rewards": { + "recipes": [ + "minecraft:pumpkin_seeds" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/purple_dye.json b/data/minecraft/advancement/recipes/misc/purple_dye.json new file mode 100644 index 00000000..283c4be4 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/purple_dye.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_red_dye": { + "conditions": { + "items": [ + { + "items": "minecraft:red_dye" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:purple_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_dye", + "has_red_dye" + ] + ], + "rewards": { + "recipes": [ + "minecraft:purple_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/quartz.json b/data/minecraft/advancement/recipes/misc/quartz.json new file mode 100644 index 00000000..617b0828 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/quartz.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_quartz_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_quartz_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_quartz_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/quartz_from_blasting.json b/data/minecraft/advancement/recipes/misc/quartz_from_blasting.json new file mode 100644 index 00000000..497982d5 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/quartz_from_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_quartz_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:nether_quartz_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:quartz_from_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_quartz_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:quartz_from_blasting" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/raiser_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/raiser_armor_trim_smithing_template.json new file mode 100644 index 00000000..acf39ca6 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/raiser_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raiser_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:raiser_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raiser_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raiser_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raiser_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/raiser_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/raiser_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..477d3668 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/raiser_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:raiser_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raiser_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raiser_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/raw_copper.json b/data/minecraft/advancement/recipes/misc/raw_copper.json new file mode 100644 index 00000000..4fe7ab70 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/raw_copper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raw_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raw_copper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/raw_gold.json b/data/minecraft/advancement/recipes/misc/raw_gold.json new file mode 100644 index 00000000..e81635d0 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/raw_gold.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_gold_block": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raw_gold" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_gold_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raw_gold" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/raw_iron.json b/data/minecraft/advancement/recipes/misc/raw_iron.json new file mode 100644 index 00000000..f97f6053 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/raw_iron.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_iron_block": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:raw_iron" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_iron_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:raw_iron" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/red_dye_from_beetroot.json b/data/minecraft/advancement/recipes/misc/red_dye_from_beetroot.json new file mode 100644 index 00000000..7c0c252e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/red_dye_from_beetroot.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beetroot": { + "conditions": { + "items": [ + { + "items": "minecraft:beetroot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_dye_from_beetroot" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_beetroot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_dye_from_beetroot" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/red_dye_from_poppy.json b/data/minecraft/advancement/recipes/misc/red_dye_from_poppy.json new file mode 100644 index 00000000..448bb810 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/red_dye_from_poppy.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_poppy": { + "conditions": { + "items": [ + { + "items": "minecraft:poppy" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_dye_from_poppy" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_poppy" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_dye_from_poppy" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/red_dye_from_rose_bush.json b/data/minecraft/advancement/recipes/misc/red_dye_from_rose_bush.json new file mode 100644 index 00000000..bbb00fd2 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/red_dye_from_rose_bush.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rose_bush": { + "conditions": { + "items": [ + { + "items": "minecraft:rose_bush" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_dye_from_rose_bush" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rose_bush" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_dye_from_rose_bush" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/red_dye_from_tulip.json b/data/minecraft/advancement/recipes/misc/red_dye_from_tulip.json new file mode 100644 index 00000000..e044398e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/red_dye_from_tulip.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_flower": { + "conditions": { + "items": [ + { + "items": "minecraft:red_tulip" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:red_dye_from_tulip" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_red_flower" + ] + ], + "rewards": { + "recipes": [ + "minecraft:red_dye_from_tulip" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/rib_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/rib_armor_trim_smithing_template.json new file mode 100644 index 00000000..cc02cd3a --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/rib_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rib_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:rib_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:rib_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rib_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:rib_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/rib_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/rib_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..732193e6 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/rib_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:rib_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:rib_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:rib_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/sentry_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/sentry_armor_trim_smithing_template.json new file mode 100644 index 00000000..944a2fb8 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/sentry_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sentry_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:sentry_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sentry_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sentry_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sentry_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/sentry_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/sentry_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..efaf125b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/sentry_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:sentry_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sentry_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sentry_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/shaper_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/shaper_armor_trim_smithing_template.json new file mode 100644 index 00000000..a68b9cba --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/shaper_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_shaper_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:shaper_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:shaper_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_shaper_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:shaper_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/shaper_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/shaper_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..c743861e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/shaper_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:shaper_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:shaper_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:shaper_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/silence_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/silence_armor_trim_smithing_template.json new file mode 100644 index 00000000..15b8cc37 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/silence_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_silence_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:silence_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:silence_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_silence_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:silence_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/silence_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/silence_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..e07c7070 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/silence_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:silence_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:silence_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:silence_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/skull_banner_pattern.json b/data/minecraft/advancement/recipes/misc/skull_banner_pattern.json new file mode 100644 index 00000000..de66343e --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/skull_banner_pattern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:skull_banner_pattern" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wither_skeleton_skull": { + "conditions": { + "items": [ + { + "items": "minecraft:wither_skeleton_skull" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wither_skeleton_skull" + ] + ], + "rewards": { + "recipes": [ + "minecraft:skull_banner_pattern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/slime_ball.json b/data/minecraft/advancement/recipes/misc/slime_ball.json new file mode 100644 index 00000000..38c8a952 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/slime_ball.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_slime_block": { + "conditions": { + "items": [ + { + "items": "minecraft:slime_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:slime_ball" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_slime_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:slime_ball" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/snout_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/snout_armor_trim_smithing_template.json new file mode 100644 index 00000000..87b4beba --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/snout_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_snout_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:snout_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:snout_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_snout_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:snout_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/snout_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/snout_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..47d3d3da --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/snout_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:snout_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:snout_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:snout_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/spire_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/spire_armor_trim_smithing_template.json new file mode 100644 index 00000000..ddb5562c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/spire_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spire_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:spire_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spire_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spire_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spire_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/spire_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/spire_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..de70999d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/spire_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:spire_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spire_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spire_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/stick.json b/data/minecraft/advancement/recipes/misc/stick.json new file mode 100644 index 00000000..74165bb6 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/stick.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "#minecraft:planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stick" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/stick_from_bamboo_item.json b/data/minecraft/advancement/recipes/misc/stick_from_bamboo_item.json new file mode 100644 index 00000000..5e481f21 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/stick_from_bamboo_item.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stick_from_bamboo_item" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stick_from_bamboo_item" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/sugar_from_honey_bottle.json b/data/minecraft/advancement/recipes/misc/sugar_from_honey_bottle.json new file mode 100644 index 00000000..57fddc97 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/sugar_from_honey_bottle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_honey_bottle": { + "conditions": { + "items": [ + { + "items": "minecraft:honey_bottle" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sugar_from_honey_bottle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_honey_bottle" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sugar_from_honey_bottle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/sugar_from_sugar_cane.json b/data/minecraft/advancement/recipes/misc/sugar_from_sugar_cane.json new file mode 100644 index 00000000..3981894c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/sugar_from_sugar_cane.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sugar_cane": { + "conditions": { + "items": [ + { + "items": "minecraft:sugar_cane" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sugar_from_sugar_cane" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sugar_cane" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sugar_from_sugar_cane" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/tide_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/tide_armor_trim_smithing_template.json new file mode 100644 index 00000000..e25917d8 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/tide_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tide_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tide_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:tide_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tide_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tide_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/tide_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/tide_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..6155cc6f --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/tide_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:tide_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tide_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tide_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/vex_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/vex_armor_trim_smithing_template.json new file mode 100644 index 00000000..0f691a66 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/vex_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:vex_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_vex_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:vex_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_vex_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:vex_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/vex_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/vex_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..6820f5dd --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/vex_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:vex_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:vex_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:vex_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/ward_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/ward_armor_trim_smithing_template.json new file mode 100644 index 00000000..5f4a3a77 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/ward_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:ward_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_ward_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:ward_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_ward_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:ward_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/ward_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/ward_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..a48941b3 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/ward_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:ward_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:ward_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:ward_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/wayfinder_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/wayfinder_armor_trim_smithing_template.json new file mode 100644 index 00000000..b713cb00 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/wayfinder_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wayfinder_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wayfinder_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:wayfinder_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wayfinder_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wayfinder_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/wayfinder_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/wayfinder_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..173ea22c --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/wayfinder_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:wayfinder_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wayfinder_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wayfinder_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/wheat.json b/data/minecraft/advancement/recipes/misc/wheat.json new file mode 100644 index 00000000..32380a84 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/wheat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_hay_block": { + "conditions": { + "items": [ + { + "items": "minecraft:hay_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wheat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_hay_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wheat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/white_dye.json b/data/minecraft/advancement/recipes/misc/white_dye.json new file mode 100644 index 00000000..53f5a0a3 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/white_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bone_meal": { + "conditions": { + "items": [ + { + "items": "minecraft:bone_meal" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bone_meal" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_dye" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/white_dye_from_lily_of_the_valley.json b/data/minecraft/advancement/recipes/misc/white_dye_from_lily_of_the_valley.json new file mode 100644 index 00000000..8dfcad0b --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/white_dye_from_lily_of_the_valley.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lily_of_the_valley": { + "conditions": { + "items": [ + { + "items": "minecraft:lily_of_the_valley" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:white_dye_from_lily_of_the_valley" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lily_of_the_valley" + ] + ], + "rewards": { + "recipes": [ + "minecraft:white_dye_from_lily_of_the_valley" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/wild_armor_trim_smithing_template.json b/data/minecraft/advancement/recipes/misc/wild_armor_trim_smithing_template.json new file mode 100644 index 00000000..6766be1d --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/wild_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wild_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_wild_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "minecraft:wild_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_wild_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wild_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/wild_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/advancement/recipes/misc/wild_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..64ffff58 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/wild_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "minecraft:wild_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wild_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wild_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/wind_charge.json b/data/minecraft/advancement/recipes/misc/wind_charge.json new file mode 100644 index 00000000..059e1e33 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/wind_charge.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_breeze_rod": { + "conditions": { + "items": [ + { + "items": "minecraft:breeze_rod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wind_charge" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_breeze_rod" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wind_charge" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/writable_book.json b/data/minecraft/advancement/recipes/misc/writable_book.json new file mode 100644 index 00000000..2763d8a4 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/writable_book.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_book": { + "conditions": { + "items": [ + { + "items": "minecraft:book" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:writable_book" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_book" + ] + ], + "rewards": { + "recipes": [ + "minecraft:writable_book" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/yellow_dye_from_dandelion.json b/data/minecraft/advancement/recipes/misc/yellow_dye_from_dandelion.json new file mode 100644 index 00000000..abec5f12 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/yellow_dye_from_dandelion.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dandelion": { + "conditions": { + "items": [ + { + "items": "minecraft:dandelion" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_dye_from_dandelion" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dandelion" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_dye_from_dandelion" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/misc/yellow_dye_from_sunflower.json b/data/minecraft/advancement/recipes/misc/yellow_dye_from_sunflower.json new file mode 100644 index 00000000..4f6e4946 --- /dev/null +++ b/data/minecraft/advancement/recipes/misc/yellow_dye_from_sunflower.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sunflower": { + "conditions": { + "items": [ + { + "items": "minecraft:sunflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:yellow_dye_from_sunflower" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sunflower" + ] + ], + "rewards": { + "recipes": [ + "minecraft:yellow_dye_from_sunflower" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/acacia_button.json b/data/minecraft/advancement/recipes/redstone/acacia_button.json new file mode 100644 index 00000000..6fffe347 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/acacia_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/acacia_door.json b/data/minecraft/advancement/recipes/redstone/acacia_door.json new file mode 100644 index 00000000..2f90170a --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/acacia_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/acacia_fence_gate.json b/data/minecraft/advancement/recipes/redstone/acacia_fence_gate.json new file mode 100644 index 00000000..be861e2f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/acacia_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/acacia_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/acacia_pressure_plate.json new file mode 100644 index 00000000..fc492faa --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/acacia_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/acacia_trapdoor.json b/data/minecraft/advancement/recipes/redstone/acacia_trapdoor.json new file mode 100644 index 00000000..e515bb25 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/acacia_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/bamboo_button.json b/data/minecraft/advancement/recipes/redstone/bamboo_button.json new file mode 100644 index 00000000..8804b515 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/bamboo_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/bamboo_door.json b/data/minecraft/advancement/recipes/redstone/bamboo_door.json new file mode 100644 index 00000000..bec8191f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/bamboo_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/bamboo_fence_gate.json b/data/minecraft/advancement/recipes/redstone/bamboo_fence_gate.json new file mode 100644 index 00000000..b089d016 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/bamboo_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/bamboo_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/bamboo_pressure_plate.json new file mode 100644 index 00000000..7ab171fb --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/bamboo_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/bamboo_trapdoor.json b/data/minecraft/advancement/recipes/redstone/bamboo_trapdoor.json new file mode 100644 index 00000000..3f90d161 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/bamboo_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/birch_button.json b/data/minecraft/advancement/recipes/redstone/birch_button.json new file mode 100644 index 00000000..d3e4b7f1 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/birch_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/birch_door.json b/data/minecraft/advancement/recipes/redstone/birch_door.json new file mode 100644 index 00000000..b35c30c4 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/birch_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/birch_fence_gate.json b/data/minecraft/advancement/recipes/redstone/birch_fence_gate.json new file mode 100644 index 00000000..6af682c9 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/birch_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/birch_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/birch_pressure_plate.json new file mode 100644 index 00000000..58089b3b --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/birch_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/birch_trapdoor.json b/data/minecraft/advancement/recipes/redstone/birch_trapdoor.json new file mode 100644 index 00000000..b5eb36ab --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/birch_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/calibrated_sculk_sensor.json b/data/minecraft/advancement/recipes/redstone/calibrated_sculk_sensor.json new file mode 100644 index 00000000..4d0d6eb6 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/calibrated_sculk_sensor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_amethyst_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:calibrated_sculk_sensor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_amethyst_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:calibrated_sculk_sensor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/cherry_button.json b/data/minecraft/advancement/recipes/redstone/cherry_button.json new file mode 100644 index 00000000..342c373c --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/cherry_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/cherry_door.json b/data/minecraft/advancement/recipes/redstone/cherry_door.json new file mode 100644 index 00000000..7b8cc4f1 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/cherry_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/cherry_fence_gate.json b/data/minecraft/advancement/recipes/redstone/cherry_fence_gate.json new file mode 100644 index 00000000..40114d1f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/cherry_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/cherry_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/cherry_pressure_plate.json new file mode 100644 index 00000000..9cf12d45 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/cherry_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/cherry_trapdoor.json b/data/minecraft/advancement/recipes/redstone/cherry_trapdoor.json new file mode 100644 index 00000000..dad9882d --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/cherry_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/comparator.json b/data/minecraft/advancement/recipes/redstone/comparator.json new file mode 100644 index 00000000..7fc1301e --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/comparator.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:comparator" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:comparator" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/copper_bulb.json b/data/minecraft/advancement/recipes/redstone/copper_bulb.json new file mode 100644 index 00000000..f9452a6f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/copper_door.json b/data/minecraft/advancement/recipes/redstone/copper_door.json new file mode 100644 index 00000000..39580b4b --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/copper_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/copper_trapdoor.json b/data/minecraft/advancement/recipes/redstone/copper_trapdoor.json new file mode 100644 index 00000000..2dcecaa1 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/copper_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/crafter.json b/data/minecraft/advancement/recipes/redstone/crafter.json new file mode 100644 index 00000000..faf8ca37 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/crafter.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dropper": { + "conditions": { + "items": [ + { + "items": "minecraft:dropper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crafter" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dropper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crafter" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/crimson_button.json b/data/minecraft/advancement/recipes/redstone/crimson_button.json new file mode 100644 index 00000000..e0da592f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/crimson_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/crimson_door.json b/data/minecraft/advancement/recipes/redstone/crimson_door.json new file mode 100644 index 00000000..a6834bee --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/crimson_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/crimson_fence_gate.json b/data/minecraft/advancement/recipes/redstone/crimson_fence_gate.json new file mode 100644 index 00000000..56414eb1 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/crimson_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/crimson_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/crimson_pressure_plate.json new file mode 100644 index 00000000..09dfec89 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/crimson_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/crimson_trapdoor.json b/data/minecraft/advancement/recipes/redstone/crimson_trapdoor.json new file mode 100644 index 00000000..70d978bf --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/crimson_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:crimson_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:crimson_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/dark_oak_button.json b/data/minecraft/advancement/recipes/redstone/dark_oak_button.json new file mode 100644 index 00000000..c5c28603 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/dark_oak_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/dark_oak_door.json b/data/minecraft/advancement/recipes/redstone/dark_oak_door.json new file mode 100644 index 00000000..bba6f2ff --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/dark_oak_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/dark_oak_fence_gate.json b/data/minecraft/advancement/recipes/redstone/dark_oak_fence_gate.json new file mode 100644 index 00000000..54568b59 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/dark_oak_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/dark_oak_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/dark_oak_pressure_plate.json new file mode 100644 index 00000000..dd90b8cd --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/dark_oak_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/dark_oak_trapdoor.json b/data/minecraft/advancement/recipes/redstone/dark_oak_trapdoor.json new file mode 100644 index 00000000..47e2dd63 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/dark_oak_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/daylight_detector.json b/data/minecraft/advancement/recipes/redstone/daylight_detector.json new file mode 100644 index 00000000..20df85be --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/daylight_detector.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:daylight_detector" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:daylight_detector" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/dispenser.json b/data/minecraft/advancement/recipes/redstone/dispenser.json new file mode 100644 index 00000000..721489b8 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/dispenser.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bow": { + "conditions": { + "items": [ + { + "items": "minecraft:bow" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dispenser" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bow" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dispenser" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/dropper.json b/data/minecraft/advancement/recipes/redstone/dropper.json new file mode 100644 index 00000000..6defab3b --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/dropper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dropper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dropper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/exposed_copper_bulb.json b/data/minecraft/advancement/recipes/redstone/exposed_copper_bulb.json new file mode 100644 index 00000000..96242b4d --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/exposed_copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:exposed_copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:exposed_copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/heavy_weighted_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/heavy_weighted_pressure_plate.json new file mode 100644 index 00000000..4b2bdd34 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/heavy_weighted_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heavy_weighted_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heavy_weighted_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/honey_block.json b/data/minecraft/advancement/recipes/redstone/honey_block.json new file mode 100644 index 00000000..89de00ea --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/honey_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_honey_bottle": { + "conditions": { + "items": [ + { + "items": "minecraft:honey_bottle" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:honey_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_honey_bottle" + ] + ], + "rewards": { + "recipes": [ + "minecraft:honey_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/hopper.json b/data/minecraft/advancement/recipes/redstone/hopper.json new file mode 100644 index 00000000..4ce4826d --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/hopper.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:hopper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:hopper" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/iron_door.json b/data/minecraft/advancement/recipes/redstone/iron_door.json new file mode 100644 index 00000000..807388c9 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/iron_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/iron_trapdoor.json b/data/minecraft/advancement/recipes/redstone/iron_trapdoor.json new file mode 100644 index 00000000..6e3d0559 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/iron_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/jungle_button.json b/data/minecraft/advancement/recipes/redstone/jungle_button.json new file mode 100644 index 00000000..a152c028 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/jungle_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/jungle_door.json b/data/minecraft/advancement/recipes/redstone/jungle_door.json new file mode 100644 index 00000000..5c956ee8 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/jungle_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/jungle_fence_gate.json b/data/minecraft/advancement/recipes/redstone/jungle_fence_gate.json new file mode 100644 index 00000000..7772dec1 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/jungle_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/jungle_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/jungle_pressure_plate.json new file mode 100644 index 00000000..3010d9a3 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/jungle_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/jungle_trapdoor.json b/data/minecraft/advancement/recipes/redstone/jungle_trapdoor.json new file mode 100644 index 00000000..2a27a611 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/jungle_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/lectern.json b/data/minecraft/advancement/recipes/redstone/lectern.json new file mode 100644 index 00000000..d27109e9 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/lectern.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_book": { + "conditions": { + "items": [ + { + "items": "minecraft:book" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lectern" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_book" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lectern" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/lever.json b/data/minecraft/advancement/recipes/redstone/lever.json new file mode 100644 index 00000000..80e0dba4 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/lever.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "minecraft:cobblestone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lever" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lever" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/light_weighted_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/light_weighted_pressure_plate.json new file mode 100644 index 00000000..c11838e8 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/light_weighted_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:light_weighted_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:light_weighted_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/lightning_rod.json b/data/minecraft/advancement/recipes/redstone/lightning_rod.json new file mode 100644 index 00000000..1f27834a --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/lightning_rod.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lightning_rod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lightning_rod" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/mangrove_button.json b/data/minecraft/advancement/recipes/redstone/mangrove_button.json new file mode 100644 index 00000000..d7a409b7 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/mangrove_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/mangrove_door.json b/data/minecraft/advancement/recipes/redstone/mangrove_door.json new file mode 100644 index 00000000..8479072a --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/mangrove_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/mangrove_fence_gate.json b/data/minecraft/advancement/recipes/redstone/mangrove_fence_gate.json new file mode 100644 index 00000000..eda78b19 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/mangrove_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/mangrove_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/mangrove_pressure_plate.json new file mode 100644 index 00000000..1d851e98 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/mangrove_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/mangrove_trapdoor.json b/data/minecraft/advancement/recipes/redstone/mangrove_trapdoor.json new file mode 100644 index 00000000..7ea289ba --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/mangrove_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/note_block.json b/data/minecraft/advancement/recipes/redstone/note_block.json new file mode 100644 index 00000000..d7ec664a --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/note_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:note_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:note_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/oak_button.json b/data/minecraft/advancement/recipes/redstone/oak_button.json new file mode 100644 index 00000000..62a2145f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/oak_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/oak_door.json b/data/minecraft/advancement/recipes/redstone/oak_door.json new file mode 100644 index 00000000..34a710b5 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/oak_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/oak_fence_gate.json b/data/minecraft/advancement/recipes/redstone/oak_fence_gate.json new file mode 100644 index 00000000..d8153775 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/oak_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/oak_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/oak_pressure_plate.json new file mode 100644 index 00000000..8f9a353c --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/oak_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/oak_trapdoor.json b/data/minecraft/advancement/recipes/redstone/oak_trapdoor.json new file mode 100644 index 00000000..873d96e5 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/oak_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/observer.json b/data/minecraft/advancement/recipes/redstone/observer.json new file mode 100644 index 00000000..e40f179a --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/observer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quartz": { + "conditions": { + "items": [ + { + "items": "minecraft:quartz" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:observer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_quartz" + ] + ], + "rewards": { + "recipes": [ + "minecraft:observer" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/oxidized_copper_bulb.json b/data/minecraft/advancement/recipes/redstone/oxidized_copper_bulb.json new file mode 100644 index 00000000..c5c57e28 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/oxidized_copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oxidized_copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oxidized_copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/piston.json b/data/minecraft/advancement/recipes/redstone/piston.json new file mode 100644 index 00000000..191c268f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/piston.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:piston" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:piston" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/polished_blackstone_button.json b/data/minecraft/advancement/recipes/redstone/polished_blackstone_button.json new file mode 100644 index 00000000..19b612ec --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/polished_blackstone_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/polished_blackstone_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/polished_blackstone_pressure_plate.json new file mode 100644 index 00000000..ed1d1945 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/polished_blackstone_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_blackstone_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_blackstone_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone.json b/data/minecraft/advancement/recipes/redstone/redstone.json new file mode 100644 index 00000000..4660d21f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone_block": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone_block.json b/data/minecraft/advancement/recipes/redstone/redstone_block.json new file mode 100644 index 00000000..d6fe3b27 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone_from_blasting_deepslate_redstone_ore.json b/data/minecraft/advancement/recipes/redstone/redstone_from_blasting_deepslate_redstone_ore.json new file mode 100644 index 00000000..c5437d0d --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone_from_blasting_deepslate_redstone_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_redstone_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_redstone_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone_from_blasting_deepslate_redstone_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_redstone_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone_from_blasting_deepslate_redstone_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone_from_blasting_redstone_ore.json b/data/minecraft/advancement/recipes/redstone/redstone_from_blasting_redstone_ore.json new file mode 100644 index 00000000..7235f217 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone_from_blasting_redstone_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone_from_blasting_redstone_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone_from_blasting_redstone_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone_from_smelting_deepslate_redstone_ore.json b/data/minecraft/advancement/recipes/redstone/redstone_from_smelting_deepslate_redstone_ore.json new file mode 100644 index 00000000..aa1748df --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone_from_smelting_deepslate_redstone_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_redstone_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate_redstone_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone_from_smelting_deepslate_redstone_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_redstone_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone_from_smelting_deepslate_redstone_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone_from_smelting_redstone_ore.json b/data/minecraft/advancement/recipes/redstone/redstone_from_smelting_redstone_ore.json new file mode 100644 index 00000000..739f04a0 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone_from_smelting_redstone_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone_ore": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone_from_smelting_redstone_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone_ore" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone_from_smelting_redstone_ore" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone_lamp.json b/data/minecraft/advancement/recipes/redstone/redstone_lamp.json new file mode 100644 index 00000000..851832a8 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone_lamp.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_glowstone": { + "conditions": { + "items": [ + { + "items": "minecraft:glowstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone_lamp" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_glowstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone_lamp" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/redstone_torch.json b/data/minecraft/advancement/recipes/redstone/redstone_torch.json new file mode 100644 index 00000000..d905287a --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/redstone_torch.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:redstone_torch" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:redstone_torch" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/repeater.json b/data/minecraft/advancement/recipes/redstone/repeater.json new file mode 100644 index 00000000..6d70605a --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/repeater.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone_torch": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone_torch" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:repeater" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone_torch" + ] + ], + "rewards": { + "recipes": [ + "minecraft:repeater" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/slime_block.json b/data/minecraft/advancement/recipes/redstone/slime_block.json new file mode 100644 index 00000000..8f41914b --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/slime_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_slime_ball": { + "conditions": { + "items": [ + { + "items": "minecraft:slime_ball" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:slime_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_slime_ball" + ] + ], + "rewards": { + "recipes": [ + "minecraft:slime_block" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/spruce_button.json b/data/minecraft/advancement/recipes/redstone/spruce_button.json new file mode 100644 index 00000000..d2117888 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/spruce_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/spruce_door.json b/data/minecraft/advancement/recipes/redstone/spruce_door.json new file mode 100644 index 00000000..f23de9f4 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/spruce_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/spruce_fence_gate.json b/data/minecraft/advancement/recipes/redstone/spruce_fence_gate.json new file mode 100644 index 00000000..818987e3 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/spruce_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/spruce_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/spruce_pressure_plate.json new file mode 100644 index 00000000..ae4e166f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/spruce_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/spruce_trapdoor.json b/data/minecraft/advancement/recipes/redstone/spruce_trapdoor.json new file mode 100644 index 00000000..20f57594 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/spruce_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/sticky_piston.json b/data/minecraft/advancement/recipes/redstone/sticky_piston.json new file mode 100644 index 00000000..60011ec2 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/sticky_piston.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_slime_ball": { + "conditions": { + "items": [ + { + "items": "minecraft:slime_ball" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:sticky_piston" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_slime_ball" + ] + ], + "rewards": { + "recipes": [ + "minecraft:sticky_piston" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/stone_button.json b/data/minecraft/advancement/recipes/redstone/stone_button.json new file mode 100644 index 00000000..f8020133 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/stone_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/stone_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/stone_pressure_plate.json new file mode 100644 index 00000000..e2af12eb --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/stone_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/target.json b/data/minecraft/advancement/recipes/redstone/target.json new file mode 100644 index 00000000..21b2ae11 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/target.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_hay_block": { + "conditions": { + "items": [ + { + "items": "minecraft:hay_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:target" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone", + "has_hay_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:target" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/tnt.json b/data/minecraft/advancement/recipes/redstone/tnt.json new file mode 100644 index 00000000..bf956522 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/tnt.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gunpowder": { + "conditions": { + "items": [ + { + "items": "minecraft:gunpowder" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tnt" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gunpowder" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tnt" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/trapped_chest.json b/data/minecraft/advancement/recipes/redstone/trapped_chest.json new file mode 100644 index 00000000..e5033bc2 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/trapped_chest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:trapped_chest" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tripwire_hook": { + "conditions": { + "items": [ + { + "items": "minecraft:tripwire_hook" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tripwire_hook" + ] + ], + "rewards": { + "recipes": [ + "minecraft:trapped_chest" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/tripwire_hook.json b/data/minecraft/advancement/recipes/redstone/tripwire_hook.json new file mode 100644 index 00000000..3a3cf54d --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/tripwire_hook.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tripwire_hook" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tripwire_hook" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/warped_button.json b/data/minecraft/advancement/recipes/redstone/warped_button.json new file mode 100644 index 00000000..267ac24f --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/warped_button.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_button" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_button" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/warped_door.json b/data/minecraft/advancement/recipes/redstone/warped_door.json new file mode 100644 index 00000000..4088dbbc --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/warped_door.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_door" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_door" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/warped_fence_gate.json b/data/minecraft/advancement/recipes/redstone/warped_fence_gate.json new file mode 100644 index 00000000..ed7cfa67 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/warped_fence_gate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_fence_gate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_fence_gate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/warped_pressure_plate.json b/data/minecraft/advancement/recipes/redstone/warped_pressure_plate.json new file mode 100644 index 00000000..5b9b5816 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/warped_pressure_plate.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_pressure_plate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_pressure_plate" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/warped_trapdoor.json b/data/minecraft/advancement/recipes/redstone/warped_trapdoor.json new file mode 100644 index 00000000..6b3ceaee --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/warped_trapdoor.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_trapdoor" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_planks" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_trapdoor" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/waxed_copper_bulb.json b/data/minecraft/advancement/recipes/redstone/waxed_copper_bulb.json new file mode 100644 index 00000000..334612b5 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/waxed_copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/waxed_exposed_copper_bulb.json b/data/minecraft/advancement/recipes/redstone/waxed_exposed_copper_bulb.json new file mode 100644 index 00000000..4cfd14c3 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/waxed_exposed_copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_exposed_copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_exposed_copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/waxed_oxidized_copper_bulb.json b/data/minecraft/advancement/recipes/redstone/waxed_oxidized_copper_bulb.json new file mode 100644 index 00000000..77d0bb2e --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/waxed_oxidized_copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_oxidized_copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_oxidized_copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/waxed_weathered_copper_bulb.json b/data/minecraft/advancement/recipes/redstone/waxed_weathered_copper_bulb.json new file mode 100644 index 00000000..3ac483c3 --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/waxed_weathered_copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:waxed_weathered_copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:waxed_weathered_copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/redstone/weathered_copper_bulb.json b/data/minecraft/advancement/recipes/redstone/weathered_copper_bulb.json new file mode 100644 index 00000000..b19eb0bf --- /dev/null +++ b/data/minecraft/advancement/recipes/redstone/weathered_copper_bulb.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:weathered_copper_bulb" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:weathered_copper_bulb" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/root.json b/data/minecraft/advancement/recipes/root.json new file mode 100644 index 00000000..78142c57 --- /dev/null +++ b/data/minecraft/advancement/recipes/root.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "requirements": [ + [ + "impossible" + ] + ] +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/brush.json b/data/minecraft/advancement/recipes/tools/brush.json new file mode 100644 index 00000000..00aafb53 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/brush.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:brush" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:brush" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/clock.json b/data/minecraft/advancement/recipes/tools/clock.json new file mode 100644 index 00000000..dd3f2c49 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/clock.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:clock" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:clock" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/compass.json b/data/minecraft/advancement/recipes/tools/compass.json new file mode 100644 index 00000000..627cfb31 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/compass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_redstone": { + "conditions": { + "items": [ + { + "items": "minecraft:redstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:compass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_redstone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:compass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/diamond_axe.json b/data/minecraft/advancement/recipes/tools/diamond_axe.json new file mode 100644 index 00000000..31dbd4fb --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/diamond_axe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_axe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_axe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/diamond_hoe.json b/data/minecraft/advancement/recipes/tools/diamond_hoe.json new file mode 100644 index 00000000..0431c5b3 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/diamond_hoe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_hoe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_hoe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/diamond_pickaxe.json b/data/minecraft/advancement/recipes/tools/diamond_pickaxe.json new file mode 100644 index 00000000..71a75541 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/diamond_pickaxe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_pickaxe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/diamond_shovel.json b/data/minecraft/advancement/recipes/tools/diamond_shovel.json new file mode 100644 index 00000000..e3bc5ce6 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/diamond_shovel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:diamond_shovel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_diamond" + ] + ], + "rewards": { + "recipes": [ + "minecraft:diamond_shovel" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/fishing_rod.json b/data/minecraft/advancement/recipes/tools/fishing_rod.json new file mode 100644 index 00000000..95b6b72a --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/fishing_rod.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:fishing_rod" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string" + ] + ], + "rewards": { + "recipes": [ + "minecraft:fishing_rod" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/flint_and_steel.json b/data/minecraft/advancement/recipes/tools/flint_and_steel.json new file mode 100644 index 00000000..8950af6b --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/flint_and_steel.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_flint": { + "conditions": { + "items": [ + { + "items": "minecraft:flint" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:flint_and_steel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_flint", + "has_obsidian" + ] + ], + "rewards": { + "recipes": [ + "minecraft:flint_and_steel" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/golden_axe.json b/data/minecraft/advancement/recipes/tools/golden_axe.json new file mode 100644 index 00000000..cbb72327 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/golden_axe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_axe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_axe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/golden_hoe.json b/data/minecraft/advancement/recipes/tools/golden_hoe.json new file mode 100644 index 00000000..c08e99b0 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/golden_hoe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_hoe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_hoe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/golden_pickaxe.json b/data/minecraft/advancement/recipes/tools/golden_pickaxe.json new file mode 100644 index 00000000..f3608952 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/golden_pickaxe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_pickaxe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/golden_shovel.json b/data/minecraft/advancement/recipes/tools/golden_shovel.json new file mode 100644 index 00000000..e4ceef2c --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/golden_shovel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_gold_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:gold_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:golden_shovel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_gold_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:golden_shovel" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/iron_axe.json b/data/minecraft/advancement/recipes/tools/iron_axe.json new file mode 100644 index 00000000..d4dcd43d --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/iron_axe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_axe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_axe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/iron_hoe.json b/data/minecraft/advancement/recipes/tools/iron_hoe.json new file mode 100644 index 00000000..90d60874 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/iron_hoe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_hoe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_hoe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/iron_pickaxe.json b/data/minecraft/advancement/recipes/tools/iron_pickaxe.json new file mode 100644 index 00000000..98edb583 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/iron_pickaxe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_pickaxe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/iron_shovel.json b/data/minecraft/advancement/recipes/tools/iron_shovel.json new file mode 100644 index 00000000..449cfb5d --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/iron_shovel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_shovel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_shovel" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/lead.json b/data/minecraft/advancement/recipes/tools/lead.json new file mode 100644 index 00000000..a872bd4e --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/lead.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_slime_ball": { + "conditions": { + "items": [ + { + "items": "minecraft:slime_ball" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lead" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_slime_ball" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lead" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/netherite_axe_smithing.json b/data/minecraft/advancement/recipes/tools/netherite_axe_smithing.json new file mode 100644 index 00000000..aa37d1b8 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/netherite_axe_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_axe_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_axe_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/netherite_hoe_smithing.json b/data/minecraft/advancement/recipes/tools/netherite_hoe_smithing.json new file mode 100644 index 00000000..137ad2fe --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/netherite_hoe_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_hoe_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_hoe_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/netherite_pickaxe_smithing.json b/data/minecraft/advancement/recipes/tools/netherite_pickaxe_smithing.json new file mode 100644 index 00000000..efaeb520 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/netherite_pickaxe_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_pickaxe_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_pickaxe_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/netherite_shovel_smithing.json b/data/minecraft/advancement/recipes/tools/netherite_shovel_smithing.json new file mode 100644 index 00000000..e6db20d1 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/netherite_shovel_smithing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:netherite_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:netherite_shovel_smithing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_netherite_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:netherite_shovel_smithing" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/recovery_compass.json b/data/minecraft/advancement/recipes/tools/recovery_compass.json new file mode 100644 index 00000000..22a7b883 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/recovery_compass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_echo_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:echo_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:recovery_compass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_echo_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:recovery_compass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/shears.json b/data/minecraft/advancement/recipes/tools/shears.json new file mode 100644 index 00000000..4bf08acd --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/shears.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:shears" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:shears" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/spyglass.json b/data/minecraft/advancement/recipes/tools/spyglass.json new file mode 100644 index 00000000..de0605c0 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/spyglass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_amethyst_shard": { + "conditions": { + "items": [ + { + "items": "minecraft:amethyst_shard" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spyglass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_amethyst_shard" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spyglass" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/stone_axe.json b/data/minecraft/advancement/recipes/tools/stone_axe.json new file mode 100644 index 00000000..b2fd156a --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/stone_axe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_axe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_axe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/stone_hoe.json b/data/minecraft/advancement/recipes/tools/stone_hoe.json new file mode 100644 index 00000000..ef5185ce --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/stone_hoe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_hoe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_hoe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/stone_pickaxe.json b/data/minecraft/advancement/recipes/tools/stone_pickaxe.json new file mode 100644 index 00000000..1377811c --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/stone_pickaxe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_pickaxe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/stone_shovel.json b/data/minecraft/advancement/recipes/tools/stone_shovel.json new file mode 100644 index 00000000..cf566f50 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/stone_shovel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobblestone": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:stone_shovel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:stone_shovel" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/wooden_axe.json b/data/minecraft/advancement/recipes/tools/wooden_axe.json new file mode 100644 index 00000000..f058032c --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/wooden_axe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stick": { + "conditions": { + "items": [ + { + "items": "minecraft:stick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wooden_axe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wooden_axe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/wooden_hoe.json b/data/minecraft/advancement/recipes/tools/wooden_hoe.json new file mode 100644 index 00000000..35cefbdb --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/wooden_hoe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stick": { + "conditions": { + "items": [ + { + "items": "minecraft:stick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wooden_hoe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wooden_hoe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/wooden_pickaxe.json b/data/minecraft/advancement/recipes/tools/wooden_pickaxe.json new file mode 100644 index 00000000..e88dc29f --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/wooden_pickaxe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stick": { + "conditions": { + "items": [ + { + "items": "minecraft:stick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wooden_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wooden_pickaxe" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/tools/wooden_shovel.json b/data/minecraft/advancement/recipes/tools/wooden_shovel.json new file mode 100644 index 00000000..8fab2e74 --- /dev/null +++ b/data/minecraft/advancement/recipes/tools/wooden_shovel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stick": { + "conditions": { + "items": [ + { + "items": "minecraft:stick" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:wooden_shovel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:wooden_shovel" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/acacia_boat.json b/data/minecraft/advancement/recipes/transportation/acacia_boat.json new file mode 100644 index 00000000..ea11dff8 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/acacia_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/acacia_chest_boat.json b/data/minecraft/advancement/recipes/transportation/acacia_chest_boat.json new file mode 100644 index 00000000..abe7cd39 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/acacia_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:acacia_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:acacia_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/activator_rail.json b/data/minecraft/advancement/recipes/transportation/activator_rail.json new file mode 100644 index 00000000..45aabf4f --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/activator_rail.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rail": { + "conditions": { + "items": [ + { + "items": "minecraft:rail" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:activator_rail" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rail" + ] + ], + "rewards": { + "recipes": [ + "minecraft:activator_rail" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/bamboo_chest_raft.json b/data/minecraft/advancement/recipes/transportation/bamboo_chest_raft.json new file mode 100644 index 00000000..3c35ddc3 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/bamboo_chest_raft.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_chest_raft" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_chest_raft" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/bamboo_raft.json b/data/minecraft/advancement/recipes/transportation/bamboo_raft.json new file mode 100644 index 00000000..cd845a7c --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/bamboo_raft.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bamboo_raft" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bamboo_raft" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/birch_boat.json b/data/minecraft/advancement/recipes/transportation/birch_boat.json new file mode 100644 index 00000000..aabc78e4 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/birch_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/birch_chest_boat.json b/data/minecraft/advancement/recipes/transportation/birch_chest_boat.json new file mode 100644 index 00000000..a3467b94 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/birch_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:birch_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:birch_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/carrot_on_a_stick.json b/data/minecraft/advancement/recipes/transportation/carrot_on_a_stick.json new file mode 100644 index 00000000..e7b31019 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/carrot_on_a_stick.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_carrot": { + "conditions": { + "items": [ + { + "items": "minecraft:carrot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:carrot_on_a_stick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_carrot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:carrot_on_a_stick" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/cherry_boat.json b/data/minecraft/advancement/recipes/transportation/cherry_boat.json new file mode 100644 index 00000000..e72ccdf5 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/cherry_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/cherry_chest_boat.json b/data/minecraft/advancement/recipes/transportation/cherry_chest_boat.json new file mode 100644 index 00000000..8b87f01f --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/cherry_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cherry_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cherry_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/chest_minecart.json b/data/minecraft/advancement/recipes/transportation/chest_minecart.json new file mode 100644 index 00000000..5d5ba034 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/chest_minecart.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_minecart": { + "conditions": { + "items": [ + { + "items": "minecraft:minecart" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chest_minecart" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_minecart" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chest_minecart" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/dark_oak_boat.json b/data/minecraft/advancement/recipes/transportation/dark_oak_boat.json new file mode 100644 index 00000000..6557ca3a --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/dark_oak_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/dark_oak_chest_boat.json b/data/minecraft/advancement/recipes/transportation/dark_oak_chest_boat.json new file mode 100644 index 00000000..98236f77 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/dark_oak_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_oak_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_oak_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/detector_rail.json b/data/minecraft/advancement/recipes/transportation/detector_rail.json new file mode 100644 index 00000000..cd2915ed --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/detector_rail.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rail": { + "conditions": { + "items": [ + { + "items": "minecraft:rail" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detector_rail" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rail" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detector_rail" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/furnace_minecart.json b/data/minecraft/advancement/recipes/transportation/furnace_minecart.json new file mode 100644 index 00000000..a095f3f6 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/furnace_minecart.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_minecart": { + "conditions": { + "items": [ + { + "items": "minecraft:minecart" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:furnace_minecart" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_minecart" + ] + ], + "rewards": { + "recipes": [ + "minecraft:furnace_minecart" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/hopper_minecart.json b/data/minecraft/advancement/recipes/transportation/hopper_minecart.json new file mode 100644 index 00000000..7ba8f538 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/hopper_minecart.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_minecart": { + "conditions": { + "items": [ + { + "items": "minecraft:minecart" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:hopper_minecart" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_minecart" + ] + ], + "rewards": { + "recipes": [ + "minecraft:hopper_minecart" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/jungle_boat.json b/data/minecraft/advancement/recipes/transportation/jungle_boat.json new file mode 100644 index 00000000..604555d8 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/jungle_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/jungle_chest_boat.json b/data/minecraft/advancement/recipes/transportation/jungle_chest_boat.json new file mode 100644 index 00000000..506945c3 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/jungle_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:jungle_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:jungle_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/mangrove_boat.json b/data/minecraft/advancement/recipes/transportation/mangrove_boat.json new file mode 100644 index 00000000..2b778cdc --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/mangrove_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/mangrove_chest_boat.json b/data/minecraft/advancement/recipes/transportation/mangrove_chest_boat.json new file mode 100644 index 00000000..8b2d68fb --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/mangrove_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mangrove_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mangrove_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/minecart.json b/data/minecraft/advancement/recipes/transportation/minecart.json new file mode 100644 index 00000000..0bc6a688 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/minecart.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:minecart" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_ingot" + ] + ], + "rewards": { + "recipes": [ + "minecraft:minecart" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/oak_boat.json b/data/minecraft/advancement/recipes/transportation/oak_boat.json new file mode 100644 index 00000000..6ffdc386 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/oak_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/oak_chest_boat.json b/data/minecraft/advancement/recipes/transportation/oak_chest_boat.json new file mode 100644 index 00000000..141388f5 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/oak_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:oak_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:oak_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/powered_rail.json b/data/minecraft/advancement/recipes/transportation/powered_rail.json new file mode 100644 index 00000000..5e504c54 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/powered_rail.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rail": { + "conditions": { + "items": [ + { + "items": "minecraft:rail" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:powered_rail" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rail" + ] + ], + "rewards": { + "recipes": [ + "minecraft:powered_rail" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/rail.json b/data/minecraft/advancement/recipes/transportation/rail.json new file mode 100644 index 00000000..78e0b5ff --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/rail.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_minecart": { + "conditions": { + "items": [ + { + "items": "minecraft:minecart" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:rail" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_minecart" + ] + ], + "rewards": { + "recipes": [ + "minecraft:rail" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/spruce_boat.json b/data/minecraft/advancement/recipes/transportation/spruce_boat.json new file mode 100644 index 00000000..70ae85eb --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/spruce_boat.json @@ -0,0 +1,28 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_boat" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_water": { + "conditions": { + "block": "minecraft:water" + }, + "trigger": "minecraft:enter_block" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_water" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/spruce_chest_boat.json b/data/minecraft/advancement/recipes/transportation/spruce_chest_boat.json new file mode 100644 index 00000000..b365bc28 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/spruce_chest_boat.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_boat": { + "conditions": { + "items": [ + { + "items": "#minecraft:boats" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:spruce_chest_boat" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_boat" + ] + ], + "rewards": { + "recipes": [ + "minecraft:spruce_chest_boat" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/tnt_minecart.json b/data/minecraft/advancement/recipes/transportation/tnt_minecart.json new file mode 100644 index 00000000..86146c6f --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/tnt_minecart.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_minecart": { + "conditions": { + "items": [ + { + "items": "minecraft:minecart" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tnt_minecart" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_minecart" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tnt_minecart" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/recipes/transportation/warped_fungus_on_a_stick.json b/data/minecraft/advancement/recipes/transportation/warped_fungus_on_a_stick.json new file mode 100644 index 00000000..8cdeba35 --- /dev/null +++ b/data/minecraft/advancement/recipes/transportation/warped_fungus_on_a_stick.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:warped_fungus_on_a_stick" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_warped_fungus": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_fungus" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_warped_fungus" + ] + ], + "rewards": { + "recipes": [ + "minecraft:warped_fungus_on_a_stick" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/cure_zombie_villager.json b/data/minecraft/advancement/story/cure_zombie_villager.json new file mode 100644 index 00000000..47058cce --- /dev/null +++ b/data/minecraft/advancement/story/cure_zombie_villager.json @@ -0,0 +1,27 @@ +{ + "parent": "minecraft:story/enter_the_nether", + "criteria": { + "cured_zombie": { + "trigger": "minecraft:cured_zombie_villager" + } + }, + "display": { + "description": { + "translate": "advancements.story.cure_zombie_villager.description" + }, + "frame": "goal", + "icon": { + "count": 1, + "id": "minecraft:golden_apple" + }, + "title": { + "translate": "advancements.story.cure_zombie_villager.title" + } + }, + "requirements": [ + [ + "cured_zombie" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/deflect_arrow.json b/data/minecraft/advancement/story/deflect_arrow.json new file mode 100644 index 00000000..33264f01 --- /dev/null +++ b/data/minecraft/advancement/story/deflect_arrow.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:story/obtain_armor", + "criteria": { + "deflected_projectile": { + "conditions": { + "damage": { + "type": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + } + ] + }, + "blocked": true + } + }, + "trigger": "minecraft:entity_hurt_player" + } + }, + "display": { + "description": { + "translate": "advancements.story.deflect_arrow.description" + }, + "icon": { + "count": 1, + "id": "minecraft:shield" + }, + "title": { + "translate": "advancements.story.deflect_arrow.title" + } + }, + "requirements": [ + [ + "deflected_projectile" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/enchant_item.json b/data/minecraft/advancement/story/enchant_item.json new file mode 100644 index 00000000..744752a1 --- /dev/null +++ b/data/minecraft/advancement/story/enchant_item.json @@ -0,0 +1,26 @@ +{ + "parent": "minecraft:story/mine_diamond", + "criteria": { + "enchanted_item": { + "trigger": "minecraft:enchanted_item" + } + }, + "display": { + "description": { + "translate": "advancements.story.enchant_item.description" + }, + "icon": { + "count": 1, + "id": "minecraft:enchanted_book" + }, + "title": { + "translate": "advancements.story.enchant_item.title" + } + }, + "requirements": [ + [ + "enchanted_item" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/enter_the_end.json b/data/minecraft/advancement/story/enter_the_end.json new file mode 100644 index 00000000..eaf4506a --- /dev/null +++ b/data/minecraft/advancement/story/enter_the_end.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:story/follow_ender_eye", + "criteria": { + "entered_end": { + "conditions": { + "to": "minecraft:the_end" + }, + "trigger": "minecraft:changed_dimension" + } + }, + "display": { + "description": { + "translate": "advancements.story.enter_the_end.description" + }, + "icon": { + "count": 1, + "id": "minecraft:end_stone" + }, + "title": { + "translate": "advancements.story.enter_the_end.title" + } + }, + "requirements": [ + [ + "entered_end" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/enter_the_nether.json b/data/minecraft/advancement/story/enter_the_nether.json new file mode 100644 index 00000000..e8a4e321 --- /dev/null +++ b/data/minecraft/advancement/story/enter_the_nether.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:story/form_obsidian", + "criteria": { + "entered_nether": { + "conditions": { + "to": "minecraft:the_nether" + }, + "trigger": "minecraft:changed_dimension" + } + }, + "display": { + "description": { + "translate": "advancements.story.enter_the_nether.description" + }, + "icon": { + "count": 1, + "id": "minecraft:flint_and_steel" + }, + "title": { + "translate": "advancements.story.enter_the_nether.title" + } + }, + "requirements": [ + [ + "entered_nether" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/follow_ender_eye.json b/data/minecraft/advancement/story/follow_ender_eye.json new file mode 100644 index 00000000..a5ccee69 --- /dev/null +++ b/data/minecraft/advancement/story/follow_ender_eye.json @@ -0,0 +1,39 @@ +{ + "parent": "minecraft:story/enter_the_nether", + "criteria": { + "in_stronghold": { + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structures": "minecraft:stronghold" + } + } + } + ] + }, + "trigger": "minecraft:location" + } + }, + "display": { + "description": { + "translate": "advancements.story.follow_ender_eye.description" + }, + "icon": { + "count": 1, + "id": "minecraft:ender_eye" + }, + "title": { + "translate": "advancements.story.follow_ender_eye.title" + } + }, + "requirements": [ + [ + "in_stronghold" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/form_obsidian.json b/data/minecraft/advancement/story/form_obsidian.json new file mode 100644 index 00000000..f1c5103a --- /dev/null +++ b/data/minecraft/advancement/story/form_obsidian.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:story/lava_bucket", + "criteria": { + "obsidian": { + "conditions": { + "items": [ + { + "items": "minecraft:obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.form_obsidian.description" + }, + "icon": { + "count": 1, + "id": "minecraft:obsidian" + }, + "title": { + "translate": "advancements.story.form_obsidian.title" + } + }, + "requirements": [ + [ + "obsidian" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/iron_tools.json b/data/minecraft/advancement/story/iron_tools.json new file mode 100644 index 00000000..e195c9e8 --- /dev/null +++ b/data/minecraft/advancement/story/iron_tools.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:story/smelt_iron", + "criteria": { + "iron_pickaxe": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_pickaxe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.iron_tools.description" + }, + "icon": { + "count": 1, + "id": "minecraft:iron_pickaxe" + }, + "title": { + "translate": "advancements.story.iron_tools.title" + } + }, + "requirements": [ + [ + "iron_pickaxe" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/lava_bucket.json b/data/minecraft/advancement/story/lava_bucket.json new file mode 100644 index 00000000..7c229b80 --- /dev/null +++ b/data/minecraft/advancement/story/lava_bucket.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:story/smelt_iron", + "criteria": { + "lava_bucket": { + "conditions": { + "items": [ + { + "items": "minecraft:lava_bucket" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.lava_bucket.description" + }, + "icon": { + "count": 1, + "id": "minecraft:lava_bucket" + }, + "title": { + "translate": "advancements.story.lava_bucket.title" + } + }, + "requirements": [ + [ + "lava_bucket" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/mine_diamond.json b/data/minecraft/advancement/story/mine_diamond.json new file mode 100644 index 00000000..db99a927 --- /dev/null +++ b/data/minecraft/advancement/story/mine_diamond.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:story/iron_tools", + "criteria": { + "diamond": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.mine_diamond.description" + }, + "icon": { + "count": 1, + "id": "minecraft:diamond" + }, + "title": { + "translate": "advancements.story.mine_diamond.title" + } + }, + "requirements": [ + [ + "diamond" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/mine_stone.json b/data/minecraft/advancement/story/mine_stone.json new file mode 100644 index 00000000..2a388006 --- /dev/null +++ b/data/minecraft/advancement/story/mine_stone.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:story/root", + "criteria": { + "get_stone": { + "conditions": { + "items": [ + { + "items": "#minecraft:stone_tool_materials" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.mine_stone.description" + }, + "icon": { + "count": 1, + "id": "minecraft:wooden_pickaxe" + }, + "title": { + "translate": "advancements.story.mine_stone.title" + } + }, + "requirements": [ + [ + "get_stone" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/obtain_armor.json b/data/minecraft/advancement/story/obtain_armor.json new file mode 100644 index 00000000..2d2ffb38 --- /dev/null +++ b/data/minecraft/advancement/story/obtain_armor.json @@ -0,0 +1,66 @@ +{ + "parent": "minecraft:story/smelt_iron", + "criteria": { + "iron_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "iron_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "iron_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "iron_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.obtain_armor.description" + }, + "icon": { + "count": 1, + "id": "minecraft:iron_chestplate" + }, + "title": { + "translate": "advancements.story.obtain_armor.title" + } + }, + "requirements": [ + [ + "iron_helmet", + "iron_chestplate", + "iron_leggings", + "iron_boots" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/root.json b/data/minecraft/advancement/story/root.json new file mode 100644 index 00000000..0526a2bf --- /dev/null +++ b/data/minecraft/advancement/story/root.json @@ -0,0 +1,35 @@ +{ + "criteria": { + "crafting_table": { + "conditions": { + "items": [ + { + "items": "minecraft:crafting_table" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": false, + "background": "minecraft:textures/gui/advancements/backgrounds/stone.png", + "description": { + "translate": "advancements.story.root.description" + }, + "icon": { + "count": 1, + "id": "minecraft:grass_block" + }, + "show_toast": false, + "title": { + "translate": "advancements.story.root.title" + } + }, + "requirements": [ + [ + "crafting_table" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/shiny_gear.json b/data/minecraft/advancement/story/shiny_gear.json new file mode 100644 index 00000000..80fc8685 --- /dev/null +++ b/data/minecraft/advancement/story/shiny_gear.json @@ -0,0 +1,66 @@ +{ + "parent": "minecraft:story/mine_diamond", + "criteria": { + "diamond_boots": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond_boots" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "diamond_chestplate": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond_chestplate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "diamond_helmet": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond_helmet" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "diamond_leggings": { + "conditions": { + "items": [ + { + "items": "minecraft:diamond_leggings" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.shiny_gear.description" + }, + "icon": { + "count": 1, + "id": "minecraft:diamond_chestplate" + }, + "title": { + "translate": "advancements.story.shiny_gear.title" + } + }, + "requirements": [ + [ + "diamond_helmet", + "diamond_chestplate", + "diamond_leggings", + "diamond_boots" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/smelt_iron.json b/data/minecraft/advancement/story/smelt_iron.json new file mode 100644 index 00000000..0b110438 --- /dev/null +++ b/data/minecraft/advancement/story/smelt_iron.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:story/upgrade_tools", + "criteria": { + "iron": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_ingot" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.smelt_iron.description" + }, + "icon": { + "count": 1, + "id": "minecraft:iron_ingot" + }, + "title": { + "translate": "advancements.story.smelt_iron.title" + } + }, + "requirements": [ + [ + "iron" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/advancement/story/upgrade_tools.json b/data/minecraft/advancement/story/upgrade_tools.json new file mode 100644 index 00000000..0d396a86 --- /dev/null +++ b/data/minecraft/advancement/story/upgrade_tools.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:story/mine_stone", + "criteria": { + "stone_pickaxe": { + "conditions": { + "items": [ + { + "items": "minecraft:stone_pickaxe" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.story.upgrade_tools.description" + }, + "icon": { + "count": 1, + "id": "minecraft:stone_pickaxe" + }, + "title": { + "translate": "advancements.story.upgrade_tools.title" + } + }, + "requirements": [ + [ + "stone_pickaxe" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/base.json b/data/minecraft/banner_pattern/base.json new file mode 100644 index 00000000..2b9ca993 --- /dev/null +++ b/data/minecraft/banner_pattern/base.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:base", + "translation_key": "block.minecraft.banner.base" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/border.json b/data/minecraft/banner_pattern/border.json new file mode 100644 index 00000000..02a7140b --- /dev/null +++ b/data/minecraft/banner_pattern/border.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:border", + "translation_key": "block.minecraft.banner.border" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/bricks.json b/data/minecraft/banner_pattern/bricks.json new file mode 100644 index 00000000..96fb4afa --- /dev/null +++ b/data/minecraft/banner_pattern/bricks.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:bricks", + "translation_key": "block.minecraft.banner.bricks" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/circle.json b/data/minecraft/banner_pattern/circle.json new file mode 100644 index 00000000..6be3abb3 --- /dev/null +++ b/data/minecraft/banner_pattern/circle.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:circle", + "translation_key": "block.minecraft.banner.circle" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/creeper.json b/data/minecraft/banner_pattern/creeper.json new file mode 100644 index 00000000..d40f1a04 --- /dev/null +++ b/data/minecraft/banner_pattern/creeper.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:creeper", + "translation_key": "block.minecraft.banner.creeper" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/cross.json b/data/minecraft/banner_pattern/cross.json new file mode 100644 index 00000000..7aaebd17 --- /dev/null +++ b/data/minecraft/banner_pattern/cross.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:cross", + "translation_key": "block.minecraft.banner.cross" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/curly_border.json b/data/minecraft/banner_pattern/curly_border.json new file mode 100644 index 00000000..075a738c --- /dev/null +++ b/data/minecraft/banner_pattern/curly_border.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:curly_border", + "translation_key": "block.minecraft.banner.curly_border" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/diagonal_left.json b/data/minecraft/banner_pattern/diagonal_left.json new file mode 100644 index 00000000..aded65eb --- /dev/null +++ b/data/minecraft/banner_pattern/diagonal_left.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:diagonal_left", + "translation_key": "block.minecraft.banner.diagonal_left" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/diagonal_right.json b/data/minecraft/banner_pattern/diagonal_right.json new file mode 100644 index 00000000..118712e0 --- /dev/null +++ b/data/minecraft/banner_pattern/diagonal_right.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:diagonal_right", + "translation_key": "block.minecraft.banner.diagonal_right" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/diagonal_up_left.json b/data/minecraft/banner_pattern/diagonal_up_left.json new file mode 100644 index 00000000..03568b57 --- /dev/null +++ b/data/minecraft/banner_pattern/diagonal_up_left.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:diagonal_up_left", + "translation_key": "block.minecraft.banner.diagonal_up_left" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/diagonal_up_right.json b/data/minecraft/banner_pattern/diagonal_up_right.json new file mode 100644 index 00000000..fd565eb9 --- /dev/null +++ b/data/minecraft/banner_pattern/diagonal_up_right.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:diagonal_up_right", + "translation_key": "block.minecraft.banner.diagonal_up_right" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/flow.json b/data/minecraft/banner_pattern/flow.json new file mode 100644 index 00000000..00ec9c54 --- /dev/null +++ b/data/minecraft/banner_pattern/flow.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:flow", + "translation_key": "block.minecraft.banner.flow" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/flower.json b/data/minecraft/banner_pattern/flower.json new file mode 100644 index 00000000..61d1dac7 --- /dev/null +++ b/data/minecraft/banner_pattern/flower.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:flower", + "translation_key": "block.minecraft.banner.flower" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/globe.json b/data/minecraft/banner_pattern/globe.json new file mode 100644 index 00000000..8de960df --- /dev/null +++ b/data/minecraft/banner_pattern/globe.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:globe", + "translation_key": "block.minecraft.banner.globe" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/gradient.json b/data/minecraft/banner_pattern/gradient.json new file mode 100644 index 00000000..a006dee9 --- /dev/null +++ b/data/minecraft/banner_pattern/gradient.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:gradient", + "translation_key": "block.minecraft.banner.gradient" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/gradient_up.json b/data/minecraft/banner_pattern/gradient_up.json new file mode 100644 index 00000000..13e3ec05 --- /dev/null +++ b/data/minecraft/banner_pattern/gradient_up.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:gradient_up", + "translation_key": "block.minecraft.banner.gradient_up" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/guster.json b/data/minecraft/banner_pattern/guster.json new file mode 100644 index 00000000..99f7d6b2 --- /dev/null +++ b/data/minecraft/banner_pattern/guster.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:guster", + "translation_key": "block.minecraft.banner.guster" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/half_horizontal.json b/data/minecraft/banner_pattern/half_horizontal.json new file mode 100644 index 00000000..79f588c6 --- /dev/null +++ b/data/minecraft/banner_pattern/half_horizontal.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:half_horizontal", + "translation_key": "block.minecraft.banner.half_horizontal" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/half_horizontal_bottom.json b/data/minecraft/banner_pattern/half_horizontal_bottom.json new file mode 100644 index 00000000..ae9e1b27 --- /dev/null +++ b/data/minecraft/banner_pattern/half_horizontal_bottom.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:half_horizontal_bottom", + "translation_key": "block.minecraft.banner.half_horizontal_bottom" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/half_vertical.json b/data/minecraft/banner_pattern/half_vertical.json new file mode 100644 index 00000000..402cb016 --- /dev/null +++ b/data/minecraft/banner_pattern/half_vertical.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:half_vertical", + "translation_key": "block.minecraft.banner.half_vertical" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/half_vertical_right.json b/data/minecraft/banner_pattern/half_vertical_right.json new file mode 100644 index 00000000..0f3d7226 --- /dev/null +++ b/data/minecraft/banner_pattern/half_vertical_right.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:half_vertical_right", + "translation_key": "block.minecraft.banner.half_vertical_right" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/mojang.json b/data/minecraft/banner_pattern/mojang.json new file mode 100644 index 00000000..fb8de92c --- /dev/null +++ b/data/minecraft/banner_pattern/mojang.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:mojang", + "translation_key": "block.minecraft.banner.mojang" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/piglin.json b/data/minecraft/banner_pattern/piglin.json new file mode 100644 index 00000000..7250324f --- /dev/null +++ b/data/minecraft/banner_pattern/piglin.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:piglin", + "translation_key": "block.minecraft.banner.piglin" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/rhombus.json b/data/minecraft/banner_pattern/rhombus.json new file mode 100644 index 00000000..445cc9c0 --- /dev/null +++ b/data/minecraft/banner_pattern/rhombus.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:rhombus", + "translation_key": "block.minecraft.banner.rhombus" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/skull.json b/data/minecraft/banner_pattern/skull.json new file mode 100644 index 00000000..10476189 --- /dev/null +++ b/data/minecraft/banner_pattern/skull.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:skull", + "translation_key": "block.minecraft.banner.skull" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/small_stripes.json b/data/minecraft/banner_pattern/small_stripes.json new file mode 100644 index 00000000..fd76fc03 --- /dev/null +++ b/data/minecraft/banner_pattern/small_stripes.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:small_stripes", + "translation_key": "block.minecraft.banner.small_stripes" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/square_bottom_left.json b/data/minecraft/banner_pattern/square_bottom_left.json new file mode 100644 index 00000000..f7376d61 --- /dev/null +++ b/data/minecraft/banner_pattern/square_bottom_left.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:square_bottom_left", + "translation_key": "block.minecraft.banner.square_bottom_left" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/square_bottom_right.json b/data/minecraft/banner_pattern/square_bottom_right.json new file mode 100644 index 00000000..b78aafa5 --- /dev/null +++ b/data/minecraft/banner_pattern/square_bottom_right.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:square_bottom_right", + "translation_key": "block.minecraft.banner.square_bottom_right" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/square_top_left.json b/data/minecraft/banner_pattern/square_top_left.json new file mode 100644 index 00000000..a1505ad0 --- /dev/null +++ b/data/minecraft/banner_pattern/square_top_left.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:square_top_left", + "translation_key": "block.minecraft.banner.square_top_left" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/square_top_right.json b/data/minecraft/banner_pattern/square_top_right.json new file mode 100644 index 00000000..3b099655 --- /dev/null +++ b/data/minecraft/banner_pattern/square_top_right.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:square_top_right", + "translation_key": "block.minecraft.banner.square_top_right" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/straight_cross.json b/data/minecraft/banner_pattern/straight_cross.json new file mode 100644 index 00000000..8df6cdc1 --- /dev/null +++ b/data/minecraft/banner_pattern/straight_cross.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:straight_cross", + "translation_key": "block.minecraft.banner.straight_cross" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_bottom.json b/data/minecraft/banner_pattern/stripe_bottom.json new file mode 100644 index 00000000..0aa50a51 --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_bottom.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_bottom", + "translation_key": "block.minecraft.banner.stripe_bottom" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_center.json b/data/minecraft/banner_pattern/stripe_center.json new file mode 100644 index 00000000..98fc7aba --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_center.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_center", + "translation_key": "block.minecraft.banner.stripe_center" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_downleft.json b/data/minecraft/banner_pattern/stripe_downleft.json new file mode 100644 index 00000000..4034606d --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_downleft.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_downleft", + "translation_key": "block.minecraft.banner.stripe_downleft" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_downright.json b/data/minecraft/banner_pattern/stripe_downright.json new file mode 100644 index 00000000..3d5d1858 --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_downright.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_downright", + "translation_key": "block.minecraft.banner.stripe_downright" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_left.json b/data/minecraft/banner_pattern/stripe_left.json new file mode 100644 index 00000000..e47d144c --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_left.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_left", + "translation_key": "block.minecraft.banner.stripe_left" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_middle.json b/data/minecraft/banner_pattern/stripe_middle.json new file mode 100644 index 00000000..2a45a922 --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_middle.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_middle", + "translation_key": "block.minecraft.banner.stripe_middle" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_right.json b/data/minecraft/banner_pattern/stripe_right.json new file mode 100644 index 00000000..d36b02ae --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_right.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_right", + "translation_key": "block.minecraft.banner.stripe_right" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/stripe_top.json b/data/minecraft/banner_pattern/stripe_top.json new file mode 100644 index 00000000..620c2b58 --- /dev/null +++ b/data/minecraft/banner_pattern/stripe_top.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:stripe_top", + "translation_key": "block.minecraft.banner.stripe_top" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/triangle_bottom.json b/data/minecraft/banner_pattern/triangle_bottom.json new file mode 100644 index 00000000..b6d0952d --- /dev/null +++ b/data/minecraft/banner_pattern/triangle_bottom.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:triangle_bottom", + "translation_key": "block.minecraft.banner.triangle_bottom" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/triangle_top.json b/data/minecraft/banner_pattern/triangle_top.json new file mode 100644 index 00000000..291315d7 --- /dev/null +++ b/data/minecraft/banner_pattern/triangle_top.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:triangle_top", + "translation_key": "block.minecraft.banner.triangle_top" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/triangles_bottom.json b/data/minecraft/banner_pattern/triangles_bottom.json new file mode 100644 index 00000000..b837ad05 --- /dev/null +++ b/data/minecraft/banner_pattern/triangles_bottom.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:triangles_bottom", + "translation_key": "block.minecraft.banner.triangles_bottom" +} \ No newline at end of file diff --git a/data/minecraft/banner_pattern/triangles_top.json b/data/minecraft/banner_pattern/triangles_top.json new file mode 100644 index 00000000..370c045c --- /dev/null +++ b/data/minecraft/banner_pattern/triangles_top.json @@ -0,0 +1,4 @@ +{ + "asset_id": "minecraft:triangles_top", + "translation_key": "block.minecraft.banner.triangles_top" +} \ No newline at end of file diff --git a/data/minecraft/chat_type/chat.json b/data/minecraft/chat_type/chat.json new file mode 100644 index 00000000..f84c68ca --- /dev/null +++ b/data/minecraft/chat_type/chat.json @@ -0,0 +1,16 @@ +{ + "chat": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.text" + }, + "narration": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.text.narrate" + } +} \ No newline at end of file diff --git a/data/minecraft/chat_type/emote_command.json b/data/minecraft/chat_type/emote_command.json new file mode 100644 index 00000000..93aa7a27 --- /dev/null +++ b/data/minecraft/chat_type/emote_command.json @@ -0,0 +1,16 @@ +{ + "chat": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.emote" + }, + "narration": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.emote" + } +} \ No newline at end of file diff --git a/data/minecraft/chat_type/msg_command_incoming.json b/data/minecraft/chat_type/msg_command_incoming.json new file mode 100644 index 00000000..67ed0870 --- /dev/null +++ b/data/minecraft/chat_type/msg_command_incoming.json @@ -0,0 +1,20 @@ +{ + "chat": { + "parameters": [ + "sender", + "content" + ], + "style": { + "color": "gray", + "italic": true + }, + "translation_key": "commands.message.display.incoming" + }, + "narration": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.text.narrate" + } +} \ No newline at end of file diff --git a/data/minecraft/chat_type/msg_command_outgoing.json b/data/minecraft/chat_type/msg_command_outgoing.json new file mode 100644 index 00000000..a8c2eb7f --- /dev/null +++ b/data/minecraft/chat_type/msg_command_outgoing.json @@ -0,0 +1,20 @@ +{ + "chat": { + "parameters": [ + "target", + "content" + ], + "style": { + "color": "gray", + "italic": true + }, + "translation_key": "commands.message.display.outgoing" + }, + "narration": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.text.narrate" + } +} \ No newline at end of file diff --git a/data/minecraft/chat_type/say_command.json b/data/minecraft/chat_type/say_command.json new file mode 100644 index 00000000..8a587a05 --- /dev/null +++ b/data/minecraft/chat_type/say_command.json @@ -0,0 +1,16 @@ +{ + "chat": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.announcement" + }, + "narration": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.text.narrate" + } +} \ No newline at end of file diff --git a/data/minecraft/chat_type/team_msg_command_incoming.json b/data/minecraft/chat_type/team_msg_command_incoming.json new file mode 100644 index 00000000..e25ecedd --- /dev/null +++ b/data/minecraft/chat_type/team_msg_command_incoming.json @@ -0,0 +1,17 @@ +{ + "chat": { + "parameters": [ + "target", + "sender", + "content" + ], + "translation_key": "chat.type.team.text" + }, + "narration": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.text.narrate" + } +} \ No newline at end of file diff --git a/data/minecraft/chat_type/team_msg_command_outgoing.json b/data/minecraft/chat_type/team_msg_command_outgoing.json new file mode 100644 index 00000000..f488846f --- /dev/null +++ b/data/minecraft/chat_type/team_msg_command_outgoing.json @@ -0,0 +1,17 @@ +{ + "chat": { + "parameters": [ + "target", + "sender", + "content" + ], + "translation_key": "chat.type.team.sent" + }, + "narration": { + "parameters": [ + "sender", + "content" + ], + "translation_key": "chat.type.text.narrate" + } +} \ No newline at end of file diff --git a/data/minecraft/damage_type/arrow.json b/data/minecraft/damage_type/arrow.json new file mode 100644 index 00000000..62e94695 --- /dev/null +++ b/data/minecraft/damage_type/arrow.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "arrow", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/bad_respawn_point.json b/data/minecraft/damage_type/bad_respawn_point.json new file mode 100644 index 00000000..0970fd56 --- /dev/null +++ b/data/minecraft/damage_type/bad_respawn_point.json @@ -0,0 +1,6 @@ +{ + "death_message_type": "intentional_game_design", + "exhaustion": 0.1, + "message_id": "badRespawnPoint", + "scaling": "always" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/cactus.json b/data/minecraft/damage_type/cactus.json new file mode 100644 index 00000000..23877ae6 --- /dev/null +++ b/data/minecraft/damage_type/cactus.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "cactus", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/campfire.json b/data/minecraft/damage_type/campfire.json new file mode 100644 index 00000000..53255eed --- /dev/null +++ b/data/minecraft/damage_type/campfire.json @@ -0,0 +1,6 @@ +{ + "effects": "burning", + "exhaustion": 0.1, + "message_id": "inFire", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/cramming.json b/data/minecraft/damage_type/cramming.json new file mode 100644 index 00000000..2dd8c786 --- /dev/null +++ b/data/minecraft/damage_type/cramming.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "cramming", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/dragon_breath.json b/data/minecraft/damage_type/dragon_breath.json new file mode 100644 index 00000000..902f0275 --- /dev/null +++ b/data/minecraft/damage_type/dragon_breath.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "dragonBreath", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/drown.json b/data/minecraft/damage_type/drown.json new file mode 100644 index 00000000..5d1d3ef6 --- /dev/null +++ b/data/minecraft/damage_type/drown.json @@ -0,0 +1,6 @@ +{ + "effects": "drowning", + "exhaustion": 0.0, + "message_id": "drown", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/dry_out.json b/data/minecraft/damage_type/dry_out.json new file mode 100644 index 00000000..2bfa7428 --- /dev/null +++ b/data/minecraft/damage_type/dry_out.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "dryout", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/explosion.json b/data/minecraft/damage_type/explosion.json new file mode 100644 index 00000000..fb4317a3 --- /dev/null +++ b/data/minecraft/damage_type/explosion.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "explosion", + "scaling": "always" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/fall.json b/data/minecraft/damage_type/fall.json new file mode 100644 index 00000000..511ec358 --- /dev/null +++ b/data/minecraft/damage_type/fall.json @@ -0,0 +1,6 @@ +{ + "death_message_type": "fall_variants", + "exhaustion": 0.0, + "message_id": "fall", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/falling_anvil.json b/data/minecraft/damage_type/falling_anvil.json new file mode 100644 index 00000000..7fe7d18c --- /dev/null +++ b/data/minecraft/damage_type/falling_anvil.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "anvil", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/falling_block.json b/data/minecraft/damage_type/falling_block.json new file mode 100644 index 00000000..05599028 --- /dev/null +++ b/data/minecraft/damage_type/falling_block.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "fallingBlock", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/falling_stalactite.json b/data/minecraft/damage_type/falling_stalactite.json new file mode 100644 index 00000000..dab896d8 --- /dev/null +++ b/data/minecraft/damage_type/falling_stalactite.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "fallingStalactite", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/fireball.json b/data/minecraft/damage_type/fireball.json new file mode 100644 index 00000000..48c8e315 --- /dev/null +++ b/data/minecraft/damage_type/fireball.json @@ -0,0 +1,6 @@ +{ + "effects": "burning", + "exhaustion": 0.1, + "message_id": "fireball", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/fireworks.json b/data/minecraft/damage_type/fireworks.json new file mode 100644 index 00000000..0ec54467 --- /dev/null +++ b/data/minecraft/damage_type/fireworks.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "fireworks", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/fly_into_wall.json b/data/minecraft/damage_type/fly_into_wall.json new file mode 100644 index 00000000..649336ee --- /dev/null +++ b/data/minecraft/damage_type/fly_into_wall.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "flyIntoWall", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/freeze.json b/data/minecraft/damage_type/freeze.json new file mode 100644 index 00000000..d4b28da2 --- /dev/null +++ b/data/minecraft/damage_type/freeze.json @@ -0,0 +1,6 @@ +{ + "effects": "freezing", + "exhaustion": 0.0, + "message_id": "freeze", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/generic.json b/data/minecraft/damage_type/generic.json new file mode 100644 index 00000000..3e83b89f --- /dev/null +++ b/data/minecraft/damage_type/generic.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "generic", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/generic_kill.json b/data/minecraft/damage_type/generic_kill.json new file mode 100644 index 00000000..1dc198a9 --- /dev/null +++ b/data/minecraft/damage_type/generic_kill.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "genericKill", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/hot_floor.json b/data/minecraft/damage_type/hot_floor.json new file mode 100644 index 00000000..52f8ac30 --- /dev/null +++ b/data/minecraft/damage_type/hot_floor.json @@ -0,0 +1,6 @@ +{ + "effects": "burning", + "exhaustion": 0.1, + "message_id": "hotFloor", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/in_fire.json b/data/minecraft/damage_type/in_fire.json new file mode 100644 index 00000000..53255eed --- /dev/null +++ b/data/minecraft/damage_type/in_fire.json @@ -0,0 +1,6 @@ +{ + "effects": "burning", + "exhaustion": 0.1, + "message_id": "inFire", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/in_wall.json b/data/minecraft/damage_type/in_wall.json new file mode 100644 index 00000000..8ad45036 --- /dev/null +++ b/data/minecraft/damage_type/in_wall.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "inWall", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/indirect_magic.json b/data/minecraft/damage_type/indirect_magic.json new file mode 100644 index 00000000..86fb3ec9 --- /dev/null +++ b/data/minecraft/damage_type/indirect_magic.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "indirectMagic", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/lava.json b/data/minecraft/damage_type/lava.json new file mode 100644 index 00000000..a164a6a9 --- /dev/null +++ b/data/minecraft/damage_type/lava.json @@ -0,0 +1,6 @@ +{ + "effects": "burning", + "exhaustion": 0.1, + "message_id": "lava", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/lightning_bolt.json b/data/minecraft/damage_type/lightning_bolt.json new file mode 100644 index 00000000..6d302c83 --- /dev/null +++ b/data/minecraft/damage_type/lightning_bolt.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "lightningBolt", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/magic.json b/data/minecraft/damage_type/magic.json new file mode 100644 index 00000000..ef634d5d --- /dev/null +++ b/data/minecraft/damage_type/magic.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "magic", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/mob_attack.json b/data/minecraft/damage_type/mob_attack.json new file mode 100644 index 00000000..e77a1af0 --- /dev/null +++ b/data/minecraft/damage_type/mob_attack.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "mob", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/mob_attack_no_aggro.json b/data/minecraft/damage_type/mob_attack_no_aggro.json new file mode 100644 index 00000000..e77a1af0 --- /dev/null +++ b/data/minecraft/damage_type/mob_attack_no_aggro.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "mob", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/mob_projectile.json b/data/minecraft/damage_type/mob_projectile.json new file mode 100644 index 00000000..e77a1af0 --- /dev/null +++ b/data/minecraft/damage_type/mob_projectile.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "mob", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/on_fire.json b/data/minecraft/damage_type/on_fire.json new file mode 100644 index 00000000..bc19ee2c --- /dev/null +++ b/data/minecraft/damage_type/on_fire.json @@ -0,0 +1,6 @@ +{ + "effects": "burning", + "exhaustion": 0.0, + "message_id": "onFire", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/out_of_world.json b/data/minecraft/damage_type/out_of_world.json new file mode 100644 index 00000000..f67d3f6b --- /dev/null +++ b/data/minecraft/damage_type/out_of_world.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "outOfWorld", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/outside_border.json b/data/minecraft/damage_type/outside_border.json new file mode 100644 index 00000000..09c30641 --- /dev/null +++ b/data/minecraft/damage_type/outside_border.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "outsideBorder", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/player_attack.json b/data/minecraft/damage_type/player_attack.json new file mode 100644 index 00000000..674995e1 --- /dev/null +++ b/data/minecraft/damage_type/player_attack.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "player", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/player_explosion.json b/data/minecraft/damage_type/player_explosion.json new file mode 100644 index 00000000..360c81e2 --- /dev/null +++ b/data/minecraft/damage_type/player_explosion.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "explosion.player", + "scaling": "always" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/sonic_boom.json b/data/minecraft/damage_type/sonic_boom.json new file mode 100644 index 00000000..0959660c --- /dev/null +++ b/data/minecraft/damage_type/sonic_boom.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "sonic_boom", + "scaling": "always" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/spit.json b/data/minecraft/damage_type/spit.json new file mode 100644 index 00000000..e77a1af0 --- /dev/null +++ b/data/minecraft/damage_type/spit.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "mob", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/stalagmite.json b/data/minecraft/damage_type/stalagmite.json new file mode 100644 index 00000000..e9f6146d --- /dev/null +++ b/data/minecraft/damage_type/stalagmite.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "stalagmite", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/starve.json b/data/minecraft/damage_type/starve.json new file mode 100644 index 00000000..41cfca02 --- /dev/null +++ b/data/minecraft/damage_type/starve.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "starve", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/sting.json b/data/minecraft/damage_type/sting.json new file mode 100644 index 00000000..3ddf311b --- /dev/null +++ b/data/minecraft/damage_type/sting.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "sting", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/sweet_berry_bush.json b/data/minecraft/damage_type/sweet_berry_bush.json new file mode 100644 index 00000000..5daa1a6e --- /dev/null +++ b/data/minecraft/damage_type/sweet_berry_bush.json @@ -0,0 +1,6 @@ +{ + "effects": "poking", + "exhaustion": 0.1, + "message_id": "sweetBerryBush", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/thorns.json b/data/minecraft/damage_type/thorns.json new file mode 100644 index 00000000..da7ed2f4 --- /dev/null +++ b/data/minecraft/damage_type/thorns.json @@ -0,0 +1,6 @@ +{ + "effects": "thorns", + "exhaustion": 0.1, + "message_id": "thorns", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/thrown.json b/data/minecraft/damage_type/thrown.json new file mode 100644 index 00000000..2a277af9 --- /dev/null +++ b/data/minecraft/damage_type/thrown.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "thrown", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/trident.json b/data/minecraft/damage_type/trident.json new file mode 100644 index 00000000..0002f823 --- /dev/null +++ b/data/minecraft/damage_type/trident.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "trident", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/unattributed_fireball.json b/data/minecraft/damage_type/unattributed_fireball.json new file mode 100644 index 00000000..02751b6c --- /dev/null +++ b/data/minecraft/damage_type/unattributed_fireball.json @@ -0,0 +1,6 @@ +{ + "effects": "burning", + "exhaustion": 0.1, + "message_id": "onFire", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/wind_charge.json b/data/minecraft/damage_type/wind_charge.json new file mode 100644 index 00000000..e77a1af0 --- /dev/null +++ b/data/minecraft/damage_type/wind_charge.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "mob", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/wither.json b/data/minecraft/damage_type/wither.json new file mode 100644 index 00000000..27776cf4 --- /dev/null +++ b/data/minecraft/damage_type/wither.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.0, + "message_id": "wither", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/damage_type/wither_skull.json b/data/minecraft/damage_type/wither_skull.json new file mode 100644 index 00000000..b216a66e --- /dev/null +++ b/data/minecraft/damage_type/wither_skull.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0.1, + "message_id": "witherSkull", + "scaling": "when_caused_by_living_non_player" +} \ No newline at end of file diff --git a/data/minecraft/datapacks/bundle/data/minecraft/advancement/recipes/tools/bundle.json b/data/minecraft/datapacks/bundle/data/minecraft/advancement/recipes/tools/bundle.json new file mode 100644 index 00000000..5c589f86 --- /dev/null +++ b/data/minecraft/datapacks/bundle/data/minecraft/advancement/recipes/tools/bundle.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_string": { + "conditions": { + "items": [ + { + "items": "minecraft:string" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bundle" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_string" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bundle" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/datapacks/bundle/data/minecraft/recipe/bundle.json b/data/minecraft/datapacks/bundle/data/minecraft/recipe/bundle.json new file mode 100644 index 00000000..12d21d7e --- /dev/null +++ b/data/minecraft/datapacks/bundle/data/minecraft/recipe/bundle.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:rabbit_hide" + }, + "-": { + "item": "minecraft:string" + } + }, + "pattern": [ + "-#-", + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:bundle" + } +} \ No newline at end of file diff --git a/data/minecraft/datapacks/bundle/pack.mcmeta b/data/minecraft/datapacks/bundle/pack.mcmeta new file mode 100644 index 00000000..45188cc8 --- /dev/null +++ b/data/minecraft/datapacks/bundle/pack.mcmeta @@ -0,0 +1,13 @@ +{ + "features": { + "enabled": [ + "minecraft:bundle" + ] + }, + "pack": { + "description": { + "translate": "dataPack.bundle.description" + }, + "pack_format": 48 + } +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_boots_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_boots_4.json new file mode 100644 index 00000000..944667b0 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_boots_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:thorns", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_chestplate_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_chestplate_4.json new file mode 100644 index 00000000..944667b0 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_chestplate_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:thorns", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_chestplate_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_chestplate_5.json new file mode 100644 index 00000000..944667b0 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_chestplate_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:thorns", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_helmet_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_helmet_4.json new file mode 100644 index 00000000..944667b0 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_helmet_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:thorns", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_leggings_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_leggings_4.json new file mode 100644 index 00000000..944667b0 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_leggings_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:thorns", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_leggings_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_leggings_5.json new file mode 100644 index 00000000..944667b0 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/desert_armorer_leggings_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:thorns", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_boots_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_boots_4.json new file mode 100644 index 00000000..0b86b4b9 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_boots_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:unbreaking", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_boots_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_boots_5.json new file mode 100644 index 00000000..f3d02751 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_boots_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:feather_falling", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_chestplate_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_chestplate_4.json new file mode 100644 index 00000000..0b86b4b9 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_chestplate_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:unbreaking", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_helmet_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_helmet_4.json new file mode 100644 index 00000000..0b86b4b9 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_helmet_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:unbreaking", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_helmet_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_helmet_5.json new file mode 100644 index 00000000..633bd7b3 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_helmet_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:projectile_protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_leggings_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_leggings_4.json new file mode 100644 index 00000000..0b86b4b9 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/jungle_armorer_leggings_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:unbreaking", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_boots_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_boots_4.json new file mode 100644 index 00000000..4fff0c88 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_boots_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_boots_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_boots_5.json new file mode 100644 index 00000000..4fff0c88 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_boots_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_chestplate_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_chestplate_4.json new file mode 100644 index 00000000..4fff0c88 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_chestplate_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_helmet_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_helmet_4.json new file mode 100644 index 00000000..4fff0c88 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_helmet_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_leggings_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_leggings_4.json new file mode 100644 index 00000000..4fff0c88 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_leggings_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_leggings_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_leggings_5.json new file mode 100644 index 00000000..4fff0c88 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/plains_armorer_leggings_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_boots_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_boots_4.json new file mode 100644 index 00000000..e9b1cde1 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_boots_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:binding_curse", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_chestplate_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_chestplate_4.json new file mode 100644 index 00000000..e9b1cde1 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_chestplate_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:binding_curse", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_chestplate_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_chestplate_5.json new file mode 100644 index 00000000..e9b1cde1 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_chestplate_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:binding_curse", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_helmet_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_helmet_4.json new file mode 100644 index 00000000..e9b1cde1 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_helmet_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:binding_curse", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_helmet_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_helmet_5.json new file mode 100644 index 00000000..e9b1cde1 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_helmet_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:binding_curse", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_leggings_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_leggings_4.json new file mode 100644 index 00000000..e9b1cde1 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/savanna_armorer_leggings_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:binding_curse", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_boots_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_boots_4.json new file mode 100644 index 00000000..a5849cc5 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_boots_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:frost_walker", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_boots_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_boots_5.json new file mode 100644 index 00000000..a5849cc5 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_boots_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:frost_walker", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_helmet_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_helmet_4.json new file mode 100644 index 00000000..9c3e52b6 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_helmet_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:aqua_affinity", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_helmet_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_helmet_5.json new file mode 100644 index 00000000..9c3e52b6 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/snow_armorer_helmet_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:aqua_affinity", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_boots_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_boots_4.json new file mode 100644 index 00000000..25bca89c --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_boots_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:mending", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_boots_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_boots_5.json new file mode 100644 index 00000000..f52e0700 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_boots_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:depth_strider", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_chestplate_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_chestplate_4.json new file mode 100644 index 00000000..25bca89c --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_chestplate_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:mending", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_helmet_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_helmet_4.json new file mode 100644 index 00000000..25bca89c --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_helmet_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:mending", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_helmet_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_helmet_5.json new file mode 100644 index 00000000..2656909e --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_helmet_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:respiration", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_leggings_4.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_leggings_4.json new file mode 100644 index 00000000..25bca89c --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/swamp_armorer_leggings_4.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:mending", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/taiga_armorer_chestplate_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/taiga_armorer_chestplate_5.json new file mode 100644 index 00000000..cda731bb --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/taiga_armorer_chestplate_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:blast_protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/taiga_armorer_leggings_5.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/taiga_armorer_leggings_5.json new file mode 100644 index 00000000..cda731bb --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/enchantment_provider/trades/taiga_armorer_leggings_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:blast_protection", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/abandoned_mineshaft.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/abandoned_mineshaft.json new file mode 100644 index 00000000..93b3ac11 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/abandoned_mineshaft.json @@ -0,0 +1,338 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple" + }, + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 30 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 5 + }, + { + "type": "minecraft:empty", + "weight": 5 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lapis_lazuli", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glow_berries", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:melon_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beetroot_seeds", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rail", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:powered_rail", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:detector_rail", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:activator_rail", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 16.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:torch", + "weight": 15 + } + ], + "rolls": 3.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:efficiency" + } + ], + "name": "minecraft:book" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/abandoned_mineshaft" +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/ancient_city.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/ancient_city.json new file mode 100644 index 00000000..510050e7 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/ancient_city.json @@ -0,0 +1,440 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:enchanted_golden_apple" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_otherside" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:compass", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sculk_catalyst", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.8 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 50.0, + "min": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_hoe", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lead", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond_horse_armor", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:saddle", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_13", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_cat", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 50.0, + "min": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_leggings", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:swift_sneak" + } + ], + "name": "minecraft:book", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sculk", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sculk_sensor", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:candle", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:amethyst_shard", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:experience_bottle", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glow_berries", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_leggings", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:echo_shard", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:disc_fragment_5", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strong_regeneration" + } + ], + "name": "minecraft:potion", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:book", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:soul_torch", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 6.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 7 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 5.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 71 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:mending" + } + ], + "name": "minecraft:book", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:ward_armor_trim_smithing_template", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:silence_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/ancient_city" +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/desert_pyramid.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/desert_pyramid.json new file mode 100644 index 00000000..99e49106 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/desert_pyramid.json @@ -0,0 +1,291 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 25 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spider_eye", + "weight": 25 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 25 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_horse_armor", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_horse_armor", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_horse_armor", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple", + "weight": 2 + }, + { + "type": "minecraft:empty", + "weight": 15 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gunpowder", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sand", + "weight": 10 + } + ], + "rolls": 4.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:dune_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:unbreaking" + } + ], + "name": "minecraft:book", + "weight": 2 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/desert_pyramid" +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/jungle_temple.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/jungle_temple.json new file mode 100644 index 00000000..996c048e --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/jungle_temple.json @@ -0,0 +1,196 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bamboo", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 16 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 3 + }, + { + "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", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wild_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:unbreaking" + } + ], + "name": "minecraft:book" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/jungle_temple" +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/pillager_outpost.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/pillager_outpost.json new file mode 100644 index 00000000..6d34b74c --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/loot_table/chests/pillager_outpost.json @@ -0,0 +1,253 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crossbow" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:potato", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:carrot", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:dark_oak_log" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:tripwire_hook", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:goat_horn" + } + ], + "functions": [ + { + "function": "minecraft:set_instrument", + "options": "#minecraft:regular_goat_horns" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sentry_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:quick_charge" + } + ], + "name": "minecraft:book", + "weight": 2 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/pillager_outpost" +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/desert_common.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/desert_common.json new file mode 100644 index 00000000..e088c7fc --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/desert_common.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:fire_protection", + "minecraft:thorns", + "minecraft:infinity" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/desert_special.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/desert_special.json new file mode 100644 index 00000000..f585b51f --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/desert_special.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:efficiency" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/jungle_common.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/jungle_common.json new file mode 100644 index 00000000..7b9d6b0f --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/jungle_common.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:feather_falling", + "minecraft:projectile_protection", + "minecraft:power" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/jungle_special.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/jungle_special.json new file mode 100644 index 00000000..03f2f16d --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/jungle_special.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:unbreaking" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/plains_common.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/plains_common.json new file mode 100644 index 00000000..92e5d607 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/plains_common.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:punch", + "minecraft:smite", + "minecraft:bane_of_arthropods" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/plains_special.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/plains_special.json new file mode 100644 index 00000000..64b7b432 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/plains_special.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:protection" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/savanna_common.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/savanna_common.json new file mode 100644 index 00000000..046971a6 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/savanna_common.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:knockback", + "minecraft:binding_curse", + "minecraft:sweeping_edge" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/savanna_special.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/savanna_special.json new file mode 100644 index 00000000..713ad254 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/savanna_special.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:sharpness" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/snow_common.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/snow_common.json new file mode 100644 index 00000000..c9b6fb3a --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/snow_common.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:aqua_affinity", + "minecraft:looting", + "minecraft:frost_walker" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/snow_special.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/snow_special.json new file mode 100644 index 00000000..9fe019a9 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/snow_special.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:silk_touch" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/swamp_common.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/swamp_common.json new file mode 100644 index 00000000..d2cb6a75 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/swamp_common.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:depth_strider", + "minecraft:respiration", + "minecraft:vanishing_curse" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/swamp_special.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/swamp_special.json new file mode 100644 index 00000000..8d29b6be --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/swamp_special.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mending" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/taiga_common.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/taiga_common.json new file mode 100644 index 00000000..a9ab715c --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/taiga_common.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:blast_protection", + "minecraft:fire_aspect", + "minecraft:flame" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/taiga_special.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/taiga_special.json new file mode 100644 index 00000000..05cde351 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/enchantment/trades/taiga_special.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:fortune" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_desert_village_maps.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_desert_village_maps.json new file mode 100644 index 00000000..ba7efaf3 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_desert_village_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:village_desert" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_jungle_explorer_maps.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_jungle_explorer_maps.json new file mode 100644 index 00000000..ba0e1c3a --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_jungle_explorer_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:jungle_pyramid" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_plains_village_maps.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_plains_village_maps.json new file mode 100644 index 00000000..10f9ba4d --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_plains_village_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:village_plains" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_savanna_village_maps.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_savanna_village_maps.json new file mode 100644 index 00000000..c3bd14d0 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_savanna_village_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:village_savanna" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_snowy_village_maps.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_snowy_village_maps.json new file mode 100644 index 00000000..d9477e5c --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_snowy_village_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:village_snowy" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_swamp_explorer_maps.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_swamp_explorer_maps.json new file mode 100644 index 00000000..69fd4a7f --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_swamp_explorer_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:swamp_hut" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_taiga_village_maps.json b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_taiga_village_maps.json new file mode 100644 index 00000000..e74218b1 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/data/minecraft/tags/worldgen/structure/on_taiga_village_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:village_taiga" + ] +} \ No newline at end of file diff --git a/data/minecraft/datapacks/trade_rebalance/pack.mcmeta b/data/minecraft/datapacks/trade_rebalance/pack.mcmeta new file mode 100644 index 00000000..91bcb789 --- /dev/null +++ b/data/minecraft/datapacks/trade_rebalance/pack.mcmeta @@ -0,0 +1,13 @@ +{ + "features": { + "enabled": [ + "minecraft:trade_rebalance" + ] + }, + "pack": { + "description": { + "translate": "dataPack.trade_rebalance.description" + }, + "pack_format": 48 + } +} \ No newline at end of file diff --git a/data/minecraft/dimension_type/overworld.json b/data/minecraft/dimension_type/overworld.json new file mode 100644 index 00000000..f147a128 --- /dev/null +++ b/data/minecraft/dimension_type/overworld.json @@ -0,0 +1,23 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "minecraft:overworld", + "has_ceiling": false, + "has_raids": true, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 0, + "monster_spawn_light_level": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 0 + }, + "natural": true, + "piglin_safe": false, + "respawn_anchor_works": 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 00000000..5a819fb0 --- /dev/null +++ b/data/minecraft/dimension_type/overworld_caves.json @@ -0,0 +1,23 @@ +{ + "ambient_light": 0.0, + "bed_works": true, + "coordinate_scale": 1.0, + "effects": "minecraft:overworld", + "has_ceiling": true, + "has_raids": true, + "has_skylight": true, + "height": 384, + "infiniburn": "#minecraft:infiniburn_overworld", + "logical_height": 384, + "min_y": -64, + "monster_spawn_block_light_limit": 0, + "monster_spawn_light_level": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 0 + }, + "natural": true, + "piglin_safe": false, + "respawn_anchor_works": false, + "ultrawarm": false +} \ No newline at end of file diff --git a/data/minecraft/dimension_type/the_end.json b/data/minecraft/dimension_type/the_end.json new file mode 100644 index 00000000..7c6710c1 --- /dev/null +++ b/data/minecraft/dimension_type/the_end.json @@ -0,0 +1,24 @@ +{ + "ambient_light": 0.0, + "bed_works": false, + "coordinate_scale": 1.0, + "effects": "minecraft:the_end", + "fixed_time": 6000, + "has_ceiling": false, + "has_raids": true, + "has_skylight": false, + "height": 256, + "infiniburn": "#minecraft:infiniburn_end", + "logical_height": 256, + "min_y": 0, + "monster_spawn_block_light_limit": 0, + "monster_spawn_light_level": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 0 + }, + "natural": false, + "piglin_safe": false, + "respawn_anchor_works": false, + "ultrawarm": false +} \ No newline at end of file diff --git a/data/minecraft/dimension_type/the_nether.json b/data/minecraft/dimension_type/the_nether.json new file mode 100644 index 00000000..2e831883 --- /dev/null +++ b/data/minecraft/dimension_type/the_nether.json @@ -0,0 +1,20 @@ +{ + "ambient_light": 0.1, + "bed_works": false, + "coordinate_scale": 8.0, + "effects": "minecraft:the_nether", + "fixed_time": 18000, + "has_ceiling": true, + "has_raids": false, + "has_skylight": false, + "height": 256, + "infiniburn": "#minecraft:infiniburn_nether", + "logical_height": 128, + "min_y": 0, + "monster_spawn_block_light_limit": 15, + "monster_spawn_light_level": 7, + "natural": false, + "piglin_safe": true, + "respawn_anchor_works": true, + "ultrawarm": true +} \ No newline at end of file diff --git a/data/minecraft/enchantment/aqua_affinity.json b/data/minecraft/enchantment/aqua_affinity.json new file mode 100644 index 00000000..42c54611 --- /dev/null +++ b/data/minecraft/enchantment/aqua_affinity.json @@ -0,0 +1,34 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.aqua_affinity" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 4.0, + "per_level_above_first": 4.0 + }, + "attribute": "minecraft:player.submerged_mining_speed", + "id": "minecraft:enchantment.aqua_affinity", + "operation": "add_multiplied_total" + } + ] + }, + "max_cost": { + "base": 41, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 1, + "per_level_above_first": 0 + }, + "slots": [ + "head" + ], + "supported_items": "#minecraft:enchantable/head_armor", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/bane_of_arthropods.json b/data/minecraft/enchantment/bane_of_arthropods.json new file mode 100644 index 00000000..b42f7202 --- /dev/null +++ b/data/minecraft/enchantment/bane_of_arthropods.json @@ -0,0 +1,79 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.bane_of_arthropods" + }, + "effects": { + "minecraft:damage": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.5, + "per_level_above_first": 2.5 + } + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "#minecraft:sensitive_to_bane_of_arthropods" + } + } + } + ], + "minecraft:post_attack": [ + { + "affected": "victim", + "effect": { + "type": "minecraft:apply_mob_effect", + "max_amplifier": 3.0, + "max_duration": { + "type": "minecraft:linear", + "base": 1.5, + "per_level_above_first": 0.5 + }, + "min_amplifier": 3.0, + "min_duration": 1.5, + "to_apply": "minecraft:slowness" + }, + "enchanted": "attacker", + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "#minecraft:sensitive_to_bane_of_arthropods" + } + }, + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "is_direct": true + } + } + ] + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/damage", + "max_cost": { + "base": 25, + "per_level_above_first": 8 + }, + "max_level": 5, + "min_cost": { + "base": 5, + "per_level_above_first": 8 + }, + "primary_items": "#minecraft:enchantable/sword", + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/weapon", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/binding_curse.json b/data/minecraft/enchantment/binding_curse.json new file mode 100644 index 00000000..69f255ae --- /dev/null +++ b/data/minecraft/enchantment/binding_curse.json @@ -0,0 +1,23 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.binding_curse" + }, + "effects": { + "minecraft:prevent_armor_change": {} + }, + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 25, + "per_level_above_first": 0 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/equippable", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/blast_protection.json b/data/minecraft/enchantment/blast_protection.json new file mode 100644 index 00000000..aa6d78fb --- /dev/null +++ b/data/minecraft/enchantment/blast_protection.json @@ -0,0 +1,62 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.blast_protection" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 0.15, + "per_level_above_first": 0.15 + }, + "attribute": "minecraft:generic.explosion_knockback_resistance", + "id": "minecraft:enchantment.blast_protection", + "operation": "add_value" + } + ], + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_explosion" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 13, + "per_level_above_first": 8 + }, + "max_level": 4, + "min_cost": { + "base": 5, + "per_level_above_first": 8 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/breach.json b/data/minecraft/enchantment/breach.json new file mode 100644 index 00000000..deab4e68 --- /dev/null +++ b/data/minecraft/enchantment/breach.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.breach" + }, + "effects": { + "minecraft:armor_effectiveness": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": -0.15, + "per_level_above_first": -0.15 + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/damage", + "max_cost": { + "base": 65, + "per_level_above_first": 9 + }, + "max_level": 4, + "min_cost": { + "base": 15, + "per_level_above_first": 9 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/mace", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/channeling.json b/data/minecraft/enchantment/channeling.json new file mode 100644 index 00000000..fae5a6b5 --- /dev/null +++ b/data/minecraft/enchantment/channeling.json @@ -0,0 +1,113 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.channeling" + }, + "effects": { + "minecraft:hit_block": [ + { + "effect": { + "type": "minecraft:all_of", + "effects": [ + { + "type": "minecraft:summon_entity", + "entity": "minecraft:lightning_bolt" + }, + { + "type": "minecraft:play_sound", + "pitch": 1.0, + "sound": "minecraft:item.trident.thunder", + "volume": 5.0 + } + ] + }, + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:weather_check", + "thundering": true + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:trident" + } + }, + { + "condition": "minecraft:location_check", + "predicate": { + "can_see_sky": true + } + }, + { + "block": "minecraft:lightning_rod", + "condition": "minecraft:block_state_property" + } + ] + } + } + ], + "minecraft:post_attack": [ + { + "affected": "victim", + "effect": { + "type": "minecraft:all_of", + "effects": [ + { + "type": "minecraft:summon_entity", + "entity": "minecraft:lightning_bolt" + }, + { + "type": "minecraft:play_sound", + "pitch": 1.0, + "sound": "minecraft:item.trident.thunder", + "volume": 5.0 + } + ] + }, + "enchanted": "attacker", + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:weather_check", + "thundering": true + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "can_see_sky": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "type": "minecraft:trident" + } + } + ] + } + } + ] + }, + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 25, + "per_level_above_first": 0 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/trident", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/density.json b/data/minecraft/enchantment/density.json new file mode 100644 index 00000000..63f74ce2 --- /dev/null +++ b/data/minecraft/enchantment/density.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.density" + }, + "effects": { + "minecraft:smash_damage_per_fallen_block": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 0.5, + "per_level_above_first": 0.5 + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/damage", + "max_cost": { + "base": 25, + "per_level_above_first": 8 + }, + "max_level": 5, + "min_cost": { + "base": 5, + "per_level_above_first": 8 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/mace", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/depth_strider.json b/data/minecraft/enchantment/depth_strider.json new file mode 100644 index 00000000..02397701 --- /dev/null +++ b/data/minecraft/enchantment/depth_strider.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.depth_strider" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 0.33333334, + "per_level_above_first": 0.33333334 + }, + "attribute": "minecraft:generic.water_movement_efficiency", + "id": "minecraft:enchantment.depth_strider", + "operation": "add_value" + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/boots", + "max_cost": { + "base": 25, + "per_level_above_first": 10 + }, + "max_level": 3, + "min_cost": { + "base": 10, + "per_level_above_first": 10 + }, + "slots": [ + "feet" + ], + "supported_items": "#minecraft:enchantable/foot_armor", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/efficiency.json b/data/minecraft/enchantment/efficiency.json new file mode 100644 index 00000000..28ed6e76 --- /dev/null +++ b/data/minecraft/enchantment/efficiency.json @@ -0,0 +1,33 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.minecraft.efficiency" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:levels_squared", + "added": 1.0 + }, + "attribute": "minecraft:player.mining_efficiency", + "id": "minecraft:enchantment.efficiency", + "operation": "add_value" + } + ] + }, + "max_cost": { + "base": 51, + "per_level_above_first": 10 + }, + "max_level": 5, + "min_cost": { + "base": 1, + "per_level_above_first": 10 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/mining", + "weight": 10 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/feather_falling.json b/data/minecraft/enchantment/feather_falling.json new file mode 100644 index 00000000..d69f7430 --- /dev/null +++ b/data/minecraft/enchantment/feather_falling.json @@ -0,0 +1,49 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.feather_falling" + }, + "effects": { + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 3.0, + "per_level_above_first": 3.0 + } + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_fall" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ] + }, + "max_cost": { + "base": 11, + "per_level_above_first": 6 + }, + "max_level": 4, + "min_cost": { + "base": 5, + "per_level_above_first": 6 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/foot_armor", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/fire_aspect.json b/data/minecraft/enchantment/fire_aspect.json new file mode 100644 index 00000000..24f07e84 --- /dev/null +++ b/data/minecraft/enchantment/fire_aspect.json @@ -0,0 +1,43 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.fire_aspect" + }, + "effects": { + "minecraft:post_attack": [ + { + "affected": "victim", + "effect": { + "type": "minecraft:ignite", + "duration": { + "type": "minecraft:linear", + "base": 4.0, + "per_level_above_first": 4.0 + } + }, + "enchanted": "attacker", + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "is_direct": true + } + } + } + ] + }, + "max_cost": { + "base": 60, + "per_level_above_first": 20 + }, + "max_level": 2, + "min_cost": { + "base": 10, + "per_level_above_first": 20 + }, + "primary_items": "#minecraft:enchantable/sword", + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/fire_aspect", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/fire_protection.json b/data/minecraft/enchantment/fire_protection.json new file mode 100644 index 00000000..4769e89e --- /dev/null +++ b/data/minecraft/enchantment/fire_protection.json @@ -0,0 +1,67 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.fire_protection" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": -0.15, + "per_level_above_first": -0.15 + }, + "attribute": "minecraft:generic.burning_time", + "id": "minecraft:enchantment.fire_protection", + "operation": "add_multiplied_base" + } + ], + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + }, + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_fire" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + ] + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 18, + "per_level_above_first": 8 + }, + "max_level": 4, + "min_cost": { + "base": 10, + "per_level_above_first": 8 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/flame.json b/data/minecraft/enchantment/flame.json new file mode 100644 index 00000000..7b9af5ce --- /dev/null +++ b/data/minecraft/enchantment/flame.json @@ -0,0 +1,30 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.flame" + }, + "effects": { + "minecraft:projectile_spawned": [ + { + "effect": { + "type": "minecraft:ignite", + "duration": 100.0 + } + } + ] + }, + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 20, + "per_level_above_first": 0 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/bow", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/fortune.json b/data/minecraft/enchantment/fortune.json new file mode 100644 index 00000000..3d292758 --- /dev/null +++ b/data/minecraft/enchantment/fortune.json @@ -0,0 +1,21 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.fortune" + }, + "exclusive_set": "#minecraft:exclusive_set/mining", + "max_cost": { + "base": 65, + "per_level_above_first": 9 + }, + "max_level": 3, + "min_cost": { + "base": 15, + "per_level_above_first": 9 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/mining_loot", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/frost_walker.json b/data/minecraft/enchantment/frost_walker.json new file mode 100644 index 00000000..d4313f5e --- /dev/null +++ b/data/minecraft/enchantment/frost_walker.json @@ -0,0 +1,110 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.frost_walker" + }, + "effects": { + "minecraft:damage_immunity": [ + { + "effect": {}, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:burn_from_stepping" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ], + "minecraft:location_changed": [ + { + "effect": { + "type": "minecraft:replace_disk", + "block_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:frosted_ice", + "Properties": { + "age": "0" + } + } + }, + "height": 1.0, + "offset": [ + 0, + -1, + 0 + ], + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_block_tag", + "offset": [ + 0, + 1, + 0 + ], + "tag": "minecraft:air" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:water" + }, + { + "type": "minecraft:matching_fluids", + "fluids": "minecraft:water" + }, + { + "type": "minecraft:unobstructed" + } + ] + }, + "radius": { + "type": "minecraft:clamped", + "max": 16.0, + "min": 0.0, + "value": { + "type": "minecraft:linear", + "base": 3.0, + "per_level_above_first": 1.0 + } + }, + "trigger_game_event": "minecraft:block_place" + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_ground": true + } + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/boots", + "max_cost": { + "base": 25, + "per_level_above_first": 10 + }, + "max_level": 2, + "min_cost": { + "base": 10, + "per_level_above_first": 10 + }, + "slots": [ + "feet" + ], + "supported_items": "#minecraft:enchantable/foot_armor", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/impaling.json b/data/minecraft/enchantment/impaling.json new file mode 100644 index 00000000..8c1bcf5f --- /dev/null +++ b/data/minecraft/enchantment/impaling.json @@ -0,0 +1,42 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.impaling" + }, + "effects": { + "minecraft:damage": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.5, + "per_level_above_first": 2.5 + } + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "#minecraft:sensitive_to_impaling" + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/damage", + "max_cost": { + "base": 21, + "per_level_above_first": 8 + }, + "max_level": 5, + "min_cost": { + "base": 1, + "per_level_above_first": 8 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/trident", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/infinity.json b/data/minecraft/enchantment/infinity.json new file mode 100644 index 00000000..6bb53bed --- /dev/null +++ b/data/minecraft/enchantment/infinity.json @@ -0,0 +1,37 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.infinity" + }, + "effects": { + "minecraft:ammo_use": [ + { + "effect": { + "type": "minecraft:set", + "value": 0.0 + }, + "requirements": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:arrow" + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/bow", + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 20, + "per_level_above_first": 0 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/bow", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/knockback.json b/data/minecraft/enchantment/knockback.json new file mode 100644 index 00000000..be62e78e --- /dev/null +++ b/data/minecraft/enchantment/knockback.json @@ -0,0 +1,34 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.knockback" + }, + "effects": { + "minecraft:knockback": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + } + } + ] + }, + "max_cost": { + "base": 55, + "per_level_above_first": 20 + }, + "max_level": 2, + "min_cost": { + "base": 5, + "per_level_above_first": 20 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/sword", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/looting.json b/data/minecraft/enchantment/looting.json new file mode 100644 index 00000000..f90103bb --- /dev/null +++ b/data/minecraft/enchantment/looting.json @@ -0,0 +1,42 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.looting" + }, + "effects": { + "minecraft:equipment_drops": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 0.01, + "per_level_above_first": 0.01 + } + }, + "enchanted": "attacker", + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "attacker", + "predicate": { + "type": "minecraft:player" + } + } + } + ] + }, + "max_cost": { + "base": 65, + "per_level_above_first": 9 + }, + "max_level": 3, + "min_cost": { + "base": 15, + "per_level_above_first": 9 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/sword", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/loyalty.json b/data/minecraft/enchantment/loyalty.json new file mode 100644 index 00000000..c0769ed3 --- /dev/null +++ b/data/minecraft/enchantment/loyalty.json @@ -0,0 +1,34 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.loyalty" + }, + "effects": { + "minecraft:trident_return_acceleration": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + } + } + ] + }, + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 3, + "min_cost": { + "base": 12, + "per_level_above_first": 7 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/trident", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/luck_of_the_sea.json b/data/minecraft/enchantment/luck_of_the_sea.json new file mode 100644 index 00000000..74b8e792 --- /dev/null +++ b/data/minecraft/enchantment/luck_of_the_sea.json @@ -0,0 +1,34 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.luck_of_the_sea" + }, + "effects": { + "minecraft:fishing_luck_bonus": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + } + } + ] + }, + "max_cost": { + "base": 65, + "per_level_above_first": 9 + }, + "max_level": 3, + "min_cost": { + "base": 15, + "per_level_above_first": 9 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/fishing", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/lure.json b/data/minecraft/enchantment/lure.json new file mode 100644 index 00000000..1df8c10a --- /dev/null +++ b/data/minecraft/enchantment/lure.json @@ -0,0 +1,34 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.lure" + }, + "effects": { + "minecraft:fishing_time_reduction": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 5.0, + "per_level_above_first": 5.0 + } + } + } + ] + }, + "max_cost": { + "base": 65, + "per_level_above_first": 9 + }, + "max_level": 3, + "min_cost": { + "base": 15, + "per_level_above_first": 9 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/fishing", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/mending.json b/data/minecraft/enchantment/mending.json new file mode 100644 index 00000000..f762c8d3 --- /dev/null +++ b/data/minecraft/enchantment/mending.json @@ -0,0 +1,30 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.mending" + }, + "effects": { + "minecraft:repair_with_xp": [ + { + "effect": { + "type": "minecraft:multiply", + "factor": 2.0 + } + } + ] + }, + "max_cost": { + "base": 75, + "per_level_above_first": 25 + }, + "max_level": 1, + "min_cost": { + "base": 25, + "per_level_above_first": 25 + }, + "slots": [ + "any" + ], + "supported_items": "#minecraft:enchantable/durability", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/multishot.json b/data/minecraft/enchantment/multishot.json new file mode 100644 index 00000000..b656f911 --- /dev/null +++ b/data/minecraft/enchantment/multishot.json @@ -0,0 +1,47 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.multishot" + }, + "effects": { + "minecraft:projectile_count": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + } + } + ], + "minecraft:projectile_spread": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 10.0, + "per_level_above_first": 10.0 + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/crossbow", + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 20, + "per_level_above_first": 0 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/crossbow", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/piercing.json b/data/minecraft/enchantment/piercing.json new file mode 100644 index 00000000..29ebfa65 --- /dev/null +++ b/data/minecraft/enchantment/piercing.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.minecraft.piercing" + }, + "effects": { + "minecraft:projectile_piercing": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/crossbow", + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 4, + "min_cost": { + "base": 1, + "per_level_above_first": 10 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/crossbow", + "weight": 10 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/power.json b/data/minecraft/enchantment/power.json new file mode 100644 index 00000000..9f86f0e6 --- /dev/null +++ b/data/minecraft/enchantment/power.json @@ -0,0 +1,41 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.minecraft.power" + }, + "effects": { + "minecraft:damage": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 0.5, + "per_level_above_first": 0.5 + } + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "type": "#minecraft:arrows" + } + } + } + ] + }, + "max_cost": { + "base": 16, + "per_level_above_first": 10 + }, + "max_level": 5, + "min_cost": { + "base": 1, + "per_level_above_first": 10 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/bow", + "weight": 10 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/projectile_protection.json b/data/minecraft/enchantment/projectile_protection.json new file mode 100644 index 00000000..52431649 --- /dev/null +++ b/data/minecraft/enchantment/projectile_protection.json @@ -0,0 +1,50 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.projectile_protection" + }, + "effects": { + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_projectile" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 9, + "per_level_above_first": 6 + }, + "max_level": 4, + "min_cost": { + "base": 3, + "per_level_above_first": 6 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/protection.json b/data/minecraft/enchantment/protection.json new file mode 100644 index 00000000..97b24aa8 --- /dev/null +++ b/data/minecraft/enchantment/protection.json @@ -0,0 +1,46 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.minecraft.protection" + }, + "effects": { + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/armor", + "max_cost": { + "base": 12, + "per_level_above_first": 11 + }, + "max_level": 4, + "min_cost": { + "base": 1, + "per_level_above_first": 11 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 10 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/punch.json b/data/minecraft/enchantment/punch.json new file mode 100644 index 00000000..f2db6d38 --- /dev/null +++ b/data/minecraft/enchantment/punch.json @@ -0,0 +1,41 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.punch" + }, + "effects": { + "minecraft:knockback": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "type": "#minecraft:arrows" + } + } + } + ] + }, + "max_cost": { + "base": 37, + "per_level_above_first": 20 + }, + "max_level": 2, + "min_cost": { + "base": 12, + "per_level_above_first": 20 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/bow", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/quick_charge.json b/data/minecraft/enchantment/quick_charge.json new file mode 100644 index 00000000..5b320d77 --- /dev/null +++ b/data/minecraft/enchantment/quick_charge.json @@ -0,0 +1,45 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.quick_charge" + }, + "effects": { + "minecraft:crossbow_charge_time": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": -0.25, + "per_level_above_first": -0.25 + } + }, + "minecraft:crossbow_charging_sounds": [ + { + "end": "minecraft:item.crossbow.loading_end", + "start": "minecraft:item.crossbow.quick_charge_1" + }, + { + "end": "minecraft:item.crossbow.loading_end", + "start": "minecraft:item.crossbow.quick_charge_2" + }, + { + "end": "minecraft:item.crossbow.loading_end", + "start": "minecraft:item.crossbow.quick_charge_3" + } + ] + }, + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 3, + "min_cost": { + "base": 12, + "per_level_above_first": 20 + }, + "slots": [ + "mainhand", + "offhand" + ], + "supported_items": "#minecraft:enchantable/crossbow", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/respiration.json b/data/minecraft/enchantment/respiration.json new file mode 100644 index 00000000..6447425d --- /dev/null +++ b/data/minecraft/enchantment/respiration.json @@ -0,0 +1,34 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.respiration" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + }, + "attribute": "minecraft:generic.oxygen_bonus", + "id": "minecraft:enchantment.respiration", + "operation": "add_value" + } + ] + }, + "max_cost": { + "base": 40, + "per_level_above_first": 10 + }, + "max_level": 3, + "min_cost": { + "base": 10, + "per_level_above_first": 10 + }, + "slots": [ + "head" + ], + "supported_items": "#minecraft:enchantable/head_armor", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/riptide.json b/data/minecraft/enchantment/riptide.json new file mode 100644 index 00000000..7049ff72 --- /dev/null +++ b/data/minecraft/enchantment/riptide.json @@ -0,0 +1,36 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.riptide" + }, + "effects": { + "minecraft:trident_sound": [ + "minecraft:item.trident.riptide_1", + "minecraft:item.trident.riptide_2", + "minecraft:item.trident.riptide_3" + ], + "minecraft:trident_spin_attack_strength": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.5, + "per_level_above_first": 0.75 + } + } + }, + "exclusive_set": "#minecraft:exclusive_set/riptide", + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 3, + "min_cost": { + "base": 17, + "per_level_above_first": 7 + }, + "slots": [ + "hand" + ], + "supported_items": "#minecraft:enchantable/trident", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/sharpness.json b/data/minecraft/enchantment/sharpness.json new file mode 100644 index 00000000..db64004b --- /dev/null +++ b/data/minecraft/enchantment/sharpness.json @@ -0,0 +1,36 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.minecraft.sharpness" + }, + "effects": { + "minecraft:damage": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 0.5 + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/damage", + "max_cost": { + "base": 21, + "per_level_above_first": 11 + }, + "max_level": 5, + "min_cost": { + "base": 1, + "per_level_above_first": 11 + }, + "primary_items": "#minecraft:enchantable/sword", + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/sharp_weapon", + "weight": 10 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/silk_touch.json b/data/minecraft/enchantment/silk_touch.json new file mode 100644 index 00000000..1e00ee8c --- /dev/null +++ b/data/minecraft/enchantment/silk_touch.json @@ -0,0 +1,31 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.silk_touch" + }, + "effects": { + "minecraft:block_experience": [ + { + "effect": { + "type": "minecraft:set", + "value": 0.0 + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/mining", + "max_cost": { + "base": 65, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 15, + "per_level_above_first": 0 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/mining_loot", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/smite.json b/data/minecraft/enchantment/smite.json new file mode 100644 index 00000000..4586d33b --- /dev/null +++ b/data/minecraft/enchantment/smite.json @@ -0,0 +1,43 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.smite" + }, + "effects": { + "minecraft:damage": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 2.5, + "per_level_above_first": 2.5 + } + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "#minecraft:sensitive_to_smite" + } + } + } + ] + }, + "exclusive_set": "#minecraft:exclusive_set/damage", + "max_cost": { + "base": 25, + "per_level_above_first": 8 + }, + "max_level": 5, + "min_cost": { + "base": 5, + "per_level_above_first": 8 + }, + "primary_items": "#minecraft:enchantable/sword", + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/weapon", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/soul_speed.json b/data/minecraft/enchantment/soul_speed.json new file mode 100644 index 00000000..aac36c45 --- /dev/null +++ b/data/minecraft/enchantment/soul_speed.json @@ -0,0 +1,262 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.soul_speed" + }, + "effects": { + "minecraft:location_changed": [ + { + "effect": { + "type": "minecraft:attribute", + "amount": { + "type": "minecraft:linear", + "base": 0.0405, + "per_level_above_first": 0.0105 + }, + "attribute": "minecraft:generic.movement_speed", + "id": "minecraft:enchantment.soul_speed", + "operation": "add_value" + }, + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "vehicle": {} + } + } + }, + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:all_of", + "terms": [ + { + "active": true, + "condition": "minecraft:enchantment_active_check" + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_flying": false + } + } + }, + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "movement_affected_by": { + "block": { + "blocks": "#minecraft:soul_speed_blocks" + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_ground": false + } + } + } + ] + } + ] + }, + { + "condition": "minecraft:all_of", + "terms": [ + { + "active": false, + "condition": "minecraft:enchantment_active_check" + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_flying": false + }, + "movement_affected_by": { + "block": { + "blocks": "#minecraft:soul_speed_blocks" + } + } + } + } + ] + } + ] + } + ] + } + }, + { + "effect": { + "type": "minecraft:attribute", + "amount": 1.0, + "attribute": "minecraft:generic.movement_efficiency", + "id": "minecraft:enchantment.soul_speed", + "operation": "add_value" + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "movement_affected_by": { + "block": { + "blocks": "#minecraft:soul_speed_blocks" + } + } + } + } + }, + { + "effect": { + "type": "minecraft:damage_item", + "amount": 1.0 + }, + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "chance": { + "type": "minecraft:enchantment_level", + "amount": 0.04 + }, + "condition": "minecraft:random_chance" + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_ground": true + }, + "movement_affected_by": { + "block": { + "blocks": "#minecraft:soul_speed_blocks" + } + } + } + } + ] + } + } + ], + "minecraft:tick": [ + { + "effect": { + "type": "minecraft:spawn_particles", + "horizontal_position": { + "type": "in_bounding_box" + }, + "horizontal_velocity": { + "movement_scale": -0.2 + }, + "particle": { + "type": "minecraft:soul" + }, + "speed": 1.0, + "vertical_position": { + "type": "entity_position", + "offset": 0.1 + }, + "vertical_velocity": { + "base": 0.1 + } + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_flying": false, + "is_on_ground": true + }, + "movement": { + "horizontal_speed": { + "min": 9.999999747378752E-6 + } + }, + "movement_affected_by": { + "block": { + "blocks": "#minecraft:soul_speed_blocks" + } + }, + "periodic_tick": 5 + } + } + }, + { + "effect": { + "type": "minecraft:play_sound", + "pitch": { + "type": "minecraft:uniform", + "max_exclusive": 1.0, + "min_inclusive": 0.6 + }, + "sound": "minecraft:particle.soul_escape", + "volume": 0.6 + }, + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "chance": 0.35, + "condition": "minecraft:random_chance" + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_flying": false, + "is_on_ground": true + }, + "movement": { + "horizontal_speed": { + "min": 9.999999747378752E-6 + } + }, + "movement_affected_by": { + "block": { + "blocks": "#minecraft:soul_speed_blocks" + } + }, + "periodic_tick": 5 + } + } + ] + } + } + ] + }, + "max_cost": { + "base": 25, + "per_level_above_first": 10 + }, + "max_level": 3, + "min_cost": { + "base": 10, + "per_level_above_first": 10 + }, + "slots": [ + "feet" + ], + "supported_items": "#minecraft:enchantable/foot_armor", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/sweeping_edge.json b/data/minecraft/enchantment/sweeping_edge.json new file mode 100644 index 00000000..708011c3 --- /dev/null +++ b/data/minecraft/enchantment/sweeping_edge.json @@ -0,0 +1,42 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.sweeping_edge" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:fraction", + "denominator": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 1.0 + }, + "numerator": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + }, + "attribute": "minecraft:player.sweeping_damage_ratio", + "id": "minecraft:enchantment.sweeping_edge", + "operation": "add_value" + } + ] + }, + "max_cost": { + "base": 20, + "per_level_above_first": 9 + }, + "max_level": 3, + "min_cost": { + "base": 5, + "per_level_above_first": 9 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/sword", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/swift_sneak.json b/data/minecraft/enchantment/swift_sneak.json new file mode 100644 index 00000000..0809bb5d --- /dev/null +++ b/data/minecraft/enchantment/swift_sneak.json @@ -0,0 +1,34 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.swift_sneak" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 0.15, + "per_level_above_first": 0.15 + }, + "attribute": "minecraft:player.sneaking_speed", + "id": "minecraft:enchantment.swift_sneak", + "operation": "add_value" + } + ] + }, + "max_cost": { + "base": 75, + "per_level_above_first": 25 + }, + "max_level": 3, + "min_cost": { + "base": 25, + "per_level_above_first": 25 + }, + "slots": [ + "legs" + ], + "supported_items": "#minecraft:enchantable/leg_armor", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/thorns.json b/data/minecraft/enchantment/thorns.json new file mode 100644 index 00000000..0f0d4c38 --- /dev/null +++ b/data/minecraft/enchantment/thorns.json @@ -0,0 +1,55 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.thorns" + }, + "effects": { + "minecraft:post_attack": [ + { + "affected": "attacker", + "effect": { + "type": "minecraft:all_of", + "effects": [ + { + "type": "minecraft:damage_entity", + "damage_type": "minecraft:thorns", + "max_damage": 5.0, + "min_damage": 1.0 + }, + { + "type": "minecraft:damage_item", + "amount": 2.0 + } + ] + }, + "enchanted": "victim", + "requirements": { + "chance": { + "type": "minecraft:enchantment_level", + "amount": { + "type": "minecraft:linear", + "base": 0.15, + "per_level_above_first": 0.15 + } + }, + "condition": "minecraft:random_chance" + } + } + ] + }, + "max_cost": { + "base": 60, + "per_level_above_first": 20 + }, + "max_level": 3, + "min_cost": { + "base": 10, + "per_level_above_first": 20 + }, + "primary_items": "#minecraft:enchantable/chest_armor", + "slots": [ + "any" + ], + "supported_items": "#minecraft:enchantable/armor", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/unbreaking.json b/data/minecraft/enchantment/unbreaking.json new file mode 100644 index 00000000..6028e42f --- /dev/null +++ b/data/minecraft/enchantment/unbreaking.json @@ -0,0 +1,75 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.unbreaking" + }, + "effects": { + "minecraft:item_damage": [ + { + "effect": { + "type": "minecraft:remove_binomial", + "chance": { + "type": "minecraft:fraction", + "denominator": { + "type": "minecraft:linear", + "base": 10.0, + "per_level_above_first": 5.0 + }, + "numerator": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + } + }, + "requirements": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:enchantable/armor" + } + } + }, + { + "effect": { + "type": "minecraft:remove_binomial", + "chance": { + "type": "minecraft:fraction", + "denominator": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 1.0 + }, + "numerator": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + } + }, + "requirements": { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:enchantable/armor" + } + } + } + } + ] + }, + "max_cost": { + "base": 55, + "per_level_above_first": 8 + }, + "max_level": 3, + "min_cost": { + "base": 5, + "per_level_above_first": 8 + }, + "slots": [ + "any" + ], + "supported_items": "#minecraft:enchantable/durability", + "weight": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/vanishing_curse.json b/data/minecraft/enchantment/vanishing_curse.json new file mode 100644 index 00000000..c82f1191 --- /dev/null +++ b/data/minecraft/enchantment/vanishing_curse.json @@ -0,0 +1,23 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.vanishing_curse" + }, + "effects": { + "minecraft:prevent_equipment_drop": {} + }, + "max_cost": { + "base": 50, + "per_level_above_first": 0 + }, + "max_level": 1, + "min_cost": { + "base": 25, + "per_level_above_first": 0 + }, + "slots": [ + "any" + ], + "supported_items": "#minecraft:enchantable/vanishing", + "weight": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment/wind_burst.json b/data/minecraft/enchantment/wind_burst.json new file mode 100644 index 00000000..cdc33187 --- /dev/null +++ b/data/minecraft/enchantment/wind_burst.json @@ -0,0 +1,68 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.wind_burst" + }, + "effects": { + "minecraft:post_attack": [ + { + "affected": "attacker", + "effect": { + "type": "minecraft:explode", + "block_interaction": "trigger", + "immune_blocks": "#minecraft:blocks_wind_charge_explosions", + "knockback_multiplier": { + "type": "minecraft:lookup", + "fallback": { + "type": "minecraft:linear", + "base": 1.5, + "per_level_above_first": 0.35 + }, + "values": [ + 1.2, + 1.75, + 2.2 + ] + }, + "large_particle": { + "type": "minecraft:gust_emitter_large" + }, + "radius": 3.5, + "small_particle": { + "type": "minecraft:gust_emitter_small" + }, + "sound": "minecraft:entity.wind_charge.wind_burst" + }, + "enchanted": "attacker", + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "flags": { + "is_flying": false + }, + "movement": { + "fall_distance": { + "min": 1.5 + } + } + } + } + } + ] + }, + "max_cost": { + "base": 65, + "per_level_above_first": 9 + }, + "max_level": 3, + "min_cost": { + "base": 15, + "per_level_above_first": 9 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#minecraft:enchantable/mace", + "weight": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment_provider/enderman_loot_drop.json b/data/minecraft/enchantment_provider/enderman_loot_drop.json new file mode 100644 index 00000000..3c19ad13 --- /dev/null +++ b/data/minecraft/enchantment_provider/enderman_loot_drop.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:silk_touch", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment_provider/mob_spawn_equipment.json b/data/minecraft/enchantment_provider/mob_spawn_equipment.json new file mode 100644 index 00000000..7a5e5cd9 --- /dev/null +++ b/data/minecraft/enchantment_provider/mob_spawn_equipment.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:by_cost_with_difficulty", + "enchantments": "#minecraft:on_mob_spawn_equipment", + "max_cost_span": 17, + "min_cost": 5 +} \ No newline at end of file diff --git a/data/minecraft/enchantment_provider/pillager_spawn_crossbow.json b/data/minecraft/enchantment_provider/pillager_spawn_crossbow.json new file mode 100644 index 00000000..b3633f37 --- /dev/null +++ b/data/minecraft/enchantment_provider/pillager_spawn_crossbow.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:piercing", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment_provider/raid/pillager_post_wave_3.json b/data/minecraft/enchantment_provider/raid/pillager_post_wave_3.json new file mode 100644 index 00000000..aaa4aeba --- /dev/null +++ b/data/minecraft/enchantment_provider/raid/pillager_post_wave_3.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:quick_charge", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment_provider/raid/pillager_post_wave_5.json b/data/minecraft/enchantment_provider/raid/pillager_post_wave_5.json new file mode 100644 index 00000000..b6f00cad --- /dev/null +++ b/data/minecraft/enchantment_provider/raid/pillager_post_wave_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:quick_charge", + "level": 2 +} \ No newline at end of file diff --git a/data/minecraft/enchantment_provider/raid/vindicator.json b/data/minecraft/enchantment_provider/raid/vindicator.json new file mode 100644 index 00000000..1ce996f0 --- /dev/null +++ b/data/minecraft/enchantment_provider/raid/vindicator.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:sharpness", + "level": 1 +} \ No newline at end of file diff --git a/data/minecraft/enchantment_provider/raid/vindicator_post_wave_5.json b/data/minecraft/enchantment_provider/raid/vindicator_post_wave_5.json new file mode 100644 index 00000000..bce93e79 --- /dev/null +++ b/data/minecraft/enchantment_provider/raid/vindicator_post_wave_5.json @@ -0,0 +1,5 @@ +{ + "type": "minecraft:single", + "enchantment": "minecraft:sharpness", + "level": 2 +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/11.json b/data/minecraft/jukebox_song/11.json new file mode 100644 index 00000000..44b6598c --- /dev/null +++ b/data/minecraft/jukebox_song/11.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 11, + "description": { + "translate": "jukebox_song.minecraft.11" + }, + "length_in_seconds": 71.0, + "sound_event": "minecraft:music_disc.11" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/13.json b/data/minecraft/jukebox_song/13.json new file mode 100644 index 00000000..86dc2f41 --- /dev/null +++ b/data/minecraft/jukebox_song/13.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 1, + "description": { + "translate": "jukebox_song.minecraft.13" + }, + "length_in_seconds": 178.0, + "sound_event": "minecraft:music_disc.13" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/5.json b/data/minecraft/jukebox_song/5.json new file mode 100644 index 00000000..f441bbe5 --- /dev/null +++ b/data/minecraft/jukebox_song/5.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 15, + "description": { + "translate": "jukebox_song.minecraft.5" + }, + "length_in_seconds": 178.0, + "sound_event": "minecraft:music_disc.5" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/blocks.json b/data/minecraft/jukebox_song/blocks.json new file mode 100644 index 00000000..94d000b7 --- /dev/null +++ b/data/minecraft/jukebox_song/blocks.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 3, + "description": { + "translate": "jukebox_song.minecraft.blocks" + }, + "length_in_seconds": 345.0, + "sound_event": "minecraft:music_disc.blocks" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/cat.json b/data/minecraft/jukebox_song/cat.json new file mode 100644 index 00000000..598c1657 --- /dev/null +++ b/data/minecraft/jukebox_song/cat.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 2, + "description": { + "translate": "jukebox_song.minecraft.cat" + }, + "length_in_seconds": 185.0, + "sound_event": "minecraft:music_disc.cat" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/chirp.json b/data/minecraft/jukebox_song/chirp.json new file mode 100644 index 00000000..d7228806 --- /dev/null +++ b/data/minecraft/jukebox_song/chirp.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 4, + "description": { + "translate": "jukebox_song.minecraft.chirp" + }, + "length_in_seconds": 185.0, + "sound_event": "minecraft:music_disc.chirp" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/creator.json b/data/minecraft/jukebox_song/creator.json new file mode 100644 index 00000000..3b63f55e --- /dev/null +++ b/data/minecraft/jukebox_song/creator.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 12, + "description": { + "translate": "jukebox_song.minecraft.creator" + }, + "length_in_seconds": 176.0, + "sound_event": "minecraft:music_disc.creator" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/creator_music_box.json b/data/minecraft/jukebox_song/creator_music_box.json new file mode 100644 index 00000000..6184d36d --- /dev/null +++ b/data/minecraft/jukebox_song/creator_music_box.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 11, + "description": { + "translate": "jukebox_song.minecraft.creator_music_box" + }, + "length_in_seconds": 73.0, + "sound_event": "minecraft:music_disc.creator_music_box" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/far.json b/data/minecraft/jukebox_song/far.json new file mode 100644 index 00000000..f57cf8d7 --- /dev/null +++ b/data/minecraft/jukebox_song/far.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 5, + "description": { + "translate": "jukebox_song.minecraft.far" + }, + "length_in_seconds": 174.0, + "sound_event": "minecraft:music_disc.far" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/mall.json b/data/minecraft/jukebox_song/mall.json new file mode 100644 index 00000000..a5a8ddb2 --- /dev/null +++ b/data/minecraft/jukebox_song/mall.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 6, + "description": { + "translate": "jukebox_song.minecraft.mall" + }, + "length_in_seconds": 197.0, + "sound_event": "minecraft:music_disc.mall" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/mellohi.json b/data/minecraft/jukebox_song/mellohi.json new file mode 100644 index 00000000..cdea238b --- /dev/null +++ b/data/minecraft/jukebox_song/mellohi.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 7, + "description": { + "translate": "jukebox_song.minecraft.mellohi" + }, + "length_in_seconds": 96.0, + "sound_event": "minecraft:music_disc.mellohi" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/otherside.json b/data/minecraft/jukebox_song/otherside.json new file mode 100644 index 00000000..78562393 --- /dev/null +++ b/data/minecraft/jukebox_song/otherside.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 14, + "description": { + "translate": "jukebox_song.minecraft.otherside" + }, + "length_in_seconds": 195.0, + "sound_event": "minecraft:music_disc.otherside" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/pigstep.json b/data/minecraft/jukebox_song/pigstep.json new file mode 100644 index 00000000..3d4d74a8 --- /dev/null +++ b/data/minecraft/jukebox_song/pigstep.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 13, + "description": { + "translate": "jukebox_song.minecraft.pigstep" + }, + "length_in_seconds": 149.0, + "sound_event": "minecraft:music_disc.pigstep" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/precipice.json b/data/minecraft/jukebox_song/precipice.json new file mode 100644 index 00000000..2cb2124b --- /dev/null +++ b/data/minecraft/jukebox_song/precipice.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 13, + "description": { + "translate": "jukebox_song.minecraft.precipice" + }, + "length_in_seconds": 299.0, + "sound_event": "minecraft:music_disc.precipice" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/relic.json b/data/minecraft/jukebox_song/relic.json new file mode 100644 index 00000000..077ca97c --- /dev/null +++ b/data/minecraft/jukebox_song/relic.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 14, + "description": { + "translate": "jukebox_song.minecraft.relic" + }, + "length_in_seconds": 218.0, + "sound_event": "minecraft:music_disc.relic" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/stal.json b/data/minecraft/jukebox_song/stal.json new file mode 100644 index 00000000..c069d614 --- /dev/null +++ b/data/minecraft/jukebox_song/stal.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 8, + "description": { + "translate": "jukebox_song.minecraft.stal" + }, + "length_in_seconds": 150.0, + "sound_event": "minecraft:music_disc.stal" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/strad.json b/data/minecraft/jukebox_song/strad.json new file mode 100644 index 00000000..918a7dc9 --- /dev/null +++ b/data/minecraft/jukebox_song/strad.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 9, + "description": { + "translate": "jukebox_song.minecraft.strad" + }, + "length_in_seconds": 188.0, + "sound_event": "minecraft:music_disc.strad" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/wait.json b/data/minecraft/jukebox_song/wait.json new file mode 100644 index 00000000..c0cd84b8 --- /dev/null +++ b/data/minecraft/jukebox_song/wait.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 12, + "description": { + "translate": "jukebox_song.minecraft.wait" + }, + "length_in_seconds": 238.0, + "sound_event": "minecraft:music_disc.wait" +} \ No newline at end of file diff --git a/data/minecraft/jukebox_song/ward.json b/data/minecraft/jukebox_song/ward.json new file mode 100644 index 00000000..7f08af1b --- /dev/null +++ b/data/minecraft/jukebox_song/ward.json @@ -0,0 +1,8 @@ +{ + "comparator_output": 10, + "description": { + "translate": "jukebox_song.minecraft.ward" + }, + "length_in_seconds": 251.0, + "sound_event": "minecraft:music_disc.ward" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/archaeology/desert_pyramid.json b/data/minecraft/loot_table/archaeology/desert_pyramid.json new file mode 100644 index 00000000..773306a0 --- /dev/null +++ b/data/minecraft/loot_table/archaeology/desert_pyramid.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:archaeology", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:archer_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:miner_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:prize_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:skull_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond" + }, + { + "type": "minecraft:item", + "name": "minecraft:tnt" + }, + { + "type": "minecraft:item", + "name": "minecraft:gunpowder" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:archaeology/desert_pyramid" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/archaeology/desert_well.json b/data/minecraft/loot_table/archaeology/desert_well.json new file mode 100644 index 00000000..06078963 --- /dev/null +++ b/data/minecraft/loot_table/archaeology/desert_well.json @@ -0,0 +1,93 @@ +{ + "type": "minecraft:archaeology", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arms_up_pottery_sherd", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:brewer_pottery_sherd", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:brick" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "name": "minecraft:stick" + }, + { + "type": "minecraft:item", + "functions": [ + { + "effects": [ + { + "type": "minecraft:night_vision", + "duration": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 7.0 + } + }, + { + "type": "minecraft:jump_boost", + "duration": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 7.0 + } + }, + { + "type": "minecraft:weakness", + "duration": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 6.0 + } + }, + { + "type": "minecraft:blindness", + "duration": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 5.0 + } + }, + { + "type": "minecraft:poison", + "duration": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 10.0 + } + }, + { + "type": "minecraft:saturation", + "duration": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 7.0 + } + } + ], + "function": "minecraft:set_stew_effect" + } + ], + "name": "minecraft:suspicious_stew" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:archaeology/desert_well" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/archaeology/ocean_ruin_cold.json b/data/minecraft/loot_table/archaeology/ocean_ruin_cold.json new file mode 100644 index 00000000..aab9955d --- /dev/null +++ b/data/minecraft/loot_table/archaeology/ocean_ruin_cold.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:archaeology", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blade_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:explorer_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:mourner_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:plenty_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_axe" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:wheat", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_hoe", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 2 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:archaeology/ocean_ruin_cold" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/archaeology/ocean_ruin_warm.json b/data/minecraft/loot_table/archaeology/ocean_ruin_warm.json new file mode 100644 index 00000000..37fab6a1 --- /dev/null +++ b/data/minecraft/loot_table/archaeology/ocean_ruin_warm.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:archaeology", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:angler_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:shelter_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:snort_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:sniffer_egg" + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_axe" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:wheat", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_hoe", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 2 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:archaeology/ocean_ruin_warm" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/archaeology/trail_ruins_common.json b/data/minecraft/loot_table/archaeology/trail_ruins_common.json new file mode 100644 index 00000000..ed2855d3 --- /dev/null +++ b/data/minecraft/loot_table/archaeology/trail_ruins_common.json @@ -0,0 +1,150 @@ +{ + "type": "minecraft:archaeology", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:wheat", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_hoe", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:clay", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:brick", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:yellow_dye", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:blue_dye", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:light_blue_dye", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:white_dye", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:orange_dye", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:red_candle", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:green_candle", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:purple_candle", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:brown_candle", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:magenta_stained_glass_pane" + }, + { + "type": "minecraft:item", + "name": "minecraft:pink_stained_glass_pane" + }, + { + "type": "minecraft:item", + "name": "minecraft:blue_stained_glass_pane" + }, + { + "type": "minecraft:item", + "name": "minecraft:light_blue_stained_glass_pane" + }, + { + "type": "minecraft:item", + "name": "minecraft:red_stained_glass_pane" + }, + { + "type": "minecraft:item", + "name": "minecraft:yellow_stained_glass_pane" + }, + { + "type": "minecraft:item", + "name": "minecraft:purple_stained_glass_pane" + }, + { + "type": "minecraft:item", + "name": "minecraft:spruce_hanging_sign" + }, + { + "type": "minecraft:item", + "name": "minecraft:oak_hanging_sign" + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget" + }, + { + "type": "minecraft:item", + "name": "minecraft:coal" + }, + { + "type": "minecraft:item", + "name": "minecraft:wheat_seeds" + }, + { + "type": "minecraft:item", + "name": "minecraft:beetroot_seeds" + }, + { + "type": "minecraft:item", + "name": "minecraft:dead_bush" + }, + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + }, + { + "type": "minecraft:item", + "name": "minecraft:string" + }, + { + "type": "minecraft:item", + "name": "minecraft:lead" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:archaeology/trail_ruins_common" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/archaeology/trail_ruins_rare.json b/data/minecraft/loot_table/archaeology/trail_ruins_rare.json new file mode 100644 index 00000000..1de414d0 --- /dev/null +++ b/data/minecraft/loot_table/archaeology/trail_ruins_rare.json @@ -0,0 +1,60 @@ +{ + "type": "minecraft:archaeology", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:burn_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:danger_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:friend_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:heart_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:heartbreak_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:howl_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:sheaf_pottery_sherd" + }, + { + "type": "minecraft:item", + "name": "minecraft:wayfinder_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "name": "minecraft:raiser_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "name": "minecraft:shaper_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "name": "minecraft:host_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_relic" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:archaeology/trail_ruins_rare" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_button.json b/data/minecraft/loot_table/blocks/acacia_button.json new file mode 100644 index 00000000..675e0492 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_door.json b/data/minecraft/loot_table/blocks/acacia_door.json new file mode 100644 index 00000000..9176c991 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:acacia_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:acacia_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_fence.json b/data/minecraft/loot_table/blocks/acacia_fence.json new file mode 100644 index 00000000..d1f65ef0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_fence_gate.json b/data/minecraft/loot_table/blocks/acacia_fence_gate.json new file mode 100644 index 00000000..02ace3a7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_hanging_sign.json b/data/minecraft/loot_table/blocks/acacia_hanging_sign.json new file mode 100644 index 00000000..ef4901d5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_leaves.json b/data/minecraft/loot_table/blocks/acacia_leaves.json new file mode 100644 index 00000000..7d0e2703 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_leaves.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:acacia_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:acacia_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_log.json b/data/minecraft/loot_table/blocks/acacia_log.json new file mode 100644 index 00000000..d47e3799 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_planks.json b/data/minecraft/loot_table/blocks/acacia_planks.json new file mode 100644 index 00000000..cb616b31 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_pressure_plate.json b/data/minecraft/loot_table/blocks/acacia_pressure_plate.json new file mode 100644 index 00000000..e58528d1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_sapling.json b/data/minecraft/loot_table/blocks/acacia_sapling.json new file mode 100644 index 00000000..621cf3ef --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_sign.json b/data/minecraft/loot_table/blocks/acacia_sign.json new file mode 100644 index 00000000..f506bb3e --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_slab.json b/data/minecraft/loot_table/blocks/acacia_slab.json new file mode 100644 index 00000000..4a42027f --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:acacia_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:acacia_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_stairs.json b/data/minecraft/loot_table/blocks/acacia_stairs.json new file mode 100644 index 00000000..c34077e6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_trapdoor.json b/data/minecraft/loot_table/blocks/acacia_trapdoor.json new file mode 100644 index 00000000..543f7939 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/acacia_wood.json b/data/minecraft/loot_table/blocks/acacia_wood.json new file mode 100644 index 00000000..d2b40a74 --- /dev/null +++ b/data/minecraft/loot_table/blocks/acacia_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/acacia_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/activator_rail.json b/data/minecraft/loot_table/blocks/activator_rail.json new file mode 100644 index 00000000..8ce73f86 --- /dev/null +++ b/data/minecraft/loot_table/blocks/activator_rail.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:activator_rail" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/activator_rail" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/allium.json b/data/minecraft/loot_table/blocks/allium.json new file mode 100644 index 00000000..745cce83 --- /dev/null +++ b/data/minecraft/loot_table/blocks/allium.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:allium" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/allium" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/amethyst_block.json b/data/minecraft/loot_table/blocks/amethyst_block.json new file mode 100644 index 00000000..32152c61 --- /dev/null +++ b/data/minecraft/loot_table/blocks/amethyst_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:amethyst_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/amethyst_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/amethyst_cluster.json b/data/minecraft/loot_table/blocks/amethyst_cluster.json new file mode 100644 index 00000000..9b470f1d --- /dev/null +++ b/data/minecraft/loot_table/blocks/amethyst_cluster.json @@ -0,0 +1,81 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:amethyst_cluster" + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:cluster_max_harvestables" + } + } + ], + "functions": [ + { + "add": false, + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + } + ], + "name": "minecraft:amethyst_shard" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:amethyst_shard" + } + ] + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/amethyst_cluster" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/ancient_debris.json b/data/minecraft/loot_table/blocks/ancient_debris.json new file mode 100644 index 00000000..654ec598 --- /dev/null +++ b/data/minecraft/loot_table/blocks/ancient_debris.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ancient_debris" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/ancient_debris" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/andesite.json b/data/minecraft/loot_table/blocks/andesite.json new file mode 100644 index 00000000..977ccd9b --- /dev/null +++ b/data/minecraft/loot_table/blocks/andesite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:andesite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/andesite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/andesite_slab.json b/data/minecraft/loot_table/blocks/andesite_slab.json new file mode 100644 index 00000000..27cfb068 --- /dev/null +++ b/data/minecraft/loot_table/blocks/andesite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:andesite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:andesite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/andesite_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/andesite_stairs.json b/data/minecraft/loot_table/blocks/andesite_stairs.json new file mode 100644 index 00000000..2b698f3b --- /dev/null +++ b/data/minecraft/loot_table/blocks/andesite_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:andesite_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/andesite_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/andesite_wall.json b/data/minecraft/loot_table/blocks/andesite_wall.json new file mode 100644 index 00000000..23d7eaeb --- /dev/null +++ b/data/minecraft/loot_table/blocks/andesite_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:andesite_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/andesite_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/anvil.json b/data/minecraft/loot_table/blocks/anvil.json new file mode 100644 index 00000000..9d813710 --- /dev/null +++ b/data/minecraft/loot_table/blocks/anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:anvil" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/anvil" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/attached_melon_stem.json b/data/minecraft/loot_table/blocks/attached_melon_stem.json new file mode 100644 index 00000000..0adc9023 --- /dev/null +++ b/data/minecraft/loot_table/blocks/attached_melon_stem.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.53333336 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:melon_seeds" + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/attached_melon_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/attached_pumpkin_stem.json b/data/minecraft/loot_table/blocks/attached_pumpkin_stem.json new file mode 100644 index 00000000..8febdc52 --- /dev/null +++ b/data/minecraft/loot_table/blocks/attached_pumpkin_stem.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.53333336 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_seeds" + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/attached_pumpkin_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/azalea.json b/data/minecraft/loot_table/blocks/azalea.json new file mode 100644 index 00000000..f47814c1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/azalea.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:azalea" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/azalea" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/azalea_leaves.json b/data/minecraft/loot_table/blocks/azalea_leaves.json new file mode 100644 index 00000000..885d37be --- /dev/null +++ b/data/minecraft/loot_table/blocks/azalea_leaves.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:azalea_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:azalea" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/azalea_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/azure_bluet.json b/data/minecraft/loot_table/blocks/azure_bluet.json new file mode 100644 index 00000000..1eb6059d --- /dev/null +++ b/data/minecraft/loot_table/blocks/azure_bluet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:azure_bluet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/azure_bluet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo.json b/data/minecraft/loot_table/blocks/bamboo.json new file mode 100644 index 00000000..bff9dfaa --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_block.json b/data/minecraft/loot_table/blocks/bamboo_block.json new file mode 100644 index 00000000..408e663a --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_button.json b/data/minecraft/loot_table/blocks/bamboo_button.json new file mode 100644 index 00000000..73015675 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_door.json b/data/minecraft/loot_table/blocks/bamboo_door.json new file mode 100644 index 00000000..c5cdf42c --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:bamboo_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:bamboo_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_fence.json b/data/minecraft/loot_table/blocks/bamboo_fence.json new file mode 100644 index 00000000..4870bb86 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_fence_gate.json b/data/minecraft/loot_table/blocks/bamboo_fence_gate.json new file mode 100644 index 00000000..351d9c4a --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_hanging_sign.json b/data/minecraft/loot_table/blocks/bamboo_hanging_sign.json new file mode 100644 index 00000000..4e6f336e --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_mosaic.json b/data/minecraft/loot_table/blocks/bamboo_mosaic.json new file mode 100644 index 00000000..f9a4e62a --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_mosaic.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_mosaic" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_mosaic" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_mosaic_slab.json b/data/minecraft/loot_table/blocks/bamboo_mosaic_slab.json new file mode 100644 index 00000000..443b9358 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_mosaic_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:bamboo_mosaic_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:bamboo_mosaic_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_mosaic_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_mosaic_stairs.json b/data/minecraft/loot_table/blocks/bamboo_mosaic_stairs.json new file mode 100644 index 00000000..a009132e --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_mosaic_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_mosaic_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_mosaic_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_planks.json b/data/minecraft/loot_table/blocks/bamboo_planks.json new file mode 100644 index 00000000..dce013ee --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_pressure_plate.json b/data/minecraft/loot_table/blocks/bamboo_pressure_plate.json new file mode 100644 index 00000000..409fa3d7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_sapling.json b/data/minecraft/loot_table/blocks/bamboo_sapling.json new file mode 100644 index 00000000..88a9d5f7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_sign.json b/data/minecraft/loot_table/blocks/bamboo_sign.json new file mode 100644 index 00000000..087ef95e --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_slab.json b/data/minecraft/loot_table/blocks/bamboo_slab.json new file mode 100644 index 00000000..6b4ce3a9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:bamboo_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:bamboo_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_stairs.json b/data/minecraft/loot_table/blocks/bamboo_stairs.json new file mode 100644 index 00000000..3165bb5e --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bamboo_trapdoor.json b/data/minecraft/loot_table/blocks/bamboo_trapdoor.json new file mode 100644 index 00000000..f00c5363 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bamboo_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bamboo_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/barrel.json b/data/minecraft/loot_table/blocks/barrel.json new file mode 100644 index 00000000..905e1a0e --- /dev/null +++ b/data/minecraft/loot_table/blocks/barrel.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:barrel" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/barrel" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/basalt.json b/data/minecraft/loot_table/blocks/basalt.json new file mode 100644 index 00000000..ab3ec6a9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/basalt.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:basalt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/basalt" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/beacon.json b/data/minecraft/loot_table/blocks/beacon.json new file mode 100644 index 00000000..ea087788 --- /dev/null +++ b/data/minecraft/loot_table/blocks/beacon.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:beacon" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/beacon" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bee_nest.json b/data/minecraft/loot_table/blocks/bee_nest.json new file mode 100644 index 00000000..d2502a46 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bee_nest.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:bees" + ], + "source": "block_entity" + }, + { + "block": "minecraft:bee_nest", + "function": "minecraft:copy_state", + "properties": [ + "honey_level" + ] + } + ], + "name": "minecraft:bee_nest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bee_nest" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/beehive.json b/data/minecraft/loot_table/blocks/beehive.json new file mode 100644 index 00000000..422ed51a --- /dev/null +++ b/data/minecraft/loot_table/blocks/beehive.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:bees" + ], + "source": "block_entity" + }, + { + "block": "minecraft:beehive", + "function": "minecraft:copy_state", + "properties": [ + "honey_level" + ] + } + ], + "name": "minecraft:beehive" + }, + { + "type": "minecraft:item", + "name": "minecraft:beehive" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/beehive" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/beetroots.json b/data/minecraft/loot_table/blocks/beetroots.json new file mode 100644 index 00000000..4db1d7f2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/beetroots.json @@ -0,0 +1,69 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:beetroots", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + } + ], + "name": "minecraft:beetroot" + }, + { + "type": "minecraft:item", + "name": "minecraft:beetroot_seeds" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:beetroots", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "minecraft:beetroot_seeds" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/beetroots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bell.json b/data/minecraft/loot_table/blocks/bell.json new file mode 100644 index 00000000..c59f7fb8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bell.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bell" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bell" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/big_dripleaf.json b/data/minecraft/loot_table/blocks/big_dripleaf.json new file mode 100644 index 00000000..f4687d5a --- /dev/null +++ b/data/minecraft/loot_table/blocks/big_dripleaf.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:big_dripleaf" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/big_dripleaf" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/big_dripleaf_stem.json b/data/minecraft/loot_table/blocks/big_dripleaf_stem.json new file mode 100644 index 00000000..781e8008 --- /dev/null +++ b/data/minecraft/loot_table/blocks/big_dripleaf_stem.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:big_dripleaf" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/big_dripleaf_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_button.json b/data/minecraft/loot_table/blocks/birch_button.json new file mode 100644 index 00000000..28a086f3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_door.json b/data/minecraft/loot_table/blocks/birch_door.json new file mode 100644 index 00000000..856a21c0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:birch_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:birch_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_fence.json b/data/minecraft/loot_table/blocks/birch_fence.json new file mode 100644 index 00000000..8fbb0716 --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_fence_gate.json b/data/minecraft/loot_table/blocks/birch_fence_gate.json new file mode 100644 index 00000000..b7745fc9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_hanging_sign.json b/data/minecraft/loot_table/blocks/birch_hanging_sign.json new file mode 100644 index 00000000..d6581e8b --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_leaves.json b/data/minecraft/loot_table/blocks/birch_leaves.json new file mode 100644 index 00000000..829bc340 --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_leaves.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:birch_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:birch_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_log.json b/data/minecraft/loot_table/blocks/birch_log.json new file mode 100644 index 00000000..be062c32 --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_planks.json b/data/minecraft/loot_table/blocks/birch_planks.json new file mode 100644 index 00000000..7045d4db --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_pressure_plate.json b/data/minecraft/loot_table/blocks/birch_pressure_plate.json new file mode 100644 index 00000000..e32cff6a --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_sapling.json b/data/minecraft/loot_table/blocks/birch_sapling.json new file mode 100644 index 00000000..cee9c56e --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_sign.json b/data/minecraft/loot_table/blocks/birch_sign.json new file mode 100644 index 00000000..fdcdcdcf --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_slab.json b/data/minecraft/loot_table/blocks/birch_slab.json new file mode 100644 index 00000000..ad5932bf --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:birch_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:birch_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_stairs.json b/data/minecraft/loot_table/blocks/birch_stairs.json new file mode 100644 index 00000000..350b8868 --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_trapdoor.json b/data/minecraft/loot_table/blocks/birch_trapdoor.json new file mode 100644 index 00000000..5ba1be9b --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/birch_wood.json b/data/minecraft/loot_table/blocks/birch_wood.json new file mode 100644 index 00000000..92a60a7a --- /dev/null +++ b/data/minecraft/loot_table/blocks/birch_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/birch_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_banner.json b/data/minecraft/loot_table/blocks/black_banner.json new file mode 100644 index 00000000..92892bd9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:black_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_bed.json b/data/minecraft/loot_table/blocks/black_bed.json new file mode 100644 index 00000000..1b2b8fa2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:black_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:black_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_candle.json b/data/minecraft/loot_table/blocks/black_candle.json new file mode 100644 index 00000000..d6e6632a --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:black_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:black_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:black_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:black_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_candle_cake.json b/data/minecraft/loot_table/blocks/black_candle_cake.json new file mode 100644 index 00000000..d936a4b6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_carpet.json b/data/minecraft/loot_table/blocks/black_carpet.json new file mode 100644 index 00000000..e4cd4185 --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_concrete.json b/data/minecraft/loot_table/blocks/black_concrete.json new file mode 100644 index 00000000..deb3d3ac --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_concrete_powder.json b/data/minecraft/loot_table/blocks/black_concrete_powder.json new file mode 100644 index 00000000..dd6f733f --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_glazed_terracotta.json b/data/minecraft/loot_table/blocks/black_glazed_terracotta.json new file mode 100644 index 00000000..337c7463 --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_shulker_box.json b/data/minecraft/loot_table/blocks/black_shulker_box.json new file mode 100644 index 00000000..cf06e009 --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:black_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_stained_glass.json b/data/minecraft/loot_table/blocks/black_stained_glass.json new file mode 100644 index 00000000..a71bf62b --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_stained_glass_pane.json b/data/minecraft/loot_table/blocks/black_stained_glass_pane.json new file mode 100644 index 00000000..f78711ed --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_terracotta.json b/data/minecraft/loot_table/blocks/black_terracotta.json new file mode 100644 index 00000000..198fddea --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/black_wool.json b/data/minecraft/loot_table/blocks/black_wool.json new file mode 100644 index 00000000..3d8b0740 --- /dev/null +++ b/data/minecraft/loot_table/blocks/black_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/black_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blackstone.json b/data/minecraft/loot_table/blocks/blackstone.json new file mode 100644 index 00000000..edad1350 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blackstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blackstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blackstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blackstone_slab.json b/data/minecraft/loot_table/blocks/blackstone_slab.json new file mode 100644 index 00000000..4060b726 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blackstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:blackstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:blackstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blackstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blackstone_stairs.json b/data/minecraft/loot_table/blocks/blackstone_stairs.json new file mode 100644 index 00000000..8a422b67 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blackstone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blackstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blackstone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blackstone_wall.json b/data/minecraft/loot_table/blocks/blackstone_wall.json new file mode 100644 index 00000000..89cdfe6e --- /dev/null +++ b/data/minecraft/loot_table/blocks/blackstone_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blackstone_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blackstone_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blast_furnace.json b/data/minecraft/loot_table/blocks/blast_furnace.json new file mode 100644 index 00000000..fb35e9af --- /dev/null +++ b/data/minecraft/loot_table/blocks/blast_furnace.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:blast_furnace" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blast_furnace" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_banner.json b/data/minecraft/loot_table/blocks/blue_banner.json new file mode 100644 index 00000000..9435fdeb --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:blue_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_bed.json b/data/minecraft/loot_table/blocks/blue_bed.json new file mode 100644 index 00000000..f8555c3a --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:blue_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:blue_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_candle.json b/data/minecraft/loot_table/blocks/blue_candle.json new file mode 100644 index 00000000..40d9f21b --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:blue_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:blue_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:blue_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:blue_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_candle_cake.json b/data/minecraft/loot_table/blocks/blue_candle_cake.json new file mode 100644 index 00000000..5db8ccbb --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_carpet.json b/data/minecraft/loot_table/blocks/blue_carpet.json new file mode 100644 index 00000000..310e8754 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_concrete.json b/data/minecraft/loot_table/blocks/blue_concrete.json new file mode 100644 index 00000000..45da734e --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_concrete_powder.json b/data/minecraft/loot_table/blocks/blue_concrete_powder.json new file mode 100644 index 00000000..dcc352fe --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_glazed_terracotta.json b/data/minecraft/loot_table/blocks/blue_glazed_terracotta.json new file mode 100644 index 00000000..bebd6031 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_ice.json b/data/minecraft/loot_table/blocks/blue_ice.json new file mode 100644 index 00000000..9ba93295 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_ice.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_ice" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_ice" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_orchid.json b/data/minecraft/loot_table/blocks/blue_orchid.json new file mode 100644 index 00000000..4a5e5c0d --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_orchid.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_orchid" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_orchid" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_shulker_box.json b/data/minecraft/loot_table/blocks/blue_shulker_box.json new file mode 100644 index 00000000..84fd89cd --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:blue_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_stained_glass.json b/data/minecraft/loot_table/blocks/blue_stained_glass.json new file mode 100644 index 00000000..9de05fe8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_stained_glass_pane.json b/data/minecraft/loot_table/blocks/blue_stained_glass_pane.json new file mode 100644 index 00000000..726d037f --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_terracotta.json b/data/minecraft/loot_table/blocks/blue_terracotta.json new file mode 100644 index 00000000..b35f5b2b --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/blue_wool.json b/data/minecraft/loot_table/blocks/blue_wool.json new file mode 100644 index 00000000..c31cdf53 --- /dev/null +++ b/data/minecraft/loot_table/blocks/blue_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/blue_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bone_block.json b/data/minecraft/loot_table/blocks/bone_block.json new file mode 100644 index 00000000..80afd6d8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bone_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bone_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bookshelf.json b/data/minecraft/loot_table/blocks/bookshelf.json new file mode 100644 index 00000000..ed87a16d --- /dev/null +++ b/data/minecraft/loot_table/blocks/bookshelf.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:bookshelf" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:book" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bookshelf" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brain_coral.json b/data/minecraft/loot_table/blocks/brain_coral.json new file mode 100644 index 00000000..9a0ceb2f --- /dev/null +++ b/data/minecraft/loot_table/blocks/brain_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brain_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brain_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brain_coral_block.json b/data/minecraft/loot_table/blocks/brain_coral_block.json new file mode 100644 index 00000000..d3ac3022 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brain_coral_block.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:brain_coral_block" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dead_brain_coral_block" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brain_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brain_coral_fan.json b/data/minecraft/loot_table/blocks/brain_coral_fan.json new file mode 100644 index 00000000..45459594 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brain_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brain_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brain_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brewing_stand.json b/data/minecraft/loot_table/blocks/brewing_stand.json new file mode 100644 index 00000000..d300fdc8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brewing_stand.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:brewing_stand" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brewing_stand" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brick_slab.json b/data/minecraft/loot_table/blocks/brick_slab.json new file mode 100644 index 00000000..f705e946 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brick_stairs.json b/data/minecraft/loot_table/blocks/brick_stairs.json new file mode 100644 index 00000000..9c30747d --- /dev/null +++ b/data/minecraft/loot_table/blocks/brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brick_wall.json b/data/minecraft/loot_table/blocks/brick_wall.json new file mode 100644 index 00000000..01226465 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bricks.json b/data/minecraft/loot_table/blocks/bricks.json new file mode 100644 index 00000000..ab7ce5d8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_banner.json b/data/minecraft/loot_table/blocks/brown_banner.json new file mode 100644 index 00000000..e6da1203 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:brown_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_bed.json b/data/minecraft/loot_table/blocks/brown_bed.json new file mode 100644 index 00000000..73b73c07 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:brown_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:brown_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_candle.json b/data/minecraft/loot_table/blocks/brown_candle.json new file mode 100644 index 00000000..64957e26 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:brown_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:brown_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:brown_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:brown_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_candle_cake.json b/data/minecraft/loot_table/blocks/brown_candle_cake.json new file mode 100644 index 00000000..b08e7b6b --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_carpet.json b/data/minecraft/loot_table/blocks/brown_carpet.json new file mode 100644 index 00000000..dbd7b052 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_concrete.json b/data/minecraft/loot_table/blocks/brown_concrete.json new file mode 100644 index 00000000..157f7f61 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_concrete_powder.json b/data/minecraft/loot_table/blocks/brown_concrete_powder.json new file mode 100644 index 00000000..e7671675 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_glazed_terracotta.json b/data/minecraft/loot_table/blocks/brown_glazed_terracotta.json new file mode 100644 index 00000000..70f8305c --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_mushroom.json b/data/minecraft/loot_table/blocks/brown_mushroom.json new file mode 100644 index 00000000..b2835762 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_mushroom.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_mushroom" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_mushroom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_mushroom_block.json b/data/minecraft/loot_table/blocks/brown_mushroom_block.json new file mode 100644 index 00000000..bdcdd04e --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_mushroom_block.json @@ -0,0 +1,62 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:brown_mushroom_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": -6.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:limit_count", + "limit": { + "min": 0.0 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:brown_mushroom" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_mushroom_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_shulker_box.json b/data/minecraft/loot_table/blocks/brown_shulker_box.json new file mode 100644 index 00000000..30467bcc --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:brown_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_stained_glass.json b/data/minecraft/loot_table/blocks/brown_stained_glass.json new file mode 100644 index 00000000..7445895a --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_stained_glass_pane.json b/data/minecraft/loot_table/blocks/brown_stained_glass_pane.json new file mode 100644 index 00000000..6d3d3836 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_terracotta.json b/data/minecraft/loot_table/blocks/brown_terracotta.json new file mode 100644 index 00000000..78542b03 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/brown_wool.json b/data/minecraft/loot_table/blocks/brown_wool.json new file mode 100644 index 00000000..51ec42e8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/brown_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/brown_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bubble_coral.json b/data/minecraft/loot_table/blocks/bubble_coral.json new file mode 100644 index 00000000..5db2f741 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bubble_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bubble_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bubble_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bubble_coral_block.json b/data/minecraft/loot_table/blocks/bubble_coral_block.json new file mode 100644 index 00000000..7bc85af7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bubble_coral_block.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:bubble_coral_block" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dead_bubble_coral_block" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bubble_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/bubble_coral_fan.json b/data/minecraft/loot_table/blocks/bubble_coral_fan.json new file mode 100644 index 00000000..083b0989 --- /dev/null +++ b/data/minecraft/loot_table/blocks/bubble_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bubble_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/bubble_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/budding_amethyst.json b/data/minecraft/loot_table/blocks/budding_amethyst.json new file mode 100644 index 00000000..5570eb62 --- /dev/null +++ b/data/minecraft/loot_table/blocks/budding_amethyst.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/budding_amethyst" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cactus.json b/data/minecraft/loot_table/blocks/cactus.json new file mode 100644 index 00000000..e310ec3f --- /dev/null +++ b/data/minecraft/loot_table/blocks/cactus.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cactus" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cactus" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cake.json b/data/minecraft/loot_table/blocks/cake.json new file mode 100644 index 00000000..cf98e008 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cake.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/calcite.json b/data/minecraft/loot_table/blocks/calcite.json new file mode 100644 index 00000000..ccf97a39 --- /dev/null +++ b/data/minecraft/loot_table/blocks/calcite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:calcite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/calcite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/calibrated_sculk_sensor.json b/data/minecraft/loot_table/blocks/calibrated_sculk_sensor.json new file mode 100644 index 00000000..499447ca --- /dev/null +++ b/data/minecraft/loot_table/blocks/calibrated_sculk_sensor.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:calibrated_sculk_sensor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/calibrated_sculk_sensor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/campfire.json b/data/minecraft/loot_table/blocks/campfire.json new file mode 100644 index 00000000..ee97874d --- /dev/null +++ b/data/minecraft/loot_table/blocks/campfire.json @@ -0,0 +1,54 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:campfire" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:charcoal" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/campfire" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/candle.json b/data/minecraft/loot_table/blocks/candle.json new file mode 100644 index 00000000..28547e1b --- /dev/null +++ b/data/minecraft/loot_table/blocks/candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/candle_cake.json b/data/minecraft/loot_table/blocks/candle_cake.json new file mode 100644 index 00000000..1f6b7185 --- /dev/null +++ b/data/minecraft/loot_table/blocks/candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/carrots.json b/data/minecraft/loot_table/blocks/carrots.json new file mode 100644 index 00000000..71cd96ba --- /dev/null +++ b/data/minecraft/loot_table/blocks/carrots.json @@ -0,0 +1,51 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:carrot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:carrots", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "minecraft:carrot" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/carrots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cartography_table.json b/data/minecraft/loot_table/blocks/cartography_table.json new file mode 100644 index 00000000..664cf950 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cartography_table.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cartography_table" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cartography_table" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/carved_pumpkin.json b/data/minecraft/loot_table/blocks/carved_pumpkin.json new file mode 100644 index 00000000..170e7a29 --- /dev/null +++ b/data/minecraft/loot_table/blocks/carved_pumpkin.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:carved_pumpkin" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/carved_pumpkin" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cauldron.json b/data/minecraft/loot_table/blocks/cauldron.json new file mode 100644 index 00000000..c959482c --- /dev/null +++ b/data/minecraft/loot_table/blocks/cauldron.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cauldron" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cauldron" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cave_vines.json b/data/minecraft/loot_table/blocks/cave_vines.json new file mode 100644 index 00000000..17b89ab9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cave_vines.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:cave_vines", + "condition": "minecraft:block_state_property", + "properties": { + "berries": "true" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:glow_berries" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cave_vines" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cave_vines_plant.json b/data/minecraft/loot_table/blocks/cave_vines_plant.json new file mode 100644 index 00000000..6bf6c393 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cave_vines_plant.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:cave_vines_plant", + "condition": "minecraft:block_state_property", + "properties": { + "berries": "true" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:glow_berries" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cave_vines_plant" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chain.json b/data/minecraft/loot_table/blocks/chain.json new file mode 100644 index 00000000..1cdbecb9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chain.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chain" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chain" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_button.json b/data/minecraft/loot_table/blocks/cherry_button.json new file mode 100644 index 00000000..1aa943b8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_door.json b/data/minecraft/loot_table/blocks/cherry_door.json new file mode 100644 index 00000000..5e9fdedb --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:cherry_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:cherry_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_fence.json b/data/minecraft/loot_table/blocks/cherry_fence.json new file mode 100644 index 00000000..c61b470c --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_fence_gate.json b/data/minecraft/loot_table/blocks/cherry_fence_gate.json new file mode 100644 index 00000000..ec56e4bd --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_hanging_sign.json b/data/minecraft/loot_table/blocks/cherry_hanging_sign.json new file mode 100644 index 00000000..3905d42f --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_leaves.json b/data/minecraft/loot_table/blocks/cherry_leaves.json new file mode 100644 index 00000000..b79e709e --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_leaves.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:cherry_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:cherry_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_log.json b/data/minecraft/loot_table/blocks/cherry_log.json new file mode 100644 index 00000000..e35232e6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_planks.json b/data/minecraft/loot_table/blocks/cherry_planks.json new file mode 100644 index 00000000..9cbbb4f7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_pressure_plate.json b/data/minecraft/loot_table/blocks/cherry_pressure_plate.json new file mode 100644 index 00000000..fb0c2385 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_sapling.json b/data/minecraft/loot_table/blocks/cherry_sapling.json new file mode 100644 index 00000000..62c3e70c --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_sign.json b/data/minecraft/loot_table/blocks/cherry_sign.json new file mode 100644 index 00000000..5010b090 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_slab.json b/data/minecraft/loot_table/blocks/cherry_slab.json new file mode 100644 index 00000000..158d2d70 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cherry_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cherry_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_stairs.json b/data/minecraft/loot_table/blocks/cherry_stairs.json new file mode 100644 index 00000000..5ae1bce7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_trapdoor.json b/data/minecraft/loot_table/blocks/cherry_trapdoor.json new file mode 100644 index 00000000..f960ed46 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cherry_wood.json b/data/minecraft/loot_table/blocks/cherry_wood.json new file mode 100644 index 00000000..0e245a81 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cherry_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cherry_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chest.json b/data/minecraft/loot_table/blocks/chest.json new file mode 100644 index 00000000..6c9d7f0a --- /dev/null +++ b/data/minecraft/loot_table/blocks/chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chest" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chipped_anvil.json b/data/minecraft/loot_table/blocks/chipped_anvil.json new file mode 100644 index 00000000..5ef5dbe7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chipped_anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chipped_anvil" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chipped_anvil" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_bookshelf.json b/data/minecraft/loot_table/blocks/chiseled_bookshelf.json new file mode 100644 index 00000000..1c9194c5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_bookshelf.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_bookshelf" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_bookshelf" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_copper.json b/data/minecraft/loot_table/blocks/chiseled_copper.json new file mode 100644 index 00000000..d650123f --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_deepslate.json b/data/minecraft/loot_table/blocks/chiseled_deepslate.json new file mode 100644 index 00000000..7074fc93 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_deepslate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_deepslate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_deepslate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_nether_bricks.json b/data/minecraft/loot_table/blocks/chiseled_nether_bricks.json new file mode 100644 index 00000000..24f4884f --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_nether_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_nether_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_nether_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_polished_blackstone.json b/data/minecraft/loot_table/blocks/chiseled_polished_blackstone.json new file mode 100644 index 00000000..7571f172 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_polished_blackstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_polished_blackstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_polished_blackstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_quartz_block.json b/data/minecraft/loot_table/blocks/chiseled_quartz_block.json new file mode 100644 index 00000000..cccaf59d --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_quartz_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_quartz_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_quartz_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_red_sandstone.json b/data/minecraft/loot_table/blocks/chiseled_red_sandstone.json new file mode 100644 index 00000000..fb4948ac --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_red_sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_red_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_red_sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_sandstone.json b/data/minecraft/loot_table/blocks/chiseled_sandstone.json new file mode 100644 index 00000000..474b41ef --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_stone_bricks.json b/data/minecraft/loot_table/blocks/chiseled_stone_bricks.json new file mode 100644 index 00000000..031bd2b1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_stone_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_tuff.json b/data/minecraft/loot_table/blocks/chiseled_tuff.json new file mode 100644 index 00000000..9c5dfd6a --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_tuff.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_tuff" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_tuff" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chiseled_tuff_bricks.json b/data/minecraft/loot_table/blocks/chiseled_tuff_bricks.json new file mode 100644 index 00000000..a5eb37b9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chiseled_tuff_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_tuff_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chiseled_tuff_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chorus_flower.json b/data/minecraft/loot_table/blocks/chorus_flower.json new file mode 100644 index 00000000..b36cef67 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chorus_flower.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": {} + } + ], + "name": "minecraft:chorus_flower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chorus_flower" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/chorus_plant.json b/data/minecraft/loot_table/blocks/chorus_plant.json new file mode 100644 index 00000000..a035e6a5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/chorus_plant.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:chorus_fruit" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/chorus_plant" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/clay.json b/data/minecraft/loot_table/blocks/clay.json new file mode 100644 index 00000000..da2577a2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/clay.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:clay" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:clay_ball" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/clay" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/coal_block.json b/data/minecraft/loot_table/blocks/coal_block.json new file mode 100644 index 00000000..1789c0a6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/coal_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:coal_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/coal_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/coal_ore.json b/data/minecraft/loot_table/blocks/coal_ore.json new file mode 100644 index 00000000..c4a69297 --- /dev/null +++ b/data/minecraft/loot_table/blocks/coal_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:coal_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:coal" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/coal_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/coarse_dirt.json b/data/minecraft/loot_table/blocks/coarse_dirt.json new file mode 100644 index 00000000..cf70f226 --- /dev/null +++ b/data/minecraft/loot_table/blocks/coarse_dirt.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:coarse_dirt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/coarse_dirt" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobbled_deepslate.json b/data/minecraft/loot_table/blocks/cobbled_deepslate.json new file mode 100644 index 00000000..fe66f84f --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobbled_deepslate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobbled_deepslate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobbled_deepslate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobbled_deepslate_slab.json b/data/minecraft/loot_table/blocks/cobbled_deepslate_slab.json new file mode 100644 index 00000000..f465f03a --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobbled_deepslate_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cobbled_deepslate_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cobbled_deepslate_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobbled_deepslate_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobbled_deepslate_stairs.json b/data/minecraft/loot_table/blocks/cobbled_deepslate_stairs.json new file mode 100644 index 00000000..5588bb07 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobbled_deepslate_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobbled_deepslate_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobbled_deepslate_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobbled_deepslate_wall.json b/data/minecraft/loot_table/blocks/cobbled_deepslate_wall.json new file mode 100644 index 00000000..2254960a --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobbled_deepslate_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobbled_deepslate_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobbled_deepslate_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobblestone.json b/data/minecraft/loot_table/blocks/cobblestone.json new file mode 100644 index 00000000..14da366c --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobblestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobblestone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobblestone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobblestone_slab.json b/data/minecraft/loot_table/blocks/cobblestone_slab.json new file mode 100644 index 00000000..9817b21f --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobblestone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cobblestone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cobblestone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobblestone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobblestone_stairs.json b/data/minecraft/loot_table/blocks/cobblestone_stairs.json new file mode 100644 index 00000000..4ae412f9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobblestone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobblestone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobblestone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobblestone_wall.json b/data/minecraft/loot_table/blocks/cobblestone_wall.json new file mode 100644 index 00000000..0d4d4fa8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobblestone_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobblestone_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobblestone_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cobweb.json b/data/minecraft/loot_table/blocks/cobweb.json new file mode 100644 index 00000000..0f7ab37c --- /dev/null +++ b/data/minecraft/loot_table/blocks/cobweb.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:cobweb" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:string" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cobweb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cocoa.json b/data/minecraft/loot_table/blocks/cocoa.json new file mode 100644 index 00000000..cffb4562 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cocoa.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cocoa", + "condition": "minecraft:block_state_property", + "properties": { + "age": "2" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cocoa_beans" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cocoa" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/comparator.json b/data/minecraft/loot_table/blocks/comparator.json new file mode 100644 index 00000000..4615936c --- /dev/null +++ b/data/minecraft/loot_table/blocks/comparator.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:comparator" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/comparator" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/composter.json b/data/minecraft/loot_table/blocks/composter.json new file mode 100644 index 00000000..4292b043 --- /dev/null +++ b/data/minecraft/loot_table/blocks/composter.json @@ -0,0 +1,40 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:composter" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:composter", + "condition": "minecraft:block_state_property", + "properties": { + "level": "8" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone_meal" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/composter" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/conduit.json b/data/minecraft/loot_table/blocks/conduit.json new file mode 100644 index 00000000..39afe958 --- /dev/null +++ b/data/minecraft/loot_table/blocks/conduit.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:conduit" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/conduit" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/copper_block.json b/data/minecraft/loot_table/blocks/copper_block.json new file mode 100644 index 00000000..54e17e17 --- /dev/null +++ b/data/minecraft/loot_table/blocks/copper_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:copper_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/copper_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/copper_bulb.json b/data/minecraft/loot_table/blocks/copper_bulb.json new file mode 100644 index 00000000..d8996ad0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/copper_door.json b/data/minecraft/loot_table/blocks/copper_door.json new file mode 100644 index 00000000..e5e163a4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/copper_grate.json b/data/minecraft/loot_table/blocks/copper_grate.json new file mode 100644 index 00000000..c1d24a56 --- /dev/null +++ b/data/minecraft/loot_table/blocks/copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/copper_ore.json b/data/minecraft/loot_table/blocks/copper_ore.json new file mode 100644 index 00000000..493c2d62 --- /dev/null +++ b/data/minecraft/loot_table/blocks/copper_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:copper_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:raw_copper" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/copper_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/copper_trapdoor.json b/data/minecraft/loot_table/blocks/copper_trapdoor.json new file mode 100644 index 00000000..bcfd1808 --- /dev/null +++ b/data/minecraft/loot_table/blocks/copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cornflower.json b/data/minecraft/loot_table/blocks/cornflower.json new file mode 100644 index 00000000..0f9b2da8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cornflower.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cornflower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cornflower" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cracked_deepslate_bricks.json b/data/minecraft/loot_table/blocks/cracked_deepslate_bricks.json new file mode 100644 index 00000000..190cc898 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cracked_deepslate_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cracked_deepslate_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cracked_deepslate_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cracked_deepslate_tiles.json b/data/minecraft/loot_table/blocks/cracked_deepslate_tiles.json new file mode 100644 index 00000000..cf8c81cd --- /dev/null +++ b/data/minecraft/loot_table/blocks/cracked_deepslate_tiles.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cracked_deepslate_tiles" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cracked_deepslate_tiles" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cracked_nether_bricks.json b/data/minecraft/loot_table/blocks/cracked_nether_bricks.json new file mode 100644 index 00000000..76078bf6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cracked_nether_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cracked_nether_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cracked_nether_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cracked_polished_blackstone_bricks.json b/data/minecraft/loot_table/blocks/cracked_polished_blackstone_bricks.json new file mode 100644 index 00000000..024b4031 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cracked_polished_blackstone_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cracked_polished_blackstone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cracked_polished_blackstone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cracked_stone_bricks.json b/data/minecraft/loot_table/blocks/cracked_stone_bricks.json new file mode 100644 index 00000000..b2dfa530 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cracked_stone_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cracked_stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cracked_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crafter.json b/data/minecraft/loot_table/blocks/crafter.json new file mode 100644 index 00000000..a6af34c2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crafter.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crafter" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crafter" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crafting_table.json b/data/minecraft/loot_table/blocks/crafting_table.json new file mode 100644 index 00000000..3203998b --- /dev/null +++ b/data/minecraft/loot_table/blocks/crafting_table.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crafting_table" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crafting_table" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/creeper_head.json b/data/minecraft/loot_table/blocks/creeper_head.json new file mode 100644 index 00000000..eab26e7a --- /dev/null +++ b/data/minecraft/loot_table/blocks/creeper_head.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:creeper_head" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/creeper_head" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_button.json b/data/minecraft/loot_table/blocks/crimson_button.json new file mode 100644 index 00000000..e105e8e1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_door.json b/data/minecraft/loot_table/blocks/crimson_door.json new file mode 100644 index 00000000..94520868 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:crimson_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:crimson_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_fence.json b/data/minecraft/loot_table/blocks/crimson_fence.json new file mode 100644 index 00000000..22525c2d --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_fence_gate.json b/data/minecraft/loot_table/blocks/crimson_fence_gate.json new file mode 100644 index 00000000..e1586f6c --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_fungus.json b/data/minecraft/loot_table/blocks/crimson_fungus.json new file mode 100644 index 00000000..4f4986f8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_fungus.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_fungus" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_fungus" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_hanging_sign.json b/data/minecraft/loot_table/blocks/crimson_hanging_sign.json new file mode 100644 index 00000000..e9579b89 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_hyphae.json b/data/minecraft/loot_table/blocks/crimson_hyphae.json new file mode 100644 index 00000000..b7495606 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_hyphae.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_hyphae" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_hyphae" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_nylium.json b/data/minecraft/loot_table/blocks/crimson_nylium.json new file mode 100644 index 00000000..4cc43ee0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_nylium.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:crimson_nylium" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:netherrack" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_nylium" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_planks.json b/data/minecraft/loot_table/blocks/crimson_planks.json new file mode 100644 index 00000000..f9c8a8c6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_pressure_plate.json b/data/minecraft/loot_table/blocks/crimson_pressure_plate.json new file mode 100644 index 00000000..8fa42d33 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_roots.json b/data/minecraft/loot_table/blocks/crimson_roots.json new file mode 100644 index 00000000..73837c87 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_roots.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_roots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_roots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_sign.json b/data/minecraft/loot_table/blocks/crimson_sign.json new file mode 100644 index 00000000..fe0643ab --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_slab.json b/data/minecraft/loot_table/blocks/crimson_slab.json new file mode 100644 index 00000000..4efc373b --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:crimson_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:crimson_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_stairs.json b/data/minecraft/loot_table/blocks/crimson_stairs.json new file mode 100644 index 00000000..8a889e10 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_stem.json b/data/minecraft/loot_table/blocks/crimson_stem.json new file mode 100644 index 00000000..8f7f7e55 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_stem.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_stem" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crimson_trapdoor.json b/data/minecraft/loot_table/blocks/crimson_trapdoor.json new file mode 100644 index 00000000..33a19203 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crimson_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crimson_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/crying_obsidian.json b/data/minecraft/loot_table/blocks/crying_obsidian.json new file mode 100644 index 00000000..7abf7540 --- /dev/null +++ b/data/minecraft/loot_table/blocks/crying_obsidian.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crying_obsidian" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/crying_obsidian" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cut_copper.json b/data/minecraft/loot_table/blocks/cut_copper.json new file mode 100644 index 00000000..97ae18a8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cut_copper_slab.json b/data/minecraft/loot_table/blocks/cut_copper_slab.json new file mode 100644 index 00000000..fe2a31a2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cut_copper_stairs.json b/data/minecraft/loot_table/blocks/cut_copper_stairs.json new file mode 100644 index 00000000..57eabc97 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cut_red_sandstone.json b/data/minecraft/loot_table/blocks/cut_red_sandstone.json new file mode 100644 index 00000000..810c6301 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cut_red_sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cut_red_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_red_sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cut_red_sandstone_slab.json b/data/minecraft/loot_table/blocks/cut_red_sandstone_slab.json new file mode 100644 index 00000000..d3fee584 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cut_red_sandstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cut_red_sandstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cut_red_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_red_sandstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cut_sandstone.json b/data/minecraft/loot_table/blocks/cut_sandstone.json new file mode 100644 index 00000000..5142302a --- /dev/null +++ b/data/minecraft/loot_table/blocks/cut_sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cut_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cut_sandstone_slab.json b/data/minecraft/loot_table/blocks/cut_sandstone_slab.json new file mode 100644 index 00000000..10dac77b --- /dev/null +++ b/data/minecraft/loot_table/blocks/cut_sandstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cut_sandstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cut_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cut_sandstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_banner.json b/data/minecraft/loot_table/blocks/cyan_banner.json new file mode 100644 index 00000000..77ab28ee --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:cyan_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_bed.json b/data/minecraft/loot_table/blocks/cyan_bed.json new file mode 100644 index 00000000..35c927ca --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:cyan_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:cyan_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_candle.json b/data/minecraft/loot_table/blocks/cyan_candle.json new file mode 100644 index 00000000..2aff483e --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:cyan_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:cyan_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:cyan_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:cyan_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_candle_cake.json b/data/minecraft/loot_table/blocks/cyan_candle_cake.json new file mode 100644 index 00000000..83f87841 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_carpet.json b/data/minecraft/loot_table/blocks/cyan_carpet.json new file mode 100644 index 00000000..62bc479f --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_concrete.json b/data/minecraft/loot_table/blocks/cyan_concrete.json new file mode 100644 index 00000000..5b2a4b71 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_concrete_powder.json b/data/minecraft/loot_table/blocks/cyan_concrete_powder.json new file mode 100644 index 00000000..99fe9e9b --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_glazed_terracotta.json b/data/minecraft/loot_table/blocks/cyan_glazed_terracotta.json new file mode 100644 index 00000000..48ea7e52 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_shulker_box.json b/data/minecraft/loot_table/blocks/cyan_shulker_box.json new file mode 100644 index 00000000..b6c1267f --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:cyan_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_stained_glass.json b/data/minecraft/loot_table/blocks/cyan_stained_glass.json new file mode 100644 index 00000000..81b46691 --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_stained_glass_pane.json b/data/minecraft/loot_table/blocks/cyan_stained_glass_pane.json new file mode 100644 index 00000000..5fcaaf9f --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_terracotta.json b/data/minecraft/loot_table/blocks/cyan_terracotta.json new file mode 100644 index 00000000..949753ce --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/cyan_wool.json b/data/minecraft/loot_table/blocks/cyan_wool.json new file mode 100644 index 00000000..da40ebee --- /dev/null +++ b/data/minecraft/loot_table/blocks/cyan_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/cyan_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/damaged_anvil.json b/data/minecraft/loot_table/blocks/damaged_anvil.json new file mode 100644 index 00000000..484d61e1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/damaged_anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:damaged_anvil" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/damaged_anvil" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dandelion.json b/data/minecraft/loot_table/blocks/dandelion.json new file mode 100644 index 00000000..9775bbd4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dandelion.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dandelion" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dandelion" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_button.json b/data/minecraft/loot_table/blocks/dark_oak_button.json new file mode 100644 index 00000000..df1eb11b --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_door.json b/data/minecraft/loot_table/blocks/dark_oak_door.json new file mode 100644 index 00000000..c3e90594 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:dark_oak_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:dark_oak_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_fence.json b/data/minecraft/loot_table/blocks/dark_oak_fence.json new file mode 100644 index 00000000..4aa8c51b --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_fence_gate.json b/data/minecraft/loot_table/blocks/dark_oak_fence_gate.json new file mode 100644 index 00000000..7de0125d --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_hanging_sign.json b/data/minecraft/loot_table/blocks/dark_oak_hanging_sign.json new file mode 100644 index 00000000..c2beb6a0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_leaves.json b/data/minecraft/loot_table/blocks/dark_oak_leaves.json new file mode 100644 index 00000000..52c49ad7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_leaves.json @@ -0,0 +1,193 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:dark_oak_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:dark_oak_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.005, + 0.0055555557, + 0.00625, + 0.008333334, + 0.025 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:apple" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_log.json b/data/minecraft/loot_table/blocks/dark_oak_log.json new file mode 100644 index 00000000..8e6e1514 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_planks.json b/data/minecraft/loot_table/blocks/dark_oak_planks.json new file mode 100644 index 00000000..6f42d752 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_pressure_plate.json b/data/minecraft/loot_table/blocks/dark_oak_pressure_plate.json new file mode 100644 index 00000000..842eda8d --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_sapling.json b/data/minecraft/loot_table/blocks/dark_oak_sapling.json new file mode 100644 index 00000000..893d535a --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_sign.json b/data/minecraft/loot_table/blocks/dark_oak_sign.json new file mode 100644 index 00000000..75a3c0b0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_slab.json b/data/minecraft/loot_table/blocks/dark_oak_slab.json new file mode 100644 index 00000000..8a0846b5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:dark_oak_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:dark_oak_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_stairs.json b/data/minecraft/loot_table/blocks/dark_oak_stairs.json new file mode 100644 index 00000000..513cc276 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_trapdoor.json b/data/minecraft/loot_table/blocks/dark_oak_trapdoor.json new file mode 100644 index 00000000..6e2feed6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_oak_wood.json b/data/minecraft/loot_table/blocks/dark_oak_wood.json new file mode 100644 index 00000000..e71b4db2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_oak_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_oak_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_prismarine.json b/data/minecraft/loot_table/blocks/dark_prismarine.json new file mode 100644 index 00000000..435a7241 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_prismarine.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_prismarine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_prismarine" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_prismarine_slab.json b/data/minecraft/loot_table/blocks/dark_prismarine_slab.json new file mode 100644 index 00000000..e5908b31 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_prismarine_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:dark_prismarine_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:dark_prismarine_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_prismarine_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dark_prismarine_stairs.json b/data/minecraft/loot_table/blocks/dark_prismarine_stairs.json new file mode 100644 index 00000000..c907f15c --- /dev/null +++ b/data/minecraft/loot_table/blocks/dark_prismarine_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_prismarine_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dark_prismarine_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/daylight_detector.json b/data/minecraft/loot_table/blocks/daylight_detector.json new file mode 100644 index 00000000..62c370f7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/daylight_detector.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:daylight_detector" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/daylight_detector" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_brain_coral.json b/data/minecraft/loot_table/blocks/dead_brain_coral.json new file mode 100644 index 00000000..f1eeef9d --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_brain_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_brain_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_brain_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_brain_coral_block.json b/data/minecraft/loot_table/blocks/dead_brain_coral_block.json new file mode 100644 index 00000000..6b960392 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_brain_coral_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_brain_coral_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_brain_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_brain_coral_fan.json b/data/minecraft/loot_table/blocks/dead_brain_coral_fan.json new file mode 100644 index 00000000..ebef5d3e --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_brain_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_brain_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_brain_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_bubble_coral.json b/data/minecraft/loot_table/blocks/dead_bubble_coral.json new file mode 100644 index 00000000..ecfd426f --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_bubble_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_bubble_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_bubble_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_bubble_coral_block.json b/data/minecraft/loot_table/blocks/dead_bubble_coral_block.json new file mode 100644 index 00000000..cf861ce3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_bubble_coral_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_bubble_coral_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_bubble_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_bubble_coral_fan.json b/data/minecraft/loot_table/blocks/dead_bubble_coral_fan.json new file mode 100644 index 00000000..c4314857 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_bubble_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_bubble_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_bubble_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_bush.json b/data/minecraft/loot_table/blocks/dead_bush.json new file mode 100644 index 00000000..024455b4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_bush.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "name": "minecraft:dead_bush" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_bush" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_fire_coral.json b/data/minecraft/loot_table/blocks/dead_fire_coral.json new file mode 100644 index 00000000..bb26a930 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_fire_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_fire_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_fire_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_fire_coral_block.json b/data/minecraft/loot_table/blocks/dead_fire_coral_block.json new file mode 100644 index 00000000..985ba2d8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_fire_coral_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_fire_coral_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_fire_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_fire_coral_fan.json b/data/minecraft/loot_table/blocks/dead_fire_coral_fan.json new file mode 100644 index 00000000..286f9ee4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_fire_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_fire_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_fire_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_horn_coral.json b/data/minecraft/loot_table/blocks/dead_horn_coral.json new file mode 100644 index 00000000..de09705d --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_horn_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_horn_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_horn_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_horn_coral_block.json b/data/minecraft/loot_table/blocks/dead_horn_coral_block.json new file mode 100644 index 00000000..d7c6a0c0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_horn_coral_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_horn_coral_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_horn_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_horn_coral_fan.json b/data/minecraft/loot_table/blocks/dead_horn_coral_fan.json new file mode 100644 index 00000000..73c39d14 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_horn_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_horn_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_horn_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_tube_coral.json b/data/minecraft/loot_table/blocks/dead_tube_coral.json new file mode 100644 index 00000000..b4b73ecb --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_tube_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_tube_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_tube_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_tube_coral_block.json b/data/minecraft/loot_table/blocks/dead_tube_coral_block.json new file mode 100644 index 00000000..26ed86dd --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_tube_coral_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_tube_coral_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_tube_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dead_tube_coral_fan.json b/data/minecraft/loot_table/blocks/dead_tube_coral_fan.json new file mode 100644 index 00000000..430fd161 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dead_tube_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_tube_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dead_tube_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/decorated_pot.json b/data/minecraft/loot_table/blocks/decorated_pot.json new file mode 100644 index 00000000..9092b1cf --- /dev/null +++ b/data/minecraft/loot_table/blocks/decorated_pot.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:dynamic", + "conditions": [ + { + "block": "minecraft:decorated_pot", + "condition": "minecraft:block_state_property", + "properties": { + "cracked": "true" + } + } + ], + "name": "minecraft:sherds" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:pot_decorations" + ], + "source": "block_entity" + } + ], + "name": "minecraft:decorated_pot" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/decorated_pot" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate.json b/data/minecraft/loot_table/blocks/deepslate.json new file mode 100644 index 00000000..e3f598be --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:cobbled_deepslate" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_brick_slab.json b/data/minecraft/loot_table/blocks/deepslate_brick_slab.json new file mode 100644 index 00000000..92142832 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:deepslate_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:deepslate_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_brick_stairs.json b/data/minecraft/loot_table/blocks/deepslate_brick_stairs.json new file mode 100644 index 00000000..37f315c8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:deepslate_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_brick_wall.json b/data/minecraft/loot_table/blocks/deepslate_brick_wall.json new file mode 100644 index 00000000..b5ee8f4a --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:deepslate_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_bricks.json b/data/minecraft/loot_table/blocks/deepslate_bricks.json new file mode 100644 index 00000000..52744d28 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:deepslate_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_coal_ore.json b/data/minecraft/loot_table/blocks/deepslate_coal_ore.json new file mode 100644 index 00000000..0f20e1ab --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_coal_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_coal_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:coal" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_coal_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_copper_ore.json b/data/minecraft/loot_table/blocks/deepslate_copper_ore.json new file mode 100644 index 00000000..2af165bd --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_copper_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_copper_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:raw_copper" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_copper_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_diamond_ore.json b/data/minecraft/loot_table/blocks/deepslate_diamond_ore.json new file mode 100644 index 00000000..e613e5ef --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_diamond_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_diamond_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:diamond" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_diamond_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_emerald_ore.json b/data/minecraft/loot_table/blocks/deepslate_emerald_ore.json new file mode 100644 index 00000000..cf83bb37 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_emerald_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_emerald_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:emerald" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_emerald_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_gold_ore.json b/data/minecraft/loot_table/blocks/deepslate_gold_ore.json new file mode 100644 index 00000000..601d17fd --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_gold_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_gold_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:raw_gold" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_gold_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_iron_ore.json b/data/minecraft/loot_table/blocks/deepslate_iron_ore.json new file mode 100644 index 00000000..d581122c --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_iron_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_iron_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:raw_iron" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_iron_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_lapis_ore.json b/data/minecraft/loot_table/blocks/deepslate_lapis_ore.json new file mode 100644 index 00000000..daf243d2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_lapis_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_lapis_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:lapis_lazuli" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_lapis_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_redstone_ore.json b/data/minecraft/loot_table/blocks/deepslate_redstone_ore.json new file mode 100644 index 00000000..02821e73 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_redstone_ore.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:deepslate_redstone_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:redstone" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_redstone_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_tile_slab.json b/data/minecraft/loot_table/blocks/deepslate_tile_slab.json new file mode 100644 index 00000000..4d20d495 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_tile_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:deepslate_tile_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:deepslate_tile_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_tile_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_tile_stairs.json b/data/minecraft/loot_table/blocks/deepslate_tile_stairs.json new file mode 100644 index 00000000..1430a358 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_tile_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:deepslate_tile_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_tile_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_tile_wall.json b/data/minecraft/loot_table/blocks/deepslate_tile_wall.json new file mode 100644 index 00000000..ec3931b8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_tile_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:deepslate_tile_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_tile_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/deepslate_tiles.json b/data/minecraft/loot_table/blocks/deepslate_tiles.json new file mode 100644 index 00000000..76540450 --- /dev/null +++ b/data/minecraft/loot_table/blocks/deepslate_tiles.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:deepslate_tiles" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/deepslate_tiles" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/detector_rail.json b/data/minecraft/loot_table/blocks/detector_rail.json new file mode 100644 index 00000000..7bf29667 --- /dev/null +++ b/data/minecraft/loot_table/blocks/detector_rail.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:detector_rail" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/detector_rail" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/diamond_block.json b/data/minecraft/loot_table/blocks/diamond_block.json new file mode 100644 index 00000000..e292c844 --- /dev/null +++ b/data/minecraft/loot_table/blocks/diamond_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/diamond_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/diamond_ore.json b/data/minecraft/loot_table/blocks/diamond_ore.json new file mode 100644 index 00000000..6a036dea --- /dev/null +++ b/data/minecraft/loot_table/blocks/diamond_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:diamond_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:diamond" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/diamond_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/diorite.json b/data/minecraft/loot_table/blocks/diorite.json new file mode 100644 index 00000000..aa308713 --- /dev/null +++ b/data/minecraft/loot_table/blocks/diorite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diorite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/diorite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/diorite_slab.json b/data/minecraft/loot_table/blocks/diorite_slab.json new file mode 100644 index 00000000..96d37ead --- /dev/null +++ b/data/minecraft/loot_table/blocks/diorite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:diorite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:diorite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/diorite_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/diorite_stairs.json b/data/minecraft/loot_table/blocks/diorite_stairs.json new file mode 100644 index 00000000..ea059e71 --- /dev/null +++ b/data/minecraft/loot_table/blocks/diorite_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diorite_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/diorite_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/diorite_wall.json b/data/minecraft/loot_table/blocks/diorite_wall.json new file mode 100644 index 00000000..0dde20fd --- /dev/null +++ b/data/minecraft/loot_table/blocks/diorite_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diorite_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/diorite_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dirt.json b/data/minecraft/loot_table/blocks/dirt.json new file mode 100644 index 00000000..6b0e9678 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dirt.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dirt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dirt" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dirt_path.json b/data/minecraft/loot_table/blocks/dirt_path.json new file mode 100644 index 00000000..7b34c5cd --- /dev/null +++ b/data/minecraft/loot_table/blocks/dirt_path.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dirt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dirt_path" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dispenser.json b/data/minecraft/loot_table/blocks/dispenser.json new file mode 100644 index 00000000..184ecc59 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dispenser.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:dispenser" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dispenser" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dragon_egg.json b/data/minecraft/loot_table/blocks/dragon_egg.json new file mode 100644 index 00000000..ecb7e3a3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dragon_egg.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dragon_egg" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dragon_egg" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dragon_head.json b/data/minecraft/loot_table/blocks/dragon_head.json new file mode 100644 index 00000000..1e9aff11 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dragon_head.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dragon_head" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dragon_head" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dried_kelp_block.json b/data/minecraft/loot_table/blocks/dried_kelp_block.json new file mode 100644 index 00000000..8454cc9e --- /dev/null +++ b/data/minecraft/loot_table/blocks/dried_kelp_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dried_kelp_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dried_kelp_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dripstone_block.json b/data/minecraft/loot_table/blocks/dripstone_block.json new file mode 100644 index 00000000..c92e5353 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dripstone_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dripstone_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dripstone_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/dropper.json b/data/minecraft/loot_table/blocks/dropper.json new file mode 100644 index 00000000..980829f5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/dropper.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:dropper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/dropper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/emerald_block.json b/data/minecraft/loot_table/blocks/emerald_block.json new file mode 100644 index 00000000..9a0389b5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/emerald_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/emerald_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/emerald_ore.json b/data/minecraft/loot_table/blocks/emerald_ore.json new file mode 100644 index 00000000..2b0c27eb --- /dev/null +++ b/data/minecraft/loot_table/blocks/emerald_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:emerald_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:emerald" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/emerald_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/enchanting_table.json b/data/minecraft/loot_table/blocks/enchanting_table.json new file mode 100644 index 00000000..3e177c22 --- /dev/null +++ b/data/minecraft/loot_table/blocks/enchanting_table.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:enchanting_table" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/enchanting_table" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/end_rod.json b/data/minecraft/loot_table/blocks/end_rod.json new file mode 100644 index 00000000..48b992a1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/end_rod.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:end_rod" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/end_rod" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/end_stone.json b/data/minecraft/loot_table/blocks/end_stone.json new file mode 100644 index 00000000..7c800b74 --- /dev/null +++ b/data/minecraft/loot_table/blocks/end_stone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:end_stone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/end_stone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/end_stone_brick_slab.json b/data/minecraft/loot_table/blocks/end_stone_brick_slab.json new file mode 100644 index 00000000..a4119055 --- /dev/null +++ b/data/minecraft/loot_table/blocks/end_stone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:end_stone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:end_stone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/end_stone_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/end_stone_brick_stairs.json b/data/minecraft/loot_table/blocks/end_stone_brick_stairs.json new file mode 100644 index 00000000..380f9084 --- /dev/null +++ b/data/minecraft/loot_table/blocks/end_stone_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:end_stone_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/end_stone_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/end_stone_brick_wall.json b/data/minecraft/loot_table/blocks/end_stone_brick_wall.json new file mode 100644 index 00000000..fbd0ff57 --- /dev/null +++ b/data/minecraft/loot_table/blocks/end_stone_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:end_stone_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/end_stone_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/end_stone_bricks.json b/data/minecraft/loot_table/blocks/end_stone_bricks.json new file mode 100644 index 00000000..2240000c --- /dev/null +++ b/data/minecraft/loot_table/blocks/end_stone_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:end_stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/end_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/ender_chest.json b/data/minecraft/loot_table/blocks/ender_chest.json new file mode 100644 index 00000000..75342f94 --- /dev/null +++ b/data/minecraft/loot_table/blocks/ender_chest.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:ender_chest" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 8.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:obsidian" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/ender_chest" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_chiseled_copper.json b/data/minecraft/loot_table/blocks/exposed_chiseled_copper.json new file mode 100644 index 00000000..bf07cd4d --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:exposed_chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_copper.json b/data/minecraft/loot_table/blocks/exposed_copper.json new file mode 100644 index 00000000..9d0144b3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:exposed_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_copper_bulb.json b/data/minecraft/loot_table/blocks/exposed_copper_bulb.json new file mode 100644 index 00000000..31c40d4d --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:exposed_copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_copper_door.json b/data/minecraft/loot_table/blocks/exposed_copper_door.json new file mode 100644 index 00000000..32dbefcb --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:exposed_copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:exposed_copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_copper_grate.json b/data/minecraft/loot_table/blocks/exposed_copper_grate.json new file mode 100644 index 00000000..72b84eec --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:exposed_copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_copper_trapdoor.json b/data/minecraft/loot_table/blocks/exposed_copper_trapdoor.json new file mode 100644 index 00000000..abd0e202 --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:exposed_copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_cut_copper.json b/data/minecraft/loot_table/blocks/exposed_cut_copper.json new file mode 100644 index 00000000..5cae0429 --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:exposed_cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_cut_copper_slab.json b/data/minecraft/loot_table/blocks/exposed_cut_copper_slab.json new file mode 100644 index 00000000..58c098d0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:exposed_cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:exposed_cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/exposed_cut_copper_stairs.json b/data/minecraft/loot_table/blocks/exposed_cut_copper_stairs.json new file mode 100644 index 00000000..6fe1157b --- /dev/null +++ b/data/minecraft/loot_table/blocks/exposed_cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:exposed_cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/exposed_cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/farmland.json b/data/minecraft/loot_table/blocks/farmland.json new file mode 100644 index 00000000..4d71ae8e --- /dev/null +++ b/data/minecraft/loot_table/blocks/farmland.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dirt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/farmland" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/fern.json b/data/minecraft/loot_table/blocks/fern.json new file mode 100644 index 00000000..639154f9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/fern.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "name": "minecraft:fern" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 2 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:wheat_seeds" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/fern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/fire.json b/data/minecraft/loot_table/blocks/fire.json new file mode 100644 index 00000000..7c51a605 --- /dev/null +++ b/data/minecraft/loot_table/blocks/fire.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/fire" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/fire_coral.json b/data/minecraft/loot_table/blocks/fire_coral.json new file mode 100644 index 00000000..83a54ffd --- /dev/null +++ b/data/minecraft/loot_table/blocks/fire_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:fire_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/fire_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/fire_coral_block.json b/data/minecraft/loot_table/blocks/fire_coral_block.json new file mode 100644 index 00000000..e92de319 --- /dev/null +++ b/data/minecraft/loot_table/blocks/fire_coral_block.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:fire_coral_block" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dead_fire_coral_block" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/fire_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/fire_coral_fan.json b/data/minecraft/loot_table/blocks/fire_coral_fan.json new file mode 100644 index 00000000..60698346 --- /dev/null +++ b/data/minecraft/loot_table/blocks/fire_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:fire_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/fire_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/fletching_table.json b/data/minecraft/loot_table/blocks/fletching_table.json new file mode 100644 index 00000000..875af574 --- /dev/null +++ b/data/minecraft/loot_table/blocks/fletching_table.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:fletching_table" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/fletching_table" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/flower_pot.json b/data/minecraft/loot_table/blocks/flower_pot.json new file mode 100644 index 00000000..1e12e1ee --- /dev/null +++ b/data/minecraft/loot_table/blocks/flower_pot.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/flower_pot" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/flowering_azalea.json b/data/minecraft/loot_table/blocks/flowering_azalea.json new file mode 100644 index 00000000..ea7ebb05 --- /dev/null +++ b/data/minecraft/loot_table/blocks/flowering_azalea.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flowering_azalea" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/flowering_azalea" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/flowering_azalea_leaves.json b/data/minecraft/loot_table/blocks/flowering_azalea_leaves.json new file mode 100644 index 00000000..103754d9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/flowering_azalea_leaves.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:flowering_azalea_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:flowering_azalea" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/flowering_azalea_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/frogspawn.json b/data/minecraft/loot_table/blocks/frogspawn.json new file mode 100644 index 00000000..19a12812 --- /dev/null +++ b/data/minecraft/loot_table/blocks/frogspawn.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/frogspawn" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/frosted_ice.json b/data/minecraft/loot_table/blocks/frosted_ice.json new file mode 100644 index 00000000..2a641a5e --- /dev/null +++ b/data/minecraft/loot_table/blocks/frosted_ice.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/frosted_ice" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/furnace.json b/data/minecraft/loot_table/blocks/furnace.json new file mode 100644 index 00000000..9905cb51 --- /dev/null +++ b/data/minecraft/loot_table/blocks/furnace.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:furnace" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/furnace" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gilded_blackstone.json b/data/minecraft/loot_table/blocks/gilded_blackstone.json new file mode 100644 index 00000000..7e213c17 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gilded_blackstone.json @@ -0,0 +1,79 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:gilded_blackstone" + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.1, + 0.14285715, + 0.25, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget" + }, + { + "type": "minecraft:item", + "name": "minecraft:gilded_blackstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gilded_blackstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/glass.json b/data/minecraft/loot_table/blocks/glass.json new file mode 100644 index 00000000..e6511e6e --- /dev/null +++ b/data/minecraft/loot_table/blocks/glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/glass_pane.json b/data/minecraft/loot_table/blocks/glass_pane.json new file mode 100644 index 00000000..92a921bf --- /dev/null +++ b/data/minecraft/loot_table/blocks/glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/glow_lichen.json b/data/minecraft/loot_table/blocks/glow_lichen.json new file mode 100644 index 00000000..db3f17e0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/glow_lichen.json @@ -0,0 +1,118 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "functions": [ + { + "add": true, + "conditions": [ + { + "block": "minecraft:glow_lichen", + "condition": "minecraft:block_state_property", + "properties": { + "down": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:glow_lichen", + "condition": "minecraft:block_state_property", + "properties": { + "up": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:glow_lichen", + "condition": "minecraft:block_state_property", + "properties": { + "north": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:glow_lichen", + "condition": "minecraft:block_state_property", + "properties": { + "south": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:glow_lichen", + "condition": "minecraft:block_state_property", + "properties": { + "west": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:glow_lichen", + "condition": "minecraft:block_state_property", + "properties": { + "east": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "count": -1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:glow_lichen" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/glow_lichen" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/glowstone.json b/data/minecraft/loot_table/blocks/glowstone.json new file mode 100644 index 00000000..849301ee --- /dev/null +++ b/data/minecraft/loot_table/blocks/glowstone.json @@ -0,0 +1,71 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:glowstone" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:limit_count", + "limit": { + "max": 4.0, + "min": 1.0 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:glowstone_dust" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/glowstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gold_block.json b/data/minecraft/loot_table/blocks/gold_block.json new file mode 100644 index 00000000..9c3df287 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gold_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gold_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gold_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gold_ore.json b/data/minecraft/loot_table/blocks/gold_ore.json new file mode 100644 index 00000000..ec85db70 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gold_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:gold_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:raw_gold" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gold_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/granite.json b/data/minecraft/loot_table/blocks/granite.json new file mode 100644 index 00000000..e0118642 --- /dev/null +++ b/data/minecraft/loot_table/blocks/granite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:granite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/granite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/granite_slab.json b/data/minecraft/loot_table/blocks/granite_slab.json new file mode 100644 index 00000000..bf40d1a7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/granite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:granite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:granite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/granite_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/granite_stairs.json b/data/minecraft/loot_table/blocks/granite_stairs.json new file mode 100644 index 00000000..487c046c --- /dev/null +++ b/data/minecraft/loot_table/blocks/granite_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:granite_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/granite_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/granite_wall.json b/data/minecraft/loot_table/blocks/granite_wall.json new file mode 100644 index 00000000..dd18fd45 --- /dev/null +++ b/data/minecraft/loot_table/blocks/granite_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:granite_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/granite_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/grass_block.json b/data/minecraft/loot_table/blocks/grass_block.json new file mode 100644 index 00000000..1041fc09 --- /dev/null +++ b/data/minecraft/loot_table/blocks/grass_block.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:grass_block" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dirt" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/grass_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gravel.json b/data/minecraft/loot_table/blocks/gravel.json new file mode 100644 index 00000000..8493f462 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gravel.json @@ -0,0 +1,68 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:gravel" + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.1, + 0.14285715, + 0.25, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:flint" + }, + { + "type": "minecraft:item", + "name": "minecraft:gravel" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gravel" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_banner.json b/data/minecraft/loot_table/blocks/gray_banner.json new file mode 100644 index 00000000..3a435453 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:gray_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_bed.json b/data/minecraft/loot_table/blocks/gray_bed.json new file mode 100644 index 00000000..30e35eb3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:gray_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:gray_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_candle.json b/data/minecraft/loot_table/blocks/gray_candle.json new file mode 100644 index 00000000..caca65c2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:gray_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:gray_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:gray_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:gray_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_candle_cake.json b/data/minecraft/loot_table/blocks/gray_candle_cake.json new file mode 100644 index 00000000..07edceb5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_carpet.json b/data/minecraft/loot_table/blocks/gray_carpet.json new file mode 100644 index 00000000..2e255ee1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_concrete.json b/data/minecraft/loot_table/blocks/gray_concrete.json new file mode 100644 index 00000000..b036b0fa --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_concrete_powder.json b/data/minecraft/loot_table/blocks/gray_concrete_powder.json new file mode 100644 index 00000000..8770a6be --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_glazed_terracotta.json b/data/minecraft/loot_table/blocks/gray_glazed_terracotta.json new file mode 100644 index 00000000..02e62304 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_shulker_box.json b/data/minecraft/loot_table/blocks/gray_shulker_box.json new file mode 100644 index 00000000..2dbb097a --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:gray_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_stained_glass.json b/data/minecraft/loot_table/blocks/gray_stained_glass.json new file mode 100644 index 00000000..a768a726 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_stained_glass_pane.json b/data/minecraft/loot_table/blocks/gray_stained_glass_pane.json new file mode 100644 index 00000000..09179a09 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_terracotta.json b/data/minecraft/loot_table/blocks/gray_terracotta.json new file mode 100644 index 00000000..159d20c9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/gray_wool.json b/data/minecraft/loot_table/blocks/gray_wool.json new file mode 100644 index 00000000..89c0672c --- /dev/null +++ b/data/minecraft/loot_table/blocks/gray_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/gray_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_banner.json b/data/minecraft/loot_table/blocks/green_banner.json new file mode 100644 index 00000000..20884f5e --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:green_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_bed.json b/data/minecraft/loot_table/blocks/green_bed.json new file mode 100644 index 00000000..f33c15be --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:green_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:green_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_candle.json b/data/minecraft/loot_table/blocks/green_candle.json new file mode 100644 index 00000000..f07d8f0b --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:green_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:green_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:green_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:green_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_candle_cake.json b/data/minecraft/loot_table/blocks/green_candle_cake.json new file mode 100644 index 00000000..b092b54d --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_carpet.json b/data/minecraft/loot_table/blocks/green_carpet.json new file mode 100644 index 00000000..2492b227 --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_concrete.json b/data/minecraft/loot_table/blocks/green_concrete.json new file mode 100644 index 00000000..53ffa0e2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_concrete_powder.json b/data/minecraft/loot_table/blocks/green_concrete_powder.json new file mode 100644 index 00000000..32397e82 --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_glazed_terracotta.json b/data/minecraft/loot_table/blocks/green_glazed_terracotta.json new file mode 100644 index 00000000..3d7cb021 --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_shulker_box.json b/data/minecraft/loot_table/blocks/green_shulker_box.json new file mode 100644 index 00000000..eefff81e --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:green_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_stained_glass.json b/data/minecraft/loot_table/blocks/green_stained_glass.json new file mode 100644 index 00000000..bd2e440e --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_stained_glass_pane.json b/data/minecraft/loot_table/blocks/green_stained_glass_pane.json new file mode 100644 index 00000000..fd706e03 --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_terracotta.json b/data/minecraft/loot_table/blocks/green_terracotta.json new file mode 100644 index 00000000..83434e5a --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/green_wool.json b/data/minecraft/loot_table/blocks/green_wool.json new file mode 100644 index 00000000..ceabbab4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/green_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/green_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/grindstone.json b/data/minecraft/loot_table/blocks/grindstone.json new file mode 100644 index 00000000..f51a4cec --- /dev/null +++ b/data/minecraft/loot_table/blocks/grindstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:grindstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/grindstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/hanging_roots.json b/data/minecraft/loot_table/blocks/hanging_roots.json new file mode 100644 index 00000000..618e3d33 --- /dev/null +++ b/data/minecraft/loot_table/blocks/hanging_roots.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:hanging_roots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/hanging_roots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/hay_block.json b/data/minecraft/loot_table/blocks/hay_block.json new file mode 100644 index 00000000..873d675f --- /dev/null +++ b/data/minecraft/loot_table/blocks/hay_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:hay_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/hay_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/heavy_core.json b/data/minecraft/loot_table/blocks/heavy_core.json new file mode 100644 index 00000000..c13ed7f5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/heavy_core.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:heavy_core" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/heavy_core" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/heavy_weighted_pressure_plate.json b/data/minecraft/loot_table/blocks/heavy_weighted_pressure_plate.json new file mode 100644 index 00000000..d6db93c6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/heavy_weighted_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:heavy_weighted_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/heavy_weighted_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/honey_block.json b/data/minecraft/loot_table/blocks/honey_block.json new file mode 100644 index 00000000..7d3264f4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/honey_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:honey_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/honey_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/honeycomb_block.json b/data/minecraft/loot_table/blocks/honeycomb_block.json new file mode 100644 index 00000000..62069cf0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/honeycomb_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:honeycomb_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/honeycomb_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/hopper.json b/data/minecraft/loot_table/blocks/hopper.json new file mode 100644 index 00000000..daae78f4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/hopper.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:hopper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/hopper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/horn_coral.json b/data/minecraft/loot_table/blocks/horn_coral.json new file mode 100644 index 00000000..501e2a45 --- /dev/null +++ b/data/minecraft/loot_table/blocks/horn_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:horn_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/horn_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/horn_coral_block.json b/data/minecraft/loot_table/blocks/horn_coral_block.json new file mode 100644 index 00000000..7fc90e75 --- /dev/null +++ b/data/minecraft/loot_table/blocks/horn_coral_block.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:horn_coral_block" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dead_horn_coral_block" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/horn_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/horn_coral_fan.json b/data/minecraft/loot_table/blocks/horn_coral_fan.json new file mode 100644 index 00000000..cf5a0a1d --- /dev/null +++ b/data/minecraft/loot_table/blocks/horn_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:horn_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/horn_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/ice.json b/data/minecraft/loot_table/blocks/ice.json new file mode 100644 index 00000000..71225d84 --- /dev/null +++ b/data/minecraft/loot_table/blocks/ice.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ice" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/ice" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/infested_chiseled_stone_bricks.json b/data/minecraft/loot_table/blocks/infested_chiseled_stone_bricks.json new file mode 100644 index 00000000..3ed87c0b --- /dev/null +++ b/data/minecraft/loot_table/blocks/infested_chiseled_stone_bricks.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chiseled_stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/infested_chiseled_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/infested_cobblestone.json b/data/minecraft/loot_table/blocks/infested_cobblestone.json new file mode 100644 index 00000000..5e380667 --- /dev/null +++ b/data/minecraft/loot_table/blocks/infested_cobblestone.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobblestone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/infested_cobblestone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/infested_cracked_stone_bricks.json b/data/minecraft/loot_table/blocks/infested_cracked_stone_bricks.json new file mode 100644 index 00000000..730968a5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/infested_cracked_stone_bricks.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cracked_stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/infested_cracked_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/infested_deepslate.json b/data/minecraft/loot_table/blocks/infested_deepslate.json new file mode 100644 index 00000000..e1b1fe05 --- /dev/null +++ b/data/minecraft/loot_table/blocks/infested_deepslate.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:deepslate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/infested_deepslate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/infested_mossy_stone_bricks.json b/data/minecraft/loot_table/blocks/infested_mossy_stone_bricks.json new file mode 100644 index 00000000..9348b04a --- /dev/null +++ b/data/minecraft/loot_table/blocks/infested_mossy_stone_bricks.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mossy_stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/infested_mossy_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/infested_stone.json b/data/minecraft/loot_table/blocks/infested_stone.json new file mode 100644 index 00000000..ba0c6e4d --- /dev/null +++ b/data/minecraft/loot_table/blocks/infested_stone.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/infested_stone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/infested_stone_bricks.json b/data/minecraft/loot_table/blocks/infested_stone_bricks.json new file mode 100644 index 00000000..736ff87b --- /dev/null +++ b/data/minecraft/loot_table/blocks/infested_stone_bricks.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/infested_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/iron_bars.json b/data/minecraft/loot_table/blocks/iron_bars.json new file mode 100644 index 00000000..c0cf0023 --- /dev/null +++ b/data/minecraft/loot_table/blocks/iron_bars.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_bars" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/iron_bars" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/iron_block.json b/data/minecraft/loot_table/blocks/iron_block.json new file mode 100644 index 00000000..85ab3371 --- /dev/null +++ b/data/minecraft/loot_table/blocks/iron_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/iron_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/iron_door.json b/data/minecraft/loot_table/blocks/iron_door.json new file mode 100644 index 00000000..d33e7e68 --- /dev/null +++ b/data/minecraft/loot_table/blocks/iron_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:iron_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:iron_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/iron_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/iron_ore.json b/data/minecraft/loot_table/blocks/iron_ore.json new file mode 100644 index 00000000..7644052f --- /dev/null +++ b/data/minecraft/loot_table/blocks/iron_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:iron_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:raw_iron" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/iron_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/iron_trapdoor.json b/data/minecraft/loot_table/blocks/iron_trapdoor.json new file mode 100644 index 00000000..198db257 --- /dev/null +++ b/data/minecraft/loot_table/blocks/iron_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/iron_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jack_o_lantern.json b/data/minecraft/loot_table/blocks/jack_o_lantern.json new file mode 100644 index 00000000..2444400b --- /dev/null +++ b/data/minecraft/loot_table/blocks/jack_o_lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jack_o_lantern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jack_o_lantern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jukebox.json b/data/minecraft/loot_table/blocks/jukebox.json new file mode 100644 index 00000000..518700cf --- /dev/null +++ b/data/minecraft/loot_table/blocks/jukebox.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jukebox" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jukebox" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_button.json b/data/minecraft/loot_table/blocks/jungle_button.json new file mode 100644 index 00000000..7c8f0a8d --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_door.json b/data/minecraft/loot_table/blocks/jungle_door.json new file mode 100644 index 00000000..5a1123ca --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:jungle_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:jungle_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_fence.json b/data/minecraft/loot_table/blocks/jungle_fence.json new file mode 100644 index 00000000..bcd1c3c1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_fence_gate.json b/data/minecraft/loot_table/blocks/jungle_fence_gate.json new file mode 100644 index 00000000..e669de9e --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_hanging_sign.json b/data/minecraft/loot_table/blocks/jungle_hanging_sign.json new file mode 100644 index 00000000..29a57934 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_leaves.json b/data/minecraft/loot_table/blocks/jungle_leaves.json new file mode 100644 index 00000000..98b7ea39 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_leaves.json @@ -0,0 +1,137 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:jungle_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.025, + 0.027777778, + 0.03125, + 0.041666668, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:jungle_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_log.json b/data/minecraft/loot_table/blocks/jungle_log.json new file mode 100644 index 00000000..2043a0dc --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_planks.json b/data/minecraft/loot_table/blocks/jungle_planks.json new file mode 100644 index 00000000..0ef4b151 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_pressure_plate.json b/data/minecraft/loot_table/blocks/jungle_pressure_plate.json new file mode 100644 index 00000000..17df14a2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_sapling.json b/data/minecraft/loot_table/blocks/jungle_sapling.json new file mode 100644 index 00000000..bf0989fd --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_sign.json b/data/minecraft/loot_table/blocks/jungle_sign.json new file mode 100644 index 00000000..a5c95c50 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_slab.json b/data/minecraft/loot_table/blocks/jungle_slab.json new file mode 100644 index 00000000..e1cdcaf2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:jungle_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:jungle_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_stairs.json b/data/minecraft/loot_table/blocks/jungle_stairs.json new file mode 100644 index 00000000..bc18261e --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_trapdoor.json b/data/minecraft/loot_table/blocks/jungle_trapdoor.json new file mode 100644 index 00000000..d7560566 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/jungle_wood.json b/data/minecraft/loot_table/blocks/jungle_wood.json new file mode 100644 index 00000000..0eb94398 --- /dev/null +++ b/data/minecraft/loot_table/blocks/jungle_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/jungle_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/kelp.json b/data/minecraft/loot_table/blocks/kelp.json new file mode 100644 index 00000000..ff2e2f45 --- /dev/null +++ b/data/minecraft/loot_table/blocks/kelp.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:kelp" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/kelp" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/kelp_plant.json b/data/minecraft/loot_table/blocks/kelp_plant.json new file mode 100644 index 00000000..fa3b69fe --- /dev/null +++ b/data/minecraft/loot_table/blocks/kelp_plant.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:kelp" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/kelp_plant" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/ladder.json b/data/minecraft/loot_table/blocks/ladder.json new file mode 100644 index 00000000..c50f04b7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/ladder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ladder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/ladder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lantern.json b/data/minecraft/loot_table/blocks/lantern.json new file mode 100644 index 00000000..dc015ad7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lantern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lantern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lapis_block.json b/data/minecraft/loot_table/blocks/lapis_block.json new file mode 100644 index 00000000..c6338c51 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lapis_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lapis_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lapis_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lapis_ore.json b/data/minecraft/loot_table/blocks/lapis_ore.json new file mode 100644 index 00000000..48076a35 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lapis_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:lapis_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:lapis_lazuli" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lapis_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/large_amethyst_bud.json b/data/minecraft/loot_table/blocks/large_amethyst_bud.json new file mode 100644 index 00000000..d653b142 --- /dev/null +++ b/data/minecraft/loot_table/blocks/large_amethyst_bud.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:large_amethyst_bud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/large_amethyst_bud" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/large_fern.json b/data/minecraft/loot_table/blocks/large_fern.json new file mode 100644 index 00000000..421aed4e --- /dev/null +++ b/data/minecraft/loot_table/blocks/large_fern.json @@ -0,0 +1,134 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:large_fern", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "block": { + "blocks": "minecraft:large_fern", + "state": { + "half": "upper" + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:fern" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "name": "minecraft:wheat_seeds" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:large_fern", + "condition": "minecraft:block_state_property", + "properties": { + "half": "upper" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": "minecraft:large_fern", + "state": { + "half": "lower" + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:fern" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "name": "minecraft:wheat_seeds" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/large_fern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lava_cauldron.json b/data/minecraft/loot_table/blocks/lava_cauldron.json new file mode 100644 index 00000000..5941988f --- /dev/null +++ b/data/minecraft/loot_table/blocks/lava_cauldron.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cauldron" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lava_cauldron" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lectern.json b/data/minecraft/loot_table/blocks/lectern.json new file mode 100644 index 00000000..a261b804 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lectern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lectern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lectern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lever.json b/data/minecraft/loot_table/blocks/lever.json new file mode 100644 index 00000000..29bff364 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lever.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lever" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lever" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_banner.json b/data/minecraft/loot_table/blocks/light_blue_banner.json new file mode 100644 index 00000000..85a3075e --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:light_blue_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_bed.json b/data/minecraft/loot_table/blocks/light_blue_bed.json new file mode 100644 index 00000000..109da39f --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:light_blue_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:light_blue_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_candle.json b/data/minecraft/loot_table/blocks/light_blue_candle.json new file mode 100644 index 00000000..7ee46f01 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:light_blue_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:light_blue_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:light_blue_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:light_blue_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_candle_cake.json b/data/minecraft/loot_table/blocks/light_blue_candle_cake.json new file mode 100644 index 00000000..602a795a --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_carpet.json b/data/minecraft/loot_table/blocks/light_blue_carpet.json new file mode 100644 index 00000000..432c47b1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_concrete.json b/data/minecraft/loot_table/blocks/light_blue_concrete.json new file mode 100644 index 00000000..20cbfd5b --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_concrete_powder.json b/data/minecraft/loot_table/blocks/light_blue_concrete_powder.json new file mode 100644 index 00000000..25b20f76 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_glazed_terracotta.json b/data/minecraft/loot_table/blocks/light_blue_glazed_terracotta.json new file mode 100644 index 00000000..f0a95796 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_shulker_box.json b/data/minecraft/loot_table/blocks/light_blue_shulker_box.json new file mode 100644 index 00000000..d4de84c2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:light_blue_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_stained_glass.json b/data/minecraft/loot_table/blocks/light_blue_stained_glass.json new file mode 100644 index 00000000..4255cd10 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_stained_glass_pane.json b/data/minecraft/loot_table/blocks/light_blue_stained_glass_pane.json new file mode 100644 index 00000000..73795a18 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_terracotta.json b/data/minecraft/loot_table/blocks/light_blue_terracotta.json new file mode 100644 index 00000000..b333250d --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_blue_wool.json b/data/minecraft/loot_table/blocks/light_blue_wool.json new file mode 100644 index 00000000..531832cf --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_blue_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_blue_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_banner.json b/data/minecraft/loot_table/blocks/light_gray_banner.json new file mode 100644 index 00000000..335bb6e1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:light_gray_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_bed.json b/data/minecraft/loot_table/blocks/light_gray_bed.json new file mode 100644 index 00000000..50291246 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:light_gray_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:light_gray_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_candle.json b/data/minecraft/loot_table/blocks/light_gray_candle.json new file mode 100644 index 00000000..9c2bd724 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:light_gray_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:light_gray_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:light_gray_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:light_gray_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_candle_cake.json b/data/minecraft/loot_table/blocks/light_gray_candle_cake.json new file mode 100644 index 00000000..49cd0e6d --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_carpet.json b/data/minecraft/loot_table/blocks/light_gray_carpet.json new file mode 100644 index 00000000..6f1b3867 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_concrete.json b/data/minecraft/loot_table/blocks/light_gray_concrete.json new file mode 100644 index 00000000..ef3a9a84 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_concrete_powder.json b/data/minecraft/loot_table/blocks/light_gray_concrete_powder.json new file mode 100644 index 00000000..4c1c12e2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_glazed_terracotta.json b/data/minecraft/loot_table/blocks/light_gray_glazed_terracotta.json new file mode 100644 index 00000000..fddb1c92 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_shulker_box.json b/data/minecraft/loot_table/blocks/light_gray_shulker_box.json new file mode 100644 index 00000000..83576bbb --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:light_gray_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_stained_glass.json b/data/minecraft/loot_table/blocks/light_gray_stained_glass.json new file mode 100644 index 00000000..45948373 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_stained_glass_pane.json b/data/minecraft/loot_table/blocks/light_gray_stained_glass_pane.json new file mode 100644 index 00000000..3ab99cc1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_terracotta.json b/data/minecraft/loot_table/blocks/light_gray_terracotta.json new file mode 100644 index 00000000..bdfc1409 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_gray_wool.json b/data/minecraft/loot_table/blocks/light_gray_wool.json new file mode 100644 index 00000000..7bc06e30 --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_gray_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_gray_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/light_weighted_pressure_plate.json b/data/minecraft/loot_table/blocks/light_weighted_pressure_plate.json new file mode 100644 index 00000000..d439049c --- /dev/null +++ b/data/minecraft/loot_table/blocks/light_weighted_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_weighted_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/light_weighted_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lightning_rod.json b/data/minecraft/loot_table/blocks/lightning_rod.json new file mode 100644 index 00000000..c27c60f5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lightning_rod.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lightning_rod" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lightning_rod" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lilac.json b/data/minecraft/loot_table/blocks/lilac.json new file mode 100644 index 00000000..13202c94 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lilac.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:lilac", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:lilac" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lilac" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lily_of_the_valley.json b/data/minecraft/loot_table/blocks/lily_of_the_valley.json new file mode 100644 index 00000000..4fffcf93 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lily_of_the_valley.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lily_of_the_valley" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lily_of_the_valley" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lily_pad.json b/data/minecraft/loot_table/blocks/lily_pad.json new file mode 100644 index 00000000..8dee4f40 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lily_pad.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lily_pad" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lily_pad" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_banner.json b/data/minecraft/loot_table/blocks/lime_banner.json new file mode 100644 index 00000000..99027685 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:lime_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_bed.json b/data/minecraft/loot_table/blocks/lime_bed.json new file mode 100644 index 00000000..6a167cd1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:lime_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:lime_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_candle.json b/data/minecraft/loot_table/blocks/lime_candle.json new file mode 100644 index 00000000..a30c8d56 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:lime_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:lime_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:lime_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:lime_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_candle_cake.json b/data/minecraft/loot_table/blocks/lime_candle_cake.json new file mode 100644 index 00000000..6669056d --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_carpet.json b/data/minecraft/loot_table/blocks/lime_carpet.json new file mode 100644 index 00000000..0871cf7e --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_concrete.json b/data/minecraft/loot_table/blocks/lime_concrete.json new file mode 100644 index 00000000..8a1a9fda --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_concrete_powder.json b/data/minecraft/loot_table/blocks/lime_concrete_powder.json new file mode 100644 index 00000000..3734754a --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_glazed_terracotta.json b/data/minecraft/loot_table/blocks/lime_glazed_terracotta.json new file mode 100644 index 00000000..52cd1d6c --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_shulker_box.json b/data/minecraft/loot_table/blocks/lime_shulker_box.json new file mode 100644 index 00000000..e2925e4d --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:lime_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_stained_glass.json b/data/minecraft/loot_table/blocks/lime_stained_glass.json new file mode 100644 index 00000000..574be2e0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_stained_glass_pane.json b/data/minecraft/loot_table/blocks/lime_stained_glass_pane.json new file mode 100644 index 00000000..c9b8e9c6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_terracotta.json b/data/minecraft/loot_table/blocks/lime_terracotta.json new file mode 100644 index 00000000..f34a6ef5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lime_wool.json b/data/minecraft/loot_table/blocks/lime_wool.json new file mode 100644 index 00000000..97eeb71a --- /dev/null +++ b/data/minecraft/loot_table/blocks/lime_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lime_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/lodestone.json b/data/minecraft/loot_table/blocks/lodestone.json new file mode 100644 index 00000000..5f0e0b7e --- /dev/null +++ b/data/minecraft/loot_table/blocks/lodestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lodestone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/lodestone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/loom.json b/data/minecraft/loot_table/blocks/loom.json new file mode 100644 index 00000000..a4c95115 --- /dev/null +++ b/data/minecraft/loot_table/blocks/loom.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:loom" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/loom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_banner.json b/data/minecraft/loot_table/blocks/magenta_banner.json new file mode 100644 index 00000000..03c7dd02 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:magenta_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_bed.json b/data/minecraft/loot_table/blocks/magenta_bed.json new file mode 100644 index 00000000..c932550d --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:magenta_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:magenta_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_candle.json b/data/minecraft/loot_table/blocks/magenta_candle.json new file mode 100644 index 00000000..3211c28c --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:magenta_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:magenta_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:magenta_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:magenta_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_candle_cake.json b/data/minecraft/loot_table/blocks/magenta_candle_cake.json new file mode 100644 index 00000000..842cceb5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_carpet.json b/data/minecraft/loot_table/blocks/magenta_carpet.json new file mode 100644 index 00000000..36afc437 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_concrete.json b/data/minecraft/loot_table/blocks/magenta_concrete.json new file mode 100644 index 00000000..dff1ea68 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_concrete_powder.json b/data/minecraft/loot_table/blocks/magenta_concrete_powder.json new file mode 100644 index 00000000..7f3c9ab2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_glazed_terracotta.json b/data/minecraft/loot_table/blocks/magenta_glazed_terracotta.json new file mode 100644 index 00000000..d5634980 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_shulker_box.json b/data/minecraft/loot_table/blocks/magenta_shulker_box.json new file mode 100644 index 00000000..d463d049 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:magenta_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_stained_glass.json b/data/minecraft/loot_table/blocks/magenta_stained_glass.json new file mode 100644 index 00000000..2113dda7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_stained_glass_pane.json b/data/minecraft/loot_table/blocks/magenta_stained_glass_pane.json new file mode 100644 index 00000000..5ce7b7a4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_terracotta.json b/data/minecraft/loot_table/blocks/magenta_terracotta.json new file mode 100644 index 00000000..44ac0197 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magenta_wool.json b/data/minecraft/loot_table/blocks/magenta_wool.json new file mode 100644 index 00000000..80a979f9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/magenta_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magenta_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/magma_block.json b/data/minecraft/loot_table/blocks/magma_block.json new file mode 100644 index 00000000..c2d754ee --- /dev/null +++ b/data/minecraft/loot_table/blocks/magma_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magma_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/magma_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_button.json b/data/minecraft/loot_table/blocks/mangrove_button.json new file mode 100644 index 00000000..509537f1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_door.json b/data/minecraft/loot_table/blocks/mangrove_door.json new file mode 100644 index 00000000..3f844b59 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:mangrove_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:mangrove_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_fence.json b/data/minecraft/loot_table/blocks/mangrove_fence.json new file mode 100644 index 00000000..4c4344c1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_fence_gate.json b/data/minecraft/loot_table/blocks/mangrove_fence_gate.json new file mode 100644 index 00000000..1ffa2a9f --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_hanging_sign.json b/data/minecraft/loot_table/blocks/mangrove_hanging_sign.json new file mode 100644 index 00000000..262985d9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_leaves.json b/data/minecraft/loot_table/blocks/mangrove_leaves.json new file mode 100644 index 00000000..4eb9ca6a --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_leaves.json @@ -0,0 +1,80 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:mangrove_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_log.json b/data/minecraft/loot_table/blocks/mangrove_log.json new file mode 100644 index 00000000..a09c2524 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_planks.json b/data/minecraft/loot_table/blocks/mangrove_planks.json new file mode 100644 index 00000000..524d1e2d --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_pressure_plate.json b/data/minecraft/loot_table/blocks/mangrove_pressure_plate.json new file mode 100644 index 00000000..1aeec93c --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_propagule.json b/data/minecraft/loot_table/blocks/mangrove_propagule.json new file mode 100644 index 00000000..2594bcda --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_propagule.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:mangrove_propagule", + "condition": "minecraft:block_state_property", + "properties": { + "age": "4" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_propagule" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_propagule" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_roots.json b/data/minecraft/loot_table/blocks/mangrove_roots.json new file mode 100644 index 00000000..d4a917c9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_roots.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_roots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_roots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_sign.json b/data/minecraft/loot_table/blocks/mangrove_sign.json new file mode 100644 index 00000000..e17e149c --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_slab.json b/data/minecraft/loot_table/blocks/mangrove_slab.json new file mode 100644 index 00000000..fbd67d8e --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:mangrove_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:mangrove_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_stairs.json b/data/minecraft/loot_table/blocks/mangrove_stairs.json new file mode 100644 index 00000000..0c3f930a --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_trapdoor.json b/data/minecraft/loot_table/blocks/mangrove_trapdoor.json new file mode 100644 index 00000000..161d10c8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mangrove_wood.json b/data/minecraft/loot_table/blocks/mangrove_wood.json new file mode 100644 index 00000000..8aeb2c68 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mangrove_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mangrove_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/medium_amethyst_bud.json b/data/minecraft/loot_table/blocks/medium_amethyst_bud.json new file mode 100644 index 00000000..927a8c2c --- /dev/null +++ b/data/minecraft/loot_table/blocks/medium_amethyst_bud.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:medium_amethyst_bud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/medium_amethyst_bud" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/melon.json b/data/minecraft/loot_table/blocks/melon.json new file mode 100644 index 00000000..2d2eeafd --- /dev/null +++ b/data/minecraft/loot_table/blocks/melon.json @@ -0,0 +1,70 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:melon" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:limit_count", + "limit": { + "max": 9.0 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:melon_slice" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/melon" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/melon_stem.json b/data/minecraft/loot_table/blocks/melon_stem.json new file mode 100644 index 00000000..d3aee4d2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/melon_stem.json @@ -0,0 +1,167 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "0" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.06666667 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "1" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.13333334 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "2" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.2 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.26666668 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "4" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.33333334 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "5" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.4 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "6" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.46666667 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:melon_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.53333336 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:melon_seeds" + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/melon_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/moss_block.json b/data/minecraft/loot_table/blocks/moss_block.json new file mode 100644 index 00000000..1d0bfb2d --- /dev/null +++ b/data/minecraft/loot_table/blocks/moss_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:moss_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/moss_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/moss_carpet.json b/data/minecraft/loot_table/blocks/moss_carpet.json new file mode 100644 index 00000000..45c835a8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/moss_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:moss_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/moss_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_cobblestone.json b/data/minecraft/loot_table/blocks/mossy_cobblestone.json new file mode 100644 index 00000000..0c00648c --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_cobblestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mossy_cobblestone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_cobblestone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_cobblestone_slab.json b/data/minecraft/loot_table/blocks/mossy_cobblestone_slab.json new file mode 100644 index 00000000..8cb8600c --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_cobblestone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:mossy_cobblestone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:mossy_cobblestone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_cobblestone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_cobblestone_stairs.json b/data/minecraft/loot_table/blocks/mossy_cobblestone_stairs.json new file mode 100644 index 00000000..bd326567 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_cobblestone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mossy_cobblestone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_cobblestone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_cobblestone_wall.json b/data/minecraft/loot_table/blocks/mossy_cobblestone_wall.json new file mode 100644 index 00000000..76a6d148 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_cobblestone_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mossy_cobblestone_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_cobblestone_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_stone_brick_slab.json b/data/minecraft/loot_table/blocks/mossy_stone_brick_slab.json new file mode 100644 index 00000000..eb87e90a --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_stone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:mossy_stone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:mossy_stone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_stone_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_stone_brick_stairs.json b/data/minecraft/loot_table/blocks/mossy_stone_brick_stairs.json new file mode 100644 index 00000000..ff05bb24 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_stone_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mossy_stone_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_stone_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_stone_brick_wall.json b/data/minecraft/loot_table/blocks/mossy_stone_brick_wall.json new file mode 100644 index 00000000..28ddb990 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_stone_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mossy_stone_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_stone_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mossy_stone_bricks.json b/data/minecraft/loot_table/blocks/mossy_stone_bricks.json new file mode 100644 index 00000000..34bd3304 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mossy_stone_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mossy_stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mossy_stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mud.json b/data/minecraft/loot_table/blocks/mud.json new file mode 100644 index 00000000..751ddf75 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mud.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mud" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mud_brick_slab.json b/data/minecraft/loot_table/blocks/mud_brick_slab.json new file mode 100644 index 00000000..63a37725 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mud_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:mud_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:mud_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mud_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mud_brick_stairs.json b/data/minecraft/loot_table/blocks/mud_brick_stairs.json new file mode 100644 index 00000000..4de65ef8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mud_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mud_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mud_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mud_brick_wall.json b/data/minecraft/loot_table/blocks/mud_brick_wall.json new file mode 100644 index 00000000..395ca907 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mud_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mud_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mud_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mud_bricks.json b/data/minecraft/loot_table/blocks/mud_bricks.json new file mode 100644 index 00000000..48cbb70d --- /dev/null +++ b/data/minecraft/loot_table/blocks/mud_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mud_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mud_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/muddy_mangrove_roots.json b/data/minecraft/loot_table/blocks/muddy_mangrove_roots.json new file mode 100644 index 00000000..8dcd315b --- /dev/null +++ b/data/minecraft/loot_table/blocks/muddy_mangrove_roots.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:muddy_mangrove_roots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/muddy_mangrove_roots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mushroom_stem.json b/data/minecraft/loot_table/blocks/mushroom_stem.json new file mode 100644 index 00000000..1d6e70a4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mushroom_stem.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mushroom_stem" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mushroom_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/mycelium.json b/data/minecraft/loot_table/blocks/mycelium.json new file mode 100644 index 00000000..ab082b86 --- /dev/null +++ b/data/minecraft/loot_table/blocks/mycelium.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:mycelium" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dirt" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/mycelium" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_brick_fence.json b/data/minecraft/loot_table/blocks/nether_brick_fence.json new file mode 100644 index 00000000..93d2d29c --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_brick_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:nether_brick_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_brick_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_brick_slab.json b/data/minecraft/loot_table/blocks/nether_brick_slab.json new file mode 100644 index 00000000..6e9278e6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:nether_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:nether_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_brick_stairs.json b/data/minecraft/loot_table/blocks/nether_brick_stairs.json new file mode 100644 index 00000000..a4c472cb --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:nether_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_brick_wall.json b/data/minecraft/loot_table/blocks/nether_brick_wall.json new file mode 100644 index 00000000..22760a55 --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:nether_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_bricks.json b/data/minecraft/loot_table/blocks/nether_bricks.json new file mode 100644 index 00000000..78f1707d --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:nether_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_gold_ore.json b/data/minecraft/loot_table/blocks/nether_gold_ore.json new file mode 100644 index 00000000..9a61e273 --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_gold_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:nether_gold_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:gold_nugget" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_gold_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_portal.json b/data/minecraft/loot_table/blocks/nether_portal.json new file mode 100644 index 00000000..c739666f --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_portal.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/nether_portal" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_quartz_ore.json b/data/minecraft/loot_table/blocks/nether_quartz_ore.json new file mode 100644 index 00000000..ecad0af8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_quartz_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:nether_quartz_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:quartz" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_quartz_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_sprouts.json b/data/minecraft/loot_table/blocks/nether_sprouts.json new file mode 100644 index 00000000..e5be1c7b --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_sprouts.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:nether_sprouts" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_sprouts" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_wart.json b/data/minecraft/loot_table/blocks/nether_wart.json new file mode 100644 index 00000000..bfd0f8f8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_wart.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:nether_wart", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + } + ], + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "conditions": [ + { + "block": "minecraft:nether_wart", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + } + ], + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + } + ], + "name": "minecraft:nether_wart" + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_wart" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/nether_wart_block.json b/data/minecraft/loot_table/blocks/nether_wart_block.json new file mode 100644 index 00000000..0a3687af --- /dev/null +++ b/data/minecraft/loot_table/blocks/nether_wart_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:nether_wart_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/nether_wart_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/netherite_block.json b/data/minecraft/loot_table/blocks/netherite_block.json new file mode 100644 index 00000000..0c750362 --- /dev/null +++ b/data/minecraft/loot_table/blocks/netherite_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherite_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/netherite_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/netherrack.json b/data/minecraft/loot_table/blocks/netherrack.json new file mode 100644 index 00000000..c876b9f7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/netherrack.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/netherrack" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/note_block.json b/data/minecraft/loot_table/blocks/note_block.json new file mode 100644 index 00000000..5cafae60 --- /dev/null +++ b/data/minecraft/loot_table/blocks/note_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:note_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/note_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_button.json b/data/minecraft/loot_table/blocks/oak_button.json new file mode 100644 index 00000000..2f139be2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_door.json b/data/minecraft/loot_table/blocks/oak_door.json new file mode 100644 index 00000000..de9f7317 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:oak_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:oak_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_fence.json b/data/minecraft/loot_table/blocks/oak_fence.json new file mode 100644 index 00000000..19b6938b --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_fence_gate.json b/data/minecraft/loot_table/blocks/oak_fence_gate.json new file mode 100644 index 00000000..a90402ce --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_hanging_sign.json b/data/minecraft/loot_table/blocks/oak_hanging_sign.json new file mode 100644 index 00000000..d55d1f55 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_leaves.json b/data/minecraft/loot_table/blocks/oak_leaves.json new file mode 100644 index 00000000..ceb10233 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_leaves.json @@ -0,0 +1,193 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:oak_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:oak_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.005, + 0.0055555557, + 0.00625, + 0.008333334, + 0.025 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:apple" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_log.json b/data/minecraft/loot_table/blocks/oak_log.json new file mode 100644 index 00000000..5134439e --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_planks.json b/data/minecraft/loot_table/blocks/oak_planks.json new file mode 100644 index 00000000..c2629de2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_pressure_plate.json b/data/minecraft/loot_table/blocks/oak_pressure_plate.json new file mode 100644 index 00000000..22ffa9a5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_sapling.json b/data/minecraft/loot_table/blocks/oak_sapling.json new file mode 100644 index 00000000..a726c25b --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_sign.json b/data/minecraft/loot_table/blocks/oak_sign.json new file mode 100644 index 00000000..87c080fe --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_slab.json b/data/minecraft/loot_table/blocks/oak_slab.json new file mode 100644 index 00000000..b8f2584e --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:oak_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:oak_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_stairs.json b/data/minecraft/loot_table/blocks/oak_stairs.json new file mode 100644 index 00000000..4caf08d4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_trapdoor.json b/data/minecraft/loot_table/blocks/oak_trapdoor.json new file mode 100644 index 00000000..1ec99331 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oak_wood.json b/data/minecraft/loot_table/blocks/oak_wood.json new file mode 100644 index 00000000..0423620f --- /dev/null +++ b/data/minecraft/loot_table/blocks/oak_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oak_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/observer.json b/data/minecraft/loot_table/blocks/observer.json new file mode 100644 index 00000000..413814a5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/observer.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:observer" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/observer" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/obsidian.json b/data/minecraft/loot_table/blocks/obsidian.json new file mode 100644 index 00000000..aaaf7b08 --- /dev/null +++ b/data/minecraft/loot_table/blocks/obsidian.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:obsidian" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/obsidian" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/ochre_froglight.json b/data/minecraft/loot_table/blocks/ochre_froglight.json new file mode 100644 index 00000000..46cdefe4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/ochre_froglight.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ochre_froglight" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/ochre_froglight" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_banner.json b/data/minecraft/loot_table/blocks/orange_banner.json new file mode 100644 index 00000000..5abc5071 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:orange_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_bed.json b/data/minecraft/loot_table/blocks/orange_bed.json new file mode 100644 index 00000000..6c0c13cc --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:orange_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:orange_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_candle.json b/data/minecraft/loot_table/blocks/orange_candle.json new file mode 100644 index 00000000..1908de4a --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:orange_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:orange_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:orange_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:orange_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_candle_cake.json b/data/minecraft/loot_table/blocks/orange_candle_cake.json new file mode 100644 index 00000000..0e8eaf2e --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_carpet.json b/data/minecraft/loot_table/blocks/orange_carpet.json new file mode 100644 index 00000000..c3586baf --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_concrete.json b/data/minecraft/loot_table/blocks/orange_concrete.json new file mode 100644 index 00000000..9d0660bc --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_concrete_powder.json b/data/minecraft/loot_table/blocks/orange_concrete_powder.json new file mode 100644 index 00000000..1357c33f --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_glazed_terracotta.json b/data/minecraft/loot_table/blocks/orange_glazed_terracotta.json new file mode 100644 index 00000000..625b47b4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_shulker_box.json b/data/minecraft/loot_table/blocks/orange_shulker_box.json new file mode 100644 index 00000000..747de355 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:orange_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_stained_glass.json b/data/minecraft/loot_table/blocks/orange_stained_glass.json new file mode 100644 index 00000000..d77ff937 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_stained_glass_pane.json b/data/minecraft/loot_table/blocks/orange_stained_glass_pane.json new file mode 100644 index 00000000..e9bda619 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_terracotta.json b/data/minecraft/loot_table/blocks/orange_terracotta.json new file mode 100644 index 00000000..44bf3657 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_tulip.json b/data/minecraft/loot_table/blocks/orange_tulip.json new file mode 100644 index 00000000..82da7382 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_tulip.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/orange_wool.json b/data/minecraft/loot_table/blocks/orange_wool.json new file mode 100644 index 00000000..4653d403 --- /dev/null +++ b/data/minecraft/loot_table/blocks/orange_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/orange_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxeye_daisy.json b/data/minecraft/loot_table/blocks/oxeye_daisy.json new file mode 100644 index 00000000..e26d57e4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxeye_daisy.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxeye_daisy" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxeye_daisy" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_chiseled_copper.json b/data/minecraft/loot_table/blocks/oxidized_chiseled_copper.json new file mode 100644 index 00000000..17838301 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxidized_chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_copper.json b/data/minecraft/loot_table/blocks/oxidized_copper.json new file mode 100644 index 00000000..4352f5ba --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxidized_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_copper_bulb.json b/data/minecraft/loot_table/blocks/oxidized_copper_bulb.json new file mode 100644 index 00000000..b0043763 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxidized_copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_copper_door.json b/data/minecraft/loot_table/blocks/oxidized_copper_door.json new file mode 100644 index 00000000..eeeb51dc --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:oxidized_copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:oxidized_copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_copper_grate.json b/data/minecraft/loot_table/blocks/oxidized_copper_grate.json new file mode 100644 index 00000000..ce68f270 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxidized_copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_copper_trapdoor.json b/data/minecraft/loot_table/blocks/oxidized_copper_trapdoor.json new file mode 100644 index 00000000..08eeea77 --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxidized_copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_cut_copper.json b/data/minecraft/loot_table/blocks/oxidized_cut_copper.json new file mode 100644 index 00000000..36f5c34f --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxidized_cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_cut_copper_slab.json b/data/minecraft/loot_table/blocks/oxidized_cut_copper_slab.json new file mode 100644 index 00000000..97934fad --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:oxidized_cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:oxidized_cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/oxidized_cut_copper_stairs.json b/data/minecraft/loot_table/blocks/oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..3f5fd9bd --- /dev/null +++ b/data/minecraft/loot_table/blocks/oxidized_cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxidized_cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/oxidized_cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/packed_ice.json b/data/minecraft/loot_table/blocks/packed_ice.json new file mode 100644 index 00000000..af33e706 --- /dev/null +++ b/data/minecraft/loot_table/blocks/packed_ice.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:packed_ice" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/packed_ice" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/packed_mud.json b/data/minecraft/loot_table/blocks/packed_mud.json new file mode 100644 index 00000000..78a84421 --- /dev/null +++ b/data/minecraft/loot_table/blocks/packed_mud.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:packed_mud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/packed_mud" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pearlescent_froglight.json b/data/minecraft/loot_table/blocks/pearlescent_froglight.json new file mode 100644 index 00000000..54657d36 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pearlescent_froglight.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pearlescent_froglight" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pearlescent_froglight" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/peony.json b/data/minecraft/loot_table/blocks/peony.json new file mode 100644 index 00000000..56fe2266 --- /dev/null +++ b/data/minecraft/loot_table/blocks/peony.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:peony", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:peony" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/peony" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/petrified_oak_slab.json b/data/minecraft/loot_table/blocks/petrified_oak_slab.json new file mode 100644 index 00000000..eca7289f --- /dev/null +++ b/data/minecraft/loot_table/blocks/petrified_oak_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:petrified_oak_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:petrified_oak_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/petrified_oak_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/piglin_head.json b/data/minecraft/loot_table/blocks/piglin_head.json new file mode 100644 index 00000000..79dc500c --- /dev/null +++ b/data/minecraft/loot_table/blocks/piglin_head.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:piglin_head" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/piglin_head" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_banner.json b/data/minecraft/loot_table/blocks/pink_banner.json new file mode 100644 index 00000000..4cfd11e9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:pink_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_bed.json b/data/minecraft/loot_table/blocks/pink_bed.json new file mode 100644 index 00000000..1688bc89 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:pink_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:pink_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_candle.json b/data/minecraft/loot_table/blocks/pink_candle.json new file mode 100644 index 00000000..7e507731 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:pink_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pink_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pink_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:pink_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_candle_cake.json b/data/minecraft/loot_table/blocks/pink_candle_cake.json new file mode 100644 index 00000000..9fbb025b --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_carpet.json b/data/minecraft/loot_table/blocks/pink_carpet.json new file mode 100644 index 00000000..5d8ee531 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_concrete.json b/data/minecraft/loot_table/blocks/pink_concrete.json new file mode 100644 index 00000000..f9fa9b86 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_concrete_powder.json b/data/minecraft/loot_table/blocks/pink_concrete_powder.json new file mode 100644 index 00000000..467867c2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_glazed_terracotta.json b/data/minecraft/loot_table/blocks/pink_glazed_terracotta.json new file mode 100644 index 00000000..2c99bbe1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_petals.json b/data/minecraft/loot_table/blocks/pink_petals.json new file mode 100644 index 00000000..8491a91e --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_petals.json @@ -0,0 +1,77 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:pink_petals", + "condition": "minecraft:block_state_property", + "properties": { + "flower_amount": "1" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pink_petals", + "condition": "minecraft:block_state_property", + "properties": { + "flower_amount": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pink_petals", + "condition": "minecraft:block_state_property", + "properties": { + "flower_amount": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pink_petals", + "condition": "minecraft:block_state_property", + "properties": { + "flower_amount": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:pink_petals" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_petals" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_shulker_box.json b/data/minecraft/loot_table/blocks/pink_shulker_box.json new file mode 100644 index 00000000..9600bcaf --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:pink_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_stained_glass.json b/data/minecraft/loot_table/blocks/pink_stained_glass.json new file mode 100644 index 00000000..74a38d29 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_stained_glass_pane.json b/data/minecraft/loot_table/blocks/pink_stained_glass_pane.json new file mode 100644 index 00000000..00a8e97a --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_terracotta.json b/data/minecraft/loot_table/blocks/pink_terracotta.json new file mode 100644 index 00000000..3c782e48 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_tulip.json b/data/minecraft/loot_table/blocks/pink_tulip.json new file mode 100644 index 00000000..9d0e5978 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_tulip.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pink_wool.json b/data/minecraft/loot_table/blocks/pink_wool.json new file mode 100644 index 00000000..04395e40 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pink_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pink_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/piston.json b/data/minecraft/loot_table/blocks/piston.json new file mode 100644 index 00000000..b9ceb7b7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/piston.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:piston" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/piston" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pitcher_crop.json b/data/minecraft/loot_table/blocks/pitcher_crop.json new file mode 100644 index 00000000..019df6f7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pitcher_crop.json @@ -0,0 +1,157 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "0" + } + }, + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pitcher_pod" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "1" + } + }, + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pitcher_pod" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "2" + } + }, + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pitcher_pod" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + }, + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pitcher_pod" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "4" + } + }, + { + "block": "minecraft:pitcher_crop", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pitcher_plant" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pitcher_crop" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pitcher_plant.json b/data/minecraft/loot_table/blocks/pitcher_plant.json new file mode 100644 index 00000000..a7183c06 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pitcher_plant.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:pitcher_plant", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:pitcher_plant" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pitcher_plant" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/player_head.json b/data/minecraft/loot_table/blocks/player_head.json new file mode 100644 index 00000000..9abc1959 --- /dev/null +++ b/data/minecraft/loot_table/blocks/player_head.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:profile", + "minecraft:note_block_sound", + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:player_head" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/player_head" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/podzol.json b/data/minecraft/loot_table/blocks/podzol.json new file mode 100644 index 00000000..daffbde7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/podzol.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:podzol" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dirt" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/podzol" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pointed_dripstone.json b/data/minecraft/loot_table/blocks/pointed_dripstone.json new file mode 100644 index 00000000..a38b8bdf --- /dev/null +++ b/data/minecraft/loot_table/blocks/pointed_dripstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pointed_dripstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pointed_dripstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_andesite.json b/data/minecraft/loot_table/blocks/polished_andesite.json new file mode 100644 index 00000000..d4a7c823 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_andesite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_andesite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_andesite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_andesite_slab.json b/data/minecraft/loot_table/blocks/polished_andesite_slab.json new file mode 100644 index 00000000..72537c2f --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_andesite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:polished_andesite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:polished_andesite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_andesite_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_andesite_stairs.json b/data/minecraft/loot_table/blocks/polished_andesite_stairs.json new file mode 100644 index 00000000..7ab9f9db --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_andesite_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_andesite_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_andesite_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_basalt.json b/data/minecraft/loot_table/blocks/polished_basalt.json new file mode 100644 index 00000000..18ff9ecb --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_basalt.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_basalt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_basalt" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone.json b/data/minecraft/loot_table/blocks/polished_blackstone.json new file mode 100644 index 00000000..da214cb9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_brick_slab.json b/data/minecraft/loot_table/blocks/polished_blackstone_brick_slab.json new file mode 100644 index 00000000..fd8de6b3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:polished_blackstone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:polished_blackstone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_brick_stairs.json b/data/minecraft/loot_table/blocks/polished_blackstone_brick_stairs.json new file mode 100644 index 00000000..2f5ff68b --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_brick_wall.json b/data/minecraft/loot_table/blocks/polished_blackstone_brick_wall.json new file mode 100644 index 00000000..6c8b2423 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_bricks.json b/data/minecraft/loot_table/blocks/polished_blackstone_bricks.json new file mode 100644 index 00000000..749eca73 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_button.json b/data/minecraft/loot_table/blocks/polished_blackstone_button.json new file mode 100644 index 00000000..1b18dff9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_pressure_plate.json b/data/minecraft/loot_table/blocks/polished_blackstone_pressure_plate.json new file mode 100644 index 00000000..2b2ac694 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_slab.json b/data/minecraft/loot_table/blocks/polished_blackstone_slab.json new file mode 100644 index 00000000..3bba0e52 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:polished_blackstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:polished_blackstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_stairs.json b/data/minecraft/loot_table/blocks/polished_blackstone_stairs.json new file mode 100644 index 00000000..811d1806 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_blackstone_wall.json b/data/minecraft/loot_table/blocks/polished_blackstone_wall.json new file mode 100644 index 00000000..9f494f94 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_blackstone_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_blackstone_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_blackstone_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_deepslate.json b/data/minecraft/loot_table/blocks/polished_deepslate.json new file mode 100644 index 00000000..901d4cff --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_deepslate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_deepslate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_deepslate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_deepslate_slab.json b/data/minecraft/loot_table/blocks/polished_deepslate_slab.json new file mode 100644 index 00000000..891dd7db --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_deepslate_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:polished_deepslate_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:polished_deepslate_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_deepslate_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_deepslate_stairs.json b/data/minecraft/loot_table/blocks/polished_deepslate_stairs.json new file mode 100644 index 00000000..69f7e0b6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_deepslate_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_deepslate_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_deepslate_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_deepslate_wall.json b/data/minecraft/loot_table/blocks/polished_deepslate_wall.json new file mode 100644 index 00000000..81d673f0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_deepslate_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_deepslate_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_deepslate_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_diorite.json b/data/minecraft/loot_table/blocks/polished_diorite.json new file mode 100644 index 00000000..c61e8f45 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_diorite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_diorite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_diorite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_diorite_slab.json b/data/minecraft/loot_table/blocks/polished_diorite_slab.json new file mode 100644 index 00000000..19403a2f --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_diorite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:polished_diorite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:polished_diorite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_diorite_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_diorite_stairs.json b/data/minecraft/loot_table/blocks/polished_diorite_stairs.json new file mode 100644 index 00000000..2df33e32 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_diorite_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_diorite_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_diorite_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_granite.json b/data/minecraft/loot_table/blocks/polished_granite.json new file mode 100644 index 00000000..00ec9989 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_granite.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_granite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_granite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_granite_slab.json b/data/minecraft/loot_table/blocks/polished_granite_slab.json new file mode 100644 index 00000000..da6642be --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_granite_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:polished_granite_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:polished_granite_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_granite_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_granite_stairs.json b/data/minecraft/loot_table/blocks/polished_granite_stairs.json new file mode 100644 index 00000000..ae4b9ca3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_granite_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_granite_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_granite_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_tuff.json b/data/minecraft/loot_table/blocks/polished_tuff.json new file mode 100644 index 00000000..6fb6717e --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_tuff.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_tuff" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_tuff" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_tuff_slab.json b/data/minecraft/loot_table/blocks/polished_tuff_slab.json new file mode 100644 index 00000000..268d8d62 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_tuff_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:polished_tuff_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:polished_tuff_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_tuff_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_tuff_stairs.json b/data/minecraft/loot_table/blocks/polished_tuff_stairs.json new file mode 100644 index 00000000..a7375763 --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_tuff_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_tuff_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_tuff_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/polished_tuff_wall.json b/data/minecraft/loot_table/blocks/polished_tuff_wall.json new file mode 100644 index 00000000..dbf47dac --- /dev/null +++ b/data/minecraft/loot_table/blocks/polished_tuff_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:polished_tuff_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/polished_tuff_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/poppy.json b/data/minecraft/loot_table/blocks/poppy.json new file mode 100644 index 00000000..7c125ff7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/poppy.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:poppy" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/poppy" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potatoes.json b/data/minecraft/loot_table/blocks/potatoes.json new file mode 100644 index 00000000..a96918dc --- /dev/null +++ b/data/minecraft/loot_table/blocks/potatoes.json @@ -0,0 +1,76 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:potato" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:potatoes", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "minecraft:potato" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:potatoes", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chance": 0.02, + "condition": "minecraft:random_chance" + } + ], + "name": "minecraft:poisonous_potato" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potatoes" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_acacia_sapling.json b/data/minecraft/loot_table/blocks/potted_acacia_sapling.json new file mode 100644 index 00000000..62f12bf1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_acacia_sapling.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:acacia_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_acacia_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_allium.json b/data/minecraft/loot_table/blocks/potted_allium.json new file mode 100644 index 00000000..31869544 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_allium.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:allium" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_allium" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_azalea_bush.json b/data/minecraft/loot_table/blocks/potted_azalea_bush.json new file mode 100644 index 00000000..f8ec4f64 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_azalea_bush.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:azalea" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_azalea_bush" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_azure_bluet.json b/data/minecraft/loot_table/blocks/potted_azure_bluet.json new file mode 100644 index 00000000..413e7ea5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_azure_bluet.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:azure_bluet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_azure_bluet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_bamboo.json b/data/minecraft/loot_table/blocks/potted_bamboo.json new file mode 100644 index 00000000..642f7a81 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_bamboo.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bamboo" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_bamboo" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_birch_sapling.json b/data/minecraft/loot_table/blocks/potted_birch_sapling.json new file mode 100644 index 00000000..ba71d044 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_birch_sapling.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:birch_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_birch_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_blue_orchid.json b/data/minecraft/loot_table/blocks/potted_blue_orchid.json new file mode 100644 index 00000000..97d269aa --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_blue_orchid.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_orchid" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_blue_orchid" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_brown_mushroom.json b/data/minecraft/loot_table/blocks/potted_brown_mushroom.json new file mode 100644 index 00000000..78ce1584 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_brown_mushroom.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_mushroom" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_brown_mushroom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_cactus.json b/data/minecraft/loot_table/blocks/potted_cactus.json new file mode 100644 index 00000000..d121c236 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_cactus.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cactus" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_cactus" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_cherry_sapling.json b/data/minecraft/loot_table/blocks/potted_cherry_sapling.json new file mode 100644 index 00000000..22c82bf5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_cherry_sapling.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cherry_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_cherry_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_cornflower.json b/data/minecraft/loot_table/blocks/potted_cornflower.json new file mode 100644 index 00000000..70bba7ef --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_cornflower.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cornflower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_cornflower" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_crimson_fungus.json b/data/minecraft/loot_table/blocks/potted_crimson_fungus.json new file mode 100644 index 00000000..947ad097 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_crimson_fungus.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_fungus" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_crimson_fungus" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_crimson_roots.json b/data/minecraft/loot_table/blocks/potted_crimson_roots.json new file mode 100644 index 00000000..308b6f0f --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_crimson_roots.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crimson_roots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_crimson_roots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_dandelion.json b/data/minecraft/loot_table/blocks/potted_dandelion.json new file mode 100644 index 00000000..4b559d10 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_dandelion.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dandelion" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_dandelion" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_dark_oak_sapling.json b/data/minecraft/loot_table/blocks/potted_dark_oak_sapling.json new file mode 100644 index 00000000..ed6d6a4b --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_dark_oak_sapling.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dark_oak_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_dark_oak_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_dead_bush.json b/data/minecraft/loot_table/blocks/potted_dead_bush.json new file mode 100644 index 00000000..9e432e9d --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_dead_bush.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dead_bush" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_dead_bush" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_fern.json b/data/minecraft/loot_table/blocks/potted_fern.json new file mode 100644 index 00000000..8c362fb0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_fern.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:fern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_fern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_flowering_azalea_bush.json b/data/minecraft/loot_table/blocks/potted_flowering_azalea_bush.json new file mode 100644 index 00000000..48288438 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_flowering_azalea_bush.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flowering_azalea" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_flowering_azalea_bush" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_jungle_sapling.json b/data/minecraft/loot_table/blocks/potted_jungle_sapling.json new file mode 100644 index 00000000..dd1e9302 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_jungle_sapling.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:jungle_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_jungle_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_lily_of_the_valley.json b/data/minecraft/loot_table/blocks/potted_lily_of_the_valley.json new file mode 100644 index 00000000..10dfd538 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_lily_of_the_valley.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lily_of_the_valley" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_lily_of_the_valley" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_mangrove_propagule.json b/data/minecraft/loot_table/blocks/potted_mangrove_propagule.json new file mode 100644 index 00000000..2afcf4c0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_mangrove_propagule.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mangrove_propagule" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_mangrove_propagule" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_oak_sapling.json b/data/minecraft/loot_table/blocks/potted_oak_sapling.json new file mode 100644 index 00000000..f1f8e373 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_oak_sapling.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oak_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_oak_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_orange_tulip.json b/data/minecraft/loot_table/blocks/potted_orange_tulip.json new file mode 100644 index 00000000..81eab09e --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_orange_tulip.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_orange_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_oxeye_daisy.json b/data/minecraft/loot_table/blocks/potted_oxeye_daisy.json new file mode 100644 index 00000000..912ea7dd --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_oxeye_daisy.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:oxeye_daisy" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_oxeye_daisy" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_pink_tulip.json b/data/minecraft/loot_table/blocks/potted_pink_tulip.json new file mode 100644 index 00000000..e7a63e75 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_pink_tulip.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_pink_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_poppy.json b/data/minecraft/loot_table/blocks/potted_poppy.json new file mode 100644 index 00000000..d75f2d18 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_poppy.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:poppy" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_poppy" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_red_mushroom.json b/data/minecraft/loot_table/blocks/potted_red_mushroom.json new file mode 100644 index 00000000..e20d84a4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_red_mushroom.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_mushroom" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_red_mushroom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_red_tulip.json b/data/minecraft/loot_table/blocks/potted_red_tulip.json new file mode 100644 index 00000000..b5cea4ee --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_red_tulip.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_red_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_spruce_sapling.json b/data/minecraft/loot_table/blocks/potted_spruce_sapling.json new file mode 100644 index 00000000..47cf9855 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_spruce_sapling.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_spruce_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_torchflower.json b/data/minecraft/loot_table/blocks/potted_torchflower.json new file mode 100644 index 00000000..b92f91a0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_torchflower.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:torchflower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_torchflower" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_warped_fungus.json b/data/minecraft/loot_table/blocks/potted_warped_fungus.json new file mode 100644 index 00000000..a798f64c --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_warped_fungus.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_fungus" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_warped_fungus" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_warped_roots.json b/data/minecraft/loot_table/blocks/potted_warped_roots.json new file mode 100644 index 00000000..7abe315e --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_warped_roots.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_roots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_warped_roots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_white_tulip.json b/data/minecraft/loot_table/blocks/potted_white_tulip.json new file mode 100644 index 00000000..aad13071 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_white_tulip.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_white_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/potted_wither_rose.json b/data/minecraft/loot_table/blocks/potted_wither_rose.json new file mode 100644 index 00000000..fc241306 --- /dev/null +++ b/data/minecraft/loot_table/blocks/potted_wither_rose.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:wither_rose" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/potted_wither_rose" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/powder_snow.json b/data/minecraft/loot_table/blocks/powder_snow.json new file mode 100644 index 00000000..91aa4aea --- /dev/null +++ b/data/minecraft/loot_table/blocks/powder_snow.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/powder_snow" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/powder_snow_cauldron.json b/data/minecraft/loot_table/blocks/powder_snow_cauldron.json new file mode 100644 index 00000000..540379b8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/powder_snow_cauldron.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cauldron" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/powder_snow_cauldron" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/powered_rail.json b/data/minecraft/loot_table/blocks/powered_rail.json new file mode 100644 index 00000000..1baa78e8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/powered_rail.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:powered_rail" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/powered_rail" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/prismarine.json b/data/minecraft/loot_table/blocks/prismarine.json new file mode 100644 index 00000000..667cd338 --- /dev/null +++ b/data/minecraft/loot_table/blocks/prismarine.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/prismarine" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/prismarine_brick_slab.json b/data/minecraft/loot_table/blocks/prismarine_brick_slab.json new file mode 100644 index 00000000..81d7b0cb --- /dev/null +++ b/data/minecraft/loot_table/blocks/prismarine_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:prismarine_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:prismarine_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/prismarine_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/prismarine_brick_stairs.json b/data/minecraft/loot_table/blocks/prismarine_brick_stairs.json new file mode 100644 index 00000000..12ab9200 --- /dev/null +++ b/data/minecraft/loot_table/blocks/prismarine_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/prismarine_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/prismarine_bricks.json b/data/minecraft/loot_table/blocks/prismarine_bricks.json new file mode 100644 index 00000000..fa2f5e87 --- /dev/null +++ b/data/minecraft/loot_table/blocks/prismarine_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/prismarine_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/prismarine_slab.json b/data/minecraft/loot_table/blocks/prismarine_slab.json new file mode 100644 index 00000000..d1646bd7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/prismarine_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:prismarine_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:prismarine_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/prismarine_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/prismarine_stairs.json b/data/minecraft/loot_table/blocks/prismarine_stairs.json new file mode 100644 index 00000000..d4d22716 --- /dev/null +++ b/data/minecraft/loot_table/blocks/prismarine_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/prismarine_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/prismarine_wall.json b/data/minecraft/loot_table/blocks/prismarine_wall.json new file mode 100644 index 00000000..e4a8db9a --- /dev/null +++ b/data/minecraft/loot_table/blocks/prismarine_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/prismarine_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pumpkin.json b/data/minecraft/loot_table/blocks/pumpkin.json new file mode 100644 index 00000000..668cb829 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pumpkin.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pumpkin" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pumpkin" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/pumpkin_stem.json b/data/minecraft/loot_table/blocks/pumpkin_stem.json new file mode 100644 index 00000000..41e6c805 --- /dev/null +++ b/data/minecraft/loot_table/blocks/pumpkin_stem.json @@ -0,0 +1,167 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "0" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.06666667 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "1" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.13333334 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "2" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.2 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.26666668 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "4" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.33333334 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "5" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.4 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "6" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.46666667 + }, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:pumpkin_stem", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "count": { + "type": "minecraft:binomial", + "n": 3.0, + "p": 0.53333336 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_seeds" + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/pumpkin_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_banner.json b/data/minecraft/loot_table/blocks/purple_banner.json new file mode 100644 index 00000000..e555c2f5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:purple_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_bed.json b/data/minecraft/loot_table/blocks/purple_bed.json new file mode 100644 index 00000000..6a9b0be6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:purple_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:purple_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_candle.json b/data/minecraft/loot_table/blocks/purple_candle.json new file mode 100644 index 00000000..875b38e1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:purple_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:purple_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:purple_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:purple_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_candle_cake.json b/data/minecraft/loot_table/blocks/purple_candle_cake.json new file mode 100644 index 00000000..60bc8519 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_carpet.json b/data/minecraft/loot_table/blocks/purple_carpet.json new file mode 100644 index 00000000..875defd4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_concrete.json b/data/minecraft/loot_table/blocks/purple_concrete.json new file mode 100644 index 00000000..6c3a7646 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_concrete_powder.json b/data/minecraft/loot_table/blocks/purple_concrete_powder.json new file mode 100644 index 00000000..1a4146f5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_glazed_terracotta.json b/data/minecraft/loot_table/blocks/purple_glazed_terracotta.json new file mode 100644 index 00000000..fa3cafdf --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_shulker_box.json b/data/minecraft/loot_table/blocks/purple_shulker_box.json new file mode 100644 index 00000000..a0370401 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:purple_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_stained_glass.json b/data/minecraft/loot_table/blocks/purple_stained_glass.json new file mode 100644 index 00000000..b7e099dd --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_stained_glass_pane.json b/data/minecraft/loot_table/blocks/purple_stained_glass_pane.json new file mode 100644 index 00000000..698cd87c --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_terracotta.json b/data/minecraft/loot_table/blocks/purple_terracotta.json new file mode 100644 index 00000000..b03c9a13 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purple_wool.json b/data/minecraft/loot_table/blocks/purple_wool.json new file mode 100644 index 00000000..1904e3ed --- /dev/null +++ b/data/minecraft/loot_table/blocks/purple_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purple_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purpur_block.json b/data/minecraft/loot_table/blocks/purpur_block.json new file mode 100644 index 00000000..08a90f63 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purpur_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purpur_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purpur_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purpur_pillar.json b/data/minecraft/loot_table/blocks/purpur_pillar.json new file mode 100644 index 00000000..644bba00 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purpur_pillar.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purpur_pillar" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purpur_pillar" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purpur_slab.json b/data/minecraft/loot_table/blocks/purpur_slab.json new file mode 100644 index 00000000..e4e44649 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purpur_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:purpur_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:purpur_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purpur_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/purpur_stairs.json b/data/minecraft/loot_table/blocks/purpur_stairs.json new file mode 100644 index 00000000..eb1c24a0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/purpur_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purpur_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/purpur_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/quartz_block.json b/data/minecraft/loot_table/blocks/quartz_block.json new file mode 100644 index 00000000..7eb0ba9b --- /dev/null +++ b/data/minecraft/loot_table/blocks/quartz_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:quartz_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/quartz_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/quartz_bricks.json b/data/minecraft/loot_table/blocks/quartz_bricks.json new file mode 100644 index 00000000..81dcc883 --- /dev/null +++ b/data/minecraft/loot_table/blocks/quartz_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:quartz_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/quartz_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/quartz_pillar.json b/data/minecraft/loot_table/blocks/quartz_pillar.json new file mode 100644 index 00000000..792f6e79 --- /dev/null +++ b/data/minecraft/loot_table/blocks/quartz_pillar.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:quartz_pillar" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/quartz_pillar" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/quartz_slab.json b/data/minecraft/loot_table/blocks/quartz_slab.json new file mode 100644 index 00000000..b9d013c2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/quartz_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:quartz_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:quartz_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/quartz_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/quartz_stairs.json b/data/minecraft/loot_table/blocks/quartz_stairs.json new file mode 100644 index 00000000..67934f24 --- /dev/null +++ b/data/minecraft/loot_table/blocks/quartz_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:quartz_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/quartz_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/rail.json b/data/minecraft/loot_table/blocks/rail.json new file mode 100644 index 00000000..6439e1c4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/rail.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rail" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/rail" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/raw_copper_block.json b/data/minecraft/loot_table/blocks/raw_copper_block.json new file mode 100644 index 00000000..96f3df63 --- /dev/null +++ b/data/minecraft/loot_table/blocks/raw_copper_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_copper_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/raw_copper_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/raw_gold_block.json b/data/minecraft/loot_table/blocks/raw_gold_block.json new file mode 100644 index 00000000..f542446c --- /dev/null +++ b/data/minecraft/loot_table/blocks/raw_gold_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_gold_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/raw_gold_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/raw_iron_block.json b/data/minecraft/loot_table/blocks/raw_iron_block.json new file mode 100644 index 00000000..ebb81954 --- /dev/null +++ b/data/minecraft/loot_table/blocks/raw_iron_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_iron_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/raw_iron_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_banner.json b/data/minecraft/loot_table/blocks/red_banner.json new file mode 100644 index 00000000..40ab74ae --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:red_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_bed.json b/data/minecraft/loot_table/blocks/red_bed.json new file mode 100644 index 00000000..5539e346 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:red_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:red_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_candle.json b/data/minecraft/loot_table/blocks/red_candle.json new file mode 100644 index 00000000..7d811a6d --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:red_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:red_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:red_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:red_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_candle_cake.json b/data/minecraft/loot_table/blocks/red_candle_cake.json new file mode 100644 index 00000000..012bdf52 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_carpet.json b/data/minecraft/loot_table/blocks/red_carpet.json new file mode 100644 index 00000000..90d0b72c --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_concrete.json b/data/minecraft/loot_table/blocks/red_concrete.json new file mode 100644 index 00000000..8cfcb7e8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_concrete_powder.json b/data/minecraft/loot_table/blocks/red_concrete_powder.json new file mode 100644 index 00000000..43e49128 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_glazed_terracotta.json b/data/minecraft/loot_table/blocks/red_glazed_terracotta.json new file mode 100644 index 00000000..901ad17a --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_mushroom.json b/data/minecraft/loot_table/blocks/red_mushroom.json new file mode 100644 index 00000000..06781ffb --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_mushroom.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_mushroom" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_mushroom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_mushroom_block.json b/data/minecraft/loot_table/blocks/red_mushroom_block.json new file mode 100644 index 00000000..26dd196f --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_mushroom_block.json @@ -0,0 +1,62 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:red_mushroom_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": -6.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:limit_count", + "limit": { + "min": 0.0 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:red_mushroom" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_mushroom_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_nether_brick_slab.json b/data/minecraft/loot_table/blocks/red_nether_brick_slab.json new file mode 100644 index 00000000..fba983c4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_nether_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:red_nether_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:red_nether_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_nether_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_nether_brick_stairs.json b/data/minecraft/loot_table/blocks/red_nether_brick_stairs.json new file mode 100644 index 00000000..043c84c9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_nether_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_nether_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_nether_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_nether_brick_wall.json b/data/minecraft/loot_table/blocks/red_nether_brick_wall.json new file mode 100644 index 00000000..a5689eb1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_nether_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_nether_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_nether_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_nether_bricks.json b/data/minecraft/loot_table/blocks/red_nether_bricks.json new file mode 100644 index 00000000..134ff079 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_nether_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_nether_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_nether_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_sand.json b/data/minecraft/loot_table/blocks/red_sand.json new file mode 100644 index 00000000..c14fb7cd --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_sand.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_sand" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_sand" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_sandstone.json b/data/minecraft/loot_table/blocks/red_sandstone.json new file mode 100644 index 00000000..c361abe6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_sandstone_slab.json b/data/minecraft/loot_table/blocks/red_sandstone_slab.json new file mode 100644 index 00000000..44a0c415 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_sandstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:red_sandstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:red_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_sandstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_sandstone_stairs.json b/data/minecraft/loot_table/blocks/red_sandstone_stairs.json new file mode 100644 index 00000000..41904518 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_sandstone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_sandstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_sandstone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_sandstone_wall.json b/data/minecraft/loot_table/blocks/red_sandstone_wall.json new file mode 100644 index 00000000..133f5a3a --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_sandstone_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_sandstone_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_sandstone_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_shulker_box.json b/data/minecraft/loot_table/blocks/red_shulker_box.json new file mode 100644 index 00000000..b05c91ce --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:red_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_stained_glass.json b/data/minecraft/loot_table/blocks/red_stained_glass.json new file mode 100644 index 00000000..b4884b86 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_stained_glass_pane.json b/data/minecraft/loot_table/blocks/red_stained_glass_pane.json new file mode 100644 index 00000000..c7cd10e4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_terracotta.json b/data/minecraft/loot_table/blocks/red_terracotta.json new file mode 100644 index 00000000..66cb3eea --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_tulip.json b/data/minecraft/loot_table/blocks/red_tulip.json new file mode 100644 index 00000000..bb7d64d6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_tulip.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/red_wool.json b/data/minecraft/loot_table/blocks/red_wool.json new file mode 100644 index 00000000..ec75bf8c --- /dev/null +++ b/data/minecraft/loot_table/blocks/red_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/red_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/redstone_block.json b/data/minecraft/loot_table/blocks/redstone_block.json new file mode 100644 index 00000000..f6381965 --- /dev/null +++ b/data/minecraft/loot_table/blocks/redstone_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/redstone_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/redstone_lamp.json b/data/minecraft/loot_table/blocks/redstone_lamp.json new file mode 100644 index 00000000..72691b07 --- /dev/null +++ b/data/minecraft/loot_table/blocks/redstone_lamp.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone_lamp" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/redstone_lamp" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/redstone_ore.json b/data/minecraft/loot_table/blocks/redstone_ore.json new file mode 100644 index 00000000..630032a6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/redstone_ore.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:redstone_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:redstone" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/redstone_ore" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/redstone_torch.json b/data/minecraft/loot_table/blocks/redstone_torch.json new file mode 100644 index 00000000..cfbd4feb --- /dev/null +++ b/data/minecraft/loot_table/blocks/redstone_torch.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone_torch" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/redstone_torch" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/redstone_wire.json b/data/minecraft/loot_table/blocks/redstone_wire.json new file mode 100644 index 00000000..464c462d --- /dev/null +++ b/data/minecraft/loot_table/blocks/redstone_wire.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/redstone_wire" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/reinforced_deepslate.json b/data/minecraft/loot_table/blocks/reinforced_deepslate.json new file mode 100644 index 00000000..8b7ca25d --- /dev/null +++ b/data/minecraft/loot_table/blocks/reinforced_deepslate.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/reinforced_deepslate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/repeater.json b/data/minecraft/loot_table/blocks/repeater.json new file mode 100644 index 00000000..4b479efe --- /dev/null +++ b/data/minecraft/loot_table/blocks/repeater.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:repeater" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/repeater" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/respawn_anchor.json b/data/minecraft/loot_table/blocks/respawn_anchor.json new file mode 100644 index 00000000..19aa5add --- /dev/null +++ b/data/minecraft/loot_table/blocks/respawn_anchor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:respawn_anchor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/respawn_anchor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/rooted_dirt.json b/data/minecraft/loot_table/blocks/rooted_dirt.json new file mode 100644 index 00000000..da18a7b8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/rooted_dirt.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rooted_dirt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/rooted_dirt" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/rose_bush.json b/data/minecraft/loot_table/blocks/rose_bush.json new file mode 100644 index 00000000..1f76a29b --- /dev/null +++ b/data/minecraft/loot_table/blocks/rose_bush.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:rose_bush", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:rose_bush" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/rose_bush" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sand.json b/data/minecraft/loot_table/blocks/sand.json new file mode 100644 index 00000000..694cf214 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sand.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sand" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sand" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sandstone.json b/data/minecraft/loot_table/blocks/sandstone.json new file mode 100644 index 00000000..bcf6258c --- /dev/null +++ b/data/minecraft/loot_table/blocks/sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sandstone_slab.json b/data/minecraft/loot_table/blocks/sandstone_slab.json new file mode 100644 index 00000000..c2104e58 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sandstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:sandstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sandstone_stairs.json b/data/minecraft/loot_table/blocks/sandstone_stairs.json new file mode 100644 index 00000000..b6e09b43 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sandstone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sandstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sandstone_wall.json b/data/minecraft/loot_table/blocks/sandstone_wall.json new file mode 100644 index 00000000..badc92b7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sandstone_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sandstone_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sandstone_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/scaffolding.json b/data/minecraft/loot_table/blocks/scaffolding.json new file mode 100644 index 00000000..0ef83d24 --- /dev/null +++ b/data/minecraft/loot_table/blocks/scaffolding.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:scaffolding" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/scaffolding" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sculk.json b/data/minecraft/loot_table/blocks/sculk.json new file mode 100644 index 00000000..3624da12 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sculk.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sculk" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sculk" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sculk_catalyst.json b/data/minecraft/loot_table/blocks/sculk_catalyst.json new file mode 100644 index 00000000..edb425bf --- /dev/null +++ b/data/minecraft/loot_table/blocks/sculk_catalyst.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sculk_catalyst" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sculk_catalyst" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sculk_sensor.json b/data/minecraft/loot_table/blocks/sculk_sensor.json new file mode 100644 index 00000000..89ea81f8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sculk_sensor.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sculk_sensor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sculk_sensor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sculk_shrieker.json b/data/minecraft/loot_table/blocks/sculk_shrieker.json new file mode 100644 index 00000000..9a70d662 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sculk_shrieker.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sculk_shrieker" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sculk_shrieker" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sculk_vein.json b/data/minecraft/loot_table/blocks/sculk_vein.json new file mode 100644 index 00000000..4e7f5272 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sculk_vein.json @@ -0,0 +1,127 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "functions": [ + { + "add": true, + "conditions": [ + { + "block": "minecraft:sculk_vein", + "condition": "minecraft:block_state_property", + "properties": { + "down": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:sculk_vein", + "condition": "minecraft:block_state_property", + "properties": { + "up": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:sculk_vein", + "condition": "minecraft:block_state_property", + "properties": { + "north": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:sculk_vein", + "condition": "minecraft:block_state_property", + "properties": { + "south": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:sculk_vein", + "condition": "minecraft:block_state_property", + "properties": { + "west": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "conditions": [ + { + "block": "minecraft:sculk_vein", + "condition": "minecraft:block_state_property", + "properties": { + "east": "true" + } + } + ], + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": true, + "count": -1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:sculk_vein" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sculk_vein" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sea_lantern.json b/data/minecraft/loot_table/blocks/sea_lantern.json new file mode 100644 index 00000000..a966fa5c --- /dev/null +++ b/data/minecraft/loot_table/blocks/sea_lantern.json @@ -0,0 +1,71 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:sea_lantern" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:limit_count", + "limit": { + "max": 5.0, + "min": 1.0 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:prismarine_crystals" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sea_lantern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sea_pickle.json b/data/minecraft/loot_table/blocks/sea_pickle.json new file mode 100644 index 00000000..04ebbab7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sea_pickle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:sea_pickle", + "condition": "minecraft:block_state_property", + "properties": { + "pickles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:sea_pickle", + "condition": "minecraft:block_state_property", + "properties": { + "pickles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:sea_pickle", + "condition": "minecraft:block_state_property", + "properties": { + "pickles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:sea_pickle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sea_pickle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/seagrass.json b/data/minecraft/loot_table/blocks/seagrass.json new file mode 100644 index 00000000..618fdc65 --- /dev/null +++ b/data/minecraft/loot_table/blocks/seagrass.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:seagrass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/seagrass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/short_grass.json b/data/minecraft/loot_table/blocks/short_grass.json new file mode 100644 index 00000000..61e0786b --- /dev/null +++ b/data/minecraft/loot_table/blocks/short_grass.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "name": "minecraft:short_grass" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 2 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:wheat_seeds" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/short_grass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/shroomlight.json b/data/minecraft/loot_table/blocks/shroomlight.json new file mode 100644 index 00000000..82bdfdca --- /dev/null +++ b/data/minecraft/loot_table/blocks/shroomlight.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:shroomlight" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/shroomlight" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/shulker_box.json b/data/minecraft/loot_table/blocks/shulker_box.json new file mode 100644 index 00000000..b5187206 --- /dev/null +++ b/data/minecraft/loot_table/blocks/shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/skeleton_skull.json b/data/minecraft/loot_table/blocks/skeleton_skull.json new file mode 100644 index 00000000..869afad3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/skeleton_skull.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:skeleton_skull" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/skeleton_skull" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/slime_block.json b/data/minecraft/loot_table/blocks/slime_block.json new file mode 100644 index 00000000..c76a0c0e --- /dev/null +++ b/data/minecraft/loot_table/blocks/slime_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:slime_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/slime_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/small_amethyst_bud.json b/data/minecraft/loot_table/blocks/small_amethyst_bud.json new file mode 100644 index 00000000..f912468a --- /dev/null +++ b/data/minecraft/loot_table/blocks/small_amethyst_bud.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:small_amethyst_bud" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/small_amethyst_bud" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/small_dripleaf.json b/data/minecraft/loot_table/blocks/small_dripleaf.json new file mode 100644 index 00000000..85bd2915 --- /dev/null +++ b/data/minecraft/loot_table/blocks/small_dripleaf.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:small_dripleaf" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/small_dripleaf" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smithing_table.json b/data/minecraft/loot_table/blocks/smithing_table.json new file mode 100644 index 00000000..b4e8eedf --- /dev/null +++ b/data/minecraft/loot_table/blocks/smithing_table.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smithing_table" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smithing_table" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smoker.json b/data/minecraft/loot_table/blocks/smoker.json new file mode 100644 index 00000000..da107961 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smoker.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:smoker" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smoker" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_basalt.json b/data/minecraft/loot_table/blocks/smooth_basalt.json new file mode 100644 index 00000000..6012d142 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_basalt.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_basalt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_basalt" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_quartz.json b/data/minecraft/loot_table/blocks/smooth_quartz.json new file mode 100644 index 00000000..b878b713 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_quartz.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_quartz" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_quartz" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_quartz_slab.json b/data/minecraft/loot_table/blocks/smooth_quartz_slab.json new file mode 100644 index 00000000..d83dae74 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_quartz_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:smooth_quartz_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:smooth_quartz_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_quartz_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_quartz_stairs.json b/data/minecraft/loot_table/blocks/smooth_quartz_stairs.json new file mode 100644 index 00000000..8b3ab2fb --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_quartz_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_quartz_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_quartz_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_red_sandstone.json b/data/minecraft/loot_table/blocks/smooth_red_sandstone.json new file mode 100644 index 00000000..662f011e --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_red_sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_red_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_red_sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_red_sandstone_slab.json b/data/minecraft/loot_table/blocks/smooth_red_sandstone_slab.json new file mode 100644 index 00000000..f83fe609 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_red_sandstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:smooth_red_sandstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:smooth_red_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_red_sandstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_red_sandstone_stairs.json b/data/minecraft/loot_table/blocks/smooth_red_sandstone_stairs.json new file mode 100644 index 00000000..3f4ffac5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_red_sandstone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_red_sandstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_red_sandstone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_sandstone.json b/data/minecraft/loot_table/blocks/smooth_sandstone.json new file mode 100644 index 00000000..74eced28 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_sandstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_sandstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_sandstone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_sandstone_slab.json b/data/minecraft/loot_table/blocks/smooth_sandstone_slab.json new file mode 100644 index 00000000..88bb7cd4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_sandstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:smooth_sandstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:smooth_sandstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_sandstone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_sandstone_stairs.json b/data/minecraft/loot_table/blocks/smooth_sandstone_stairs.json new file mode 100644 index 00000000..8ff80105 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_sandstone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_sandstone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_sandstone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_stone.json b/data/minecraft/loot_table/blocks/smooth_stone.json new file mode 100644 index 00000000..d5f47a64 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_stone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:smooth_stone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_stone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/smooth_stone_slab.json b/data/minecraft/loot_table/blocks/smooth_stone_slab.json new file mode 100644 index 00000000..89c7ffc5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/smooth_stone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:smooth_stone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:smooth_stone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/smooth_stone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sniffer_egg.json b/data/minecraft/loot_table/blocks/sniffer_egg.json new file mode 100644 index 00000000..679bb56f --- /dev/null +++ b/data/minecraft/loot_table/blocks/sniffer_egg.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sniffer_egg" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sniffer_egg" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/snow.json b/data/minecraft/loot_table/blocks/snow.json new file mode 100644 index 00000000..337656ad --- /dev/null +++ b/data/minecraft/loot_table/blocks/snow.json @@ -0,0 +1,358 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": {} + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "1" + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "2" + } + } + ], + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "3" + } + } + ], + "functions": [ + { + "add": false, + "count": 3.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "4" + } + } + ], + "functions": [ + { + "add": false, + "count": 4.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "5" + } + } + ], + "functions": [ + { + "add": false, + "count": 5.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "6" + } + } + ], + "functions": [ + { + "add": false, + "count": 6.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "7" + } + } + ], + "functions": [ + { + "add": false, + "count": 7.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "8" + } + } + ], + "functions": [ + { + "add": false, + "count": 8.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + } + ], + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + } + ] + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "1" + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snow" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "2" + } + } + ], + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snow" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "3" + } + } + ], + "functions": [ + { + "add": false, + "count": 3.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snow" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "4" + } + } + ], + "functions": [ + { + "add": false, + "count": 4.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snow" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "5" + } + } + ], + "functions": [ + { + "add": false, + "count": 5.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snow" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "6" + } + } + ], + "functions": [ + { + "add": false, + "count": 6.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snow" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:snow", + "condition": "minecraft:block_state_property", + "properties": { + "layers": "7" + } + } + ], + "functions": [ + { + "add": false, + "count": 7.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snow" + }, + { + "type": "minecraft:item", + "name": "minecraft:snow_block" + } + ] + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/snow" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/snow_block.json b/data/minecraft/loot_table/blocks/snow_block.json new file mode 100644 index 00000000..f4c0d358 --- /dev/null +++ b/data/minecraft/loot_table/blocks/snow_block.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:snow_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:snowball" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/snow_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/soul_campfire.json b/data/minecraft/loot_table/blocks/soul_campfire.json new file mode 100644 index 00000000..7df1bf1c --- /dev/null +++ b/data/minecraft/loot_table/blocks/soul_campfire.json @@ -0,0 +1,54 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:soul_campfire" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:soul_soil" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/soul_campfire" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/soul_fire.json b/data/minecraft/loot_table/blocks/soul_fire.json new file mode 100644 index 00000000..c903d01a --- /dev/null +++ b/data/minecraft/loot_table/blocks/soul_fire.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/soul_fire" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/soul_lantern.json b/data/minecraft/loot_table/blocks/soul_lantern.json new file mode 100644 index 00000000..f30954c3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/soul_lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:soul_lantern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/soul_lantern" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/soul_sand.json b/data/minecraft/loot_table/blocks/soul_sand.json new file mode 100644 index 00000000..3c8ea141 --- /dev/null +++ b/data/minecraft/loot_table/blocks/soul_sand.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:soul_sand" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/soul_sand" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/soul_soil.json b/data/minecraft/loot_table/blocks/soul_soil.json new file mode 100644 index 00000000..6d0286a9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/soul_soil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:soul_soil" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/soul_soil" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/soul_torch.json b/data/minecraft/loot_table/blocks/soul_torch.json new file mode 100644 index 00000000..15fb096d --- /dev/null +++ b/data/minecraft/loot_table/blocks/soul_torch.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:soul_torch" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/soul_torch" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spawner.json b/data/minecraft/loot_table/blocks/spawner.json new file mode 100644 index 00000000..ef3cbef2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spawner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/spawner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sponge.json b/data/minecraft/loot_table/blocks/sponge.json new file mode 100644 index 00000000..779d58e7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sponge.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sponge" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sponge" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spore_blossom.json b/data/minecraft/loot_table/blocks/spore_blossom.json new file mode 100644 index 00000000..4954974c --- /dev/null +++ b/data/minecraft/loot_table/blocks/spore_blossom.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spore_blossom" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spore_blossom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_button.json b/data/minecraft/loot_table/blocks/spruce_button.json new file mode 100644 index 00000000..1b9db660 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_door.json b/data/minecraft/loot_table/blocks/spruce_door.json new file mode 100644 index 00000000..e2709b50 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:spruce_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:spruce_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_fence.json b/data/minecraft/loot_table/blocks/spruce_fence.json new file mode 100644 index 00000000..70f9087d --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_fence_gate.json b/data/minecraft/loot_table/blocks/spruce_fence_gate.json new file mode 100644 index 00000000..c9a633bf --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_hanging_sign.json b/data/minecraft/loot_table/blocks/spruce_hanging_sign.json new file mode 100644 index 00000000..1c7d3324 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_leaves.json b/data/minecraft/loot_table/blocks/spruce_leaves.json new file mode 100644 index 00000000..6ccb5c7d --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_leaves.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:spruce_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:spruce_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_leaves" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_log.json b/data/minecraft/loot_table/blocks/spruce_log.json new file mode 100644 index 00000000..0fcdc96c --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_planks.json b/data/minecraft/loot_table/blocks/spruce_planks.json new file mode 100644 index 00000000..4b226d25 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_pressure_plate.json b/data/minecraft/loot_table/blocks/spruce_pressure_plate.json new file mode 100644 index 00000000..a34f19c8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_sapling.json b/data/minecraft/loot_table/blocks/spruce_sapling.json new file mode 100644 index 00000000..33832b40 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_sapling.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_sapling" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_sapling" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_sign.json b/data/minecraft/loot_table/blocks/spruce_sign.json new file mode 100644 index 00000000..7e632128 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_slab.json b/data/minecraft/loot_table/blocks/spruce_slab.json new file mode 100644 index 00000000..55ceb701 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:spruce_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:spruce_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_stairs.json b/data/minecraft/loot_table/blocks/spruce_stairs.json new file mode 100644 index 00000000..66490bb4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_trapdoor.json b/data/minecraft/loot_table/blocks/spruce_trapdoor.json new file mode 100644 index 00000000..49c1de24 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/spruce_wood.json b/data/minecraft/loot_table/blocks/spruce_wood.json new file mode 100644 index 00000000..8f5cd239 --- /dev/null +++ b/data/minecraft/loot_table/blocks/spruce_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spruce_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/spruce_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sticky_piston.json b/data/minecraft/loot_table/blocks/sticky_piston.json new file mode 100644 index 00000000..5c313900 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sticky_piston.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sticky_piston" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sticky_piston" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone.json b/data/minecraft/loot_table/blocks/stone.json new file mode 100644 index 00000000..7d0be2a7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:stone" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:cobblestone" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_brick_slab.json b/data/minecraft/loot_table/blocks/stone_brick_slab.json new file mode 100644 index 00000000..1b73fc34 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:stone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_brick_stairs.json b/data/minecraft/loot_table/blocks/stone_brick_stairs.json new file mode 100644 index 00000000..abfc0133 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_brick_wall.json b/data/minecraft/loot_table/blocks/stone_brick_wall.json new file mode 100644 index 00000000..c7817c90 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_bricks.json b/data/minecraft/loot_table/blocks/stone_bricks.json new file mode 100644 index 00000000..18a4f303 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_button.json b/data/minecraft/loot_table/blocks/stone_button.json new file mode 100644 index 00000000..9faae124 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_pressure_plate.json b/data/minecraft/loot_table/blocks/stone_pressure_plate.json new file mode 100644 index 00000000..54a30ca6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_slab.json b/data/minecraft/loot_table/blocks/stone_slab.json new file mode 100644 index 00000000..7bcdc50d --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:stone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stone_stairs.json b/data/minecraft/loot_table/blocks/stone_stairs.json new file mode 100644 index 00000000..675105c2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stone_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stone_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stonecutter.json b/data/minecraft/loot_table/blocks/stonecutter.json new file mode 100644 index 00000000..e4461997 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stonecutter.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stonecutter" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stonecutter" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_acacia_log.json b/data/minecraft/loot_table/blocks/stripped_acacia_log.json new file mode 100644 index 00000000..0fd9484e --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_acacia_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_acacia_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_acacia_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_acacia_wood.json b/data/minecraft/loot_table/blocks/stripped_acacia_wood.json new file mode 100644 index 00000000..92336ab9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_acacia_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_acacia_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_acacia_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_bamboo_block.json b/data/minecraft/loot_table/blocks/stripped_bamboo_block.json new file mode 100644 index 00000000..75b40e43 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_bamboo_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_bamboo_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_bamboo_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_birch_log.json b/data/minecraft/loot_table/blocks/stripped_birch_log.json new file mode 100644 index 00000000..96825df9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_birch_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_birch_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_birch_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_birch_wood.json b/data/minecraft/loot_table/blocks/stripped_birch_wood.json new file mode 100644 index 00000000..22e87a72 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_birch_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_birch_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_birch_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_cherry_log.json b/data/minecraft/loot_table/blocks/stripped_cherry_log.json new file mode 100644 index 00000000..4623aeb0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_cherry_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_cherry_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_cherry_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_cherry_wood.json b/data/minecraft/loot_table/blocks/stripped_cherry_wood.json new file mode 100644 index 00000000..efb7c692 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_cherry_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_cherry_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_cherry_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_crimson_hyphae.json b/data/minecraft/loot_table/blocks/stripped_crimson_hyphae.json new file mode 100644 index 00000000..2d4df929 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_crimson_hyphae.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_crimson_hyphae" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_crimson_hyphae" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_crimson_stem.json b/data/minecraft/loot_table/blocks/stripped_crimson_stem.json new file mode 100644 index 00000000..4ba97f15 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_crimson_stem.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_crimson_stem" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_crimson_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_dark_oak_log.json b/data/minecraft/loot_table/blocks/stripped_dark_oak_log.json new file mode 100644 index 00000000..31cf8d92 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_dark_oak_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_dark_oak_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_dark_oak_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_dark_oak_wood.json b/data/minecraft/loot_table/blocks/stripped_dark_oak_wood.json new file mode 100644 index 00000000..e3f14364 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_dark_oak_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_dark_oak_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_dark_oak_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_jungle_log.json b/data/minecraft/loot_table/blocks/stripped_jungle_log.json new file mode 100644 index 00000000..d588810c --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_jungle_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_jungle_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_jungle_wood.json b/data/minecraft/loot_table/blocks/stripped_jungle_wood.json new file mode 100644 index 00000000..cf363c9e --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_jungle_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_jungle_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_jungle_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_mangrove_log.json b/data/minecraft/loot_table/blocks/stripped_mangrove_log.json new file mode 100644 index 00000000..439c4642 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_mangrove_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_mangrove_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_mangrove_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_mangrove_wood.json b/data/minecraft/loot_table/blocks/stripped_mangrove_wood.json new file mode 100644 index 00000000..a0add2f8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_mangrove_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_mangrove_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_mangrove_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_oak_log.json b/data/minecraft/loot_table/blocks/stripped_oak_log.json new file mode 100644 index 00000000..6f4a965d --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_oak_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_oak_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_oak_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_oak_wood.json b/data/minecraft/loot_table/blocks/stripped_oak_wood.json new file mode 100644 index 00000000..746044f3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_oak_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_oak_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_oak_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_spruce_log.json b/data/minecraft/loot_table/blocks/stripped_spruce_log.json new file mode 100644 index 00000000..c1d0afaf --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_spruce_log.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_spruce_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_spruce_log" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_spruce_wood.json b/data/minecraft/loot_table/blocks/stripped_spruce_wood.json new file mode 100644 index 00000000..b9bb7849 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_spruce_wood.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_spruce_wood" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_spruce_wood" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_warped_hyphae.json b/data/minecraft/loot_table/blocks/stripped_warped_hyphae.json new file mode 100644 index 00000000..b3e7e185 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_warped_hyphae.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_warped_hyphae" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_warped_hyphae" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/stripped_warped_stem.json b/data/minecraft/loot_table/blocks/stripped_warped_stem.json new file mode 100644 index 00000000..9dba0ad3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/stripped_warped_stem.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stripped_warped_stem" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/stripped_warped_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sugar_cane.json b/data/minecraft/loot_table/blocks/sugar_cane.json new file mode 100644 index 00000000..d9003975 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sugar_cane.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sugar_cane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sugar_cane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sunflower.json b/data/minecraft/loot_table/blocks/sunflower.json new file mode 100644 index 00000000..482f67ca --- /dev/null +++ b/data/minecraft/loot_table/blocks/sunflower.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:sunflower", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:sunflower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sunflower" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/suspicious_gravel.json b/data/minecraft/loot_table/blocks/suspicious_gravel.json new file mode 100644 index 00000000..75e77656 --- /dev/null +++ b/data/minecraft/loot_table/blocks/suspicious_gravel.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/suspicious_gravel" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/suspicious_sand.json b/data/minecraft/loot_table/blocks/suspicious_sand.json new file mode 100644 index 00000000..a3981f93 --- /dev/null +++ b/data/minecraft/loot_table/blocks/suspicious_sand.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/suspicious_sand" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/sweet_berry_bush.json b/data/minecraft/loot_table/blocks/sweet_berry_bush.json new file mode 100644 index 00000000..dc6e63f4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/sweet_berry_bush.json @@ -0,0 +1,87 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:sweet_berry_bush", + "condition": "minecraft:block_state_property", + "properties": { + "age": "3" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sweet_berries" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:sweet_berry_bush", + "condition": "minecraft:block_state_property", + "properties": { + "age": "2" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sweet_berries" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/sweet_berry_bush" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tall_grass.json b/data/minecraft/loot_table/blocks/tall_grass.json new file mode 100644 index 00000000..11ee82a6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tall_grass.json @@ -0,0 +1,134 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:tall_grass", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "block": { + "blocks": "minecraft:tall_grass", + "state": { + "half": "upper" + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:short_grass" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "name": "minecraft:wheat_seeds" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:tall_grass", + "condition": "minecraft:block_state_property", + "properties": { + "half": "upper" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": "minecraft:tall_grass", + "state": { + "half": "lower" + } + } + } + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:short_grass" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chance": 0.125, + "condition": "minecraft:random_chance" + } + ], + "name": "minecraft:wheat_seeds" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tall_grass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tall_seagrass.json b/data/minecraft/loot_table/blocks/tall_seagrass.json new file mode 100644 index 00000000..81358944 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tall_seagrass.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:seagrass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tall_seagrass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/target.json b/data/minecraft/loot_table/blocks/target.json new file mode 100644 index 00000000..5ae21779 --- /dev/null +++ b/data/minecraft/loot_table/blocks/target.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:target" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/target" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/terracotta.json b/data/minecraft/loot_table/blocks/terracotta.json new file mode 100644 index 00000000..cb0855ef --- /dev/null +++ b/data/minecraft/loot_table/blocks/terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tinted_glass.json b/data/minecraft/loot_table/blocks/tinted_glass.json new file mode 100644 index 00000000..283cb8b4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tinted_glass.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tinted_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tinted_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tnt.json b/data/minecraft/loot_table/blocks/tnt.json new file mode 100644 index 00000000..65c724aa --- /dev/null +++ b/data/minecraft/loot_table/blocks/tnt.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:tnt", + "condition": "minecraft:block_state_property", + "properties": { + "unstable": "false" + } + } + ], + "name": "minecraft:tnt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tnt" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/torch.json b/data/minecraft/loot_table/blocks/torch.json new file mode 100644 index 00000000..6fb63492 --- /dev/null +++ b/data/minecraft/loot_table/blocks/torch.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:torch" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/torch" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/torchflower.json b/data/minecraft/loot_table/blocks/torchflower.json new file mode 100644 index 00000000..022d8250 --- /dev/null +++ b/data/minecraft/loot_table/blocks/torchflower.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:torchflower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/torchflower" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/torchflower_crop.json b/data/minecraft/loot_table/blocks/torchflower_crop.json new file mode 100644 index 00000000..d22eeea8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/torchflower_crop.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:torchflower_seeds" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/torchflower_crop" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/trapped_chest.json b/data/minecraft/loot_table/blocks/trapped_chest.json new file mode 100644 index 00000000..99af49eb --- /dev/null +++ b/data/minecraft/loot_table/blocks/trapped_chest.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name" + ], + "source": "block_entity" + } + ], + "name": "minecraft:trapped_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/trapped_chest" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/trial_spawner.json b/data/minecraft/loot_table/blocks/trial_spawner.json new file mode 100644 index 00000000..d0c24937 --- /dev/null +++ b/data/minecraft/loot_table/blocks/trial_spawner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/trial_spawner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tripwire.json b/data/minecraft/loot_table/blocks/tripwire.json new file mode 100644 index 00000000..d1d92512 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tripwire.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:string" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tripwire" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tripwire_hook.json b/data/minecraft/loot_table/blocks/tripwire_hook.json new file mode 100644 index 00000000..fbb87eb4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tripwire_hook.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tripwire_hook" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tripwire_hook" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tube_coral.json b/data/minecraft/loot_table/blocks/tube_coral.json new file mode 100644 index 00000000..063c249d --- /dev/null +++ b/data/minecraft/loot_table/blocks/tube_coral.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tube_coral" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tube_coral" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tube_coral_block.json b/data/minecraft/loot_table/blocks/tube_coral_block.json new file mode 100644 index 00000000..74350462 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tube_coral_block.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:tube_coral_block" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:dead_tube_coral_block" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tube_coral_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tube_coral_fan.json b/data/minecraft/loot_table/blocks/tube_coral_fan.json new file mode 100644 index 00000000..cf1881ff --- /dev/null +++ b/data/minecraft/loot_table/blocks/tube_coral_fan.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tube_coral_fan" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tube_coral_fan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff.json b/data/minecraft/loot_table/blocks/tuff.json new file mode 100644 index 00000000..22106d14 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tuff" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff_brick_slab.json b/data/minecraft/loot_table/blocks/tuff_brick_slab.json new file mode 100644 index 00000000..2a8a70f9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:tuff_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:tuff_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff_brick_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff_brick_stairs.json b/data/minecraft/loot_table/blocks/tuff_brick_stairs.json new file mode 100644 index 00000000..dedb959e --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff_brick_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tuff_brick_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff_brick_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff_brick_wall.json b/data/minecraft/loot_table/blocks/tuff_brick_wall.json new file mode 100644 index 00000000..5c1857fa --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff_brick_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tuff_brick_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff_brick_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff_bricks.json b/data/minecraft/loot_table/blocks/tuff_bricks.json new file mode 100644 index 00000000..dd27ec06 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff_bricks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tuff_bricks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff_bricks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff_slab.json b/data/minecraft/loot_table/blocks/tuff_slab.json new file mode 100644 index 00000000..b12cec29 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:tuff_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:tuff_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff_stairs.json b/data/minecraft/loot_table/blocks/tuff_stairs.json new file mode 100644 index 00000000..d02c0cf1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tuff_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/tuff_wall.json b/data/minecraft/loot_table/blocks/tuff_wall.json new file mode 100644 index 00000000..221c81a2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/tuff_wall.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tuff_wall" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/tuff_wall" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/turtle_egg.json b/data/minecraft/loot_table/blocks/turtle_egg.json new file mode 100644 index 00000000..38df3bda --- /dev/null +++ b/data/minecraft/loot_table/blocks/turtle_egg.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:turtle_egg" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/turtle_egg" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/twisting_vines.json b/data/minecraft/loot_table/blocks/twisting_vines.json new file mode 100644 index 00000000..98a6f116 --- /dev/null +++ b/data/minecraft/loot_table/blocks/twisting_vines.json @@ -0,0 +1,65 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:twisting_vines" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.33, + 0.55, + 0.77, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:twisting_vines" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/twisting_vines" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/twisting_vines_plant.json b/data/minecraft/loot_table/blocks/twisting_vines_plant.json new file mode 100644 index 00000000..b46194c9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/twisting_vines_plant.json @@ -0,0 +1,65 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:twisting_vines" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.33, + 0.55, + 0.77, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:twisting_vines" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/twisting_vines_plant" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/vault.json b/data/minecraft/loot_table/blocks/vault.json new file mode 100644 index 00000000..d36c29f6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/vault.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "minecraft:blocks/vault" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/verdant_froglight.json b/data/minecraft/loot_table/blocks/verdant_froglight.json new file mode 100644 index 00000000..83b913db --- /dev/null +++ b/data/minecraft/loot_table/blocks/verdant_froglight.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:verdant_froglight" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/verdant_froglight" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/vine.json b/data/minecraft/loot_table/blocks/vine.json new file mode 100644 index 00000000..1a7251e5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/vine.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:vine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/vine" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_button.json b/data/minecraft/loot_table/blocks/warped_button.json new file mode 100644 index 00000000..e215348d --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_button.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_button" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_button" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_door.json b/data/minecraft/loot_table/blocks/warped_door.json new file mode 100644 index 00000000..ccfed102 --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:warped_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:warped_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_fence.json b/data/minecraft/loot_table/blocks/warped_fence.json new file mode 100644 index 00000000..b7a85a29 --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_fence" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_fence" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_fence_gate.json b/data/minecraft/loot_table/blocks/warped_fence_gate.json new file mode 100644 index 00000000..f22c3c0b --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_fence_gate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_fence_gate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_fungus.json b/data/minecraft/loot_table/blocks/warped_fungus.json new file mode 100644 index 00000000..7b87dfed --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_fungus.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_fungus" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_fungus" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_hanging_sign.json b/data/minecraft/loot_table/blocks/warped_hanging_sign.json new file mode 100644 index 00000000..7fde3f2b --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_hanging_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_hanging_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_hanging_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_hyphae.json b/data/minecraft/loot_table/blocks/warped_hyphae.json new file mode 100644 index 00000000..629a040e --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_hyphae.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_hyphae" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_hyphae" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_nylium.json b/data/minecraft/loot_table/blocks/warped_nylium.json new file mode 100644 index 00000000..2ad493f7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_nylium.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "minecraft:warped_nylium" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "minecraft:netherrack" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_nylium" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_planks.json b/data/minecraft/loot_table/blocks/warped_planks.json new file mode 100644 index 00000000..5e911b3a --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_planks.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_planks" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_planks" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_pressure_plate.json b/data/minecraft/loot_table/blocks/warped_pressure_plate.json new file mode 100644 index 00000000..fdd662bb --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_pressure_plate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_pressure_plate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_pressure_plate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_roots.json b/data/minecraft/loot_table/blocks/warped_roots.json new file mode 100644 index 00000000..a2028365 --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_roots.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_roots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_roots" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_sign.json b/data/minecraft/loot_table/blocks/warped_sign.json new file mode 100644 index 00000000..56fd8ff4 --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_sign.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_sign" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_sign" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_slab.json b/data/minecraft/loot_table/blocks/warped_slab.json new file mode 100644 index 00000000..bd79c8bb --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:warped_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:warped_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_stairs.json b/data/minecraft/loot_table/blocks/warped_stairs.json new file mode 100644 index 00000000..db65341e --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_stem.json b/data/minecraft/loot_table/blocks/warped_stem.json new file mode 100644 index 00000000..e49d82c8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_stem.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_stem" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_stem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_trapdoor.json b/data/minecraft/loot_table/blocks/warped_trapdoor.json new file mode 100644 index 00000000..0ba747d5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/warped_wart_block.json b/data/minecraft/loot_table/blocks/warped_wart_block.json new file mode 100644 index 00000000..44f1239e --- /dev/null +++ b/data/minecraft/loot_table/blocks/warped_wart_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:warped_wart_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/warped_wart_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/water_cauldron.json b/data/minecraft/loot_table/blocks/water_cauldron.json new file mode 100644 index 00000000..65480c7e --- /dev/null +++ b/data/minecraft/loot_table/blocks/water_cauldron.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cauldron" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/water_cauldron" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_chiseled_copper.json b/data/minecraft/loot_table/blocks/waxed_chiseled_copper.json new file mode 100644 index 00000000..ab095765 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_copper_block.json b/data/minecraft/loot_table/blocks/waxed_copper_block.json new file mode 100644 index 00000000..7a19b048 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_copper_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_copper_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_copper_block" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_copper_bulb.json b/data/minecraft/loot_table/blocks/waxed_copper_bulb.json new file mode 100644 index 00000000..78d96ba2 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_copper_door.json b/data/minecraft/loot_table/blocks/waxed_copper_door.json new file mode 100644 index 00000000..10852959 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:waxed_copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:waxed_copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_copper_grate.json b/data/minecraft/loot_table/blocks/waxed_copper_grate.json new file mode 100644 index 00000000..fe71fd94 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_copper_trapdoor.json b/data/minecraft/loot_table/blocks/waxed_copper_trapdoor.json new file mode 100644 index 00000000..045671e6 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_cut_copper.json b/data/minecraft/loot_table/blocks/waxed_cut_copper.json new file mode 100644 index 00000000..7bc23efa --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_cut_copper_slab.json b/data/minecraft/loot_table/blocks/waxed_cut_copper_slab.json new file mode 100644 index 00000000..a36a0d73 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:waxed_cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:waxed_cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_cut_copper_stairs.json b/data/minecraft/loot_table/blocks/waxed_cut_copper_stairs.json new file mode 100644 index 00000000..b4a0187b --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_chiseled_copper.json b/data/minecraft/loot_table/blocks/waxed_exposed_chiseled_copper.json new file mode 100644 index 00000000..259a1f56 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_exposed_chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_copper.json b/data/minecraft/loot_table/blocks/waxed_exposed_copper.json new file mode 100644 index 00000000..1177577d --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_exposed_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_copper_bulb.json b/data/minecraft/loot_table/blocks/waxed_exposed_copper_bulb.json new file mode 100644 index 00000000..75b3aadb --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_exposed_copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_copper_door.json b/data/minecraft/loot_table/blocks/waxed_exposed_copper_door.json new file mode 100644 index 00000000..27f5149a --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:waxed_exposed_copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:waxed_exposed_copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_copper_grate.json b/data/minecraft/loot_table/blocks/waxed_exposed_copper_grate.json new file mode 100644 index 00000000..5bf864df --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_exposed_copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_copper_trapdoor.json b/data/minecraft/loot_table/blocks/waxed_exposed_copper_trapdoor.json new file mode 100644 index 00000000..1b630bcd --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_exposed_copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper.json b/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper.json new file mode 100644 index 00000000..3bc5d389 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_exposed_cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper_slab.json b/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper_slab.json new file mode 100644 index 00000000..5c666508 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:waxed_exposed_cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:waxed_exposed_cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper_stairs.json b/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper_stairs.json new file mode 100644 index 00000000..a6016074 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_exposed_cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_exposed_cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_exposed_cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_chiseled_copper.json b/data/minecraft/loot_table/blocks/waxed_oxidized_chiseled_copper.json new file mode 100644 index 00000000..436ba856 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_oxidized_chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_copper.json b/data/minecraft/loot_table/blocks/waxed_oxidized_copper.json new file mode 100644 index 00000000..1adcc9dc --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_oxidized_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_copper_bulb.json b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_bulb.json new file mode 100644 index 00000000..8ffa3bae --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_oxidized_copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_copper_door.json b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_door.json new file mode 100644 index 00000000..f5772d80 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:waxed_oxidized_copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:waxed_oxidized_copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_copper_grate.json b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_grate.json new file mode 100644 index 00000000..2e56d5c8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_oxidized_copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_copper_trapdoor.json b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_trapdoor.json new file mode 100644 index 00000000..86f33c3d --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_oxidized_copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper.json b/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper.json new file mode 100644 index 00000000..8c60af17 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_oxidized_cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper_slab.json b/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper_slab.json new file mode 100644 index 00000000..1d775c12 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:waxed_oxidized_cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:waxed_oxidized_cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper_stairs.json b/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..61bacc93 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_oxidized_cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_oxidized_cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_oxidized_cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_chiseled_copper.json b/data/minecraft/loot_table/blocks/waxed_weathered_chiseled_copper.json new file mode 100644 index 00000000..dafd3229 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_weathered_chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_copper.json b/data/minecraft/loot_table/blocks/waxed_weathered_copper.json new file mode 100644 index 00000000..e219db69 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_weathered_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_copper_bulb.json b/data/minecraft/loot_table/blocks/waxed_weathered_copper_bulb.json new file mode 100644 index 00000000..3e88f84e --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_weathered_copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_copper_door.json b/data/minecraft/loot_table/blocks/waxed_weathered_copper_door.json new file mode 100644 index 00000000..410607df --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:waxed_weathered_copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:waxed_weathered_copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_copper_grate.json b/data/minecraft/loot_table/blocks/waxed_weathered_copper_grate.json new file mode 100644 index 00000000..81890f92 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_weathered_copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_copper_trapdoor.json b/data/minecraft/loot_table/blocks/waxed_weathered_copper_trapdoor.json new file mode 100644 index 00000000..fec411c3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_weathered_copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper.json b/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper.json new file mode 100644 index 00000000..0aaca0c7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_weathered_cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper_slab.json b/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper_slab.json new file mode 100644 index 00000000..d25ebd6e --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:waxed_weathered_cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:waxed_weathered_cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper_stairs.json b/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper_stairs.json new file mode 100644 index 00000000..8f2aebf9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/waxed_weathered_cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:waxed_weathered_cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/waxed_weathered_cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_chiseled_copper.json b/data/minecraft/loot_table/blocks/weathered_chiseled_copper.json new file mode 100644 index 00000000..4e5aebff --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_chiseled_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:weathered_chiseled_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_chiseled_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_copper.json b/data/minecraft/loot_table/blocks/weathered_copper.json new file mode 100644 index 00000000..57859720 --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:weathered_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_copper_bulb.json b/data/minecraft/loot_table/blocks/weathered_copper_bulb.json new file mode 100644 index 00000000..f90c6c43 --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_copper_bulb.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:weathered_copper_bulb" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_copper_bulb" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_copper_door.json b/data/minecraft/loot_table/blocks/weathered_copper_door.json new file mode 100644 index 00000000..ccfbcab1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_copper_door.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:weathered_copper_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "minecraft:weathered_copper_door" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_copper_door" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_copper_grate.json b/data/minecraft/loot_table/blocks/weathered_copper_grate.json new file mode 100644 index 00000000..01b9e1b9 --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_copper_grate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:weathered_copper_grate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_copper_grate" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_copper_trapdoor.json b/data/minecraft/loot_table/blocks/weathered_copper_trapdoor.json new file mode 100644 index 00000000..088b4d65 --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_copper_trapdoor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:weathered_copper_trapdoor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_copper_trapdoor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_cut_copper.json b/data/minecraft/loot_table/blocks/weathered_cut_copper.json new file mode 100644 index 00000000..6a1d285f --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_cut_copper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:weathered_cut_copper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_cut_copper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_cut_copper_slab.json b/data/minecraft/loot_table/blocks/weathered_cut_copper_slab.json new file mode 100644 index 00000000..a6ce591d --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_cut_copper_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:weathered_cut_copper_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:weathered_cut_copper_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_cut_copper_slab" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weathered_cut_copper_stairs.json b/data/minecraft/loot_table/blocks/weathered_cut_copper_stairs.json new file mode 100644 index 00000000..77b67345 --- /dev/null +++ b/data/minecraft/loot_table/blocks/weathered_cut_copper_stairs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:weathered_cut_copper_stairs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weathered_cut_copper_stairs" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weeping_vines.json b/data/minecraft/loot_table/blocks/weeping_vines.json new file mode 100644 index 00000000..59c2955b --- /dev/null +++ b/data/minecraft/loot_table/blocks/weeping_vines.json @@ -0,0 +1,65 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:weeping_vines" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.33, + 0.55, + 0.77, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:weeping_vines" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weeping_vines" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/weeping_vines_plant.json b/data/minecraft/loot_table/blocks/weeping_vines_plant.json new file mode 100644 index 00000000..5215e6aa --- /dev/null +++ b/data/minecraft/loot_table/blocks/weeping_vines_plant.json @@ -0,0 +1,65 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "minecraft:weeping_vines" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.33, + 0.55, + 0.77, + 1.0 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "minecraft:weeping_vines" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/weeping_vines_plant" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/wet_sponge.json b/data/minecraft/loot_table/blocks/wet_sponge.json new file mode 100644 index 00000000..c2356cb8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/wet_sponge.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:wet_sponge" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/wet_sponge" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/wheat.json b/data/minecraft/loot_table/blocks/wheat.json new file mode 100644 index 00000000..bcd5d2b3 --- /dev/null +++ b/data/minecraft/loot_table/blocks/wheat.json @@ -0,0 +1,69 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:wheat", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "name": "minecraft:wheat" + }, + { + "type": "minecraft:item", + "name": "minecraft:wheat_seeds" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "minecraft:wheat", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "minecraft:wheat_seeds" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/wheat" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_banner.json b/data/minecraft/loot_table/blocks/white_banner.json new file mode 100644 index 00000000..5c3389fe --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:white_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_bed.json b/data/minecraft/loot_table/blocks/white_bed.json new file mode 100644 index 00000000..69889d2b --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:white_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:white_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_candle.json b/data/minecraft/loot_table/blocks/white_candle.json new file mode 100644 index 00000000..c3ed1aa0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:white_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:white_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:white_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:white_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_candle_cake.json b/data/minecraft/loot_table/blocks/white_candle_cake.json new file mode 100644 index 00000000..b59f6602 --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_carpet.json b/data/minecraft/loot_table/blocks/white_carpet.json new file mode 100644 index 00000000..e71f5188 --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_concrete.json b/data/minecraft/loot_table/blocks/white_concrete.json new file mode 100644 index 00000000..45e2cbfc --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_concrete_powder.json b/data/minecraft/loot_table/blocks/white_concrete_powder.json new file mode 100644 index 00000000..d1095288 --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_glazed_terracotta.json b/data/minecraft/loot_table/blocks/white_glazed_terracotta.json new file mode 100644 index 00000000..468f2c1a --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_shulker_box.json b/data/minecraft/loot_table/blocks/white_shulker_box.json new file mode 100644 index 00000000..b9a0c67d --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:white_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_stained_glass.json b/data/minecraft/loot_table/blocks/white_stained_glass.json new file mode 100644 index 00000000..f23bd2c1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_stained_glass_pane.json b/data/minecraft/loot_table/blocks/white_stained_glass_pane.json new file mode 100644 index 00000000..73183264 --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_terracotta.json b/data/minecraft/loot_table/blocks/white_terracotta.json new file mode 100644 index 00000000..bf3042e7 --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_tulip.json b/data/minecraft/loot_table/blocks/white_tulip.json new file mode 100644 index 00000000..d5fd984e --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_tulip.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_tulip" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_tulip" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/white_wool.json b/data/minecraft/loot_table/blocks/white_wool.json new file mode 100644 index 00000000..4822669e --- /dev/null +++ b/data/minecraft/loot_table/blocks/white_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/white_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/wither_rose.json b/data/minecraft/loot_table/blocks/wither_rose.json new file mode 100644 index 00000000..18e4dfad --- /dev/null +++ b/data/minecraft/loot_table/blocks/wither_rose.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:wither_rose" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/wither_rose" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/wither_skeleton_skull.json b/data/minecraft/loot_table/blocks/wither_skeleton_skull.json new file mode 100644 index 00000000..6ed3b8fc --- /dev/null +++ b/data/minecraft/loot_table/blocks/wither_skeleton_skull.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:wither_skeleton_skull" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/wither_skeleton_skull" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_banner.json b/data/minecraft/loot_table/blocks/yellow_banner.json new file mode 100644 index 00000000..9265d859 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_banner.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:item_name", + "minecraft:hide_additional_tooltip", + "minecraft:banner_patterns" + ], + "source": "block_entity" + } + ], + "name": "minecraft:yellow_banner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_banner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_bed.json b/data/minecraft/loot_table/blocks/yellow_bed.json new file mode 100644 index 00000000..97335d6d --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_bed.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "minecraft:yellow_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "minecraft:yellow_bed" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_bed" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_candle.json b/data/minecraft/loot_table/blocks/yellow_candle.json new file mode 100644 index 00000000..c38b02d8 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_candle.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "minecraft:yellow_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "2" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:yellow_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "3" + } + } + ], + "count": 3.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "conditions": [ + { + "block": "minecraft:yellow_candle", + "condition": "minecraft:block_state_property", + "properties": { + "candles": "4" + } + } + ], + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:yellow_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_candle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_candle_cake.json b/data/minecraft/loot_table/blocks/yellow_candle_cake.json new file mode 100644 index 00000000..c51cada5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_candle_cake.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_candle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_candle_cake" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_carpet.json b/data/minecraft/loot_table/blocks/yellow_carpet.json new file mode 100644 index 00000000..b2009168 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_carpet.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_carpet" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_concrete.json b/data/minecraft/loot_table/blocks/yellow_concrete.json new file mode 100644 index 00000000..7ff63915 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_concrete.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_concrete" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_concrete" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_concrete_powder.json b/data/minecraft/loot_table/blocks/yellow_concrete_powder.json new file mode 100644 index 00000000..0f0f4df1 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_concrete_powder.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_concrete_powder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_concrete_powder" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_glazed_terracotta.json b/data/minecraft/loot_table/blocks/yellow_glazed_terracotta.json new file mode 100644 index 00000000..e0e08963 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_glazed_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_glazed_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_glazed_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_shulker_box.json b/data/minecraft/loot_table/blocks/yellow_shulker_box.json new file mode 100644 index 00000000..f28b2556 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_shulker_box.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "minecraft:custom_name", + "minecraft:container", + "minecraft:lock", + "minecraft:container_loot" + ], + "source": "block_entity" + } + ], + "name": "minecraft:yellow_shulker_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_shulker_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_stained_glass.json b/data/minecraft/loot_table/blocks/yellow_stained_glass.json new file mode 100644 index 00000000..b5831594 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_stained_glass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_stained_glass" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_stained_glass" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_stained_glass_pane.json b/data/minecraft/loot_table/blocks/yellow_stained_glass_pane.json new file mode 100644 index 00000000..a400920c --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_stained_glass_pane.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_stained_glass_pane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_stained_glass_pane" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_terracotta.json b/data/minecraft/loot_table/blocks/yellow_terracotta.json new file mode 100644 index 00000000..96d9cab0 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_terracotta.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_terracotta" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_terracotta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/yellow_wool.json b/data/minecraft/loot_table/blocks/yellow_wool.json new file mode 100644 index 00000000..27511288 --- /dev/null +++ b/data/minecraft/loot_table/blocks/yellow_wool.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/yellow_wool" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/blocks/zombie_head.json b/data/minecraft/loot_table/blocks/zombie_head.json new file mode 100644 index 00000000..8347cad5 --- /dev/null +++ b/data/minecraft/loot_table/blocks/zombie_head.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:zombie_head" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/zombie_head" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/abandoned_mineshaft.json b/data/minecraft/loot_table/chests/abandoned_mineshaft.json new file mode 100644 index 00000000..a930c04b --- /dev/null +++ b/data/minecraft/loot_table/chests/abandoned_mineshaft.json @@ -0,0 +1,318 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple" + }, + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 30 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 5 + }, + { + "type": "minecraft:empty", + "weight": 5 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lapis_lazuli", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glow_berries", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:melon_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beetroot_seeds", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rail", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:powered_rail", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:detector_rail", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:activator_rail", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 16.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:torch", + "weight": 15 + } + ], + "rolls": 3.0 + } + ], + "random_sequence": "minecraft:chests/abandoned_mineshaft" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/ancient_city.json b/data/minecraft/loot_table/chests/ancient_city.json new file mode 100644 index 00000000..7b918754 --- /dev/null +++ b/data/minecraft/loot_table/chests/ancient_city.json @@ -0,0 +1,429 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:enchanted_golden_apple" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_otherside" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:compass", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sculk_catalyst", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.8 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 50.0, + "min": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_hoe", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lead", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond_horse_armor", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:saddle", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_13", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_cat", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 50.0, + "min": 30.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_leggings", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:swift_sneak" + } + ], + "name": "minecraft:book", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sculk", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sculk_sensor", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:candle", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:amethyst_shard", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:experience_bottle", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glow_berries", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_leggings", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:echo_shard", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:disc_fragment_5", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strong_regeneration" + } + ], + "name": "minecraft:potion", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:book", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:soul_torch", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 6.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 7 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 5.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 75 + }, + { + "type": "minecraft:item", + "name": "minecraft:ward_armor_trim_smithing_template", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:silence_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/ancient_city" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/ancient_city_ice_box.json b/data/minecraft/loot_table/chests/ancient_city_ice_box.json new file mode 100644 index 00000000..ce166703 --- /dev/null +++ b/data/minecraft/loot_table/chests/ancient_city_ice_box.json @@ -0,0 +1,114 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "effects": [ + { + "type": "minecraft:night_vision", + "duration": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 7.0 + } + }, + { + "type": "minecraft:blindness", + "duration": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 5.0 + } + } + ], + "function": "minecraft:set_stew_effect" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:suspicious_stew" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_carrot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:baked_potato" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:packed_ice", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball", + "weight": 4 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 4.0 + } + } + ], + "random_sequence": "minecraft:chests/ancient_city_ice_box" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/bastion_bridge.json b/data/minecraft/loot_table/chests/bastion_bridge.json new file mode 100644 index 00000000..ea42955a --- /dev/null +++ b/data/minecraft/loot_table/chests/bastion_bridge.json @@ -0,0 +1,337 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lodestone" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.5, + "min": 0.1 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:crossbow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 28.0, + "min": 10.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spectral_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gilded_blackstone" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crying_obsidian" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_sword" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_chestplate" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_helmet" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_leggings" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_boots" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_axe" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:leather" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 17.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_nugget" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 11 + }, + { + "type": "minecraft:item", + "name": "minecraft:snout_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 9 + }, + { + "type": "minecraft:item", + "name": "minecraft:netherite_upgrade_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/bastion_bridge" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/bastion_hoglin_stable.json b/data/minecraft/loot_table/chests/bastion_hoglin_stable.json new file mode 100644 index 00000000..77e66ddc --- /dev/null +++ b/data/minecraft/loot_table/chests/bastion_hoglin_stable.json @@ -0,0 +1,397 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_shovel", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.95, + "min": 0.15 + }, + "function": "minecraft:set_damage" + }, + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_pickaxe", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:netherite_scrap", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ancient_debris", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ancient_debris", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:saddle", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_block", + "weight": 16 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 17.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_carrot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_apple", + "weight": 10 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_axe" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crying_obsidian" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glowstone" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gilded_blackstone" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:soul_sand" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crimson_nylium" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:leather" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 17.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:porkchop" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_porkchop" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crimson_fungus" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crimson_roots" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 3.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 11 + }, + { + "type": "minecraft:item", + "name": "minecraft:snout_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 9 + }, + { + "type": "minecraft:item", + "name": "minecraft:netherite_upgrade_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/bastion_hoglin_stable" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/bastion_other.json b/data/minecraft/loot_table/chests/bastion_other.json new file mode 100644 index 00000000..10540d69 --- /dev/null +++ b/data/minecraft/loot_table/chests/bastion_other.json @@ -0,0 +1,549 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_pickaxe", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond_shovel", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.9, + "min": 0.1 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:crossbow", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ancient_debris", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:netherite_scrap", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 22.0, + "min": 10.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spectral_arrow", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:piglin_banner_pattern", + "weight": 9 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:music_disc_pigstep", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 17.0, + "min": 6.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_carrot", + "weight": 12 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_apple", + "weight": 9 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:soul_speed" + } + ], + "name": "minecraft:book", + "weight": 10 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.9, + "min": 0.1 + }, + "function": "minecraft:set_damage" + }, + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_sword", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_block", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:soul_speed" + } + ], + "name": "minecraft:golden_boots" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_axe" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_block", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crossbow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_sword" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_chestplate" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_helmet" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_leggings" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_boots" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crying_obsidian", + "weight": 2 + } + ], + "rolls": 2.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gilded_blackstone", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:chain" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:magma_cream", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_nugget" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:obsidian" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 17.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_porkchop" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 3.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 11 + }, + { + "type": "minecraft:item", + "name": "minecraft:snout_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 9 + }, + { + "type": "minecraft:item", + "name": "minecraft:netherite_upgrade_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/bastion_other" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/bastion_treasure.json b/data/minecraft/loot_table/chests/bastion_treasure.json new file mode 100644 index 00000000..7c50e7ac --- /dev/null +++ b/data/minecraft/loot_table/chests/bastion_treasure.json @@ -0,0 +1,382 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:netherite_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ancient_debris", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:netherite_scrap", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ancient_debris", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.8 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_sword", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.8 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_chestplate", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.8 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_helmet", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.8 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_leggings", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.8 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_boots", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_chestplate", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_helmet", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_boots", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_leggings", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:enchanted_golden_apple", + "weight": 2 + } + ], + "rolls": 3.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 25.0, + "min": 12.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spectral_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crying_obsidian" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 23.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:quartz" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gilded_blackstone" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:magma_cream" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 3.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 11 + }, + { + "type": "minecraft:item", + "name": "minecraft:snout_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherite_upgrade_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/bastion_treasure" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/buried_treasure.json b/data/minecraft/loot_table/chests/buried_treasure.json new file mode 100644 index 00000000..a7fc2e69 --- /dev/null +++ b/data/minecraft/loot_table/chests/buried_treasure.json @@ -0,0 +1,206 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:heart_of_the_sea" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:tnt", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 5.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:prismarine_crystals", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather_chestplate" + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_sword" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_cod" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_salmon" + } + ], + "rolls": 2.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:potion" + } + ], + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:water_breathing" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + } + } + ], + "random_sequence": "minecraft:chests/buried_treasure" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/desert_pyramid.json b/data/minecraft/loot_table/chests/desert_pyramid.json new file mode 100644 index 00000000..c2a9bae1 --- /dev/null +++ b/data/minecraft/loot_table/chests/desert_pyramid.json @@ -0,0 +1,280 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 25 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spider_eye", + "weight": 25 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 25 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_horse_armor", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_horse_armor", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_horse_armor", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple", + "weight": 2 + }, + { + "type": "minecraft:empty", + "weight": 15 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gunpowder", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sand", + "weight": 10 + } + ], + "rolls": 4.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:dune_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/desert_pyramid" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/end_city_treasure.json b/data/minecraft/loot_table/chests/end_city_treasure.json new file mode 100644 index 00000000..fea2a72a --- /dev/null +++ b/data/minecraft/loot_table/chests/end_city_treasure.json @@ -0,0 +1,351 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beetroot_seeds", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 3 + }, + { + "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", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_sword", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_boots", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_chestplate", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_leggings", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_helmet", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_pickaxe", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_shovel", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_sword", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_boots", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_chestplate", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_leggings", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_helmet", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_pickaxe", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 39.0, + "min": 20.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_shovel", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 14 + }, + { + "type": "minecraft:item", + "name": "minecraft:spire_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/end_city_treasure" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/igloo_chest.json b/data/minecraft/loot_table/chests/igloo_chest.json new file mode 100644 index 00000000..e2f6f0f7 --- /dev/null +++ b/data/minecraft/loot_table/chests/igloo_chest.json @@ -0,0 +1,104 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:apple", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_axe", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:golden_apple" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/igloo_chest" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/jungle_temple.json b/data/minecraft/loot_table/chests/jungle_temple.json new file mode 100644 index 00000000..a7cc53d5 --- /dev/null +++ b/data/minecraft/loot_table/chests/jungle_temple.json @@ -0,0 +1,177 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bamboo", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 16 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 3 + }, + { + "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", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wild_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/jungle_temple" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/jungle_temple_dispenser.json b/data/minecraft/loot_table/chests/jungle_temple_dispenser.json new file mode 100644 index 00000000..118e9c2a --- /dev/null +++ b/data/minecraft/loot_table/chests/jungle_temple_dispenser.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 30 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/jungle_temple_dispenser" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/nether_bridge.json b/data/minecraft/loot_table/chests/nether_bridge.json new file mode 100644 index 00000000..751ed612 --- /dev/null +++ b/data/minecraft/loot_table/chests/nether_bridge.json @@ -0,0 +1,145 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_sword", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_chestplate", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:flint_and_steel", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:nether_wart", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_horse_armor", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_horse_armor", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_horse_armor", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:obsidian", + "weight": 2 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 14 + }, + { + "type": "minecraft:item", + "name": "minecraft:rib_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/nether_bridge" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/pillager_outpost.json b/data/minecraft/loot_table/chests/pillager_outpost.json new file mode 100644 index 00000000..36a8ef1d --- /dev/null +++ b/data/minecraft/loot_table/chests/pillager_outpost.json @@ -0,0 +1,233 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crossbow" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:potato", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:carrot", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:dark_oak_log" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:tripwire_hook", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:goat_horn" + } + ], + "functions": [ + { + "function": "minecraft:set_instrument", + "options": "#minecraft:regular_goat_horns" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sentry_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/pillager_outpost" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/ruined_portal.json b/data/minecraft/loot_table/chests/ruined_portal.json new file mode 100644 index 00000000..f2070e3b --- /dev/null +++ b/data/minecraft/loot_table/chests/ruined_portal.json @@ -0,0 +1,280 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:obsidian", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:flint", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 18.0, + "min": 9.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_nugget", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "minecraft:flint_and_steel", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "minecraft:fire_charge", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 24.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_sword", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_axe", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_hoe", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_shovel", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_pickaxe", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_boots", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_chestplate", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_helmet", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:golden_leggings", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glistering_melon_slice", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_horse_armor", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:light_weighted_pressure_plate", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_carrot", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:clock", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:bell" + }, + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_block" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + } + } + ], + "random_sequence": "minecraft:chests/ruined_portal" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/shipwreck_map.json b/data/minecraft/loot_table/chests/shipwreck_map.json new file mode 100644 index 00000000..6f50b8b9 --- /dev/null +++ b/data/minecraft/loot_table/chests/shipwreck_map.json @@ -0,0 +1,118 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "decoration": "minecraft:red_x", + "function": "minecraft:exploration_map", + "skip_existing_chunks": false, + "zoom": 1 + }, + { + "function": "minecraft:set_name", + "name": { + "translate": "filled_map.buried_treasure" + }, + "target": "item_name" + } + ], + "name": "minecraft:map" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:compass" + }, + { + "type": "minecraft:item", + "name": "minecraft:map" + }, + { + "type": "minecraft:item", + "name": "minecraft:clock" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:feather", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:book", + "weight": 5 + } + ], + "rolls": 3.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coast_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/shipwreck_map" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/shipwreck_supply.json b/data/minecraft/loot_table/chests/shipwreck_supply.json new file mode 100644 index 00000000..f13aa32c --- /dev/null +++ b/data/minecraft/loot_table/chests/shipwreck_supply.json @@ -0,0 +1,332 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:potato", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:moss_block", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:poisonous_potato", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:carrot", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 21.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "effects": [ + { + "type": "minecraft:night_vision", + "duration": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 7.0 + } + }, + { + "type": "minecraft:jump_boost", + "duration": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 7.0 + } + }, + { + "type": "minecraft:weakness", + "duration": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 6.0 + } + }, + { + "type": "minecraft:blindness", + "duration": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 5.0 + } + }, + { + "type": "minecraft:poison", + "duration": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 10.0 + } + }, + { + "type": "minecraft:saturation", + "duration": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 7.0 + } + } + ], + "function": "minecraft:set_stew_effect" + } + ], + "name": "minecraft:suspicious_stew", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 24.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bamboo", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gunpowder", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:tnt" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:leather_helmet", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:leather_chestplate", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:leather_leggings", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:leather_boots", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 3.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coast_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/shipwreck_supply" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/shipwreck_treasure.json b/data/minecraft/loot_table/chests/shipwreck_treasure.json new file mode 100644 index 00000000..bd07bad7 --- /dev/null +++ b/data/minecraft/loot_table/chests/shipwreck_treasure.json @@ -0,0 +1,153 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 90 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:experience_bottle", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_nugget", + "weight": 50 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lapis_lazuli", + "weight": 20 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coast_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/shipwreck_treasure" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/simple_dungeon.json b/data/minecraft/loot_table/chests/simple_dungeon.json new file mode 100644 index 00000000..b4b9f053 --- /dev/null +++ b/data/minecraft/loot_table/chests/simple_dungeon.json @@ -0,0 +1,295 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_otherside", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_13", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_cat", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_horse_armor", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_horse_armor", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_horse_armor", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:bucket", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:melon_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beetroot_seeds", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gunpowder", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 10 + } + ], + "rolls": 3.0 + } + ], + "random_sequence": "minecraft:chests/simple_dungeon" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/spawn_bonus_chest.json b/data/minecraft/loot_table/chests/spawn_bonus_chest.json new file mode 100644 index 00000000..0ead9928 --- /dev/null +++ b/data/minecraft/loot_table/chests/spawn_bonus_chest.json @@ -0,0 +1,240 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_axe" + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_axe", + "weight": 3 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_pickaxe" + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_pickaxe", + "weight": 3 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:apple", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:salmon", + "weight": 3 + } + ], + "rolls": 3.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:oak_planks", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:oak_log", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spruce_log", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:birch_log", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:jungle_log", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:acacia_log", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:dark_oak_log", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:mangrove_log", + "weight": 3 + } + ], + "rolls": 4.0 + } + ], + "random_sequence": "minecraft:chests/spawn_bonus_chest" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/stronghold_corridor.json b/data/minecraft/loot_table/chests/stronghold_corridor.json new file mode 100644 index 00000000..5b348c0d --- /dev/null +++ b/data/minecraft/loot_table/chests/stronghold_corridor.json @@ -0,0 +1,196 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ender_pearl", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:apple", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_chestplate", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_helmet", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_leggings", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_boots", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple" + }, + { + "type": "minecraft:item", + "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", + "name": "minecraft:music_disc_otherside" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 9 + }, + { + "type": "minecraft:item", + "name": "minecraft:eye_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/stronghold_corridor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/stronghold_crossing.json b/data/minecraft/loot_table/chests/stronghold_crossing.json new file mode 100644 index 00000000..5fec0f29 --- /dev/null +++ b/data/minecraft/loot_table/chests/stronghold_crossing.json @@ -0,0 +1,127 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:apple", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/stronghold_crossing" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/stronghold_library.json b/data/minecraft/loot_table/chests/stronghold_library.json new file mode 100644 index 00000000..4994a86e --- /dev/null +++ b/data/minecraft/loot_table/chests/stronghold_library.json @@ -0,0 +1,78 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:book", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:map" + }, + { + "type": "minecraft:item", + "name": "minecraft:compass" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:eye_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/stronghold_library" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/corridor.json b/data/minecraft/loot_table/chests/trial_chambers/corridor.json new file mode 100644 index 00000000..f9ff784f --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/corridor.json @@ -0,0 +1,193 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.9, + "min": 0.4 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_axe" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:honeycomb" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:stone_axe", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:stone_pickaxe", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ender_pearl", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bamboo_hanging_sign", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bamboo_planks", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:scaffolding", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:torch", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:tuff", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/trial_chambers/corridor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/entrance.json b/data/minecraft/loot_table/chests/trial_chambers/entrance.json new file mode 100644 index 00000000..0eadd954 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/entrance.json @@ -0,0 +1,87 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:trial_key" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wooden_axe", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:honeycomb", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + } + } + ], + "random_sequence": "minecraft:chests/trial_chambers/entrance" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/intersection.json b/data/minecraft/loot_table/chests/trial_chambers/intersection.json new file mode 100644 index 00000000..810c3579 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/intersection.json @@ -0,0 +1,149 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald_block", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.5, + "min": 0.1 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:diamond_axe", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.5, + "min": 0.1 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:diamond_pickaxe", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cake", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:amethyst_shard", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_block", + "weight": 20 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/trial_chambers/intersection" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/intersection_barrel.json b/data/minecraft/loot_table/chests/trial_chambers/intersection_barrel.json new file mode 100644 index 00000000..8b56cd46 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/intersection_barrel.json @@ -0,0 +1,184 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.9, + "min": 0.4 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_axe" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:diamond_pickaxe" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:compass" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bucket" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:golden_axe", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:golden_pickaxe", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bamboo_planks", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 6.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:baked_potato", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/trial_chambers/intersection_barrel" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward.json b/data/minecraft/loot_table/chests/trial_chambers/reward.json new file mode 100644 index 00000000..6e779bd4 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_rare", + "weight": 8 + }, + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_common", + "weight": 2 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_common" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.25, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_unique" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward_common.json b/data/minecraft/loot_table/chests/trial_chambers/reward_common.json new file mode 100644 index 00000000..90b1824b --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward_common.json @@ -0,0 +1,162 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:poison" + } + ], + "name": "minecraft:tipped_arrow", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wind_charge", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:honey_bottle", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "amplifier": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_ominous_bottle_amplifier" + } + ], + "name": "minecraft:ominous_bottle", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wind_charge" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward_common" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward_ominous.json b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous.json new file mode 100644 index 00000000..ee4b6fd5 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_ominous_rare", + "weight": 8 + }, + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_ominous_common", + "weight": 2 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_ominous_common" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.75, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:chests/trial_chambers/reward_ominous_unique" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward_ominous" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_common.json b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_common.json new file mode 100644 index 00000000..02986a53 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_common.json @@ -0,0 +1,99 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wind_charge", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strong_slowness" + } + ], + "name": "minecraft:tipped_arrow", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "amplifier": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_ominous_bottle_amplifier" + } + ], + "name": "minecraft:ominous_bottle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward_ominous_common" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_rare.json b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_rare.json new file mode 100644 index 00000000..3b7fe8dc --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_rare.json @@ -0,0 +1,124 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald_block", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_block", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 5.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:crossbow", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 10.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_axe", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 10.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_chestplate", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": [ + "minecraft:knockback", + "minecraft:punch", + "minecraft:smite", + "minecraft:looting", + "minecraft:multishot" + ] + } + ], + "name": "minecraft:book", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": [ + "minecraft:breach", + "minecraft:density" + ] + } + ], + "name": "minecraft:book", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "enchantments": { + "minecraft:wind_burst": 1.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:book", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward_ominous_rare" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_unique.json b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_unique.json new file mode 100644 index 00000000..fc2a714c --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward_ominous_unique.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:flow_armor_trim_smithing_template", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:flow_banner_pattern", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_creator" + }, + { + "type": "minecraft:item", + "name": "minecraft:heavy_core" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward_ominous_unique" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward_rare.json b/data/minecraft/loot_table/chests/trial_chambers/reward_rare.json new file mode 100644 index 00000000..54f069a1 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward_rare.json @@ -0,0 +1,189 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.5 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:shield", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 5.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:bow", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 20.0, + "min": 5.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:crossbow", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 0.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_axe", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 0.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:iron_chestplate", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_carrot", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": [ + "minecraft:sharpness", + "minecraft:bane_of_arthropods", + "minecraft:efficiency", + "minecraft:fortune", + "minecraft:silk_touch", + "minecraft:feather_falling" + ] + } + ], + "name": "minecraft:book", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": [ + "minecraft:riptide", + "minecraft:loyalty", + "minecraft:channeling", + "minecraft:impaling", + "minecraft:mending" + ] + } + ], + "name": "minecraft:book", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 5.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_chestplate" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 5.0 + }, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:diamond_axe" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward_rare" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/reward_unique.json b/data/minecraft/loot_table/chests/trial_chambers/reward_unique.json new file mode 100644 index 00000000..be2147b1 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/reward_unique.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:bolt_armor_trim_smithing_template", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:guster_banner_pattern", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_precipice", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:trident" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/trial_chambers/reward_unique" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/trial_chambers/supply.json b/data/minecraft/loot_table/chests/trial_chambers/supply.json new file mode 100644 index 00000000..8fef39c1 --- /dev/null +++ b/data/minecraft/loot_table/chests/trial_chambers/supply.json @@ -0,0 +1,239 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 14.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:poison" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:slowness" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:baked_potato", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:glow_berries", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:acacia_planks" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:moss_block" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone_meal" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 10.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:tuff" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:torch" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:regeneration" + } + ], + "name": "minecraft:potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strength" + } + ], + "name": "minecraft:potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.8, + "min": 0.15 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:stone_pickaxe", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:milk_bucket" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/trial_chambers/supply" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/underwater_ruin_big.json b/data/minecraft/loot_table/chests/underwater_ruin_big.json new file mode 100644 index 00000000..79ccd093 --- /dev/null +++ b/data/minecraft/loot_table/chests/underwater_ruin_big.json @@ -0,0 +1,128 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:golden_apple" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:leather_chestplate" + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_helmet" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:fishing_rod", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "decoration": "minecraft:red_x", + "function": "minecraft:exploration_map", + "skip_existing_chunks": false, + "zoom": 1 + }, + { + "function": "minecraft:set_name", + "name": { + "translate": "filled_map.buried_treasure" + }, + "target": "item_name" + } + ], + "name": "minecraft:map", + "weight": 10 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/underwater_ruin_big" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/underwater_ruin_small.json b/data/minecraft/loot_table/chests/underwater_ruin_small.json new file mode 100644 index 00000000..1eef5bd5 --- /dev/null +++ b/data/minecraft/loot_table/chests/underwater_ruin_small.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_axe", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather_chestplate" + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_helmet" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:fishing_rod", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "decoration": "minecraft:red_x", + "function": "minecraft:exploration_map", + "skip_existing_chunks": false, + "zoom": 1 + }, + { + "function": "minecraft:set_name", + "name": { + "translate": "filled_map.buried_treasure" + }, + "target": "item_name" + } + ], + "name": "minecraft:map", + "weight": 5 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/underwater_ruin_small" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_armorer.json b/data/minecraft/loot_table/chests/village/village_armorer.json new file mode 100644 index 00000000..d89b241a --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_armorer.json @@ -0,0 +1,56 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_helmet" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_armorer" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_butcher.json b/data/minecraft/loot_table/chests/village/village_butcher.json new file mode 100644 index 00000000..0d9aae4d --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_butcher.json @@ -0,0 +1,100 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:porkchop", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beef", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:mutton", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 3 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_butcher" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_cartographer.json b/data/minecraft/loot_table/chests/village/village_cartographer.json new file mode 100644 index 00000000..a13fa35c --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_cartographer.json @@ -0,0 +1,85 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:map", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:paper", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:compass", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_cartographer" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_desert_house.json b/data/minecraft/loot_table/chests/village/village_desert_house.json new file mode 100644 index 00000000..7c46181d --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_desert_house.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:clay_ball" + }, + { + "type": "minecraft:item", + "name": "minecraft:green_dye" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cactus", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:book" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:dead_bush", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_desert_house" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_fisher.json b/data/minecraft/loot_table/chests/village/village_fisher.json new file mode 100644 index 00000000..5161a96a --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_fisher.json @@ -0,0 +1,113 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cod", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:salmon" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:water_bucket" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:barrel" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat_seeds", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 2 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_fisher" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_fletcher.json b/data/minecraft/loot_table/chests/village/village_fletcher.json new file mode 100644 index 00000000..4afe2fc3 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_fletcher.json @@ -0,0 +1,100 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:feather", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:egg", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:flint", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 6 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_fletcher" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_mason.json b/data/minecraft/loot_table/chests/village/village_mason.json new file mode 100644 index 00000000..58fc550c --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_mason.json @@ -0,0 +1,73 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:clay_ball" + }, + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + }, + { + "type": "minecraft:item", + "name": "minecraft:stone", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_bricks", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:yellow_dye" + }, + { + "type": "minecraft:item", + "name": "minecraft:smooth_stone" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_mason" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_plains_house.json b/data/minecraft/loot_table/chests/village/village_plains_house.json new file mode 100644 index 00000000..d5839ba1 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_plains_house.json @@ -0,0 +1,128 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget" + }, + { + "type": "minecraft:item", + "name": "minecraft:dandelion", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:poppy" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:potato", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:apple", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:book" + }, + { + "type": "minecraft:item", + "name": "minecraft:feather" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:oak_sapling", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_plains_house" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_savanna_house.json b/data/minecraft/loot_table/chests/village/village_savanna_house.json new file mode 100644 index 00000000..156bbf26 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_savanna_house.json @@ -0,0 +1,128 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_nugget" + }, + { + "type": "minecraft:item", + "name": "minecraft:short_grass", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:tall_grass", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:acacia_sapling", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:torch" + }, + { + "type": "minecraft:item", + "name": "minecraft:bucket" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_savanna_house" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_shepherd.json b/data/minecraft/loot_table/chests/village/village_shepherd.json new file mode 100644 index 00000000..c1a8ad96 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_shepherd.json @@ -0,0 +1,120 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:white_wool", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:black_wool", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gray_wool", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:brown_wool", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:light_gray_wool", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "name": "minecraft:shears" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 6.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 6 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_shepherd" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_snowy_house.json b/data/minecraft/loot_table/chests/village/village_snowy_house.json new file mode 100644 index 00000000..9f554ad1 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_snowy_house.json @@ -0,0 +1,128 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_ice" + }, + { + "type": "minecraft:item", + "name": "minecraft:snow_block", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:potato", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beetroot_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:beetroot_soup" + }, + { + "type": "minecraft:item", + "name": "minecraft:furnace" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_snowy_house" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_taiga_house.json b/data/minecraft/loot_table/chests/village/village_taiga_house.json new file mode 100644 index 00000000..3793b162 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_taiga_house.json @@ -0,0 +1,161 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_nugget" + }, + { + "type": "minecraft:item", + "name": "minecraft:fern", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:large_fern", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:potato", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:sweet_berries", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_seeds", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:pumpkin_pie" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spruce_sapling", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:spruce_sign" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spruce_log", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_taiga_house" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_tannery.json b/data/minecraft/loot_table/chests/village/village_tannery.json new file mode 100644 index 00000000..26c09584 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_tannery.json @@ -0,0 +1,86 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:leather" + }, + { + "type": "minecraft:item", + "name": "minecraft:leather_chestplate", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:leather_boots", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:leather_helmet", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:leather_leggings", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_tannery" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_temple.json b/data/minecraft/loot_table/chests/village/village_temple.json new file mode 100644 index 00000000..f260813e --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_temple.json @@ -0,0 +1,109 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 7 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lapis_lazuli" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_temple" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_toolsmith.json b/data/minecraft/loot_table/chests/village/village_toolsmith.json new file mode 100644 index 00000000..ac461575 --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_toolsmith.json @@ -0,0 +1,119 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:stick", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_shovel", + "weight": 5 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_toolsmith" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/village/village_weaponsmith.json b/data/minecraft/loot_table/chests/village/village_weaponsmith.json new file mode 100644 index 00000000..195648aa --- /dev/null +++ b/data/minecraft/loot_table/chests/village/village_weaponsmith.json @@ -0,0 +1,175 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:apple", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_chestplate", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_helmet", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_leggings", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_boots", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:obsidian", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 7.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:oak_sapling", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_horse_armor" + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_horse_armor" + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_horse_armor" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 3.0 + } + } + ], + "random_sequence": "minecraft:chests/village/village_weaponsmith" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/chests/woodland_mansion.json b/data/minecraft/loot_table/chests/woodland_mansion.json new file mode 100644 index 00000000..ad13eda0 --- /dev/null +++ b/data/minecraft/loot_table/chests/woodland_mansion.json @@ -0,0 +1,303 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lead", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_apple", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:enchanted_golden_apple", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_13", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_cat", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:chainmail_chestplate", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_hoe", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_chestplate", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:bread", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wheat", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:bucket", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:redstone", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:coal", + "weight": 15 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:melon_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pumpkin_seeds", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:beetroot_seeds", + "weight": 10 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bone", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gunpowder", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:rotten_flesh", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 10 + } + ], + "rolls": 3.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty" + }, + { + "type": "minecraft:item", + "name": "minecraft:vex_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:chests/woodland_mansion" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/dispensers/trial_chambers/chamber.json b/data/minecraft/loot_table/dispensers/trial_chambers/chamber.json new file mode 100644 index 00000000..ebddad8e --- /dev/null +++ b/data/minecraft/loot_table/dispensers/trial_chambers/chamber.json @@ -0,0 +1,221 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:water_bucket", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:egg", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:fire_charge", + "weight": 6 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:slowness" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:splash_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:poison" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:splash_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:weakness" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:splash_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:slowness" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:poison" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:weakness" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:healing" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:lingering_potion" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:dispensers/trial_chambers/chamber" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/dispensers/trial_chambers/corridor.json b/data/minecraft/loot_table/dispensers/trial_chambers/corridor.json new file mode 100644 index 00000000..287748d4 --- /dev/null +++ b/data/minecraft/loot_table/dispensers/trial_chambers/corridor.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:dispensers/trial_chambers/corridor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/dispensers/trial_chambers/water.json b/data/minecraft/loot_table/dispensers/trial_chambers/water.json new file mode 100644 index 00000000..0e08c9e4 --- /dev/null +++ b/data/minecraft/loot_table/dispensers/trial_chambers/water.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:water_bucket" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:dispensers/trial_chambers/water" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/allay.json b/data/minecraft/loot_table/entities/allay.json new file mode 100644 index 00000000..47019bce --- /dev/null +++ b/data/minecraft/loot_table/entities/allay.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/allay" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/armadillo.json b/data/minecraft/loot_table/entities/armadillo.json new file mode 100644 index 00000000..588982f5 --- /dev/null +++ b/data/minecraft/loot_table/entities/armadillo.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/armadillo" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/armor_stand.json b/data/minecraft/loot_table/entities/armor_stand.json new file mode 100644 index 00000000..ef330f37 --- /dev/null +++ b/data/minecraft/loot_table/entities/armor_stand.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/armor_stand" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/axolotl.json b/data/minecraft/loot_table/entities/axolotl.json new file mode 100644 index 00000000..cd69d7df --- /dev/null +++ b/data/minecraft/loot_table/entities/axolotl.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/axolotl" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/bat.json b/data/minecraft/loot_table/entities/bat.json new file mode 100644 index 00000000..9b01c0fd --- /dev/null +++ b/data/minecraft/loot_table/entities/bat.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/bat" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/bee.json b/data/minecraft/loot_table/entities/bee.json new file mode 100644 index 00000000..db24d0ee --- /dev/null +++ b/data/minecraft/loot_table/entities/bee.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/bee" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/blaze.json b/data/minecraft/loot_table/entities/blaze.json new file mode 100644 index 00000000..10f636b8 --- /dev/null +++ b/data/minecraft/loot_table/entities/blaze.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:blaze_rod" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/blaze" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/bogged.json b/data/minecraft/loot_table/entities/bogged.json new file mode 100644 index 00000000..35675294 --- /dev/null +++ b/data/minecraft/loot_table/entities/bogged.json @@ -0,0 +1,106 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:arrow" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:bone" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase", + "limit": 1 + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:poison" + } + ], + "name": "minecraft:tipped_arrow" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/bogged" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/breeze.json b/data/minecraft/loot_table/entities/breeze.json new file mode 100644 index 00000000..75f224db --- /dev/null +++ b/data/minecraft/loot_table/entities/breeze.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:breeze_rod" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/breeze" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/camel.json b/data/minecraft/loot_table/entities/camel.json new file mode 100644 index 00000000..15031d4c --- /dev/null +++ b/data/minecraft/loot_table/entities/camel.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/camel" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/cat.json b/data/minecraft/loot_table/entities/cat.json new file mode 100644 index 00000000..986f159d --- /dev/null +++ b/data/minecraft/loot_table/entities/cat.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/cat" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/cave_spider.json b/data/minecraft/loot_table/entities/cave_spider.json new file mode 100644 index 00000000..280eaa54 --- /dev/null +++ b/data/minecraft/loot_table/entities/cave_spider.json @@ -0,0 +1,71 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:string" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": -1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:spider_eye" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/cave_spider" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/chicken.json b/data/minecraft/loot_table/entities/chicken.json new file mode 100644 index 00000000..8e0dd027 --- /dev/null +++ b/data/minecraft/loot_table/entities/chicken.json @@ -0,0 +1,93 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:feather" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:chicken" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/chicken" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/cod.json b/data/minecraft/loot_table/entities/cod.json new file mode 100644 index 00000000..8f04a378 --- /dev/null +++ b/data/minecraft/loot_table/entities/cod.json @@ -0,0 +1,70 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:cod" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.05, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone_meal" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/cod" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/cow.json b/data/minecraft/loot_table/entities/cow.json new file mode 100644 index 00000000..d56a5017 --- /dev/null +++ b/data/minecraft/loot_table/entities/cow.json @@ -0,0 +1,102 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:beef" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/cow" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/creeper.json b/data/minecraft/loot_table/entities/creeper.json new file mode 100644 index 00000000..c547ddd1 --- /dev/null +++ b/data/minecraft/loot_table/entities/creeper.json @@ -0,0 +1,56 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:gunpowder" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "attacker", + "predicate": { + "type": "#minecraft:skeletons" + } + } + ], + "entries": [ + { + "type": "minecraft:tag", + "expand": true, + "name": "minecraft:creeper_drop_music_discs" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/creeper" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/dolphin.json b/data/minecraft/loot_table/entities/dolphin.json new file mode 100644 index 00000000..9683e15d --- /dev/null +++ b/data/minecraft/loot_table/entities/dolphin.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:cod" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/dolphin" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/donkey.json b/data/minecraft/loot_table/entities/donkey.json new file mode 100644 index 00000000..3be08fd3 --- /dev/null +++ b/data/minecraft/loot_table/entities/donkey.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/donkey" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/drowned.json b/data/minecraft/loot_table/entities/drowned.json new file mode 100644 index 00000000..83e8c20c --- /dev/null +++ b/data/minecraft/loot_table/entities/drowned.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.13, + "per_level_above_first": 0.02 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.11 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/drowned" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/elder_guardian.json b/data/minecraft/loot_table/entities/elder_guardian.json new file mode 100644 index 00000000..1a37b9db --- /dev/null +++ b/data/minecraft/loot_table/entities/elder_guardian.json @@ -0,0 +1,205 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:prismarine_shard" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:cod", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:prismarine_crystals", + "weight": 2 + }, + { + "type": "minecraft:empty" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:wet_sponge" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:loot_table", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "value": "minecraft:gameplay/fishing/fish" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:tide_armor_trim_smithing_template" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/elder_guardian" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/ender_dragon.json b/data/minecraft/loot_table/entities/ender_dragon.json new file mode 100644 index 00000000..9067e7f0 --- /dev/null +++ b/data/minecraft/loot_table/entities/ender_dragon.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/ender_dragon" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/enderman.json b/data/minecraft/loot_table/entities/enderman.json new file mode 100644 index 00000000..db017740 --- /dev/null +++ b/data/minecraft/loot_table/entities/enderman.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:ender_pearl" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/enderman" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/endermite.json b/data/minecraft/loot_table/entities/endermite.json new file mode 100644 index 00000000..81f0dc58 --- /dev/null +++ b/data/minecraft/loot_table/entities/endermite.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/endermite" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/evoker.json b/data/minecraft/loot_table/entities/evoker.json new file mode 100644 index 00000000..624fa786 --- /dev/null +++ b/data/minecraft/loot_table/entities/evoker.json @@ -0,0 +1,51 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:totem_of_undying" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:emerald" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/evoker" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/fox.json b/data/minecraft/loot_table/entities/fox.json new file mode 100644 index 00000000..befa68b9 --- /dev/null +++ b/data/minecraft/loot_table/entities/fox.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/fox" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/frog.json b/data/minecraft/loot_table/entities/frog.json new file mode 100644 index 00000000..0faaf14b --- /dev/null +++ b/data/minecraft/loot_table/entities/frog.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/frog" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/ghast.json b/data/minecraft/loot_table/entities/ghast.json new file mode 100644 index 00000000..9bf278de --- /dev/null +++ b/data/minecraft/loot_table/entities/ghast.json @@ -0,0 +1,66 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:ghast_tear" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:gunpowder" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/ghast" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/giant.json b/data/minecraft/loot_table/entities/giant.json new file mode 100644 index 00000000..67b0af8f --- /dev/null +++ b/data/minecraft/loot_table/entities/giant.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/giant" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/glow_squid.json b/data/minecraft/loot_table/entities/glow_squid.json new file mode 100644 index 00000000..2430aca3 --- /dev/null +++ b/data/minecraft/loot_table/entities/glow_squid.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:glow_ink_sac" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/glow_squid" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/goat.json b/data/minecraft/loot_table/entities/goat.json new file mode 100644 index 00000000..c312db7d --- /dev/null +++ b/data/minecraft/loot_table/entities/goat.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/goat" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/guardian.json b/data/minecraft/loot_table/entities/guardian.json new file mode 100644 index 00000000..a11b14ea --- /dev/null +++ b/data/minecraft/loot_table/entities/guardian.json @@ -0,0 +1,176 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:prismarine_shard" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:cod", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:prismarine_crystals", + "weight": 2 + }, + { + "type": "minecraft:empty" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:loot_table", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "value": "minecraft:gameplay/fishing/fish" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/guardian" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/hoglin.json b/data/minecraft/loot_table/entities/hoglin.json new file mode 100644 index 00000000..fbeec229 --- /dev/null +++ b/data/minecraft/loot_table/entities/hoglin.json @@ -0,0 +1,102 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:porkchop" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/hoglin" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/horse.json b/data/minecraft/loot_table/entities/horse.json new file mode 100644 index 00000000..90333d76 --- /dev/null +++ b/data/minecraft/loot_table/entities/horse.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/horse" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/husk.json b/data/minecraft/loot_table/entities/husk.json new file mode 100644 index 00000000..8894fafe --- /dev/null +++ b/data/minecraft/loot_table/entities/husk.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:potato" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/husk" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/illusioner.json b/data/minecraft/loot_table/entities/illusioner.json new file mode 100644 index 00000000..5efa2e3a --- /dev/null +++ b/data/minecraft/loot_table/entities/illusioner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/illusioner" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/iron_golem.json b/data/minecraft/loot_table/entities/iron_golem.json new file mode 100644 index 00000000..25f21ae4 --- /dev/null +++ b/data/minecraft/loot_table/entities/iron_golem.json @@ -0,0 +1,48 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:poppy" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/iron_golem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/llama.json b/data/minecraft/loot_table/entities/llama.json new file mode 100644 index 00000000..db129748 --- /dev/null +++ b/data/minecraft/loot_table/entities/llama.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/llama" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/magma_cube.json b/data/minecraft/loot_table/entities/magma_cube.json new file mode 100644 index 00000000..d560ee8b --- /dev/null +++ b/data/minecraft/loot_table/entities/magma_cube.json @@ -0,0 +1,136 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog" + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:slime", + "size": { + "min": 2 + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": -2.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:magma_cream" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:warm" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pearlescent_froglight" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:cold" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:verdant_froglight" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog", + "type_specific": { + "type": "minecraft:frog", + "variant": "minecraft:temperate" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ochre_froglight" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/magma_cube" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/mooshroom.json b/data/minecraft/loot_table/entities/mooshroom.json new file mode 100644 index 00000000..1f1523d3 --- /dev/null +++ b/data/minecraft/loot_table/entities/mooshroom.json @@ -0,0 +1,102 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:beef" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/mooshroom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/mule.json b/data/minecraft/loot_table/entities/mule.json new file mode 100644 index 00000000..a491b7e9 --- /dev/null +++ b/data/minecraft/loot_table/entities/mule.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/mule" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/ocelot.json b/data/minecraft/loot_table/entities/ocelot.json new file mode 100644 index 00000000..ab51d391 --- /dev/null +++ b/data/minecraft/loot_table/entities/ocelot.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/ocelot" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/panda.json b/data/minecraft/loot_table/entities/panda.json new file mode 100644 index 00000000..fb4490e7 --- /dev/null +++ b/data/minecraft/loot_table/entities/panda.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bamboo" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/panda" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/parrot.json b/data/minecraft/loot_table/entities/parrot.json new file mode 100644 index 00000000..ad2e18e3 --- /dev/null +++ b/data/minecraft/loot_table/entities/parrot.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:feather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/parrot" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/phantom.json b/data/minecraft/loot_table/entities/phantom.json new file mode 100644 index 00000000..41254d6b --- /dev/null +++ b/data/minecraft/loot_table/entities/phantom.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:phantom_membrane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/phantom" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/pig.json b/data/minecraft/loot_table/entities/pig.json new file mode 100644 index 00000000..a945d461 --- /dev/null +++ b/data/minecraft/loot_table/entities/pig.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:porkchop" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/pig" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/piglin.json b/data/minecraft/loot_table/entities/piglin.json new file mode 100644 index 00000000..5752d041 --- /dev/null +++ b/data/minecraft/loot_table/entities/piglin.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/piglin" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/piglin_brute.json b/data/minecraft/loot_table/entities/piglin_brute.json new file mode 100644 index 00000000..af2fd348 --- /dev/null +++ b/data/minecraft/loot_table/entities/piglin_brute.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/piglin_brute" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/pillager.json b/data/minecraft/loot_table/entities/pillager.json new file mode 100644 index 00000000..2cbad174 --- /dev/null +++ b/data/minecraft/loot_table/entities/pillager.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:raider", + "is_captain": true + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "amplifier": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 0.0 + }, + "function": "minecraft:set_ominous_bottle_amplifier" + } + ], + "name": "minecraft:ominous_bottle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/pillager" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/player.json b/data/minecraft/loot_table/entities/player.json new file mode 100644 index 00000000..f2a59603 --- /dev/null +++ b/data/minecraft/loot_table/entities/player.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/player" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/polar_bear.json b/data/minecraft/loot_table/entities/polar_bear.json new file mode 100644 index 00000000..1e54cf10 --- /dev/null +++ b/data/minecraft/loot_table/entities/polar_bear.json @@ -0,0 +1,133 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:cod", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:salmon" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/polar_bear" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/pufferfish.json b/data/minecraft/loot_table/entities/pufferfish.json new file mode 100644 index 00000000..fa8c356b --- /dev/null +++ b/data/minecraft/loot_table/entities/pufferfish.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:pufferfish" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.05, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone_meal" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/pufferfish" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/rabbit.json b/data/minecraft/loot_table/entities/rabbit.json new file mode 100644 index 00000000..e1f1aa24 --- /dev/null +++ b/data/minecraft/loot_table/entities/rabbit.json @@ -0,0 +1,123 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rabbit_hide" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rabbit" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.13, + "per_level_above_first": 0.03 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.1 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rabbit_foot" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/rabbit" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/ravager.json b/data/minecraft/loot_table/entities/ravager.json new file mode 100644 index 00000000..2d47e497 --- /dev/null +++ b/data/minecraft/loot_table/entities/ravager.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:saddle" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/ravager" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/salmon.json b/data/minecraft/loot_table/entities/salmon.json new file mode 100644 index 00000000..e349719f --- /dev/null +++ b/data/minecraft/loot_table/entities/salmon.json @@ -0,0 +1,70 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:salmon" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.05, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone_meal" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/salmon" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep.json b/data/minecraft/loot_table/entities/sheep.json new file mode 100644 index 00000000..9cb30577 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:mutton" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/black.json b/data/minecraft/loot_table/entities/sheep/black.json new file mode 100644 index 00000000..23810b2a --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/black.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:black_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/black" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/blue.json b/data/minecraft/loot_table/entities/sheep/blue.json new file mode 100644 index 00000000..89c4a9a0 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/blue.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:blue_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/blue" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/brown.json b/data/minecraft/loot_table/entities/sheep/brown.json new file mode 100644 index 00000000..6a6641bb --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/brown.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:brown_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/brown" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/cyan.json b/data/minecraft/loot_table/entities/sheep/cyan.json new file mode 100644 index 00000000..4e9e0f9e --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/cyan.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cyan_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/cyan" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/gray.json b/data/minecraft/loot_table/entities/sheep/gray.json new file mode 100644 index 00000000..7744ec86 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/gray.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gray_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/gray" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/green.json b/data/minecraft/loot_table/entities/sheep/green.json new file mode 100644 index 00000000..cbca2c39 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/green.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:green_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/green" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/light_blue.json b/data/minecraft/loot_table/entities/sheep/light_blue.json new file mode 100644 index 00000000..59117347 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/light_blue.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_blue_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/light_blue" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/light_gray.json b/data/minecraft/loot_table/entities/sheep/light_gray.json new file mode 100644 index 00000000..f0593201 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/light_gray.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:light_gray_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/light_gray" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/lime.json b/data/minecraft/loot_table/entities/sheep/lime.json new file mode 100644 index 00000000..49ee18ec --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/lime.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lime_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/lime" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/magenta.json b/data/minecraft/loot_table/entities/sheep/magenta.json new file mode 100644 index 00000000..011f47d7 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/magenta.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magenta_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/magenta" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/orange.json b/data/minecraft/loot_table/entities/sheep/orange.json new file mode 100644 index 00000000..1e28c15e --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/orange.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:orange_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/orange" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/pink.json b/data/minecraft/loot_table/entities/sheep/pink.json new file mode 100644 index 00000000..a92cf924 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/pink.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:pink_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/pink" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/purple.json b/data/minecraft/loot_table/entities/sheep/purple.json new file mode 100644 index 00000000..d217ba55 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/purple.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:purple_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/purple" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/red.json b/data/minecraft/loot_table/entities/sheep/red.json new file mode 100644 index 00000000..9bd709b6 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/red.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:red_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/red" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/white.json b/data/minecraft/loot_table/entities/sheep/white.json new file mode 100644 index 00000000..f4794dd3 --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/white.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/white" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sheep/yellow.json b/data/minecraft/loot_table/entities/sheep/yellow.json new file mode 100644 index 00000000..ebe39bcc --- /dev/null +++ b/data/minecraft/loot_table/entities/sheep/yellow.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:yellow_wool" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:entities/sheep" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/sheep/yellow" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/shulker.json b/data/minecraft/loot_table/entities/shulker.json new file mode 100644 index 00000000..67da836b --- /dev/null +++ b/data/minecraft/loot_table/entities/shulker.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.5625, + "per_level_above_first": 0.0625 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.5 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:shulker_shell" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/shulker" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/silverfish.json b/data/minecraft/loot_table/entities/silverfish.json new file mode 100644 index 00000000..8499c3aa --- /dev/null +++ b/data/minecraft/loot_table/entities/silverfish.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/silverfish" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/skeleton.json b/data/minecraft/loot_table/entities/skeleton.json new file mode 100644 index 00000000..c81080f8 --- /dev/null +++ b/data/minecraft/loot_table/entities/skeleton.json @@ -0,0 +1,66 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:arrow" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:bone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/skeleton" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/skeleton_horse.json b/data/minecraft/loot_table/entities/skeleton_horse.json new file mode 100644 index 00000000..286807ed --- /dev/null +++ b/data/minecraft/loot_table/entities/skeleton_horse.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:bone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/skeleton_horse" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/slime.json b/data/minecraft/loot_table/entities/slime.json new file mode 100644 index 00000000..4047b14d --- /dev/null +++ b/data/minecraft/loot_table/entities/slime.json @@ -0,0 +1,82 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:slime", + "size": 1 + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog" + } + } + } + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:slime_ball" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "source_entity": { + "type": "minecraft:frog" + } + } + } + ], + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:slime_ball" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/slime" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/sniffer.json b/data/minecraft/loot_table/entities/sniffer.json new file mode 100644 index 00000000..bc023ba7 --- /dev/null +++ b/data/minecraft/loot_table/entities/sniffer.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/sniffer" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/snow_golem.json b/data/minecraft/loot_table/entities/snow_golem.json new file mode 100644 index 00000000..df001a22 --- /dev/null +++ b/data/minecraft/loot_table/entities/snow_golem.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 15.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:snowball" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/snow_golem" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/spider.json b/data/minecraft/loot_table/entities/spider.json new file mode 100644 index 00000000..e5309149 --- /dev/null +++ b/data/minecraft/loot_table/entities/spider.json @@ -0,0 +1,71 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:string" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": -1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:spider_eye" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/spider" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/squid.json b/data/minecraft/loot_table/entities/squid.json new file mode 100644 index 00000000..90b24ce7 --- /dev/null +++ b/data/minecraft/loot_table/entities/squid.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:ink_sac" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/squid" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/stray.json b/data/minecraft/loot_table/entities/stray.json new file mode 100644 index 00000000..b521a7a1 --- /dev/null +++ b/data/minecraft/loot_table/entities/stray.json @@ -0,0 +1,106 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:arrow" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:bone" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase", + "limit": 1 + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:slowness" + } + ], + "name": "minecraft:tipped_arrow" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/stray" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/strider.json b/data/minecraft/loot_table/entities/strider.json new file mode 100644 index 00000000..bc484c9f --- /dev/null +++ b/data/minecraft/loot_table/entities/strider.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:string" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/strider" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/tadpole.json b/data/minecraft/loot_table/entities/tadpole.json new file mode 100644 index 00000000..e5849400 --- /dev/null +++ b/data/minecraft/loot_table/entities/tadpole.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/tadpole" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/trader_llama.json b/data/minecraft/loot_table/entities/trader_llama.json new file mode 100644 index 00000000..76d7c217 --- /dev/null +++ b/data/minecraft/loot_table/entities/trader_llama.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/trader_llama" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/tropical_fish.json b/data/minecraft/loot_table/entities/tropical_fish.json new file mode 100644 index 00000000..9d05e61b --- /dev/null +++ b/data/minecraft/loot_table/entities/tropical_fish.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:tropical_fish" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.05, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone_meal" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/tropical_fish" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/turtle.json b/data/minecraft/loot_table/entities/turtle.json new file mode 100644 index 00000000..6d8f3042 --- /dev/null +++ b/data/minecraft/loot_table/entities/turtle.json @@ -0,0 +1,60 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:seagrass", + "weight": 3 + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:is_lightning" + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bowl" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/turtle" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/vex.json b/data/minecraft/loot_table/entities/vex.json new file mode 100644 index 00000000..b43c526f --- /dev/null +++ b/data/minecraft/loot_table/entities/vex.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/vex" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/villager.json b/data/minecraft/loot_table/entities/villager.json new file mode 100644 index 00000000..76000a05 --- /dev/null +++ b/data/minecraft/loot_table/entities/villager.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/villager" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/vindicator.json b/data/minecraft/loot_table/entities/vindicator.json new file mode 100644 index 00000000..f9153dd3 --- /dev/null +++ b/data/minecraft/loot_table/entities/vindicator.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:emerald" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/vindicator" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/wandering_trader.json b/data/minecraft/loot_table/entities/wandering_trader.json new file mode 100644 index 00000000..e329a2b6 --- /dev/null +++ b/data/minecraft/loot_table/entities/wandering_trader.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/wandering_trader" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/warden.json b/data/minecraft/loot_table/entities/warden.json new file mode 100644 index 00000000..641080f6 --- /dev/null +++ b/data/minecraft/loot_table/entities/warden.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sculk_catalyst" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/warden" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/witch.json b/data/minecraft/loot_table/entities/witch.json new file mode 100644 index 00000000..44689097 --- /dev/null +++ b/data/minecraft/loot_table/entities/witch.json @@ -0,0 +1,191 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:glowstone_dust" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:sugar" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:spider_eye" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:glass_bottle" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:gunpowder" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:stick", + "weight": 2 + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 4.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:redstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/witch" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/wither.json b/data/minecraft/loot_table/entities/wither.json new file mode 100644 index 00000000..91301c93 --- /dev/null +++ b/data/minecraft/loot_table/entities/wither.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/wither" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/wither_skeleton.json b/data/minecraft/loot_table/entities/wither_skeleton.json new file mode 100644 index 00000000..a5a9a5a4 --- /dev/null +++ b/data/minecraft/loot_table/entities/wither_skeleton.json @@ -0,0 +1,91 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": -1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:coal" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:bone" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:wither_skeleton_skull" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/wither_skeleton" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/wolf.json b/data/minecraft/loot_table/entities/wolf.json new file mode 100644 index 00000000..baf3ea80 --- /dev/null +++ b/data/minecraft/loot_table/entities/wolf.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/wolf" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/zoglin.json b/data/minecraft/loot_table/entities/zoglin.json new file mode 100644 index 00000000..cbb21c24 --- /dev/null +++ b/data/minecraft/loot_table/entities/zoglin.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/zoglin" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/zombie.json b/data/minecraft/loot_table/entities/zombie.json new file mode 100644 index 00000000..9a2bbc6a --- /dev/null +++ b/data/minecraft/loot_table/entities/zombie.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:potato" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/zombie" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/zombie_horse.json b/data/minecraft/loot_table/entities/zombie_horse.json new file mode 100644 index 00000000..d2f6a9e6 --- /dev/null +++ b/data/minecraft/loot_table/entities/zombie_horse.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/zombie_horse" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/zombie_villager.json b/data/minecraft/loot_table/entities/zombie_villager.json new file mode 100644 index 00000000..3f3776e9 --- /dev/null +++ b/data/minecraft/loot_table/entities/zombie_villager.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:potato" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/zombie_villager" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/entities/zombified_piglin.json b/data/minecraft/loot_table/entities/zombified_piglin.json new file mode 100644 index 00000000..9bd71b3e --- /dev/null +++ b/data/minecraft/loot_table/entities/zombified_piglin.json @@ -0,0 +1,91 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:gold_nugget" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/zombified_piglin" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/equipment/trial_chamber.json b/data/minecraft/loot_table/equipment/trial_chamber.json new file mode 100644 index 00000000..990aa0be --- /dev/null +++ b/data/minecraft/loot_table/equipment/trial_chamber.json @@ -0,0 +1,251 @@ +{ + "type": "minecraft:equipment", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": { + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.5, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "components": { + "minecraft:trim": { + "material": "minecraft:copper", + "pattern": "minecraft:bolt" + } + }, + "function": "minecraft:set_components" + }, + { + "add": false, + "enchantments": { + "minecraft:fire_protection": 4.0, + "minecraft:projectile_protection": 4.0, + "minecraft:protection": 4.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:chainmail_helmet" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.5, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "components": { + "minecraft:trim": { + "material": "minecraft:copper", + "pattern": "minecraft:bolt" + } + }, + "function": "minecraft:set_components" + }, + { + "add": false, + "enchantments": { + "minecraft:fire_protection": 4.0, + "minecraft:projectile_protection": 4.0, + "minecraft:protection": 4.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:chainmail_chestplate" + } + ], + "rolls": 1.0 + } + ] + }, + "weight": 4 + }, + { + "type": "minecraft:loot_table", + "value": { + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.5, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "components": { + "minecraft:trim": { + "material": "minecraft:copper", + "pattern": "minecraft:flow" + } + }, + "function": "minecraft:set_components" + }, + { + "add": false, + "enchantments": { + "minecraft:fire_protection": 4.0, + "minecraft:projectile_protection": 4.0, + "minecraft:protection": 4.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:iron_helmet" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.5, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "components": { + "minecraft:trim": { + "material": "minecraft:copper", + "pattern": "minecraft:flow" + } + }, + "function": "minecraft:set_components" + }, + { + "add": false, + "enchantments": { + "minecraft:fire_protection": 4.0, + "minecraft:projectile_protection": 4.0, + "minecraft:protection": 4.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:iron_chestplate" + } + ], + "rolls": 1.0 + } + ] + }, + "weight": 2 + }, + { + "type": "minecraft:loot_table", + "value": { + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.5, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "components": { + "minecraft:trim": { + "material": "minecraft:copper", + "pattern": "minecraft:flow" + } + }, + "function": "minecraft:set_components" + }, + { + "add": false, + "enchantments": { + "minecraft:fire_protection": 4.0, + "minecraft:projectile_protection": 4.0, + "minecraft:protection": 4.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:diamond_helmet" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.5, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "components": { + "minecraft:trim": { + "material": "minecraft:copper", + "pattern": "minecraft:flow" + } + }, + "function": "minecraft:set_components" + }, + { + "add": false, + "enchantments": { + "minecraft:fire_protection": 4.0, + "minecraft:projectile_protection": 4.0, + "minecraft:protection": 4.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:diamond_chestplate" + } + ], + "rolls": 1.0 + } + ] + } + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:equipment/trial_chamber" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/equipment/trial_chamber_melee.json b/data/minecraft/loot_table/equipment/trial_chamber_melee.json new file mode 100644 index 00000000..03a2ed71 --- /dev/null +++ b/data/minecraft/loot_table/equipment/trial_chamber_melee.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:equipment", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:equipment/trial_chamber" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 4 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "enchantments": { + "minecraft:sharpness": 1.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:iron_sword" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "enchantments": { + "minecraft:knockback": 1.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:iron_sword" + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_sword" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:equipment/trial_chamber_melee" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/equipment/trial_chamber_ranged.json b/data/minecraft/loot_table/equipment/trial_chamber_ranged.json new file mode 100644 index 00000000..d03309d9 --- /dev/null +++ b/data/minecraft/loot_table/equipment/trial_chamber_ranged.json @@ -0,0 +1,53 @@ +{ + "type": "minecraft:equipment", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "minecraft:equipment/trial_chamber" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "enchantments": { + "minecraft:power": 1.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:bow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "enchantments": { + "minecraft:punch": 1.0 + }, + "function": "minecraft:set_enchantments" + } + ], + "name": "minecraft:bow" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:equipment/trial_chamber_ranged" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/cat_morning_gift.json b/data/minecraft/loot_table/gameplay/cat_morning_gift.json new file mode 100644 index 00000000..11a1df6a --- /dev/null +++ b/data/minecraft/loot_table/gameplay/cat_morning_gift.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rabbit_hide", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:rabbit_foot", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:chicken", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:feather", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:phantom_membrane", + "weight": 2 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/cat_morning_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/fishing.json b/data/minecraft/loot_table/gameplay/fishing.json new file mode 100644 index 00000000..f501b335 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/fishing.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:loot_table", + "quality": -2, + "value": "minecraft:gameplay/fishing/junk", + "weight": 10 + }, + { + "type": "minecraft:loot_table", + "conditions": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:fishing_hook", + "in_open_water": true + } + } + } + ], + "quality": 2, + "value": "minecraft:gameplay/fishing/treasure", + "weight": 5 + }, + { + "type": "minecraft:loot_table", + "quality": -1, + "value": "minecraft:gameplay/fishing/fish", + "weight": 85 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/fishing" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/fishing/fish.json b/data/minecraft/loot_table/gameplay/fishing/fish.json new file mode 100644 index 00000000..ec7badb3 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/fishing/fish.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cod", + "weight": 60 + }, + { + "type": "minecraft:item", + "name": "minecraft:salmon", + "weight": 25 + }, + { + "type": "minecraft:item", + "name": "minecraft:tropical_fish", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:pufferfish", + "weight": 13 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/fishing/fish" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/fishing/junk.json b/data/minecraft/loot_table/gameplay/fishing/junk.json new file mode 100644 index 00000000..6d2e0ef1 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/fishing/junk.json @@ -0,0 +1,123 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lily_pad", + "weight": 17 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.9, + "min": 0.0 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:leather_boots", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:leather", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:water" + } + ], + "name": "minecraft:potion", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.9, + "min": 0.0 + }, + "function": "minecraft:set_damage" + } + ], + "name": "minecraft:fishing_rod", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:bowl", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:stick", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 10.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ink_sac" + }, + { + "type": "minecraft:item", + "name": "minecraft:tripwire_hook", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 10 + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:location_check", + "predicate": { + "biomes": [ + "minecraft:jungle", + "minecraft:sparse_jungle", + "minecraft:bamboo_jungle" + ] + } + } + ], + "name": "minecraft:bamboo", + "weight": 10 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/fishing/junk" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/fishing/treasure.json b/data/minecraft/loot_table/gameplay/fishing/treasure.json new file mode 100644 index 00000000..974c3885 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/fishing/treasure.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:name_tag" + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.25, + "min": 0.0 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:bow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "damage": { + "type": "minecraft:uniform", + "max": 0.25, + "min": 0.0 + }, + "function": "minecraft:set_damage" + }, + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:fishing_rod" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 30.0, + "options": "#minecraft:on_random_loot" + } + ], + "name": "minecraft:book" + }, + { + "type": "minecraft:item", + "name": "minecraft:nautilus_shell" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/fishing/treasure" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/armorer_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/armorer_gift.json new file mode 100644 index 00000000..5aec602d --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/armorer_gift.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chainmail_helmet" + }, + { + "type": "minecraft:item", + "name": "minecraft:chainmail_chestplate" + }, + { + "type": "minecraft:item", + "name": "minecraft:chainmail_leggings" + }, + { + "type": "minecraft:item", + "name": "minecraft:chainmail_boots" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/armorer_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/butcher_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/butcher_gift.json new file mode 100644 index 00000000..c90ae711 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/butcher_gift.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cooked_rabbit" + }, + { + "type": "minecraft:item", + "name": "minecraft:cooked_chicken" + }, + { + "type": "minecraft:item", + "name": "minecraft:cooked_porkchop" + }, + { + "type": "minecraft:item", + "name": "minecraft:cooked_beef" + }, + { + "type": "minecraft:item", + "name": "minecraft:cooked_mutton" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/butcher_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/cartographer_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/cartographer_gift.json new file mode 100644 index 00000000..331d5d55 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/cartographer_gift.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:map" + }, + { + "type": "minecraft:item", + "name": "minecraft:paper" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/cartographer_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/cleric_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/cleric_gift.json new file mode 100644 index 00000000..140d3dcb --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/cleric_gift.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone" + }, + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/cleric_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/farmer_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/farmer_gift.json new file mode 100644 index 00000000..ec3eef7f --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/farmer_gift.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bread" + }, + { + "type": "minecraft:item", + "name": "minecraft:pumpkin_pie" + }, + { + "type": "minecraft:item", + "name": "minecraft:cookie" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/farmer_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/fisherman_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/fisherman_gift.json new file mode 100644 index 00000000..f5e605c3 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/fisherman_gift.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cod" + }, + { + "type": "minecraft:item", + "name": "minecraft:salmon" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/fisherman_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/fletcher_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/fletcher_gift.json new file mode 100644 index 00000000..4640b8a7 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/fletcher_gift.json @@ -0,0 +1,264 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 26 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:swiftness" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:slowness" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strength" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:healing" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:harming" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:leaping" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:regeneration" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:fire_resistance" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:water_breathing" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:invisibility" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:night_vision" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:weakness" + } + ], + "name": "minecraft:tipped_arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:poison" + } + ], + "name": "minecraft:tipped_arrow" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/fletcher_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/leatherworker_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/leatherworker_gift.json new file mode 100644 index 00000000..257c9494 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/leatherworker_gift.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/leatherworker_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/librarian_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/librarian_gift.json new file mode 100644 index 00000000..5d2570dc --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/librarian_gift.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:book" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/librarian_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/mason_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/mason_gift.json new file mode 100644 index 00000000..ca902e57 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/mason_gift.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:clay" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/mason_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/shepherd_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/shepherd_gift.json new file mode 100644 index 00000000..847ea322 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/shepherd_gift.json @@ -0,0 +1,76 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:white_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:orange_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:magenta_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:light_blue_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:yellow_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:lime_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:pink_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:gray_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:light_gray_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:cyan_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:purple_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:blue_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:brown_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:green_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:red_wool" + }, + { + "type": "minecraft:item", + "name": "minecraft:black_wool" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/shepherd_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/toolsmith_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/toolsmith_gift.json new file mode 100644 index 00000000..3063329e --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/toolsmith_gift.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_pickaxe" + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_axe" + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_hoe" + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_shovel" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/toolsmith_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/hero_of_the_village/weaponsmith_gift.json b/data/minecraft/loot_table/gameplay/hero_of_the_village/weaponsmith_gift.json new file mode 100644 index 00000000..2d9a247f --- /dev/null +++ b/data/minecraft/loot_table/gameplay/hero_of_the_village/weaponsmith_gift.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_axe" + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_axe" + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_axe" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/hero_of_the_village/weaponsmith_gift" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/panda_sneeze.json b/data/minecraft/loot_table/gameplay/panda_sneeze.json new file mode 100644 index 00000000..a937ccb9 --- /dev/null +++ b/data/minecraft/loot_table/gameplay/panda_sneeze.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:slime_ball" + }, + { + "type": "minecraft:empty", + "weight": 699 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/panda_sneeze" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/piglin_bartering.json b/data/minecraft/loot_table/gameplay/piglin_bartering.json new file mode 100644 index 00000000..ad21753c --- /dev/null +++ b/data/minecraft/loot_table/gameplay/piglin_bartering.json @@ -0,0 +1,253 @@ +{ + "type": "minecraft:barter", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:soul_speed" + } + ], + "name": "minecraft:book", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:enchant_randomly", + "options": "minecraft:soul_speed" + } + ], + "name": "minecraft:iron_boots", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:fire_resistance" + } + ], + "name": "minecraft:potion", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:fire_resistance" + } + ], + "name": "minecraft:splash_potion", + "weight": 8 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_potion", + "id": "minecraft:water" + } + ], + "name": "minecraft:potion", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 36.0, + "min": 10.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_nugget", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:ender_pearl", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 9.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:string", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 5.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:quartz", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:obsidian", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:crying_obsidian", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "minecraft:fire_charge", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:leather", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:soul_sand", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:nether_brick", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 6.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:spectral_arrow", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 16.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:gravel", + "weight": 40 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 16.0, + "min": 8.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:blackstone", + "weight": 40 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/piglin_bartering" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/gameplay/sniffer_digging.json b/data/minecraft/loot_table/gameplay/sniffer_digging.json new file mode 100644 index 00000000..acc1e97c --- /dev/null +++ b/data/minecraft/loot_table/gameplay/sniffer_digging.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:gift", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:torchflower_seeds" + }, + { + "type": "minecraft:item", + "name": "minecraft:pitcher_pod" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:gameplay/sniffer_digging" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/pots/trial_chambers/corridor.json b/data/minecraft/loot_table/pots/trial_chambers/corridor.json new file mode 100644 index 00000000..d45a17ba --- /dev/null +++ b/data/minecraft/loot_table/pots/trial_chambers/corridor.json @@ -0,0 +1,116 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald", + "weight": 125 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 8.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow", + "weight": 100 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:iron_ingot", + "weight": 100 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:trial_key", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_creator_music_box", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:emerald_block", + "weight": 5 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:diamond_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:pots/trial_chambers/corridor" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/shearing/bogged.json b/data/minecraft/loot_table/shearing/bogged.json new file mode 100644 index 00000000..5ef6804e --- /dev/null +++ b/data/minecraft/loot_table/shearing/bogged.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:shearing", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:brown_mushroom" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:red_mushroom" + } + ], + "rolls": 2.0 + } + ], + "random_sequence": "minecraft:shearing/bogged" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/spawners/ominous/trial_chamber/consumables.json b/data/minecraft/loot_table/spawners/ominous/trial_chamber/consumables.json new file mode 100644 index 00000000..dca8a875 --- /dev/null +++ b/data/minecraft/loot_table/spawners/ominous/trial_chamber/consumables.json @@ -0,0 +1,90 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_beef", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:baked_potato", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:golden_carrot", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:regeneration" + } + ], + "name": "minecraft:potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strength" + } + ], + "name": "minecraft:potion" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:spawners/ominous/trial_chamber/consumables" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/spawners/ominous/trial_chamber/key.json b/data/minecraft/loot_table/spawners/ominous/trial_chamber/key.json new file mode 100644 index 00000000..226f57f1 --- /dev/null +++ b/data/minecraft/loot_table/spawners/ominous/trial_chamber/key.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ominous_trial_key" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:spawners/ominous/trial_chamber/key" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/spawners/trial_chamber/consumables.json b/data/minecraft/loot_table/spawners/trial_chamber/consumables.json new file mode 100644 index 00000000..a26d23fb --- /dev/null +++ b/data/minecraft/loot_table/spawners/trial_chamber/consumables.json @@ -0,0 +1,86 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:cooked_chicken", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:bread", + "weight": 3 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:baked_potato", + "weight": 2 + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:regeneration" + } + ], + "name": "minecraft:potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:swiftness" + } + ], + "name": "minecraft:potion" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:spawners/trial_chamber/consumables" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/spawners/trial_chamber/items_to_drop_when_ominous.json b/data/minecraft/loot_table/spawners/trial_chamber/items_to_drop_when_ominous.json new file mode 100644 index 00000000..afb82f4b --- /dev/null +++ b/data/minecraft/loot_table/spawners/trial_chamber/items_to_drop_when_ominous.json @@ -0,0 +1,194 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:wind_charged" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:oozing" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:weaving" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:infested" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strength" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:swiftness" + } + ], + "name": "minecraft:lingering_potion" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:slow_falling" + } + ], + "name": "minecraft:lingering_potion" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:poison" + } + ], + "name": "minecraft:arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 1.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:set_potion", + "id": "minecraft:strong_slowness" + } + ], + "name": "minecraft:arrow" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:fire_charge" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:wind_charge" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:spawners/trial_chamber/items_to_drop_when_ominous" +} \ No newline at end of file diff --git a/data/minecraft/loot_table/spawners/trial_chamber/key.json b/data/minecraft/loot_table/spawners/trial_chamber/key.json new file mode 100644 index 00000000..5ee213b7 --- /dev/null +++ b/data/minecraft/loot_table/spawners/trial_chamber/key.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:trial_key" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:spawners/trial_chamber/key" +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/alban.json b/data/minecraft/painting_variant/alban.json new file mode 100644 index 00000000..255379be --- /dev/null +++ b/data/minecraft/painting_variant/alban.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:alban", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/aztec.json b/data/minecraft/painting_variant/aztec.json new file mode 100644 index 00000000..4455e18e --- /dev/null +++ b/data/minecraft/painting_variant/aztec.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:aztec", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/aztec2.json b/data/minecraft/painting_variant/aztec2.json new file mode 100644 index 00000000..1d92296f --- /dev/null +++ b/data/minecraft/painting_variant/aztec2.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:aztec2", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/backyard.json b/data/minecraft/painting_variant/backyard.json new file mode 100644 index 00000000..6af19dae --- /dev/null +++ b/data/minecraft/painting_variant/backyard.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:backyard", + "height": 4, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/baroque.json b/data/minecraft/painting_variant/baroque.json new file mode 100644 index 00000000..2506d16e --- /dev/null +++ b/data/minecraft/painting_variant/baroque.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:baroque", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/bomb.json b/data/minecraft/painting_variant/bomb.json new file mode 100644 index 00000000..e9e70fb1 --- /dev/null +++ b/data/minecraft/painting_variant/bomb.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:bomb", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/bouquet.json b/data/minecraft/painting_variant/bouquet.json new file mode 100644 index 00000000..0ae5580a --- /dev/null +++ b/data/minecraft/painting_variant/bouquet.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:bouquet", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/burning_skull.json b/data/minecraft/painting_variant/burning_skull.json new file mode 100644 index 00000000..87025297 --- /dev/null +++ b/data/minecraft/painting_variant/burning_skull.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:burning_skull", + "height": 4, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/bust.json b/data/minecraft/painting_variant/bust.json new file mode 100644 index 00000000..7e5751fa --- /dev/null +++ b/data/minecraft/painting_variant/bust.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:bust", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/cavebird.json b/data/minecraft/painting_variant/cavebird.json new file mode 100644 index 00000000..7de7284e --- /dev/null +++ b/data/minecraft/painting_variant/cavebird.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:cavebird", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/changing.json b/data/minecraft/painting_variant/changing.json new file mode 100644 index 00000000..4c84b16c --- /dev/null +++ b/data/minecraft/painting_variant/changing.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:changing", + "height": 2, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/cotan.json b/data/minecraft/painting_variant/cotan.json new file mode 100644 index 00000000..eb2bfc41 --- /dev/null +++ b/data/minecraft/painting_variant/cotan.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:cotan", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/courbet.json b/data/minecraft/painting_variant/courbet.json new file mode 100644 index 00000000..30b56b94 --- /dev/null +++ b/data/minecraft/painting_variant/courbet.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:courbet", + "height": 1, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/creebet.json b/data/minecraft/painting_variant/creebet.json new file mode 100644 index 00000000..2fa2c68e --- /dev/null +++ b/data/minecraft/painting_variant/creebet.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:creebet", + "height": 1, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/donkey_kong.json b/data/minecraft/painting_variant/donkey_kong.json new file mode 100644 index 00000000..df7e4380 --- /dev/null +++ b/data/minecraft/painting_variant/donkey_kong.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:donkey_kong", + "height": 3, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/earth.json b/data/minecraft/painting_variant/earth.json new file mode 100644 index 00000000..457074b3 --- /dev/null +++ b/data/minecraft/painting_variant/earth.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:earth", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/endboss.json b/data/minecraft/painting_variant/endboss.json new file mode 100644 index 00000000..bae094f3 --- /dev/null +++ b/data/minecraft/painting_variant/endboss.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:endboss", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/fern.json b/data/minecraft/painting_variant/fern.json new file mode 100644 index 00000000..f2687008 --- /dev/null +++ b/data/minecraft/painting_variant/fern.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:fern", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/fighters.json b/data/minecraft/painting_variant/fighters.json new file mode 100644 index 00000000..2815f0b7 --- /dev/null +++ b/data/minecraft/painting_variant/fighters.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:fighters", + "height": 2, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/finding.json b/data/minecraft/painting_variant/finding.json new file mode 100644 index 00000000..ece67f72 --- /dev/null +++ b/data/minecraft/painting_variant/finding.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:finding", + "height": 2, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/fire.json b/data/minecraft/painting_variant/fire.json new file mode 100644 index 00000000..470e511e --- /dev/null +++ b/data/minecraft/painting_variant/fire.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:fire", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/graham.json b/data/minecraft/painting_variant/graham.json new file mode 100644 index 00000000..fcee8cc1 --- /dev/null +++ b/data/minecraft/painting_variant/graham.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:graham", + "height": 2, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/humble.json b/data/minecraft/painting_variant/humble.json new file mode 100644 index 00000000..85e4247c --- /dev/null +++ b/data/minecraft/painting_variant/humble.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:humble", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/kebab.json b/data/minecraft/painting_variant/kebab.json new file mode 100644 index 00000000..3c11f259 --- /dev/null +++ b/data/minecraft/painting_variant/kebab.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:kebab", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/lowmist.json b/data/minecraft/painting_variant/lowmist.json new file mode 100644 index 00000000..cbff4a50 --- /dev/null +++ b/data/minecraft/painting_variant/lowmist.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:lowmist", + "height": 2, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/match.json b/data/minecraft/painting_variant/match.json new file mode 100644 index 00000000..f0307c03 --- /dev/null +++ b/data/minecraft/painting_variant/match.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:match", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/meditative.json b/data/minecraft/painting_variant/meditative.json new file mode 100644 index 00000000..8310bca4 --- /dev/null +++ b/data/minecraft/painting_variant/meditative.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:meditative", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/orb.json b/data/minecraft/painting_variant/orb.json new file mode 100644 index 00000000..d5fd196d --- /dev/null +++ b/data/minecraft/painting_variant/orb.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:orb", + "height": 4, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/owlemons.json b/data/minecraft/painting_variant/owlemons.json new file mode 100644 index 00000000..41840528 --- /dev/null +++ b/data/minecraft/painting_variant/owlemons.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:owlemons", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/passage.json b/data/minecraft/painting_variant/passage.json new file mode 100644 index 00000000..d7b16539 --- /dev/null +++ b/data/minecraft/painting_variant/passage.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:passage", + "height": 2, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/pigscene.json b/data/minecraft/painting_variant/pigscene.json new file mode 100644 index 00000000..04512352 --- /dev/null +++ b/data/minecraft/painting_variant/pigscene.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:pigscene", + "height": 4, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/plant.json b/data/minecraft/painting_variant/plant.json new file mode 100644 index 00000000..306feb1c --- /dev/null +++ b/data/minecraft/painting_variant/plant.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:plant", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/pointer.json b/data/minecraft/painting_variant/pointer.json new file mode 100644 index 00000000..bedc8430 --- /dev/null +++ b/data/minecraft/painting_variant/pointer.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:pointer", + "height": 4, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/pond.json b/data/minecraft/painting_variant/pond.json new file mode 100644 index 00000000..1a39b4ed --- /dev/null +++ b/data/minecraft/painting_variant/pond.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:pond", + "height": 4, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/pool.json b/data/minecraft/painting_variant/pool.json new file mode 100644 index 00000000..b689482f --- /dev/null +++ b/data/minecraft/painting_variant/pool.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:pool", + "height": 1, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/prairie_ride.json b/data/minecraft/painting_variant/prairie_ride.json new file mode 100644 index 00000000..aefcc131 --- /dev/null +++ b/data/minecraft/painting_variant/prairie_ride.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:prairie_ride", + "height": 2, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/sea.json b/data/minecraft/painting_variant/sea.json new file mode 100644 index 00000000..925c4289 --- /dev/null +++ b/data/minecraft/painting_variant/sea.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:sea", + "height": 1, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/skeleton.json b/data/minecraft/painting_variant/skeleton.json new file mode 100644 index 00000000..d2ae4d60 --- /dev/null +++ b/data/minecraft/painting_variant/skeleton.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:skeleton", + "height": 3, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/skull_and_roses.json b/data/minecraft/painting_variant/skull_and_roses.json new file mode 100644 index 00000000..7ee8cbff --- /dev/null +++ b/data/minecraft/painting_variant/skull_and_roses.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:skull_and_roses", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/stage.json b/data/minecraft/painting_variant/stage.json new file mode 100644 index 00000000..7998cd46 --- /dev/null +++ b/data/minecraft/painting_variant/stage.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:stage", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/sunflowers.json b/data/minecraft/painting_variant/sunflowers.json new file mode 100644 index 00000000..2a29031b --- /dev/null +++ b/data/minecraft/painting_variant/sunflowers.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:sunflowers", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/sunset.json b/data/minecraft/painting_variant/sunset.json new file mode 100644 index 00000000..3a9350df --- /dev/null +++ b/data/minecraft/painting_variant/sunset.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:sunset", + "height": 1, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/tides.json b/data/minecraft/painting_variant/tides.json new file mode 100644 index 00000000..488d37bc --- /dev/null +++ b/data/minecraft/painting_variant/tides.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:tides", + "height": 3, + "width": 3 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/unpacked.json b/data/minecraft/painting_variant/unpacked.json new file mode 100644 index 00000000..57c2b4ab --- /dev/null +++ b/data/minecraft/painting_variant/unpacked.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:unpacked", + "height": 4, + "width": 4 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/void.json b/data/minecraft/painting_variant/void.json new file mode 100644 index 00000000..2bb9eb53 --- /dev/null +++ b/data/minecraft/painting_variant/void.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:void", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/wanderer.json b/data/minecraft/painting_variant/wanderer.json new file mode 100644 index 00000000..21255776 --- /dev/null +++ b/data/minecraft/painting_variant/wanderer.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:wanderer", + "height": 2, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/wasteland.json b/data/minecraft/painting_variant/wasteland.json new file mode 100644 index 00000000..d873432e --- /dev/null +++ b/data/minecraft/painting_variant/wasteland.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:wasteland", + "height": 1, + "width": 1 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/water.json b/data/minecraft/painting_variant/water.json new file mode 100644 index 00000000..f1fc49da --- /dev/null +++ b/data/minecraft/painting_variant/water.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:water", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/wind.json b/data/minecraft/painting_variant/wind.json new file mode 100644 index 00000000..b5c2c1de --- /dev/null +++ b/data/minecraft/painting_variant/wind.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:wind", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/painting_variant/wither.json b/data/minecraft/painting_variant/wither.json new file mode 100644 index 00000000..482ab3af --- /dev/null +++ b/data/minecraft/painting_variant/wither.json @@ -0,0 +1,5 @@ +{ + "asset_id": "minecraft:wither", + "height": 2, + "width": 2 +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_boat.json b/data/minecraft/recipe/acacia_boat.json new file mode 100644 index 00000000..af9b2ec4 --- /dev/null +++ b/data/minecraft/recipe/acacia_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:acacia_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_button.json b/data/minecraft/recipe/acacia_button.json new file mode 100644 index 00000000..429a654f --- /dev/null +++ b/data/minecraft/recipe/acacia_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:acacia_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:acacia_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_chest_boat.json b/data/minecraft/recipe/acacia_chest_boat.json new file mode 100644 index 00000000..aed352c2 --- /dev/null +++ b/data/minecraft/recipe/acacia_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:acacia_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:acacia_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_door.json b/data/minecraft/recipe/acacia_door.json new file mode 100644 index 00000000..fabf8764 --- /dev/null +++ b/data/minecraft/recipe/acacia_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:acacia_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_fence.json b/data/minecraft/recipe/acacia_fence.json new file mode 100644 index 00000000..8ed3250e --- /dev/null +++ b/data/minecraft/recipe/acacia_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:acacia_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_fence_gate.json b/data/minecraft/recipe/acacia_fence_gate.json new file mode 100644 index 00000000..4f50c164 --- /dev/null +++ b/data/minecraft/recipe/acacia_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:acacia_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_hanging_sign.json b/data/minecraft/recipe/acacia_hanging_sign.json new file mode 100644 index 00000000..1e485e81 --- /dev/null +++ b/data/minecraft/recipe/acacia_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_acacia_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:acacia_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_planks.json b/data/minecraft/recipe/acacia_planks.json new file mode 100644 index 00000000..a02c8a62 --- /dev/null +++ b/data/minecraft/recipe/acacia_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:acacia_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:acacia_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_pressure_plate.json b/data/minecraft/recipe/acacia_pressure_plate.json new file mode 100644 index 00000000..318a7ac6 --- /dev/null +++ b/data/minecraft/recipe/acacia_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:acacia_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_sign.json b/data/minecraft/recipe/acacia_sign.json new file mode 100644 index 00000000..64a56e98 --- /dev/null +++ b/data/minecraft/recipe/acacia_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:acacia_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:acacia_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_slab.json b/data/minecraft/recipe/acacia_slab.json new file mode 100644 index 00000000..6bff34fa --- /dev/null +++ b/data/minecraft/recipe/acacia_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:acacia_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_stairs.json b/data/minecraft/recipe/acacia_stairs.json new file mode 100644 index 00000000..c6997e65 --- /dev/null +++ b/data/minecraft/recipe/acacia_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:acacia_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_trapdoor.json b/data/minecraft/recipe/acacia_trapdoor.json new file mode 100644 index 00000000..bd2fe9bd --- /dev/null +++ b/data/minecraft/recipe/acacia_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:acacia_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:acacia_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/acacia_wood.json b/data/minecraft/recipe/acacia_wood.json new file mode 100644 index 00000000..ad3287ee --- /dev/null +++ b/data/minecraft/recipe/acacia_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:acacia_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:acacia_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/activator_rail.json b/data/minecraft/recipe/activator_rail.json new file mode 100644 index 00000000..85b8295e --- /dev/null +++ b/data/minecraft/recipe/activator_rail.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:redstone_torch" + }, + "S": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "XSX", + "X#X", + "XSX" + ], + "result": { + "count": 6, + "id": "minecraft:activator_rail" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/amethyst_block.json b/data/minecraft/recipe/amethyst_block.json new file mode 100644 index 00000000..50538e2d --- /dev/null +++ b/data/minecraft/recipe/amethyst_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:amethyst_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/andesite.json b/data/minecraft/recipe/andesite.json new file mode 100644 index 00000000..58d75a7a --- /dev/null +++ b/data/minecraft/recipe/andesite.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:diorite" + }, + { + "item": "minecraft:cobblestone" + } + ], + "result": { + "count": 2, + "id": "minecraft:andesite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/andesite_slab.json b/data/minecraft/recipe/andesite_slab.json new file mode 100644 index 00000000..9a47de00 --- /dev/null +++ b/data/minecraft/recipe/andesite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:andesite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:andesite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/andesite_slab_from_andesite_stonecutting.json b/data/minecraft/recipe/andesite_slab_from_andesite_stonecutting.json new file mode 100644 index 00000000..43a8d56b --- /dev/null +++ b/data/minecraft/recipe/andesite_slab_from_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": { + "count": 2, + "id": "minecraft:andesite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/andesite_stairs.json b/data/minecraft/recipe/andesite_stairs.json new file mode 100644 index 00000000..cbe289cc --- /dev/null +++ b/data/minecraft/recipe/andesite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:andesite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:andesite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/andesite_stairs_from_andesite_stonecutting.json b/data/minecraft/recipe/andesite_stairs_from_andesite_stonecutting.json new file mode 100644 index 00000000..76b862de --- /dev/null +++ b/data/minecraft/recipe/andesite_stairs_from_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": { + "count": 1, + "id": "minecraft:andesite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/andesite_wall.json b/data/minecraft/recipe/andesite_wall.json new file mode 100644 index 00000000..4a9b1c62 --- /dev/null +++ b/data/minecraft/recipe/andesite_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:andesite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:andesite_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/andesite_wall_from_andesite_stonecutting.json b/data/minecraft/recipe/andesite_wall_from_andesite_stonecutting.json new file mode 100644 index 00000000..48018314 --- /dev/null +++ b/data/minecraft/recipe/andesite_wall_from_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": { + "count": 1, + "id": "minecraft:andesite_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/anvil.json b/data/minecraft/recipe/anvil.json new file mode 100644 index 00000000..e6323159 --- /dev/null +++ b/data/minecraft/recipe/anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "item": "minecraft:iron_block" + }, + "i": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "III", + " i ", + "iii" + ], + "result": { + "count": 1, + "id": "minecraft:anvil" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/armor_dye.json b/data/minecraft/recipe/armor_dye.json new file mode 100644 index 00000000..7f496aed --- /dev/null +++ b/data/minecraft/recipe/armor_dye.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_armordye", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/armor_stand.json b/data/minecraft/recipe/armor_stand.json new file mode 100644 index 00000000..6fa97a11 --- /dev/null +++ b/data/minecraft/recipe/armor_stand.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "/": { + "item": "minecraft:stick" + }, + "_": { + "item": "minecraft:smooth_stone_slab" + } + }, + "pattern": [ + "///", + " / ", + "/_/" + ], + "result": { + "count": 1, + "id": "minecraft:armor_stand" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/arrow.json b/data/minecraft/recipe/arrow.json new file mode 100644 index 00000000..01581a2a --- /dev/null +++ b/data/minecraft/recipe/arrow.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:flint" + }, + "Y": { + "item": "minecraft:feather" + } + }, + "pattern": [ + "X", + "#", + "Y" + ], + "result": { + "count": 4, + "id": "minecraft:arrow" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/baked_potato.json b/data/minecraft/recipe/baked_potato.json new file mode 100644 index 00000000..291f378f --- /dev/null +++ b/data/minecraft/recipe/baked_potato.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:potato" + }, + "result": { + "id": "minecraft:baked_potato" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/baked_potato_from_campfire_cooking.json b/data/minecraft/recipe/baked_potato_from_campfire_cooking.json new file mode 100644 index 00000000..60829f48 --- /dev/null +++ b/data/minecraft/recipe/baked_potato_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:potato" + }, + "result": { + "id": "minecraft:baked_potato" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/baked_potato_from_smoking.json b/data/minecraft/recipe/baked_potato_from_smoking.json new file mode 100644 index 00000000..3355ccd8 --- /dev/null +++ b/data/minecraft/recipe/baked_potato_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:potato" + }, + "result": { + "id": "minecraft:baked_potato" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_block.json b/data/minecraft/recipe/bamboo_block.json new file mode 100644 index 00000000..c07aa291 --- /dev/null +++ b/data/minecraft/recipe/bamboo_block.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + }, + { + "item": "minecraft:bamboo" + } + ], + "result": { + "count": 1, + "id": "minecraft:bamboo_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_button.json b/data/minecraft/recipe/bamboo_button.json new file mode 100644 index 00000000..7cef3de8 --- /dev/null +++ b/data/minecraft/recipe/bamboo_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:bamboo_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:bamboo_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_chest_raft.json b/data/minecraft/recipe/bamboo_chest_raft.json new file mode 100644 index 00000000..8e89fca2 --- /dev/null +++ b/data/minecraft/recipe/bamboo_chest_raft.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:bamboo_raft" + } + ], + "result": { + "count": 1, + "id": "minecraft:bamboo_chest_raft" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_door.json b/data/minecraft/recipe/bamboo_door.json new file mode 100644 index 00000000..b12cf0d3 --- /dev/null +++ b/data/minecraft/recipe/bamboo_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:bamboo_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_fence.json b/data/minecraft/recipe/bamboo_fence.json new file mode 100644 index 00000000..2d6538a5 --- /dev/null +++ b/data/minecraft/recipe/bamboo_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:bamboo_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_fence_gate.json b/data/minecraft/recipe/bamboo_fence_gate.json new file mode 100644 index 00000000..7533b94d --- /dev/null +++ b/data/minecraft/recipe/bamboo_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:bamboo_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_hanging_sign.json b/data/minecraft/recipe/bamboo_hanging_sign.json new file mode 100644 index 00000000..405f59d4 --- /dev/null +++ b/data/minecraft/recipe/bamboo_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_bamboo_block" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:bamboo_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_mosaic.json b/data/minecraft/recipe/bamboo_mosaic.json new file mode 100644 index 00000000..76d9c0ad --- /dev/null +++ b/data/minecraft/recipe/bamboo_mosaic.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:bamboo_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:bamboo_mosaic" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_mosaic_slab.json b/data/minecraft/recipe/bamboo_mosaic_slab.json new file mode 100644 index 00000000..750fe30c --- /dev/null +++ b/data/minecraft/recipe/bamboo_mosaic_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:bamboo_mosaic" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:bamboo_mosaic_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_mosaic_stairs.json b/data/minecraft/recipe/bamboo_mosaic_stairs.json new file mode 100644 index 00000000..5216715b --- /dev/null +++ b/data/minecraft/recipe/bamboo_mosaic_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:bamboo_mosaic" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:bamboo_mosaic_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_planks.json b/data/minecraft/recipe/bamboo_planks.json new file mode 100644 index 00000000..1865e5a1 --- /dev/null +++ b/data/minecraft/recipe/bamboo_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:bamboo_blocks" + } + ], + "result": { + "count": 2, + "id": "minecraft:bamboo_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_pressure_plate.json b/data/minecraft/recipe/bamboo_pressure_plate.json new file mode 100644 index 00000000..1ee940b0 --- /dev/null +++ b/data/minecraft/recipe/bamboo_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:bamboo_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_raft.json b/data/minecraft/recipe/bamboo_raft.json new file mode 100644 index 00000000..7a115cac --- /dev/null +++ b/data/minecraft/recipe/bamboo_raft.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:bamboo_raft" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_sign.json b/data/minecraft/recipe/bamboo_sign.json new file mode 100644 index 00000000..7a58683f --- /dev/null +++ b/data/minecraft/recipe/bamboo_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:bamboo_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:bamboo_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_slab.json b/data/minecraft/recipe/bamboo_slab.json new file mode 100644 index 00000000..c95cc19e --- /dev/null +++ b/data/minecraft/recipe/bamboo_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:bamboo_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_stairs.json b/data/minecraft/recipe/bamboo_stairs.json new file mode 100644 index 00000000..8354e78c --- /dev/null +++ b/data/minecraft/recipe/bamboo_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:bamboo_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bamboo_trapdoor.json b/data/minecraft/recipe/bamboo_trapdoor.json new file mode 100644 index 00000000..96e39885 --- /dev/null +++ b/data/minecraft/recipe/bamboo_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:bamboo_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:bamboo_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/banner_duplicate.json b/data/minecraft/recipe/banner_duplicate.json new file mode 100644 index 00000000..ee644402 --- /dev/null +++ b/data/minecraft/recipe/banner_duplicate.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_bannerduplicate", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/barrel.json b/data/minecraft/recipe/barrel.json new file mode 100644 index 00000000..b5a53449 --- /dev/null +++ b/data/minecraft/recipe/barrel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "P": { + "tag": "minecraft:planks" + }, + "S": { + "tag": "minecraft:wooden_slabs" + } + }, + "pattern": [ + "PSP", + "P P", + "PSP" + ], + "result": { + "count": 1, + "id": "minecraft:barrel" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/beacon.json b/data/minecraft/recipe/beacon.json new file mode 100644 index 00000000..2ce02b92 --- /dev/null +++ b/data/minecraft/recipe/beacon.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "item": "minecraft:glass" + }, + "O": { + "item": "minecraft:obsidian" + }, + "S": { + "item": "minecraft:nether_star" + } + }, + "pattern": [ + "GGG", + "GSG", + "OOO" + ], + "result": { + "count": 1, + "id": "minecraft:beacon" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/beehive.json b/data/minecraft/recipe/beehive.json new file mode 100644 index 00000000..39ea5ec6 --- /dev/null +++ b/data/minecraft/recipe/beehive.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "H": { + "item": "minecraft:honeycomb" + }, + "P": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "PPP", + "HHH", + "PPP" + ], + "result": { + "count": 1, + "id": "minecraft:beehive" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/beetroot_soup.json b/data/minecraft/recipe/beetroot_soup.json new file mode 100644 index 00000000..2df230d9 --- /dev/null +++ b/data/minecraft/recipe/beetroot_soup.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:bowl" + }, + { + "item": "minecraft:beetroot" + }, + { + "item": "minecraft:beetroot" + }, + { + "item": "minecraft:beetroot" + }, + { + "item": "minecraft:beetroot" + }, + { + "item": "minecraft:beetroot" + }, + { + "item": "minecraft:beetroot" + } + ], + "result": { + "count": 1, + "id": "minecraft:beetroot_soup" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_boat.json b/data/minecraft/recipe/birch_boat.json new file mode 100644 index 00000000..75c4c49f --- /dev/null +++ b/data/minecraft/recipe/birch_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:birch_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_button.json b/data/minecraft/recipe/birch_button.json new file mode 100644 index 00000000..44558359 --- /dev/null +++ b/data/minecraft/recipe/birch_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:birch_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:birch_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_chest_boat.json b/data/minecraft/recipe/birch_chest_boat.json new file mode 100644 index 00000000..746f1418 --- /dev/null +++ b/data/minecraft/recipe/birch_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:birch_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:birch_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_door.json b/data/minecraft/recipe/birch_door.json new file mode 100644 index 00000000..eb40d15d --- /dev/null +++ b/data/minecraft/recipe/birch_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:birch_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_fence.json b/data/minecraft/recipe/birch_fence.json new file mode 100644 index 00000000..0194b7a3 --- /dev/null +++ b/data/minecraft/recipe/birch_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:birch_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_fence_gate.json b/data/minecraft/recipe/birch_fence_gate.json new file mode 100644 index 00000000..e22154fd --- /dev/null +++ b/data/minecraft/recipe/birch_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:birch_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_hanging_sign.json b/data/minecraft/recipe/birch_hanging_sign.json new file mode 100644 index 00000000..41bd4b80 --- /dev/null +++ b/data/minecraft/recipe/birch_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_birch_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:birch_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_planks.json b/data/minecraft/recipe/birch_planks.json new file mode 100644 index 00000000..43a42630 --- /dev/null +++ b/data/minecraft/recipe/birch_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:birch_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:birch_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_pressure_plate.json b/data/minecraft/recipe/birch_pressure_plate.json new file mode 100644 index 00000000..1ee3ce37 --- /dev/null +++ b/data/minecraft/recipe/birch_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:birch_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_sign.json b/data/minecraft/recipe/birch_sign.json new file mode 100644 index 00000000..13062346 --- /dev/null +++ b/data/minecraft/recipe/birch_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:birch_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:birch_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_slab.json b/data/minecraft/recipe/birch_slab.json new file mode 100644 index 00000000..5e298a9a --- /dev/null +++ b/data/minecraft/recipe/birch_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:birch_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_stairs.json b/data/minecraft/recipe/birch_stairs.json new file mode 100644 index 00000000..6d410981 --- /dev/null +++ b/data/minecraft/recipe/birch_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:birch_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_trapdoor.json b/data/minecraft/recipe/birch_trapdoor.json new file mode 100644 index 00000000..4b9e9c5f --- /dev/null +++ b/data/minecraft/recipe/birch_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:birch_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:birch_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/birch_wood.json b/data/minecraft/recipe/birch_wood.json new file mode 100644 index 00000000..30932771 --- /dev/null +++ b/data/minecraft/recipe/birch_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:birch_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:birch_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_banner.json b/data/minecraft/recipe/black_banner.json new file mode 100644 index 00000000..e3b39d0a --- /dev/null +++ b/data/minecraft/recipe/black_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:black_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:black_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_bed.json b/data/minecraft/recipe/black_bed.json new file mode 100644 index 00000000..70fec921 --- /dev/null +++ b/data/minecraft/recipe/black_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:black_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:black_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_candle.json b/data/minecraft/recipe/black_candle.json new file mode 100644 index 00000000..8dcdb7d7 --- /dev/null +++ b/data/minecraft/recipe/black_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:black_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:black_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_carpet.json b/data/minecraft/recipe/black_carpet.json new file mode 100644 index 00000000..bd4f018b --- /dev/null +++ b/data/minecraft/recipe/black_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:black_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:black_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_concrete_powder.json b/data/minecraft/recipe/black_concrete_powder.json new file mode 100644 index 00000000..ba45d84d --- /dev/null +++ b/data/minecraft/recipe/black_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:black_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:black_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_dye.json b/data/minecraft/recipe/black_dye.json new file mode 100644 index 00000000..b8818252 --- /dev/null +++ b/data/minecraft/recipe/black_dye.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "black_dye", + "ingredients": [ + { + "item": "minecraft:ink_sac" + } + ], + "result": { + "count": 1, + "id": "minecraft:black_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_dye_from_wither_rose.json b/data/minecraft/recipe/black_dye_from_wither_rose.json new file mode 100644 index 00000000..5717c97a --- /dev/null +++ b/data/minecraft/recipe/black_dye_from_wither_rose.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "black_dye", + "ingredients": [ + { + "item": "minecraft:wither_rose" + } + ], + "result": { + "count": 1, + "id": "minecraft:black_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_glazed_terracotta.json b/data/minecraft/recipe/black_glazed_terracotta.json new file mode 100644 index 00000000..74ae5d06 --- /dev/null +++ b/data/minecraft/recipe/black_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:black_terracotta" + }, + "result": { + "id": "minecraft:black_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_stained_glass.json b/data/minecraft/recipe/black_stained_glass.json new file mode 100644 index 00000000..9f85f0df --- /dev/null +++ b/data/minecraft/recipe/black_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:black_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:black_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_stained_glass_pane.json b/data/minecraft/recipe/black_stained_glass_pane.json new file mode 100644 index 00000000..09e3d2c4 --- /dev/null +++ b/data/minecraft/recipe/black_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:black_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:black_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/black_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..967e886d --- /dev/null +++ b/data/minecraft/recipe/black_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:black_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:black_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/black_terracotta.json b/data/minecraft/recipe/black_terracotta.json new file mode 100644 index 00000000..a0a4f4e6 --- /dev/null +++ b/data/minecraft/recipe/black_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:black_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:black_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blackstone_slab.json b/data/minecraft/recipe/blackstone_slab.json new file mode 100644 index 00000000..77d1adbd --- /dev/null +++ b/data/minecraft/recipe/blackstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:blackstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:blackstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blackstone_slab_from_blackstone_stonecutting.json b/data/minecraft/recipe/blackstone_slab_from_blackstone_stonecutting.json new file mode 100644 index 00000000..6aa3117e --- /dev/null +++ b/data/minecraft/recipe/blackstone_slab_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 2, + "id": "minecraft:blackstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blackstone_stairs.json b/data/minecraft/recipe/blackstone_stairs.json new file mode 100644 index 00000000..e3645e77 --- /dev/null +++ b/data/minecraft/recipe/blackstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:blackstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:blackstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blackstone_stairs_from_blackstone_stonecutting.json b/data/minecraft/recipe/blackstone_stairs_from_blackstone_stonecutting.json new file mode 100644 index 00000000..37a51b60 --- /dev/null +++ b/data/minecraft/recipe/blackstone_stairs_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:blackstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blackstone_wall.json b/data/minecraft/recipe/blackstone_wall.json new file mode 100644 index 00000000..740a3bd8 --- /dev/null +++ b/data/minecraft/recipe/blackstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:blackstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:blackstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blackstone_wall_from_blackstone_stonecutting.json b/data/minecraft/recipe/blackstone_wall_from_blackstone_stonecutting.json new file mode 100644 index 00000000..3a48f655 --- /dev/null +++ b/data/minecraft/recipe/blackstone_wall_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:blackstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blast_furnace.json b/data/minecraft/recipe/blast_furnace.json new file mode 100644 index 00000000..e0614afc --- /dev/null +++ b/data/minecraft/recipe/blast_furnace.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:smooth_stone" + }, + "I": { + "item": "minecraft:iron_ingot" + }, + "X": { + "item": "minecraft:furnace" + } + }, + "pattern": [ + "III", + "IXI", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:blast_furnace" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blaze_powder.json b/data/minecraft/recipe/blaze_powder.json new file mode 100644 index 00000000..3ebac89e --- /dev/null +++ b/data/minecraft/recipe/blaze_powder.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:blaze_rod" + } + ], + "result": { + "count": 2, + "id": "minecraft:blaze_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_banner.json b/data/minecraft/recipe/blue_banner.json new file mode 100644 index 00000000..a07ba372 --- /dev/null +++ b/data/minecraft/recipe/blue_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:blue_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:blue_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_bed.json b/data/minecraft/recipe/blue_bed.json new file mode 100644 index 00000000..63596b8a --- /dev/null +++ b/data/minecraft/recipe/blue_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:blue_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:blue_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_candle.json b/data/minecraft/recipe/blue_candle.json new file mode 100644 index 00000000..88560f0f --- /dev/null +++ b/data/minecraft/recipe/blue_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:blue_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:blue_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_carpet.json b/data/minecraft/recipe/blue_carpet.json new file mode 100644 index 00000000..fc3e3d2d --- /dev/null +++ b/data/minecraft/recipe/blue_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:blue_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:blue_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_concrete_powder.json b/data/minecraft/recipe/blue_concrete_powder.json new file mode 100644 index 00000000..0346eddf --- /dev/null +++ b/data/minecraft/recipe/blue_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:blue_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_dye.json b/data/minecraft/recipe/blue_dye.json new file mode 100644 index 00000000..76ac29da --- /dev/null +++ b/data/minecraft/recipe/blue_dye.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "blue_dye", + "ingredients": [ + { + "item": "minecraft:lapis_lazuli" + } + ], + "result": { + "count": 1, + "id": "minecraft:blue_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_dye_from_cornflower.json b/data/minecraft/recipe/blue_dye_from_cornflower.json new file mode 100644 index 00000000..2dae90a5 --- /dev/null +++ b/data/minecraft/recipe/blue_dye_from_cornflower.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "blue_dye", + "ingredients": [ + { + "item": "minecraft:cornflower" + } + ], + "result": { + "count": 1, + "id": "minecraft:blue_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_glazed_terracotta.json b/data/minecraft/recipe/blue_glazed_terracotta.json new file mode 100644 index 00000000..034595db --- /dev/null +++ b/data/minecraft/recipe/blue_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:blue_terracotta" + }, + "result": { + "id": "minecraft:blue_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_ice.json b/data/minecraft/recipe/blue_ice.json new file mode 100644 index 00000000..dba4722b --- /dev/null +++ b/data/minecraft/recipe/blue_ice.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + }, + { + "item": "minecraft:packed_ice" + } + ], + "result": { + "count": 1, + "id": "minecraft:blue_ice" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_stained_glass.json b/data/minecraft/recipe/blue_stained_glass.json new file mode 100644 index 00000000..863ba708 --- /dev/null +++ b/data/minecraft/recipe/blue_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:blue_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:blue_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_stained_glass_pane.json b/data/minecraft/recipe/blue_stained_glass_pane.json new file mode 100644 index 00000000..f9cad906 --- /dev/null +++ b/data/minecraft/recipe/blue_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:blue_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:blue_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/blue_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..fc04444b --- /dev/null +++ b/data/minecraft/recipe/blue_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:blue_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:blue_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/blue_terracotta.json b/data/minecraft/recipe/blue_terracotta.json new file mode 100644 index 00000000..eb6291f3 --- /dev/null +++ b/data/minecraft/recipe/blue_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:blue_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:blue_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bolt_armor_trim_smithing_template.json b/data/minecraft/recipe/bolt_armor_trim_smithing_template.json new file mode 100644 index 00000000..19cd9728 --- /dev/null +++ b/data/minecraft/recipe/bolt_armor_trim_smithing_template.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": [ + { + "item": "minecraft:copper_block" + }, + { + "item": "minecraft:waxed_copper_block" + } + ], + "S": { + "item": "minecraft:bolt_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:bolt_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bolt_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/bolt_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..6e240fa9 --- /dev/null +++ b/data/minecraft/recipe/bolt_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:bolt_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bone_block.json b/data/minecraft/recipe/bone_block.json new file mode 100644 index 00000000..bb28c593 --- /dev/null +++ b/data/minecraft/recipe/bone_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:bone_meal" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:bone_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bone_meal.json b/data/minecraft/recipe/bone_meal.json new file mode 100644 index 00000000..5f75cb9c --- /dev/null +++ b/data/minecraft/recipe/bone_meal.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "bonemeal", + "ingredients": [ + { + "item": "minecraft:bone" + } + ], + "result": { + "count": 3, + "id": "minecraft:bone_meal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bone_meal_from_bone_block.json b/data/minecraft/recipe/bone_meal_from_bone_block.json new file mode 100644 index 00000000..28963915 --- /dev/null +++ b/data/minecraft/recipe/bone_meal_from_bone_block.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "bonemeal", + "ingredients": [ + { + "item": "minecraft:bone_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:bone_meal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/book.json b/data/minecraft/recipe/book.json new file mode 100644 index 00000000..572b563f --- /dev/null +++ b/data/minecraft/recipe/book.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:paper" + }, + { + "item": "minecraft:paper" + }, + { + "item": "minecraft:paper" + }, + { + "item": "minecraft:leather" + } + ], + "result": { + "count": 1, + "id": "minecraft:book" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/book_cloning.json b/data/minecraft/recipe/book_cloning.json new file mode 100644 index 00000000..73b45722 --- /dev/null +++ b/data/minecraft/recipe/book_cloning.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_bookcloning", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/bookshelf.json b/data/minecraft/recipe/bookshelf.json new file mode 100644 index 00000000..8c75c1d5 --- /dev/null +++ b/data/minecraft/recipe/bookshelf.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "X": { + "item": "minecraft:book" + } + }, + "pattern": [ + "###", + "XXX", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:bookshelf" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bow.json b/data/minecraft/recipe/bow.json new file mode 100644 index 00000000..4e55549a --- /dev/null +++ b/data/minecraft/recipe/bow.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:string" + } + }, + "pattern": [ + " #X", + "# X", + " #X" + ], + "result": { + "count": 1, + "id": "minecraft:bow" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bowl.json b/data/minecraft/recipe/bowl.json new file mode 100644 index 00000000..185891af --- /dev/null +++ b/data/minecraft/recipe/bowl.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "# #", + " # " + ], + "result": { + "count": 4, + "id": "minecraft:bowl" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bread.json b/data/minecraft/recipe/bread.json new file mode 100644 index 00000000..de9a64c2 --- /dev/null +++ b/data/minecraft/recipe/bread.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:wheat" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 1, + "id": "minecraft:bread" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brewing_stand.json b/data/minecraft/recipe/brewing_stand.json new file mode 100644 index 00000000..e606c08c --- /dev/null +++ b/data/minecraft/recipe/brewing_stand.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:stone_crafting_materials" + }, + "B": { + "item": "minecraft:blaze_rod" + } + }, + "pattern": [ + " B ", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:brewing_stand" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brick.json b/data/minecraft/recipe/brick.json new file mode 100644 index 00000000..dad8e717 --- /dev/null +++ b/data/minecraft/recipe/brick.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.3, + "ingredient": { + "item": "minecraft:clay_ball" + }, + "result": { + "id": "minecraft:brick" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brick_slab.json b/data/minecraft/recipe/brick_slab.json new file mode 100644 index 00000000..66acc205 --- /dev/null +++ b/data/minecraft/recipe/brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brick_slab_from_bricks_stonecutting.json b/data/minecraft/recipe/brick_slab_from_bricks_stonecutting.json new file mode 100644 index 00000000..8de2143b --- /dev/null +++ b/data/minecraft/recipe/brick_slab_from_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:bricks" + }, + "result": { + "count": 2, + "id": "minecraft:brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brick_stairs.json b/data/minecraft/recipe/brick_stairs.json new file mode 100644 index 00000000..61fd3f2f --- /dev/null +++ b/data/minecraft/recipe/brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brick_stairs_from_bricks_stonecutting.json b/data/minecraft/recipe/brick_stairs_from_bricks_stonecutting.json new file mode 100644 index 00000000..b2fb71a6 --- /dev/null +++ b/data/minecraft/recipe/brick_stairs_from_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:bricks" + }, + "result": { + "count": 1, + "id": "minecraft:brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brick_wall.json b/data/minecraft/recipe/brick_wall.json new file mode 100644 index 00000000..cbd9f662 --- /dev/null +++ b/data/minecraft/recipe/brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brick_wall_from_bricks_stonecutting.json b/data/minecraft/recipe/brick_wall_from_bricks_stonecutting.json new file mode 100644 index 00000000..d90aae9b --- /dev/null +++ b/data/minecraft/recipe/brick_wall_from_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:bricks" + }, + "result": { + "count": 1, + "id": "minecraft:brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bricks.json b/data/minecraft/recipe/bricks.json new file mode 100644 index 00000000..19165285 --- /dev/null +++ b/data/minecraft/recipe/bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:brick" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_banner.json b/data/minecraft/recipe/brown_banner.json new file mode 100644 index 00000000..82a27206 --- /dev/null +++ b/data/minecraft/recipe/brown_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:brown_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:brown_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_bed.json b/data/minecraft/recipe/brown_bed.json new file mode 100644 index 00000000..d612f1f7 --- /dev/null +++ b/data/minecraft/recipe/brown_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:brown_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:brown_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_candle.json b/data/minecraft/recipe/brown_candle.json new file mode 100644 index 00000000..1cf5a551 --- /dev/null +++ b/data/minecraft/recipe/brown_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:brown_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:brown_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_carpet.json b/data/minecraft/recipe/brown_carpet.json new file mode 100644 index 00000000..1593aab0 --- /dev/null +++ b/data/minecraft/recipe/brown_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:brown_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:brown_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_concrete_powder.json b/data/minecraft/recipe/brown_concrete_powder.json new file mode 100644 index 00000000..c095f3fc --- /dev/null +++ b/data/minecraft/recipe/brown_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:brown_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:brown_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_dye.json b/data/minecraft/recipe/brown_dye.json new file mode 100644 index 00000000..4a7c8066 --- /dev/null +++ b/data/minecraft/recipe/brown_dye.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "brown_dye", + "ingredients": [ + { + "item": "minecraft:cocoa_beans" + } + ], + "result": { + "count": 1, + "id": "minecraft:brown_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_glazed_terracotta.json b/data/minecraft/recipe/brown_glazed_terracotta.json new file mode 100644 index 00000000..32e0a2a8 --- /dev/null +++ b/data/minecraft/recipe/brown_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:brown_terracotta" + }, + "result": { + "id": "minecraft:brown_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_stained_glass.json b/data/minecraft/recipe/brown_stained_glass.json new file mode 100644 index 00000000..5e2c4d07 --- /dev/null +++ b/data/minecraft/recipe/brown_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:brown_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:brown_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_stained_glass_pane.json b/data/minecraft/recipe/brown_stained_glass_pane.json new file mode 100644 index 00000000..78322d2e --- /dev/null +++ b/data/minecraft/recipe/brown_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:brown_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:brown_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/brown_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..a417a55e --- /dev/null +++ b/data/minecraft/recipe/brown_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:brown_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:brown_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brown_terracotta.json b/data/minecraft/recipe/brown_terracotta.json new file mode 100644 index 00000000..a00181aa --- /dev/null +++ b/data/minecraft/recipe/brown_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:brown_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:brown_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/brush.json b/data/minecraft/recipe/brush.json new file mode 100644 index 00000000..f94d9ccb --- /dev/null +++ b/data/minecraft/recipe/brush.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:copper_ingot" + }, + "I": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:feather" + } + }, + "pattern": [ + "X", + "#", + "I" + ], + "result": { + "count": 1, + "id": "minecraft:brush" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/bucket.json b/data/minecraft/recipe/bucket.json new file mode 100644 index 00000000..d4192407 --- /dev/null +++ b/data/minecraft/recipe/bucket.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "# #", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:bucket" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cake.json b/data/minecraft/recipe/cake.json new file mode 100644 index 00000000..428d11d2 --- /dev/null +++ b/data/minecraft/recipe/cake.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "minecraft:milk_bucket" + }, + "B": { + "item": "minecraft:sugar" + }, + "C": { + "item": "minecraft:wheat" + }, + "E": { + "item": "minecraft:egg" + } + }, + "pattern": [ + "AAA", + "BEB", + "CCC" + ], + "result": { + "count": 1, + "id": "minecraft:cake" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/calibrated_sculk_sensor.json b/data/minecraft/recipe/calibrated_sculk_sensor.json new file mode 100644 index 00000000..123d5953 --- /dev/null +++ b/data/minecraft/recipe/calibrated_sculk_sensor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:amethyst_shard" + }, + "X": { + "item": "minecraft:sculk_sensor" + } + }, + "pattern": [ + " # ", + "#X#" + ], + "result": { + "count": 1, + "id": "minecraft:calibrated_sculk_sensor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/campfire.json b/data/minecraft/recipe/campfire.json new file mode 100644 index 00000000..46fb4d1e --- /dev/null +++ b/data/minecraft/recipe/campfire.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "tag": "minecraft:coals" + }, + "L": { + "tag": "minecraft:logs" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " S ", + "SCS", + "LLL" + ], + "result": { + "count": 1, + "id": "minecraft:campfire" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/candle.json b/data/minecraft/recipe/candle.json new file mode 100644 index 00000000..53a7be5a --- /dev/null +++ b/data/minecraft/recipe/candle.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "H": { + "item": "minecraft:honeycomb" + }, + "S": { + "item": "minecraft:string" + } + }, + "pattern": [ + "S", + "H" + ], + "result": { + "count": 1, + "id": "minecraft:candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/carrot_on_a_stick.json b/data/minecraft/recipe/carrot_on_a_stick.json new file mode 100644 index 00000000..ca1a8136 --- /dev/null +++ b/data/minecraft/recipe/carrot_on_a_stick.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:fishing_rod" + }, + "X": { + "item": "minecraft:carrot" + } + }, + "pattern": [ + "# ", + " X" + ], + "result": { + "count": 1, + "id": "minecraft:carrot_on_a_stick" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cartography_table.json b/data/minecraft/recipe/cartography_table.json new file mode 100644 index 00000000..f637ce61 --- /dev/null +++ b/data/minecraft/recipe/cartography_table.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "@": { + "item": "minecraft:paper" + } + }, + "pattern": [ + "@@", + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:cartography_table" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cauldron.json b/data/minecraft/recipe/cauldron.json new file mode 100644 index 00000000..ecf7b6be --- /dev/null +++ b/data/minecraft/recipe/cauldron.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "# #", + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:cauldron" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chain.json b/data/minecraft/recipe/chain.json new file mode 100644 index 00000000..c172cec1 --- /dev/null +++ b/data/minecraft/recipe/chain.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "item": "minecraft:iron_ingot" + }, + "N": { + "item": "minecraft:iron_nugget" + } + }, + "pattern": [ + "N", + "I", + "N" + ], + "result": { + "count": 1, + "id": "minecraft:chain" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/charcoal.json b/data/minecraft/recipe/charcoal.json new file mode 100644 index 00000000..9c86f8af --- /dev/null +++ b/data/minecraft/recipe/charcoal.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.15, + "ingredient": { + "tag": "minecraft:logs_that_burn" + }, + "result": { + "id": "minecraft:charcoal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_boat.json b/data/minecraft/recipe/cherry_boat.json new file mode 100644 index 00000000..8abaf02b --- /dev/null +++ b/data/minecraft/recipe/cherry_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:cherry_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_button.json b/data/minecraft/recipe/cherry_button.json new file mode 100644 index 00000000..c5375419 --- /dev/null +++ b/data/minecraft/recipe/cherry_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:cherry_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:cherry_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_chest_boat.json b/data/minecraft/recipe/cherry_chest_boat.json new file mode 100644 index 00000000..46421dd6 --- /dev/null +++ b/data/minecraft/recipe/cherry_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:cherry_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:cherry_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_door.json b/data/minecraft/recipe/cherry_door.json new file mode 100644 index 00000000..a3910b89 --- /dev/null +++ b/data/minecraft/recipe/cherry_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:cherry_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_fence.json b/data/minecraft/recipe/cherry_fence.json new file mode 100644 index 00000000..dae07298 --- /dev/null +++ b/data/minecraft/recipe/cherry_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:cherry_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_fence_gate.json b/data/minecraft/recipe/cherry_fence_gate.json new file mode 100644 index 00000000..c6cf9f96 --- /dev/null +++ b/data/minecraft/recipe/cherry_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:cherry_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_hanging_sign.json b/data/minecraft/recipe/cherry_hanging_sign.json new file mode 100644 index 00000000..f957ef87 --- /dev/null +++ b/data/minecraft/recipe/cherry_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_cherry_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cherry_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_planks.json b/data/minecraft/recipe/cherry_planks.json new file mode 100644 index 00000000..e14f33ba --- /dev/null +++ b/data/minecraft/recipe/cherry_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:cherry_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:cherry_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_pressure_plate.json b/data/minecraft/recipe/cherry_pressure_plate.json new file mode 100644 index 00000000..159c046d --- /dev/null +++ b/data/minecraft/recipe/cherry_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:cherry_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_sign.json b/data/minecraft/recipe/cherry_sign.json new file mode 100644 index 00000000..969c6ec3 --- /dev/null +++ b/data/minecraft/recipe/cherry_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:cherry_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:cherry_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_slab.json b/data/minecraft/recipe/cherry_slab.json new file mode 100644 index 00000000..e3f6e5c3 --- /dev/null +++ b/data/minecraft/recipe/cherry_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cherry_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_stairs.json b/data/minecraft/recipe/cherry_stairs.json new file mode 100644 index 00000000..15c114f6 --- /dev/null +++ b/data/minecraft/recipe/cherry_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:cherry_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_trapdoor.json b/data/minecraft/recipe/cherry_trapdoor.json new file mode 100644 index 00000000..5a5412f9 --- /dev/null +++ b/data/minecraft/recipe/cherry_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:cherry_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:cherry_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cherry_wood.json b/data/minecraft/recipe/cherry_wood.json new file mode 100644 index 00000000..c968852c --- /dev/null +++ b/data/minecraft/recipe/cherry_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:cherry_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:cherry_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chest.json b/data/minecraft/recipe/chest.json new file mode 100644 index 00000000..2eb5fe7d --- /dev/null +++ b/data/minecraft/recipe/chest.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:chest" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chest_minecart.json b/data/minecraft/recipe/chest_minecart.json new file mode 100644 index 00000000..a6e9a450 --- /dev/null +++ b/data/minecraft/recipe/chest_minecart.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:minecart" + } + ], + "result": { + "count": 1, + "id": "minecraft:chest_minecart" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_bookshelf.json b/data/minecraft/recipe/chiseled_bookshelf.json new file mode 100644 index 00000000..b8646a23 --- /dev/null +++ b/data/minecraft/recipe/chiseled_bookshelf.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "X": { + "tag": "minecraft:wooden_slabs" + } + }, + "pattern": [ + "###", + "XXX", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_bookshelf" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_copper.json b/data/minecraft/recipe/chiseled_copper.json new file mode 100644 index 00000000..f8053a91 --- /dev/null +++ b/data/minecraft/recipe/chiseled_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_copper_from_copper_block_stonecutting.json b/data/minecraft/recipe/chiseled_copper_from_copper_block_stonecutting.json new file mode 100644 index 00000000..e1ebf872 --- /dev/null +++ b/data/minecraft/recipe/chiseled_copper_from_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_copper_from_cut_copper_stonecutting.json b/data/minecraft/recipe/chiseled_copper_from_cut_copper_stonecutting.json new file mode 100644 index 00000000..e80592bb --- /dev/null +++ b/data/minecraft/recipe/chiseled_copper_from_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_deepslate.json b/data/minecraft/recipe/chiseled_deepslate.json new file mode 100644 index 00000000..45718a70 --- /dev/null +++ b/data/minecraft/recipe/chiseled_deepslate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cobbled_deepslate_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_deepslate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_deepslate_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/chiseled_deepslate_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..15ed6dba --- /dev/null +++ b/data/minecraft/recipe/chiseled_deepslate_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_deepslate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_nether_bricks.json b/data/minecraft/recipe/chiseled_nether_bricks.json new file mode 100644 index 00000000..00189323 --- /dev/null +++ b/data/minecraft/recipe/chiseled_nether_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:nether_brick_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_nether_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_nether_bricks_from_nether_bricks_stonecutting.json b/data/minecraft/recipe/chiseled_nether_bricks_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..cf8bdf78 --- /dev/null +++ b/data/minecraft/recipe/chiseled_nether_bricks_from_nether_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:nether_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_nether_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_polished_blackstone.json b/data/minecraft/recipe/chiseled_polished_blackstone.json new file mode 100644 index 00000000..16638f1b --- /dev/null +++ b/data/minecraft/recipe/chiseled_polished_blackstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_blackstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_polished_blackstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_polished_blackstone_from_blackstone_stonecutting.json b/data/minecraft/recipe/chiseled_polished_blackstone_from_blackstone_stonecutting.json new file mode 100644 index 00000000..410433f1 --- /dev/null +++ b/data/minecraft/recipe/chiseled_polished_blackstone_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_polished_blackstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_polished_blackstone_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/chiseled_polished_blackstone_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..94ae36c9 --- /dev/null +++ b/data/minecraft/recipe/chiseled_polished_blackstone_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_polished_blackstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_quartz_block.json b/data/minecraft/recipe/chiseled_quartz_block.json new file mode 100644 index 00000000..ebe1f090 --- /dev/null +++ b/data/minecraft/recipe/chiseled_quartz_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:quartz_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_quartz_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_quartz_block_from_quartz_block_stonecutting.json b/data/minecraft/recipe/chiseled_quartz_block_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..fd32d3a0 --- /dev/null +++ b/data/minecraft/recipe/chiseled_quartz_block_from_quartz_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:quartz_block" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_quartz_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_red_sandstone.json b/data/minecraft/recipe/chiseled_red_sandstone.json new file mode 100644 index 00000000..d7a0250f --- /dev/null +++ b/data/minecraft/recipe/chiseled_red_sandstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:red_sandstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_red_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_red_sandstone_from_red_sandstone_stonecutting.json b/data/minecraft/recipe/chiseled_red_sandstone_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..507ecf30 --- /dev/null +++ b/data/minecraft/recipe/chiseled_red_sandstone_from_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_red_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_sandstone.json b/data/minecraft/recipe/chiseled_sandstone.json new file mode 100644 index 00000000..747d28c6 --- /dev/null +++ b/data/minecraft/recipe/chiseled_sandstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:sandstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_sandstone_from_sandstone_stonecutting.json b/data/minecraft/recipe/chiseled_sandstone_from_sandstone_stonecutting.json new file mode 100644 index 00000000..87fb84cb --- /dev/null +++ b/data/minecraft/recipe/chiseled_sandstone_from_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_stone_bricks.json b/data/minecraft/recipe/chiseled_stone_bricks.json new file mode 100644 index 00000000..71d60520 --- /dev/null +++ b/data/minecraft/recipe/chiseled_stone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:stone_brick_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_stone_bricks_from_stone_bricks_stonecutting.json b/data/minecraft/recipe/chiseled_stone_bricks_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..4e57e2dc --- /dev/null +++ b/data/minecraft/recipe/chiseled_stone_bricks_from_stone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_stone_bricks_stone_from_stonecutting.json b/data/minecraft/recipe/chiseled_stone_bricks_stone_from_stonecutting.json new file mode 100644 index 00000000..fde8e896 --- /dev/null +++ b/data/minecraft/recipe/chiseled_stone_bricks_stone_from_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_tuff.json b/data/minecraft/recipe/chiseled_tuff.json new file mode 100644 index 00000000..ff495622 --- /dev/null +++ b/data/minecraft/recipe/chiseled_tuff.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:tuff_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_tuff" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_tuff_bricks.json b/data/minecraft/recipe/chiseled_tuff_bricks.json new file mode 100644 index 00000000..e13ecdd5 --- /dev/null +++ b/data/minecraft/recipe/chiseled_tuff_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:tuff_brick_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:chiseled_tuff_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_tuff_bricks_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/chiseled_tuff_bricks_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..1d344cd6 --- /dev/null +++ b/data/minecraft/recipe/chiseled_tuff_bricks_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_tuff_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_tuff_bricks_from_tuff_bricks_stonecutting.json b/data/minecraft/recipe/chiseled_tuff_bricks_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..5a609e6e --- /dev/null +++ b/data/minecraft/recipe/chiseled_tuff_bricks_from_tuff_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_tuff_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_tuff_bricks_from_tuff_stonecutting.json b/data/minecraft/recipe/chiseled_tuff_bricks_from_tuff_stonecutting.json new file mode 100644 index 00000000..a4beb79a --- /dev/null +++ b/data/minecraft/recipe/chiseled_tuff_bricks_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_tuff_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/chiseled_tuff_from_tuff_stonecutting.json b/data/minecraft/recipe/chiseled_tuff_from_tuff_stonecutting.json new file mode 100644 index 00000000..4bac996c --- /dev/null +++ b/data/minecraft/recipe/chiseled_tuff_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:chiseled_tuff" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/clay.json b/data/minecraft/recipe/clay.json new file mode 100644 index 00000000..dce478ec --- /dev/null +++ b/data/minecraft/recipe/clay.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:clay_ball" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:clay" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/clock.json b/data/minecraft/recipe/clock.json new file mode 100644 index 00000000..e8f18ba8 --- /dev/null +++ b/data/minecraft/recipe/clock.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:gold_ingot" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " # ", + "#X#", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:clock" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coal.json b/data/minecraft/recipe/coal.json new file mode 100644 index 00000000..0fc3f677 --- /dev/null +++ b/data/minecraft/recipe/coal.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:coal_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:coal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coal_block.json b/data/minecraft/recipe/coal_block.json new file mode 100644 index 00000000..e3f7fc8a --- /dev/null +++ b/data/minecraft/recipe/coal_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:coal" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:coal_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coal_from_blasting_coal_ore.json b/data/minecraft/recipe/coal_from_blasting_coal_ore.json new file mode 100644 index 00000000..83faaa54 --- /dev/null +++ b/data/minecraft/recipe/coal_from_blasting_coal_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.1, + "group": "coal", + "ingredient": { + "item": "minecraft:coal_ore" + }, + "result": { + "id": "minecraft:coal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coal_from_blasting_deepslate_coal_ore.json b/data/minecraft/recipe/coal_from_blasting_deepslate_coal_ore.json new file mode 100644 index 00000000..5eb60704 --- /dev/null +++ b/data/minecraft/recipe/coal_from_blasting_deepslate_coal_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.1, + "group": "coal", + "ingredient": { + "item": "minecraft:deepslate_coal_ore" + }, + "result": { + "id": "minecraft:coal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coal_from_smelting_coal_ore.json b/data/minecraft/recipe/coal_from_smelting_coal_ore.json new file mode 100644 index 00000000..22be2a3c --- /dev/null +++ b/data/minecraft/recipe/coal_from_smelting_coal_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "group": "coal", + "ingredient": { + "item": "minecraft:coal_ore" + }, + "result": { + "id": "minecraft:coal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coal_from_smelting_deepslate_coal_ore.json b/data/minecraft/recipe/coal_from_smelting_deepslate_coal_ore.json new file mode 100644 index 00000000..f839b754 --- /dev/null +++ b/data/minecraft/recipe/coal_from_smelting_deepslate_coal_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "group": "coal", + "ingredient": { + "item": "minecraft:deepslate_coal_ore" + }, + "result": { + "id": "minecraft:coal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coarse_dirt.json b/data/minecraft/recipe/coarse_dirt.json new file mode 100644 index 00000000..8a325ade --- /dev/null +++ b/data/minecraft/recipe/coarse_dirt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "D": { + "item": "minecraft:dirt" + }, + "G": { + "item": "minecraft:gravel" + } + }, + "pattern": [ + "DG", + "GD" + ], + "result": { + "count": 4, + "id": "minecraft:coarse_dirt" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coast_armor_trim_smithing_template.json b/data/minecraft/recipe/coast_armor_trim_smithing_template.json new file mode 100644 index 00000000..bfa8628f --- /dev/null +++ b/data/minecraft/recipe/coast_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:cobblestone" + }, + "S": { + "item": "minecraft:coast_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:coast_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/coast_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/coast_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..fcd0c443 --- /dev/null +++ b/data/minecraft/recipe/coast_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:coast_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobbled_deepslate_slab.json b/data/minecraft/recipe/cobbled_deepslate_slab.json new file mode 100644 index 00000000..f9f4b251 --- /dev/null +++ b/data/minecraft/recipe/cobbled_deepslate_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cobbled_deepslate" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cobbled_deepslate_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..8140e2c2 --- /dev/null +++ b/data/minecraft/recipe/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 2, + "id": "minecraft:cobbled_deepslate_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobbled_deepslate_stairs.json b/data/minecraft/recipe/cobbled_deepslate_stairs.json new file mode 100644 index 00000000..a20779b4 --- /dev/null +++ b/data/minecraft/recipe/cobbled_deepslate_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cobbled_deepslate" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:cobbled_deepslate_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..2aab11ae --- /dev/null +++ b/data/minecraft/recipe/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:cobbled_deepslate_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobbled_deepslate_wall.json b/data/minecraft/recipe/cobbled_deepslate_wall.json new file mode 100644 index 00000000..e66d07ec --- /dev/null +++ b/data/minecraft/recipe/cobbled_deepslate_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:cobbled_deepslate" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cobbled_deepslate_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..4a211bf3 --- /dev/null +++ b/data/minecraft/recipe/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:cobbled_deepslate_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobblestone_slab.json b/data/minecraft/recipe/cobblestone_slab.json new file mode 100644 index 00000000..0fd8aabc --- /dev/null +++ b/data/minecraft/recipe/cobblestone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cobblestone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cobblestone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobblestone_slab_from_cobblestone_stonecutting.json b/data/minecraft/recipe/cobblestone_slab_from_cobblestone_stonecutting.json new file mode 100644 index 00000000..103fef3a --- /dev/null +++ b/data/minecraft/recipe/cobblestone_slab_from_cobblestone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobblestone" + }, + "result": { + "count": 2, + "id": "minecraft:cobblestone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobblestone_stairs.json b/data/minecraft/recipe/cobblestone_stairs.json new file mode 100644 index 00000000..2257ab76 --- /dev/null +++ b/data/minecraft/recipe/cobblestone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cobblestone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:cobblestone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobblestone_stairs_from_cobblestone_stonecutting.json b/data/minecraft/recipe/cobblestone_stairs_from_cobblestone_stonecutting.json new file mode 100644 index 00000000..d98aebce --- /dev/null +++ b/data/minecraft/recipe/cobblestone_stairs_from_cobblestone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobblestone" + }, + "result": { + "count": 1, + "id": "minecraft:cobblestone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobblestone_wall.json b/data/minecraft/recipe/cobblestone_wall.json new file mode 100644 index 00000000..d15deeaa --- /dev/null +++ b/data/minecraft/recipe/cobblestone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:cobblestone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cobblestone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cobblestone_wall_from_cobblestone_stonecutting.json b/data/minecraft/recipe/cobblestone_wall_from_cobblestone_stonecutting.json new file mode 100644 index 00000000..5b3f95b8 --- /dev/null +++ b/data/minecraft/recipe/cobblestone_wall_from_cobblestone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobblestone" + }, + "result": { + "count": 1, + "id": "minecraft:cobblestone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/comparator.json b/data/minecraft/recipe/comparator.json new file mode 100644 index 00000000..a1a39fec --- /dev/null +++ b/data/minecraft/recipe/comparator.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:redstone_torch" + }, + "I": { + "item": "minecraft:stone" + }, + "X": { + "item": "minecraft:quartz" + } + }, + "pattern": [ + " # ", + "#X#", + "III" + ], + "result": { + "count": 1, + "id": "minecraft:comparator" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/compass.json b/data/minecraft/recipe/compass.json new file mode 100644 index 00000000..ed14772b --- /dev/null +++ b/data/minecraft/recipe/compass.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:iron_ingot" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " # ", + "#X#", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:compass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/composter.json b/data/minecraft/recipe/composter.json new file mode 100644 index 00000000..400cec92 --- /dev/null +++ b/data/minecraft/recipe/composter.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:wooden_slabs" + } + }, + "pattern": [ + "# #", + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:composter" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/conduit.json b/data/minecraft/recipe/conduit.json new file mode 100644 index 00000000..8970a7cf --- /dev/null +++ b/data/minecraft/recipe/conduit.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:nautilus_shell" + }, + "X": { + "item": "minecraft:heart_of_the_sea" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:conduit" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_beef.json b/data/minecraft/recipe/cooked_beef.json new file mode 100644 index 00000000..ba8ad9fa --- /dev/null +++ b/data/minecraft/recipe/cooked_beef.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:beef" + }, + "result": { + "id": "minecraft:cooked_beef" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_beef_from_campfire_cooking.json b/data/minecraft/recipe/cooked_beef_from_campfire_cooking.json new file mode 100644 index 00000000..c0e8a526 --- /dev/null +++ b/data/minecraft/recipe/cooked_beef_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:beef" + }, + "result": { + "id": "minecraft:cooked_beef" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_beef_from_smoking.json b/data/minecraft/recipe/cooked_beef_from_smoking.json new file mode 100644 index 00000000..7a3c5acb --- /dev/null +++ b/data/minecraft/recipe/cooked_beef_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:beef" + }, + "result": { + "id": "minecraft:cooked_beef" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_chicken.json b/data/minecraft/recipe/cooked_chicken.json new file mode 100644 index 00000000..f35ff527 --- /dev/null +++ b/data/minecraft/recipe/cooked_chicken.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:chicken" + }, + "result": { + "id": "minecraft:cooked_chicken" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_chicken_from_campfire_cooking.json b/data/minecraft/recipe/cooked_chicken_from_campfire_cooking.json new file mode 100644 index 00000000..8817dde3 --- /dev/null +++ b/data/minecraft/recipe/cooked_chicken_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:chicken" + }, + "result": { + "id": "minecraft:cooked_chicken" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_chicken_from_smoking.json b/data/minecraft/recipe/cooked_chicken_from_smoking.json new file mode 100644 index 00000000..5632323e --- /dev/null +++ b/data/minecraft/recipe/cooked_chicken_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:chicken" + }, + "result": { + "id": "minecraft:cooked_chicken" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_cod.json b/data/minecraft/recipe/cooked_cod.json new file mode 100644 index 00000000..d6840add --- /dev/null +++ b/data/minecraft/recipe/cooked_cod.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:cod" + }, + "result": { + "id": "minecraft:cooked_cod" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_cod_from_campfire_cooking.json b/data/minecraft/recipe/cooked_cod_from_campfire_cooking.json new file mode 100644 index 00000000..817c686a --- /dev/null +++ b/data/minecraft/recipe/cooked_cod_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:cod" + }, + "result": { + "id": "minecraft:cooked_cod" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_cod_from_smoking.json b/data/minecraft/recipe/cooked_cod_from_smoking.json new file mode 100644 index 00000000..92e7d9e0 --- /dev/null +++ b/data/minecraft/recipe/cooked_cod_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:cod" + }, + "result": { + "id": "minecraft:cooked_cod" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_mutton.json b/data/minecraft/recipe/cooked_mutton.json new file mode 100644 index 00000000..cdb4af58 --- /dev/null +++ b/data/minecraft/recipe/cooked_mutton.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:mutton" + }, + "result": { + "id": "minecraft:cooked_mutton" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_mutton_from_campfire_cooking.json b/data/minecraft/recipe/cooked_mutton_from_campfire_cooking.json new file mode 100644 index 00000000..4398f8c3 --- /dev/null +++ b/data/minecraft/recipe/cooked_mutton_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:mutton" + }, + "result": { + "id": "minecraft:cooked_mutton" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_mutton_from_smoking.json b/data/minecraft/recipe/cooked_mutton_from_smoking.json new file mode 100644 index 00000000..e3ce8380 --- /dev/null +++ b/data/minecraft/recipe/cooked_mutton_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:mutton" + }, + "result": { + "id": "minecraft:cooked_mutton" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_porkchop.json b/data/minecraft/recipe/cooked_porkchop.json new file mode 100644 index 00000000..42061aa8 --- /dev/null +++ b/data/minecraft/recipe/cooked_porkchop.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:porkchop" + }, + "result": { + "id": "minecraft:cooked_porkchop" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_porkchop_from_campfire_cooking.json b/data/minecraft/recipe/cooked_porkchop_from_campfire_cooking.json new file mode 100644 index 00000000..4956d7b5 --- /dev/null +++ b/data/minecraft/recipe/cooked_porkchop_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:porkchop" + }, + "result": { + "id": "minecraft:cooked_porkchop" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_porkchop_from_smoking.json b/data/minecraft/recipe/cooked_porkchop_from_smoking.json new file mode 100644 index 00000000..696383e0 --- /dev/null +++ b/data/minecraft/recipe/cooked_porkchop_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:porkchop" + }, + "result": { + "id": "minecraft:cooked_porkchop" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_rabbit.json b/data/minecraft/recipe/cooked_rabbit.json new file mode 100644 index 00000000..a37de0dc --- /dev/null +++ b/data/minecraft/recipe/cooked_rabbit.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:rabbit" + }, + "result": { + "id": "minecraft:cooked_rabbit" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_rabbit_from_campfire_cooking.json b/data/minecraft/recipe/cooked_rabbit_from_campfire_cooking.json new file mode 100644 index 00000000..93199981 --- /dev/null +++ b/data/minecraft/recipe/cooked_rabbit_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:rabbit" + }, + "result": { + "id": "minecraft:cooked_rabbit" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_rabbit_from_smoking.json b/data/minecraft/recipe/cooked_rabbit_from_smoking.json new file mode 100644 index 00000000..cf225ecb --- /dev/null +++ b/data/minecraft/recipe/cooked_rabbit_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:rabbit" + }, + "result": { + "id": "minecraft:cooked_rabbit" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_salmon.json b/data/minecraft/recipe/cooked_salmon.json new file mode 100644 index 00000000..6891a551 --- /dev/null +++ b/data/minecraft/recipe/cooked_salmon.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:salmon" + }, + "result": { + "id": "minecraft:cooked_salmon" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_salmon_from_campfire_cooking.json b/data/minecraft/recipe/cooked_salmon_from_campfire_cooking.json new file mode 100644 index 00000000..a13dbcd8 --- /dev/null +++ b/data/minecraft/recipe/cooked_salmon_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.35, + "ingredient": { + "item": "minecraft:salmon" + }, + "result": { + "id": "minecraft:cooked_salmon" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cooked_salmon_from_smoking.json b/data/minecraft/recipe/cooked_salmon_from_smoking.json new file mode 100644 index 00000000..932f1382 --- /dev/null +++ b/data/minecraft/recipe/cooked_salmon_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "minecraft:salmon" + }, + "result": { + "id": "minecraft:cooked_salmon" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cookie.json b/data/minecraft/recipe/cookie.json new file mode 100644 index 00000000..fb706e98 --- /dev/null +++ b/data/minecraft/recipe/cookie.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:wheat" + }, + "X": { + "item": "minecraft:cocoa_beans" + } + }, + "pattern": [ + "#X#" + ], + "result": { + "count": 8, + "id": "minecraft:cookie" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_block.json b/data/minecraft/recipe/copper_block.json new file mode 100644 index 00000000..80075d6a --- /dev/null +++ b/data/minecraft/recipe/copper_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:copper_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_bulb.json b/data/minecraft/recipe/copper_bulb.json new file mode 100644 index 00000000..2f133457 --- /dev/null +++ b/data/minecraft/recipe/copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:copper_block" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_door.json b/data/minecraft/recipe/copper_door.json new file mode 100644 index 00000000..33f66233 --- /dev/null +++ b/data/minecraft/recipe/copper_door.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:copper_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_grate.json b/data/minecraft/recipe/copper_grate.json new file mode 100644 index 00000000..13e9afea --- /dev/null +++ b/data/minecraft/recipe/copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:copper_block" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_grate_from_copper_block_stonecutting.json b/data/minecraft/recipe/copper_grate_from_copper_block_stonecutting.json new file mode 100644 index 00000000..608a9134 --- /dev/null +++ b/data/minecraft/recipe/copper_grate_from_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot.json b/data/minecraft/recipe/copper_ingot.json new file mode 100644 index 00000000..54f2b7a3 --- /dev/null +++ b/data/minecraft/recipe/copper_ingot.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "copper_ingot", + "ingredients": [ + { + "item": "minecraft:copper_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot_from_blasting_copper_ore.json b/data/minecraft/recipe/copper_ingot_from_blasting_copper_ore.json new file mode 100644 index 00000000..4a89ecd3 --- /dev/null +++ b/data/minecraft/recipe/copper_ingot_from_blasting_copper_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.7, + "group": "copper_ingot", + "ingredient": { + "item": "minecraft:copper_ore" + }, + "result": { + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot_from_blasting_deepslate_copper_ore.json b/data/minecraft/recipe/copper_ingot_from_blasting_deepslate_copper_ore.json new file mode 100644 index 00000000..4f32bfdd --- /dev/null +++ b/data/minecraft/recipe/copper_ingot_from_blasting_deepslate_copper_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.7, + "group": "copper_ingot", + "ingredient": { + "item": "minecraft:deepslate_copper_ore" + }, + "result": { + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot_from_blasting_raw_copper.json b/data/minecraft/recipe/copper_ingot_from_blasting_raw_copper.json new file mode 100644 index 00000000..ebe7f204 --- /dev/null +++ b/data/minecraft/recipe/copper_ingot_from_blasting_raw_copper.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.7, + "group": "copper_ingot", + "ingredient": { + "item": "minecraft:raw_copper" + }, + "result": { + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot_from_smelting_copper_ore.json b/data/minecraft/recipe/copper_ingot_from_smelting_copper_ore.json new file mode 100644 index 00000000..a918ac61 --- /dev/null +++ b/data/minecraft/recipe/copper_ingot_from_smelting_copper_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.7, + "group": "copper_ingot", + "ingredient": { + "item": "minecraft:copper_ore" + }, + "result": { + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot_from_smelting_deepslate_copper_ore.json b/data/minecraft/recipe/copper_ingot_from_smelting_deepslate_copper_ore.json new file mode 100644 index 00000000..a451656c --- /dev/null +++ b/data/minecraft/recipe/copper_ingot_from_smelting_deepslate_copper_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.7, + "group": "copper_ingot", + "ingredient": { + "item": "minecraft:deepslate_copper_ore" + }, + "result": { + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot_from_smelting_raw_copper.json b/data/minecraft/recipe/copper_ingot_from_smelting_raw_copper.json new file mode 100644 index 00000000..e98453e1 --- /dev/null +++ b/data/minecraft/recipe/copper_ingot_from_smelting_raw_copper.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.7, + "group": "copper_ingot", + "ingredient": { + "item": "minecraft:raw_copper" + }, + "result": { + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_ingot_from_waxed_copper_block.json b/data/minecraft/recipe/copper_ingot_from_waxed_copper_block.json new file mode 100644 index 00000000..cedcf144 --- /dev/null +++ b/data/minecraft/recipe/copper_ingot_from_waxed_copper_block.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "copper_ingot", + "ingredients": [ + { + "item": "minecraft:waxed_copper_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:copper_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/copper_trapdoor.json b/data/minecraft/recipe/copper_trapdoor.json new file mode 100644 index 00000000..c36fe8ec --- /dev/null +++ b/data/minecraft/recipe/copper_trapdoor.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:copper_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cracked_deepslate_bricks.json b/data/minecraft/recipe/cracked_deepslate_bricks.json new file mode 100644 index 00000000..f4fd4e3d --- /dev/null +++ b/data/minecraft/recipe/cracked_deepslate_bricks.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "id": "minecraft:cracked_deepslate_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cracked_deepslate_tiles.json b/data/minecraft/recipe/cracked_deepslate_tiles.json new file mode 100644 index 00000000..38763484 --- /dev/null +++ b/data/minecraft/recipe/cracked_deepslate_tiles.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:deepslate_tiles" + }, + "result": { + "id": "minecraft:cracked_deepslate_tiles" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cracked_nether_bricks.json b/data/minecraft/recipe/cracked_nether_bricks.json new file mode 100644 index 00000000..cb6b5d3f --- /dev/null +++ b/data/minecraft/recipe/cracked_nether_bricks.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:nether_bricks" + }, + "result": { + "id": "minecraft:cracked_nether_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cracked_polished_blackstone_bricks.json b/data/minecraft/recipe/cracked_polished_blackstone_bricks.json new file mode 100644 index 00000000..db40c1d5 --- /dev/null +++ b/data/minecraft/recipe/cracked_polished_blackstone_bricks.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:polished_blackstone_bricks" + }, + "result": { + "id": "minecraft:cracked_polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cracked_stone_bricks.json b/data/minecraft/recipe/cracked_stone_bricks.json new file mode 100644 index 00000000..39dc2688 --- /dev/null +++ b/data/minecraft/recipe/cracked_stone_bricks.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:stone_bricks" + }, + "result": { + "id": "minecraft:cracked_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crafter.json b/data/minecraft/recipe/crafter.json new file mode 100644 index 00000000..6c527b94 --- /dev/null +++ b/data/minecraft/recipe/crafter.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:iron_ingot" + }, + "C": { + "item": "minecraft:crafting_table" + }, + "D": { + "item": "minecraft:dropper" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "###", + "#C#", + "RDR" + ], + "result": { + "count": 1, + "id": "minecraft:crafter" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crafting_table.json b/data/minecraft/recipe/crafting_table.json new file mode 100644 index 00000000..d6b719e2 --- /dev/null +++ b/data/minecraft/recipe/crafting_table.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:crafting_table" + }, + "show_notification": false +} \ No newline at end of file diff --git a/data/minecraft/recipe/creeper_banner_pattern.json b/data/minecraft/recipe/creeper_banner_pattern.json new file mode 100644 index 00000000..afb307d0 --- /dev/null +++ b/data/minecraft/recipe/creeper_banner_pattern.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:paper" + }, + { + "item": "minecraft:creeper_head" + } + ], + "result": { + "count": 1, + "id": "minecraft:creeper_banner_pattern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_button.json b/data/minecraft/recipe/crimson_button.json new file mode 100644 index 00000000..413c249c --- /dev/null +++ b/data/minecraft/recipe/crimson_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:crimson_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:crimson_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_door.json b/data/minecraft/recipe/crimson_door.json new file mode 100644 index 00000000..cceaffca --- /dev/null +++ b/data/minecraft/recipe/crimson_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:crimson_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_fence.json b/data/minecraft/recipe/crimson_fence.json new file mode 100644 index 00000000..edb57d8b --- /dev/null +++ b/data/minecraft/recipe/crimson_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:crimson_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_fence_gate.json b/data/minecraft/recipe/crimson_fence_gate.json new file mode 100644 index 00000000..0a15dee5 --- /dev/null +++ b/data/minecraft/recipe/crimson_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:crimson_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_hanging_sign.json b/data/minecraft/recipe/crimson_hanging_sign.json new file mode 100644 index 00000000..6958aaba --- /dev/null +++ b/data/minecraft/recipe/crimson_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_crimson_stem" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:crimson_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_hyphae.json b/data/minecraft/recipe/crimson_hyphae.json new file mode 100644 index 00000000..c3e51ae9 --- /dev/null +++ b/data/minecraft/recipe/crimson_hyphae.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:crimson_stem" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:crimson_hyphae" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_planks.json b/data/minecraft/recipe/crimson_planks.json new file mode 100644 index 00000000..1639af4f --- /dev/null +++ b/data/minecraft/recipe/crimson_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:crimson_stems" + } + ], + "result": { + "count": 4, + "id": "minecraft:crimson_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_pressure_plate.json b/data/minecraft/recipe/crimson_pressure_plate.json new file mode 100644 index 00000000..6e7dade2 --- /dev/null +++ b/data/minecraft/recipe/crimson_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:crimson_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_sign.json b/data/minecraft/recipe/crimson_sign.json new file mode 100644 index 00000000..e27808bf --- /dev/null +++ b/data/minecraft/recipe/crimson_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:crimson_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:crimson_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_slab.json b/data/minecraft/recipe/crimson_slab.json new file mode 100644 index 00000000..ccb16234 --- /dev/null +++ b/data/minecraft/recipe/crimson_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:crimson_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_stairs.json b/data/minecraft/recipe/crimson_stairs.json new file mode 100644 index 00000000..fa94b8ee --- /dev/null +++ b/data/minecraft/recipe/crimson_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:crimson_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crimson_trapdoor.json b/data/minecraft/recipe/crimson_trapdoor.json new file mode 100644 index 00000000..1e23651e --- /dev/null +++ b/data/minecraft/recipe/crimson_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:crimson_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:crimson_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/crossbow.json b/data/minecraft/recipe/crossbow.json new file mode 100644 index 00000000..62217c97 --- /dev/null +++ b/data/minecraft/recipe/crossbow.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "$": { + "item": "minecraft:tripwire_hook" + }, + "&": { + "item": "minecraft:iron_ingot" + }, + "~": { + "item": "minecraft:string" + } + }, + "pattern": [ + "#&#", + "~$~", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:crossbow" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper.json b/data/minecraft/recipe/cut_copper.json new file mode 100644 index 00000000..0df2fa54 --- /dev/null +++ b/data/minecraft/recipe/cut_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:copper_block" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper_from_copper_block_stonecutting.json b/data/minecraft/recipe/cut_copper_from_copper_block_stonecutting.json new file mode 100644 index 00000000..3a483ca4 --- /dev/null +++ b/data/minecraft/recipe/cut_copper_from_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper_slab.json b/data/minecraft/recipe/cut_copper_slab.json new file mode 100644 index 00000000..2683e54b --- /dev/null +++ b/data/minecraft/recipe/cut_copper_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper_slab_from_copper_block_stonecutting.json b/data/minecraft/recipe/cut_copper_slab_from_copper_block_stonecutting.json new file mode 100644 index 00000000..2d47bef7 --- /dev/null +++ b/data/minecraft/recipe/cut_copper_slab_from_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:copper_block" + }, + "result": { + "count": 8, + "id": "minecraft:cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper_slab_from_cut_copper_stonecutting.json b/data/minecraft/recipe/cut_copper_slab_from_cut_copper_stonecutting.json new file mode 100644 index 00000000..8e97b4f7 --- /dev/null +++ b/data/minecraft/recipe/cut_copper_slab_from_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper_stairs.json b/data/minecraft/recipe/cut_copper_stairs.json new file mode 100644 index 00000000..42d7ebca --- /dev/null +++ b/data/minecraft/recipe/cut_copper_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper_stairs_from_copper_block_stonecutting.json b/data/minecraft/recipe/cut_copper_stairs_from_copper_block_stonecutting.json new file mode 100644 index 00000000..edb18a59 --- /dev/null +++ b/data/minecraft/recipe/cut_copper_stairs_from_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_copper_stairs_from_cut_copper_stonecutting.json b/data/minecraft/recipe/cut_copper_stairs_from_cut_copper_stonecutting.json new file mode 100644 index 00000000..9d9f1eb8 --- /dev/null +++ b/data/minecraft/recipe/cut_copper_stairs_from_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_red_sandstone.json b/data/minecraft/recipe/cut_red_sandstone.json new file mode 100644 index 00000000..eaac7e9e --- /dev/null +++ b/data/minecraft/recipe/cut_red_sandstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:red_sandstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:cut_red_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_red_sandstone_from_red_sandstone_stonecutting.json b/data/minecraft/recipe/cut_red_sandstone_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..89207718 --- /dev/null +++ b/data/minecraft/recipe/cut_red_sandstone_from_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:cut_red_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_red_sandstone_slab.json b/data/minecraft/recipe/cut_red_sandstone_slab.json new file mode 100644 index 00000000..166f2386 --- /dev/null +++ b/data/minecraft/recipe/cut_red_sandstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cut_red_sandstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cut_red_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting.json b/data/minecraft/recipe/cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting.json new file mode 100644 index 00000000..12f29447 --- /dev/null +++ b/data/minecraft/recipe/cut_red_sandstone_slab_from_cut_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cut_red_sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:cut_red_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_red_sandstone_slab_from_red_sandstone_stonecutting.json b/data/minecraft/recipe/cut_red_sandstone_slab_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..f59ee401 --- /dev/null +++ b/data/minecraft/recipe/cut_red_sandstone_slab_from_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:cut_red_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_sandstone.json b/data/minecraft/recipe/cut_sandstone.json new file mode 100644 index 00000000..a17b8085 --- /dev/null +++ b/data/minecraft/recipe/cut_sandstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:sandstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:cut_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_sandstone_from_sandstone_stonecutting.json b/data/minecraft/recipe/cut_sandstone_from_sandstone_stonecutting.json new file mode 100644 index 00000000..25cb109b --- /dev/null +++ b/data/minecraft/recipe/cut_sandstone_from_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:cut_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_sandstone_slab.json b/data/minecraft/recipe/cut_sandstone_slab.json new file mode 100644 index 00000000..d6fc9a36 --- /dev/null +++ b/data/minecraft/recipe/cut_sandstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:cut_sandstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cut_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_sandstone_slab_from_cut_sandstone_stonecutting.json b/data/minecraft/recipe/cut_sandstone_slab_from_cut_sandstone_stonecutting.json new file mode 100644 index 00000000..c1d13a3a --- /dev/null +++ b/data/minecraft/recipe/cut_sandstone_slab_from_cut_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cut_sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:cut_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cut_sandstone_slab_from_sandstone_stonecutting.json b/data/minecraft/recipe/cut_sandstone_slab_from_sandstone_stonecutting.json new file mode 100644 index 00000000..8836010a --- /dev/null +++ b/data/minecraft/recipe/cut_sandstone_slab_from_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:cut_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_banner.json b/data/minecraft/recipe/cyan_banner.json new file mode 100644 index 00000000..335b28e4 --- /dev/null +++ b/data/minecraft/recipe/cyan_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:cyan_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:cyan_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_bed.json b/data/minecraft/recipe/cyan_bed.json new file mode 100644 index 00000000..b72f2e97 --- /dev/null +++ b/data/minecraft/recipe/cyan_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:cyan_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:cyan_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_candle.json b/data/minecraft/recipe/cyan_candle.json new file mode 100644 index 00000000..2c61aab0 --- /dev/null +++ b/data/minecraft/recipe/cyan_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:cyan_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:cyan_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_carpet.json b/data/minecraft/recipe/cyan_carpet.json new file mode 100644 index 00000000..f7838c8f --- /dev/null +++ b/data/minecraft/recipe/cyan_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:cyan_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:cyan_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_concrete_powder.json b/data/minecraft/recipe/cyan_concrete_powder.json new file mode 100644 index 00000000..e3f2647e --- /dev/null +++ b/data/minecraft/recipe/cyan_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:cyan_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:cyan_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_dye.json b/data/minecraft/recipe/cyan_dye.json new file mode 100644 index 00000000..2ff7bfd0 --- /dev/null +++ b/data/minecraft/recipe/cyan_dye.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "cyan_dye", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + { + "item": "minecraft:green_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:cyan_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_dye_from_pitcher_plant.json b/data/minecraft/recipe/cyan_dye_from_pitcher_plant.json new file mode 100644 index 00000000..71583631 --- /dev/null +++ b/data/minecraft/recipe/cyan_dye_from_pitcher_plant.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "cyan_dye", + "ingredients": [ + { + "item": "minecraft:pitcher_plant" + } + ], + "result": { + "count": 2, + "id": "minecraft:cyan_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_glazed_terracotta.json b/data/minecraft/recipe/cyan_glazed_terracotta.json new file mode 100644 index 00000000..bc6a3c5b --- /dev/null +++ b/data/minecraft/recipe/cyan_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:cyan_terracotta" + }, + "result": { + "id": "minecraft:cyan_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_stained_glass.json b/data/minecraft/recipe/cyan_stained_glass.json new file mode 100644 index 00000000..1678ebe5 --- /dev/null +++ b/data/minecraft/recipe/cyan_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:cyan_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:cyan_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_stained_glass_pane.json b/data/minecraft/recipe/cyan_stained_glass_pane.json new file mode 100644 index 00000000..fd1b5dd2 --- /dev/null +++ b/data/minecraft/recipe/cyan_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:cyan_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:cyan_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/cyan_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..8fb88423 --- /dev/null +++ b/data/minecraft/recipe/cyan_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:cyan_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:cyan_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/cyan_terracotta.json b/data/minecraft/recipe/cyan_terracotta.json new file mode 100644 index 00000000..7c243c0f --- /dev/null +++ b/data/minecraft/recipe/cyan_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:cyan_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:cyan_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_boat.json b/data/minecraft/recipe/dark_oak_boat.json new file mode 100644 index 00000000..18bc5067 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:dark_oak_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_button.json b/data/minecraft/recipe/dark_oak_button.json new file mode 100644 index 00000000..19614762 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:dark_oak_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:dark_oak_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_chest_boat.json b/data/minecraft/recipe/dark_oak_chest_boat.json new file mode 100644 index 00000000..a03aa27a --- /dev/null +++ b/data/minecraft/recipe/dark_oak_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:dark_oak_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:dark_oak_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_door.json b/data/minecraft/recipe/dark_oak_door.json new file mode 100644 index 00000000..1b08b883 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:dark_oak_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_fence.json b/data/minecraft/recipe/dark_oak_fence.json new file mode 100644 index 00000000..e63b7998 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:dark_oak_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_fence_gate.json b/data/minecraft/recipe/dark_oak_fence_gate.json new file mode 100644 index 00000000..59d955ff --- /dev/null +++ b/data/minecraft/recipe/dark_oak_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:dark_oak_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_hanging_sign.json b/data/minecraft/recipe/dark_oak_hanging_sign.json new file mode 100644 index 00000000..4aa49785 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_dark_oak_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:dark_oak_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_planks.json b/data/minecraft/recipe/dark_oak_planks.json new file mode 100644 index 00000000..f9b85372 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:dark_oak_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:dark_oak_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_pressure_plate.json b/data/minecraft/recipe/dark_oak_pressure_plate.json new file mode 100644 index 00000000..253e5f9c --- /dev/null +++ b/data/minecraft/recipe/dark_oak_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:dark_oak_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_sign.json b/data/minecraft/recipe/dark_oak_sign.json new file mode 100644 index 00000000..9bde756b --- /dev/null +++ b/data/minecraft/recipe/dark_oak_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:dark_oak_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_slab.json b/data/minecraft/recipe/dark_oak_slab.json new file mode 100644 index 00000000..eb527908 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:dark_oak_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_stairs.json b/data/minecraft/recipe/dark_oak_stairs.json new file mode 100644 index 00000000..6b801543 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:dark_oak_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_trapdoor.json b/data/minecraft/recipe/dark_oak_trapdoor.json new file mode 100644 index 00000000..5f5cbb56 --- /dev/null +++ b/data/minecraft/recipe/dark_oak_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:dark_oak_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:dark_oak_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_oak_wood.json b/data/minecraft/recipe/dark_oak_wood.json new file mode 100644 index 00000000..bdaf1f4c --- /dev/null +++ b/data/minecraft/recipe/dark_oak_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:dark_oak_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:dark_oak_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_prismarine.json b/data/minecraft/recipe/dark_prismarine.json new file mode 100644 index 00000000..57dd7cdc --- /dev/null +++ b/data/minecraft/recipe/dark_prismarine.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "I": { + "item": "minecraft:black_dye" + }, + "S": { + "item": "minecraft:prismarine_shard" + } + }, + "pattern": [ + "SSS", + "SIS", + "SSS" + ], + "result": { + "count": 1, + "id": "minecraft:dark_prismarine" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_prismarine_slab.json b/data/minecraft/recipe/dark_prismarine_slab.json new file mode 100644 index 00000000..bce07b33 --- /dev/null +++ b/data/minecraft/recipe/dark_prismarine_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:dark_prismarine" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:dark_prismarine_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_prismarine_slab_from_dark_prismarine_stonecutting.json b/data/minecraft/recipe/dark_prismarine_slab_from_dark_prismarine_stonecutting.json new file mode 100644 index 00000000..4a8ce557 --- /dev/null +++ b/data/minecraft/recipe/dark_prismarine_slab_from_dark_prismarine_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:dark_prismarine" + }, + "result": { + "count": 2, + "id": "minecraft:dark_prismarine_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_prismarine_stairs.json b/data/minecraft/recipe/dark_prismarine_stairs.json new file mode 100644 index 00000000..39cde032 --- /dev/null +++ b/data/minecraft/recipe/dark_prismarine_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:dark_prismarine" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:dark_prismarine_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dark_prismarine_stairs_from_dark_prismarine_stonecutting.json b/data/minecraft/recipe/dark_prismarine_stairs_from_dark_prismarine_stonecutting.json new file mode 100644 index 00000000..1bd7dfac --- /dev/null +++ b/data/minecraft/recipe/dark_prismarine_stairs_from_dark_prismarine_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:dark_prismarine" + }, + "result": { + "count": 1, + "id": "minecraft:dark_prismarine_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/daylight_detector.json b/data/minecraft/recipe/daylight_detector.json new file mode 100644 index 00000000..6b55f908 --- /dev/null +++ b/data/minecraft/recipe/daylight_detector.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "G": { + "item": "minecraft:glass" + }, + "Q": { + "item": "minecraft:quartz" + }, + "W": { + "tag": "minecraft:wooden_slabs" + } + }, + "pattern": [ + "GGG", + "QQQ", + "WWW" + ], + "result": { + "count": 1, + "id": "minecraft:daylight_detector" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/decorated_pot.json b/data/minecraft/recipe/decorated_pot.json new file mode 100644 index 00000000..1cd6f026 --- /dev/null +++ b/data/minecraft/recipe/decorated_pot.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_decorated_pot", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/decorated_pot_simple.json b/data/minecraft/recipe/decorated_pot_simple.json new file mode 100644 index 00000000..44a336dc --- /dev/null +++ b/data/minecraft/recipe/decorated_pot_simple.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:brick" + } + }, + "pattern": [ + " # ", + "# #", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:decorated_pot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate.json b/data/minecraft/recipe/deepslate.json new file mode 100644 index 00000000..fb5e9276 --- /dev/null +++ b/data/minecraft/recipe/deepslate.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "id": "minecraft:deepslate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_slab.json b/data/minecraft/recipe/deepslate_brick_slab.json new file mode 100644 index 00000000..1d0b1072 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:deepslate_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:deepslate_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_brick_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..014b5c48 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 2, + "id": "minecraft:deepslate_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_slab_from_deepslate_bricks_stonecutting.json b/data/minecraft/recipe/deepslate_brick_slab_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..1caf1779 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_slab_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:deepslate_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_slab_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_brick_slab_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..7f4e1084 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_slab_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 2, + "id": "minecraft:deepslate_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_stairs.json b/data/minecraft/recipe/deepslate_brick_stairs.json new file mode 100644 index 00000000..4d754db7 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:deepslate_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:deepslate_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..37b2a4f3 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_stairs_from_deepslate_bricks_stonecutting.json b/data/minecraft/recipe/deepslate_brick_stairs_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..3cdd3fc3 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_stairs_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_stairs_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_brick_stairs_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..e6bb4fec --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_stairs_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_wall.json b/data/minecraft/recipe/deepslate_brick_wall.json new file mode 100644 index 00000000..e25662ab --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:deepslate_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:deepslate_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_brick_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..8338cda6 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_wall_from_deepslate_bricks_stonecutting.json b/data/minecraft/recipe/deepslate_brick_wall_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..a3612513 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_wall_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_brick_wall_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_brick_wall_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..fa56f5b2 --- /dev/null +++ b/data/minecraft/recipe/deepslate_brick_wall_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_bricks.json b/data/minecraft/recipe/deepslate_bricks.json new file mode 100644 index 00000000..b8a740a9 --- /dev/null +++ b/data/minecraft/recipe/deepslate_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:polished_deepslate" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:deepslate_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_bricks_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_bricks_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..e1617105 --- /dev/null +++ b/data/minecraft/recipe/deepslate_bricks_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_bricks_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_bricks_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..3eb3227e --- /dev/null +++ b/data/minecraft/recipe/deepslate_bricks_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_slab.json b/data/minecraft/recipe/deepslate_tile_slab.json new file mode 100644 index 00000000..a36e736c --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:deepslate_tiles" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:deepslate_tile_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tile_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..1abdd396 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 2, + "id": "minecraft:deepslate_tile_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_slab_from_deepslate_bricks_stonecutting.json b/data/minecraft/recipe/deepslate_tile_slab_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..bea1e154 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_slab_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:deepslate_tile_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_slab_from_deepslate_tiles_stonecutting.json b/data/minecraft/recipe/deepslate_tile_slab_from_deepslate_tiles_stonecutting.json new file mode 100644 index 00000000..c4b17608 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_slab_from_deepslate_tiles_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_tiles" + }, + "result": { + "count": 2, + "id": "minecraft:deepslate_tile_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_slab_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tile_slab_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..4538cedc --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_slab_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 2, + "id": "minecraft:deepslate_tile_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_stairs.json b/data/minecraft/recipe/deepslate_tile_stairs.json new file mode 100644 index 00000000..e5736ce8 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:deepslate_tiles" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:deepslate_tile_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..16728940 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_stairs_from_deepslate_bricks_stonecutting.json b/data/minecraft/recipe/deepslate_tile_stairs_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..ca5dc60b --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_stairs_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_stairs_from_deepslate_tiles_stonecutting.json b/data/minecraft/recipe/deepslate_tile_stairs_from_deepslate_tiles_stonecutting.json new file mode 100644 index 00000000..90d0e25d --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_stairs_from_deepslate_tiles_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_tiles" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_stairs_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tile_stairs_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..46dfdb11 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_stairs_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_wall.json b/data/minecraft/recipe/deepslate_tile_wall.json new file mode 100644 index 00000000..c90b3373 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:deepslate_tiles" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:deepslate_tile_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tile_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..d74d7975 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_wall_from_deepslate_bricks_stonecutting.json b/data/minecraft/recipe/deepslate_tile_wall_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..11a6a1ed --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_wall_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_wall_from_deepslate_tiles_stonecutting.json b/data/minecraft/recipe/deepslate_tile_wall_from_deepslate_tiles_stonecutting.json new file mode 100644 index 00000000..c1f05b8f --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_wall_from_deepslate_tiles_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_tiles" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tile_wall_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tile_wall_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..c3417c24 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tile_wall_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tile_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tiles.json b/data/minecraft/recipe/deepslate_tiles.json new file mode 100644 index 00000000..28ad02d6 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tiles.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:deepslate_bricks" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:deepslate_tiles" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tiles_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tiles_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..e4be93e3 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tiles_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tiles" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tiles_from_deepslate_bricks_stonecutting.json b/data/minecraft/recipe/deepslate_tiles_from_deepslate_bricks_stonecutting.json new file mode 100644 index 00000000..06b12e68 --- /dev/null +++ b/data/minecraft/recipe/deepslate_tiles_from_deepslate_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:deepslate_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tiles" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/deepslate_tiles_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/deepslate_tiles_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..1fc86bda --- /dev/null +++ b/data/minecraft/recipe/deepslate_tiles_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:deepslate_tiles" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/detector_rail.json b/data/minecraft/recipe/detector_rail.json new file mode 100644 index 00000000..c4960407 --- /dev/null +++ b/data/minecraft/recipe/detector_rail.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stone_pressure_plate" + }, + "R": { + "item": "minecraft:redstone" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "X X", + "X#X", + "XRX" + ], + "result": { + "count": 6, + "id": "minecraft:detector_rail" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond.json b/data/minecraft/recipe/diamond.json new file mode 100644 index 00000000..4745369f --- /dev/null +++ b/data/minecraft/recipe/diamond.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:diamond_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:diamond" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_axe.json b/data/minecraft/recipe/diamond_axe.json new file mode 100644 index 00000000..650b85a9 --- /dev/null +++ b/data/minecraft/recipe/diamond_axe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "XX", + "X#", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_axe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_block.json b/data/minecraft/recipe/diamond_block.json new file mode 100644 index 00000000..a38ac05e --- /dev/null +++ b/data/minecraft/recipe/diamond_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_boots.json b/data/minecraft/recipe/diamond_boots.json new file mode 100644 index 00000000..40735b4e --- /dev/null +++ b/data/minecraft/recipe/diamond_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_boots" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_chestplate.json b/data/minecraft/recipe/diamond_chestplate.json new file mode 100644 index 00000000..bfa03809 --- /dev/null +++ b/data/minecraft/recipe/diamond_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "X X", + "XXX", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_chestplate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_from_blasting_deepslate_diamond_ore.json b/data/minecraft/recipe/diamond_from_blasting_deepslate_diamond_ore.json new file mode 100644 index 00000000..09b7131e --- /dev/null +++ b/data/minecraft/recipe/diamond_from_blasting_deepslate_diamond_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "diamond", + "ingredient": { + "item": "minecraft:deepslate_diamond_ore" + }, + "result": { + "id": "minecraft:diamond" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_from_blasting_diamond_ore.json b/data/minecraft/recipe/diamond_from_blasting_diamond_ore.json new file mode 100644 index 00000000..d53fd595 --- /dev/null +++ b/data/minecraft/recipe/diamond_from_blasting_diamond_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "diamond", + "ingredient": { + "item": "minecraft:diamond_ore" + }, + "result": { + "id": "minecraft:diamond" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_from_smelting_deepslate_diamond_ore.json b/data/minecraft/recipe/diamond_from_smelting_deepslate_diamond_ore.json new file mode 100644 index 00000000..6aa47d2c --- /dev/null +++ b/data/minecraft/recipe/diamond_from_smelting_deepslate_diamond_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "diamond", + "ingredient": { + "item": "minecraft:deepslate_diamond_ore" + }, + "result": { + "id": "minecraft:diamond" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_from_smelting_diamond_ore.json b/data/minecraft/recipe/diamond_from_smelting_diamond_ore.json new file mode 100644 index 00000000..900b972c --- /dev/null +++ b/data/minecraft/recipe/diamond_from_smelting_diamond_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "diamond", + "ingredient": { + "item": "minecraft:diamond_ore" + }, + "result": { + "id": "minecraft:diamond" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_helmet.json b/data/minecraft/recipe/diamond_helmet.json new file mode 100644 index 00000000..76442c8d --- /dev/null +++ b/data/minecraft/recipe/diamond_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "XXX", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_helmet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_hoe.json b/data/minecraft/recipe/diamond_hoe.json new file mode 100644 index 00000000..a62f0234 --- /dev/null +++ b/data/minecraft/recipe/diamond_hoe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "XX", + " #", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_hoe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_leggings.json b/data/minecraft/recipe/diamond_leggings.json new file mode 100644 index 00000000..4e2470a0 --- /dev/null +++ b/data/minecraft/recipe/diamond_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "XXX", + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_leggings" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_pickaxe.json b/data/minecraft/recipe/diamond_pickaxe.json new file mode 100644 index 00000000..2ea55f5b --- /dev/null +++ b/data/minecraft/recipe/diamond_pickaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "XXX", + " # ", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:diamond_pickaxe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_shovel.json b/data/minecraft/recipe/diamond_shovel.json new file mode 100644 index 00000000..37d7aa26 --- /dev/null +++ b/data/minecraft/recipe/diamond_shovel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "X", + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_shovel" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diamond_sword.json b/data/minecraft/recipe/diamond_sword.json new file mode 100644 index 00000000..606a3414 --- /dev/null +++ b/data/minecraft/recipe/diamond_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "X", + "X", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:diamond_sword" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diorite.json b/data/minecraft/recipe/diorite.json new file mode 100644 index 00000000..97289513 --- /dev/null +++ b/data/minecraft/recipe/diorite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:cobblestone" + }, + "Q": { + "item": "minecraft:quartz" + } + }, + "pattern": [ + "CQ", + "QC" + ], + "result": { + "count": 2, + "id": "minecraft:diorite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diorite_slab.json b/data/minecraft/recipe/diorite_slab.json new file mode 100644 index 00000000..2544657f --- /dev/null +++ b/data/minecraft/recipe/diorite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:diorite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:diorite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diorite_slab_from_diorite_stonecutting.json b/data/minecraft/recipe/diorite_slab_from_diorite_stonecutting.json new file mode 100644 index 00000000..73d3e035 --- /dev/null +++ b/data/minecraft/recipe/diorite_slab_from_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": { + "count": 2, + "id": "minecraft:diorite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diorite_stairs.json b/data/minecraft/recipe/diorite_stairs.json new file mode 100644 index 00000000..e55ed1d8 --- /dev/null +++ b/data/minecraft/recipe/diorite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:diorite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:diorite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diorite_stairs_from_diorite_stonecutting.json b/data/minecraft/recipe/diorite_stairs_from_diorite_stonecutting.json new file mode 100644 index 00000000..d9e034d3 --- /dev/null +++ b/data/minecraft/recipe/diorite_stairs_from_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": { + "count": 1, + "id": "minecraft:diorite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diorite_wall.json b/data/minecraft/recipe/diorite_wall.json new file mode 100644 index 00000000..17d8f059 --- /dev/null +++ b/data/minecraft/recipe/diorite_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diorite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:diorite_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/diorite_wall_from_diorite_stonecutting.json b/data/minecraft/recipe/diorite_wall_from_diorite_stonecutting.json new file mode 100644 index 00000000..c6a3b258 --- /dev/null +++ b/data/minecraft/recipe/diorite_wall_from_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": { + "count": 1, + "id": "minecraft:diorite_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dispenser.json b/data/minecraft/recipe/dispenser.json new file mode 100644 index 00000000..a3e70a59 --- /dev/null +++ b/data/minecraft/recipe/dispenser.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "R": { + "item": "minecraft:redstone" + }, + "X": { + "item": "minecraft:bow" + } + }, + "pattern": [ + "###", + "#X#", + "#R#" + ], + "result": { + "count": 1, + "id": "minecraft:dispenser" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dried_kelp.json b/data/minecraft/recipe/dried_kelp.json new file mode 100644 index 00000000..ebd3e092 --- /dev/null +++ b/data/minecraft/recipe/dried_kelp.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:dried_kelp_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:dried_kelp" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dried_kelp_block.json b/data/minecraft/recipe/dried_kelp_block.json new file mode 100644 index 00000000..494426b6 --- /dev/null +++ b/data/minecraft/recipe/dried_kelp_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:dried_kelp" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:dried_kelp_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dried_kelp_from_campfire_cooking.json b/data/minecraft/recipe/dried_kelp_from_campfire_cooking.json new file mode 100644 index 00000000..40d46706 --- /dev/null +++ b/data/minecraft/recipe/dried_kelp_from_campfire_cooking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:campfire_cooking", + "category": "food", + "cookingtime": 600, + "experience": 0.1, + "ingredient": { + "item": "minecraft:kelp" + }, + "result": { + "id": "minecraft:dried_kelp" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dried_kelp_from_smelting.json b/data/minecraft/recipe/dried_kelp_from_smelting.json new file mode 100644 index 00000000..3f16c032 --- /dev/null +++ b/data/minecraft/recipe/dried_kelp_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:kelp" + }, + "result": { + "id": "minecraft:dried_kelp" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dried_kelp_from_smoking.json b/data/minecraft/recipe/dried_kelp_from_smoking.json new file mode 100644 index 00000000..3fa6fda8 --- /dev/null +++ b/data/minecraft/recipe/dried_kelp_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.1, + "ingredient": { + "item": "minecraft:kelp" + }, + "result": { + "id": "minecraft:dried_kelp" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dripstone_block.json b/data/minecraft/recipe/dripstone_block.json new file mode 100644 index 00000000..a1535327 --- /dev/null +++ b/data/minecraft/recipe/dripstone_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:pointed_dripstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:dripstone_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dropper.json b/data/minecraft/recipe/dropper.json new file mode 100644 index 00000000..e32548ac --- /dev/null +++ b/data/minecraft/recipe/dropper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "###", + "# #", + "#R#" + ], + "result": { + "count": 1, + "id": "minecraft:dropper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dune_armor_trim_smithing_template.json b/data/minecraft/recipe/dune_armor_trim_smithing_template.json new file mode 100644 index 00000000..05b01cb8 --- /dev/null +++ b/data/minecraft/recipe/dune_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:sandstone" + }, + "S": { + "item": "minecraft:dune_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:dune_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dune_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/dune_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..0e73e441 --- /dev/null +++ b/data/minecraft/recipe/dune_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:dune_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_black_bed.json b/data/minecraft/recipe/dye_black_bed.json new file mode 100644 index 00000000..e2fa9dc4 --- /dev/null +++ b/data/minecraft/recipe/dye_black_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:black_dye" + }, + [ + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:black_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_black_carpet.json b/data/minecraft/recipe/dye_black_carpet.json new file mode 100644 index 00000000..a3516cd6 --- /dev/null +++ b/data/minecraft/recipe/dye_black_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:black_dye" + }, + [ + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:black_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_black_wool.json b/data/minecraft/recipe/dye_black_wool.json new file mode 100644 index 00000000..e1df7fef --- /dev/null +++ b/data/minecraft/recipe/dye_black_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:black_dye" + }, + [ + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:black_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_blue_bed.json b/data/minecraft/recipe/dye_blue_bed.json new file mode 100644 index 00000000..98f5941b --- /dev/null +++ b/data/minecraft/recipe/dye_blue_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:blue_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_blue_carpet.json b/data/minecraft/recipe/dye_blue_carpet.json new file mode 100644 index 00000000..cdb18144 --- /dev/null +++ b/data/minecraft/recipe/dye_blue_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:blue_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_blue_wool.json b/data/minecraft/recipe/dye_blue_wool.json new file mode 100644 index 00000000..fa36484b --- /dev/null +++ b/data/minecraft/recipe/dye_blue_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:blue_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_brown_bed.json b/data/minecraft/recipe/dye_brown_bed.json new file mode 100644 index 00000000..1bdb8497 --- /dev/null +++ b/data/minecraft/recipe/dye_brown_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:brown_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:brown_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_brown_carpet.json b/data/minecraft/recipe/dye_brown_carpet.json new file mode 100644 index 00000000..fceb09bf --- /dev/null +++ b/data/minecraft/recipe/dye_brown_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:brown_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:brown_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_brown_wool.json b/data/minecraft/recipe/dye_brown_wool.json new file mode 100644 index 00000000..9f214420 --- /dev/null +++ b/data/minecraft/recipe/dye_brown_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:brown_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:brown_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_cyan_bed.json b/data/minecraft/recipe/dye_cyan_bed.json new file mode 100644 index 00000000..835ef9c9 --- /dev/null +++ b/data/minecraft/recipe/dye_cyan_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:cyan_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:cyan_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_cyan_carpet.json b/data/minecraft/recipe/dye_cyan_carpet.json new file mode 100644 index 00000000..816ff391 --- /dev/null +++ b/data/minecraft/recipe/dye_cyan_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:cyan_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:cyan_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_cyan_wool.json b/data/minecraft/recipe/dye_cyan_wool.json new file mode 100644 index 00000000..89e632f8 --- /dev/null +++ b/data/minecraft/recipe/dye_cyan_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:cyan_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:cyan_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_gray_bed.json b/data/minecraft/recipe/dye_gray_bed.json new file mode 100644 index 00000000..631b3af9 --- /dev/null +++ b/data/minecraft/recipe/dye_gray_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:gray_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:gray_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_gray_carpet.json b/data/minecraft/recipe/dye_gray_carpet.json new file mode 100644 index 00000000..05c363af --- /dev/null +++ b/data/minecraft/recipe/dye_gray_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:gray_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:gray_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_gray_wool.json b/data/minecraft/recipe/dye_gray_wool.json new file mode 100644 index 00000000..3610ab21 --- /dev/null +++ b/data/minecraft/recipe/dye_gray_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:gray_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:gray_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_green_bed.json b/data/minecraft/recipe/dye_green_bed.json new file mode 100644 index 00000000..4394e5bc --- /dev/null +++ b/data/minecraft/recipe/dye_green_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:green_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:green_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_green_carpet.json b/data/minecraft/recipe/dye_green_carpet.json new file mode 100644 index 00000000..66b3f8fa --- /dev/null +++ b/data/minecraft/recipe/dye_green_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:green_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:green_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_green_wool.json b/data/minecraft/recipe/dye_green_wool.json new file mode 100644 index 00000000..0ba7c459 --- /dev/null +++ b/data/minecraft/recipe/dye_green_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:green_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:green_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_light_blue_bed.json b/data/minecraft/recipe/dye_light_blue_bed.json new file mode 100644 index 00000000..78ca1e75 --- /dev/null +++ b/data/minecraft/recipe/dye_light_blue_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:light_blue_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:light_blue_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_light_blue_carpet.json b/data/minecraft/recipe/dye_light_blue_carpet.json new file mode 100644 index 00000000..cf44faa3 --- /dev/null +++ b/data/minecraft/recipe/dye_light_blue_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:light_blue_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:light_blue_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_light_blue_wool.json b/data/minecraft/recipe/dye_light_blue_wool.json new file mode 100644 index 00000000..6367dee7 --- /dev/null +++ b/data/minecraft/recipe/dye_light_blue_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:light_blue_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:light_blue_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_light_gray_bed.json b/data/minecraft/recipe/dye_light_gray_bed.json new file mode 100644 index 00000000..26bf7ab3 --- /dev/null +++ b/data/minecraft/recipe/dye_light_gray_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:light_gray_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_light_gray_carpet.json b/data/minecraft/recipe/dye_light_gray_carpet.json new file mode 100644 index 00000000..1119a5a2 --- /dev/null +++ b/data/minecraft/recipe/dye_light_gray_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:light_gray_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_light_gray_wool.json b/data/minecraft/recipe/dye_light_gray_wool.json new file mode 100644 index 00000000..7d0be1ea --- /dev/null +++ b/data/minecraft/recipe/dye_light_gray_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:light_gray_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_lime_bed.json b/data/minecraft/recipe/dye_lime_bed.json new file mode 100644 index 00000000..1daff444 --- /dev/null +++ b/data/minecraft/recipe/dye_lime_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:lime_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:lime_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_lime_carpet.json b/data/minecraft/recipe/dye_lime_carpet.json new file mode 100644 index 00000000..7a290806 --- /dev/null +++ b/data/minecraft/recipe/dye_lime_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:lime_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:lime_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_lime_wool.json b/data/minecraft/recipe/dye_lime_wool.json new file mode 100644 index 00000000..25c2e277 --- /dev/null +++ b/data/minecraft/recipe/dye_lime_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:lime_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:lime_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_magenta_bed.json b/data/minecraft/recipe/dye_magenta_bed.json new file mode 100644 index 00000000..7e4db1f9 --- /dev/null +++ b/data/minecraft/recipe/dye_magenta_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:magenta_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:magenta_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_magenta_carpet.json b/data/minecraft/recipe/dye_magenta_carpet.json new file mode 100644 index 00000000..57e326bc --- /dev/null +++ b/data/minecraft/recipe/dye_magenta_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:magenta_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:magenta_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_magenta_wool.json b/data/minecraft/recipe/dye_magenta_wool.json new file mode 100644 index 00000000..e75cc70f --- /dev/null +++ b/data/minecraft/recipe/dye_magenta_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:magenta_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:magenta_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_orange_bed.json b/data/minecraft/recipe/dye_orange_bed.json new file mode 100644 index 00000000..e24318a0 --- /dev/null +++ b/data/minecraft/recipe/dye_orange_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:orange_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:orange_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_orange_carpet.json b/data/minecraft/recipe/dye_orange_carpet.json new file mode 100644 index 00000000..3ce816fe --- /dev/null +++ b/data/minecraft/recipe/dye_orange_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:orange_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:orange_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_orange_wool.json b/data/minecraft/recipe/dye_orange_wool.json new file mode 100644 index 00000000..6bab1aa9 --- /dev/null +++ b/data/minecraft/recipe/dye_orange_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:orange_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:orange_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_pink_bed.json b/data/minecraft/recipe/dye_pink_bed.json new file mode 100644 index 00000000..c76dd903 --- /dev/null +++ b/data/minecraft/recipe/dye_pink_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:pink_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:pink_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_pink_carpet.json b/data/minecraft/recipe/dye_pink_carpet.json new file mode 100644 index 00000000..48b9222d --- /dev/null +++ b/data/minecraft/recipe/dye_pink_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:pink_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:pink_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_pink_wool.json b/data/minecraft/recipe/dye_pink_wool.json new file mode 100644 index 00000000..59bedba0 --- /dev/null +++ b/data/minecraft/recipe/dye_pink_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:pink_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:pink_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_purple_bed.json b/data/minecraft/recipe/dye_purple_bed.json new file mode 100644 index 00000000..49b2b4ef --- /dev/null +++ b/data/minecraft/recipe/dye_purple_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:purple_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:purple_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_purple_carpet.json b/data/minecraft/recipe/dye_purple_carpet.json new file mode 100644 index 00000000..d94688ea --- /dev/null +++ b/data/minecraft/recipe/dye_purple_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:purple_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:purple_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_purple_wool.json b/data/minecraft/recipe/dye_purple_wool.json new file mode 100644 index 00000000..22691ef8 --- /dev/null +++ b/data/minecraft/recipe/dye_purple_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:purple_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:purple_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_red_bed.json b/data/minecraft/recipe/dye_red_bed.json new file mode 100644 index 00000000..aedc9b8a --- /dev/null +++ b/data/minecraft/recipe/dye_red_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:red_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:yellow_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:red_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_red_carpet.json b/data/minecraft/recipe/dye_red_carpet.json new file mode 100644 index 00000000..17a0bfb0 --- /dev/null +++ b/data/minecraft/recipe/dye_red_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:red_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:yellow_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:red_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_red_wool.json b/data/minecraft/recipe/dye_red_wool.json new file mode 100644 index 00000000..09fffff0 --- /dev/null +++ b/data/minecraft/recipe/dye_red_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:red_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:yellow_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:red_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_white_bed.json b/data/minecraft/recipe/dye_white_bed.json new file mode 100644 index 00000000..887ce0a5 --- /dev/null +++ b/data/minecraft/recipe/dye_white_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:white_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:yellow_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:white_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_white_carpet.json b/data/minecraft/recipe/dye_white_carpet.json new file mode 100644 index 00000000..3b367585 --- /dev/null +++ b/data/minecraft/recipe/dye_white_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:white_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:yellow_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:white_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_white_wool.json b/data/minecraft/recipe/dye_white_wool.json new file mode 100644 index 00000000..c8aa58d9 --- /dev/null +++ b/data/minecraft/recipe/dye_white_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:white_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:yellow_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:white_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_yellow_bed.json b/data/minecraft/recipe/dye_yellow_bed.json new file mode 100644 index 00000000..ab03d535 --- /dev/null +++ b/data/minecraft/recipe/dye_yellow_bed.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "bed", + "ingredients": [ + { + "item": "minecraft:yellow_dye" + }, + [ + { + "item": "minecraft:black_bed" + }, + { + "item": "minecraft:blue_bed" + }, + { + "item": "minecraft:brown_bed" + }, + { + "item": "minecraft:cyan_bed" + }, + { + "item": "minecraft:gray_bed" + }, + { + "item": "minecraft:green_bed" + }, + { + "item": "minecraft:light_blue_bed" + }, + { + "item": "minecraft:light_gray_bed" + }, + { + "item": "minecraft:lime_bed" + }, + { + "item": "minecraft:magenta_bed" + }, + { + "item": "minecraft:orange_bed" + }, + { + "item": "minecraft:pink_bed" + }, + { + "item": "minecraft:purple_bed" + }, + { + "item": "minecraft:red_bed" + }, + { + "item": "minecraft:white_bed" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:yellow_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_yellow_carpet.json b/data/minecraft/recipe/dye_yellow_carpet.json new file mode 100644 index 00000000..5aa13b3b --- /dev/null +++ b/data/minecraft/recipe/dye_yellow_carpet.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "carpet", + "ingredients": [ + { + "item": "minecraft:yellow_dye" + }, + [ + { + "item": "minecraft:black_carpet" + }, + { + "item": "minecraft:blue_carpet" + }, + { + "item": "minecraft:brown_carpet" + }, + { + "item": "minecraft:cyan_carpet" + }, + { + "item": "minecraft:gray_carpet" + }, + { + "item": "minecraft:green_carpet" + }, + { + "item": "minecraft:light_blue_carpet" + }, + { + "item": "minecraft:light_gray_carpet" + }, + { + "item": "minecraft:lime_carpet" + }, + { + "item": "minecraft:magenta_carpet" + }, + { + "item": "minecraft:orange_carpet" + }, + { + "item": "minecraft:pink_carpet" + }, + { + "item": "minecraft:purple_carpet" + }, + { + "item": "minecraft:red_carpet" + }, + { + "item": "minecraft:white_carpet" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:yellow_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/dye_yellow_wool.json b/data/minecraft/recipe/dye_yellow_wool.json new file mode 100644 index 00000000..55a3889c --- /dev/null +++ b/data/minecraft/recipe/dye_yellow_wool.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "wool", + "ingredients": [ + { + "item": "minecraft:yellow_dye" + }, + [ + { + "item": "minecraft:black_wool" + }, + { + "item": "minecraft:blue_wool" + }, + { + "item": "minecraft:brown_wool" + }, + { + "item": "minecraft:cyan_wool" + }, + { + "item": "minecraft:gray_wool" + }, + { + "item": "minecraft:green_wool" + }, + { + "item": "minecraft:light_blue_wool" + }, + { + "item": "minecraft:light_gray_wool" + }, + { + "item": "minecraft:lime_wool" + }, + { + "item": "minecraft:magenta_wool" + }, + { + "item": "minecraft:orange_wool" + }, + { + "item": "minecraft:pink_wool" + }, + { + "item": "minecraft:purple_wool" + }, + { + "item": "minecraft:red_wool" + }, + { + "item": "minecraft:white_wool" + } + ] + ], + "result": { + "count": 1, + "id": "minecraft:yellow_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/emerald.json b/data/minecraft/recipe/emerald.json new file mode 100644 index 00000000..96f03835 --- /dev/null +++ b/data/minecraft/recipe/emerald.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:emerald_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:emerald" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/emerald_block.json b/data/minecraft/recipe/emerald_block.json new file mode 100644 index 00000000..b68f0c32 --- /dev/null +++ b/data/minecraft/recipe/emerald_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:emerald" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:emerald_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/emerald_from_blasting_deepslate_emerald_ore.json b/data/minecraft/recipe/emerald_from_blasting_deepslate_emerald_ore.json new file mode 100644 index 00000000..ecb1180c --- /dev/null +++ b/data/minecraft/recipe/emerald_from_blasting_deepslate_emerald_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "emerald", + "ingredient": { + "item": "minecraft:deepslate_emerald_ore" + }, + "result": { + "id": "minecraft:emerald" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/emerald_from_blasting_emerald_ore.json b/data/minecraft/recipe/emerald_from_blasting_emerald_ore.json new file mode 100644 index 00000000..dcc6df66 --- /dev/null +++ b/data/minecraft/recipe/emerald_from_blasting_emerald_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "emerald", + "ingredient": { + "item": "minecraft:emerald_ore" + }, + "result": { + "id": "minecraft:emerald" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/emerald_from_smelting_deepslate_emerald_ore.json b/data/minecraft/recipe/emerald_from_smelting_deepslate_emerald_ore.json new file mode 100644 index 00000000..d50d58a4 --- /dev/null +++ b/data/minecraft/recipe/emerald_from_smelting_deepslate_emerald_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "emerald", + "ingredient": { + "item": "minecraft:deepslate_emerald_ore" + }, + "result": { + "id": "minecraft:emerald" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/emerald_from_smelting_emerald_ore.json b/data/minecraft/recipe/emerald_from_smelting_emerald_ore.json new file mode 100644 index 00000000..fe932fd2 --- /dev/null +++ b/data/minecraft/recipe/emerald_from_smelting_emerald_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "emerald", + "ingredient": { + "item": "minecraft:emerald_ore" + }, + "result": { + "id": "minecraft:emerald" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/enchanting_table.json b/data/minecraft/recipe/enchanting_table.json new file mode 100644 index 00000000..bc62b875 --- /dev/null +++ b/data/minecraft/recipe/enchanting_table.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:obsidian" + }, + "B": { + "item": "minecraft:book" + }, + "D": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + " B ", + "D#D", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:enchanting_table" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_crystal.json b/data/minecraft/recipe/end_crystal.json new file mode 100644 index 00000000..a438d41f --- /dev/null +++ b/data/minecraft/recipe/end_crystal.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "E": { + "item": "minecraft:ender_eye" + }, + "G": { + "item": "minecraft:glass" + }, + "T": { + "item": "minecraft:ghast_tear" + } + }, + "pattern": [ + "GGG", + "GEG", + "GTG" + ], + "result": { + "count": 1, + "id": "minecraft:end_crystal" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_rod.json b/data/minecraft/recipe/end_rod.json new file mode 100644 index 00000000..f66dc895 --- /dev/null +++ b/data/minecraft/recipe/end_rod.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:popped_chorus_fruit" + }, + "/": { + "item": "minecraft:blaze_rod" + } + }, + "pattern": [ + "/", + "#" + ], + "result": { + "count": 4, + "id": "minecraft:end_rod" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_slab.json b/data/minecraft/recipe/end_stone_brick_slab.json new file mode 100644 index 00000000..01d42ea1 --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:end_stone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:end_stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_slab_from_end_stone_brick_stonecutting.json b/data/minecraft/recipe/end_stone_brick_slab_from_end_stone_brick_stonecutting.json new file mode 100644 index 00000000..05464868 --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_slab_from_end_stone_brick_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:end_stone_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:end_stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_slab_from_end_stone_stonecutting.json b/data/minecraft/recipe/end_stone_brick_slab_from_end_stone_stonecutting.json new file mode 100644 index 00000000..497b74bd --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_slab_from_end_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:end_stone" + }, + "result": { + "count": 2, + "id": "minecraft:end_stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_stairs.json b/data/minecraft/recipe/end_stone_brick_stairs.json new file mode 100644 index 00000000..cd33f7d5 --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:end_stone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:end_stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_stairs_from_end_stone_brick_stonecutting.json b/data/minecraft/recipe/end_stone_brick_stairs_from_end_stone_brick_stonecutting.json new file mode 100644 index 00000000..1fd9a2cc --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_stairs_from_end_stone_brick_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:end_stone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:end_stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_stairs_from_end_stone_stonecutting.json b/data/minecraft/recipe/end_stone_brick_stairs_from_end_stone_stonecutting.json new file mode 100644 index 00000000..334b5b97 --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_stairs_from_end_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:end_stone" + }, + "result": { + "count": 1, + "id": "minecraft:end_stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_wall.json b/data/minecraft/recipe/end_stone_brick_wall.json new file mode 100644 index 00000000..e91612b8 --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:end_stone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:end_stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_wall_from_end_stone_brick_stonecutting.json b/data/minecraft/recipe/end_stone_brick_wall_from_end_stone_brick_stonecutting.json new file mode 100644 index 00000000..e7b8011f --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_wall_from_end_stone_brick_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:end_stone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:end_stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_brick_wall_from_end_stone_stonecutting.json b/data/minecraft/recipe/end_stone_brick_wall_from_end_stone_stonecutting.json new file mode 100644 index 00000000..e8bbff83 --- /dev/null +++ b/data/minecraft/recipe/end_stone_brick_wall_from_end_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:end_stone" + }, + "result": { + "count": 1, + "id": "minecraft:end_stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_bricks.json b/data/minecraft/recipe/end_stone_bricks.json new file mode 100644 index 00000000..bafeb98f --- /dev/null +++ b/data/minecraft/recipe/end_stone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:end_stone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:end_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/end_stone_bricks_from_end_stone_stonecutting.json b/data/minecraft/recipe/end_stone_bricks_from_end_stone_stonecutting.json new file mode 100644 index 00000000..bd26ec4e --- /dev/null +++ b/data/minecraft/recipe/end_stone_bricks_from_end_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:end_stone" + }, + "result": { + "count": 1, + "id": "minecraft:end_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/ender_chest.json b/data/minecraft/recipe/ender_chest.json new file mode 100644 index 00000000..d6cb47ff --- /dev/null +++ b/data/minecraft/recipe/ender_chest.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:obsidian" + }, + "E": { + "item": "minecraft:ender_eye" + } + }, + "pattern": [ + "###", + "#E#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:ender_chest" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/ender_eye.json b/data/minecraft/recipe/ender_eye.json new file mode 100644 index 00000000..264e5200 --- /dev/null +++ b/data/minecraft/recipe/ender_eye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:ender_pearl" + }, + { + "item": "minecraft:blaze_powder" + } + ], + "result": { + "count": 1, + "id": "minecraft:ender_eye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_chiseled_copper.json b/data/minecraft/recipe/exposed_chiseled_copper.json new file mode 100644 index 00000000..d1a9ece3 --- /dev/null +++ b/data/minecraft/recipe/exposed_chiseled_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:exposed_cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_chiseled_copper_from_exposed_copper_stonecutting.json b/data/minecraft/recipe/exposed_chiseled_copper_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..1c6a3337 --- /dev/null +++ b/data/minecraft/recipe/exposed_chiseled_copper_from_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_chiseled_copper_from_exposed_cut_copper_stonecutting.json b/data/minecraft/recipe/exposed_chiseled_copper_from_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..38fca63e --- /dev/null +++ b/data/minecraft/recipe/exposed_chiseled_copper_from_exposed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_copper_bulb.json b/data/minecraft/recipe/exposed_copper_bulb.json new file mode 100644 index 00000000..93088c50 --- /dev/null +++ b/data/minecraft/recipe/exposed_copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:exposed_copper" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:exposed_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_copper_grate.json b/data/minecraft/recipe/exposed_copper_grate.json new file mode 100644 index 00000000..e880d4a7 --- /dev/null +++ b/data/minecraft/recipe/exposed_copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:exposed_copper" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:exposed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_copper_grate_from_exposed_copper_stonecutting.json b/data/minecraft/recipe/exposed_copper_grate_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..fd3ea731 --- /dev/null +++ b/data/minecraft/recipe/exposed_copper_grate_from_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:exposed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper.json b/data/minecraft/recipe/exposed_cut_copper.json new file mode 100644 index 00000000..eb84db91 --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:exposed_copper" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:exposed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper_from_exposed_copper_stonecutting.json b/data/minecraft/recipe/exposed_cut_copper_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..7d98a7bc --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper_from_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:exposed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper_slab.json b/data/minecraft/recipe/exposed_cut_copper_slab.json new file mode 100644 index 00000000..0f3f9531 --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:exposed_cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:exposed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper_slab_from_exposed_copper_stonecutting.json b/data/minecraft/recipe/exposed_cut_copper_slab_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..02ecce16 --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper_slab_from_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_copper" + }, + "result": { + "count": 8, + "id": "minecraft:exposed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting.json b/data/minecraft/recipe/exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..8cf8e026 --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper_slab_from_exposed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:exposed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper_stairs.json b/data/minecraft/recipe/exposed_cut_copper_stairs.json new file mode 100644 index 00000000..3626f56d --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:exposed_cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper_stairs_from_exposed_copper_stonecutting.json b/data/minecraft/recipe/exposed_cut_copper_stairs_from_exposed_copper_stonecutting.json new file mode 100644 index 00000000..dbef92ba --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper_stairs_from_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting.json b/data/minecraft/recipe/exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..8a7c5245 --- /dev/null +++ b/data/minecraft/recipe/exposed_cut_copper_stairs_from_exposed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:exposed_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/eye_armor_trim_smithing_template.json b/data/minecraft/recipe/eye_armor_trim_smithing_template.json new file mode 100644 index 00000000..79ab628a --- /dev/null +++ b/data/minecraft/recipe/eye_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:end_stone" + }, + "S": { + "item": "minecraft:eye_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:eye_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/eye_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/eye_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..0358a6cd --- /dev/null +++ b/data/minecraft/recipe/eye_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:eye_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/fermented_spider_eye.json b/data/minecraft/recipe/fermented_spider_eye.json new file mode 100644 index 00000000..52bbb138 --- /dev/null +++ b/data/minecraft/recipe/fermented_spider_eye.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:spider_eye" + }, + { + "item": "minecraft:brown_mushroom" + }, + { + "item": "minecraft:sugar" + } + ], + "result": { + "count": 1, + "id": "minecraft:fermented_spider_eye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/fire_charge.json b/data/minecraft/recipe/fire_charge.json new file mode 100644 index 00000000..bcf2bcf3 --- /dev/null +++ b/data/minecraft/recipe/fire_charge.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:gunpowder" + }, + { + "item": "minecraft:blaze_powder" + }, + [ + { + "item": "minecraft:coal" + }, + { + "item": "minecraft:charcoal" + } + ] + ], + "result": { + "count": 3, + "id": "minecraft:fire_charge" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/firework_rocket.json b/data/minecraft/recipe/firework_rocket.json new file mode 100644 index 00000000..614689fe --- /dev/null +++ b/data/minecraft/recipe/firework_rocket.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_firework_rocket", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/firework_rocket_simple.json b/data/minecraft/recipe/firework_rocket_simple.json new file mode 100644 index 00000000..0374704a --- /dev/null +++ b/data/minecraft/recipe/firework_rocket_simple.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:gunpowder" + }, + { + "item": "minecraft:paper" + } + ], + "result": { + "count": 3, + "id": "minecraft:firework_rocket" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/firework_star.json b/data/minecraft/recipe/firework_star.json new file mode 100644 index 00000000..8a2b21e2 --- /dev/null +++ b/data/minecraft/recipe/firework_star.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_firework_star", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/firework_star_fade.json b/data/minecraft/recipe/firework_star_fade.json new file mode 100644 index 00000000..9bc75c33 --- /dev/null +++ b/data/minecraft/recipe/firework_star_fade.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_firework_star_fade", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/fishing_rod.json b/data/minecraft/recipe/fishing_rod.json new file mode 100644 index 00000000..7cdb02c7 --- /dev/null +++ b/data/minecraft/recipe/fishing_rod.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:string" + } + }, + "pattern": [ + " #", + " #X", + "# X" + ], + "result": { + "count": 1, + "id": "minecraft:fishing_rod" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/fletching_table.json b/data/minecraft/recipe/fletching_table.json new file mode 100644 index 00000000..bbfb856a --- /dev/null +++ b/data/minecraft/recipe/fletching_table.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "@": { + "item": "minecraft:flint" + } + }, + "pattern": [ + "@@", + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:fletching_table" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/flint_and_steel.json b/data/minecraft/recipe/flint_and_steel.json new file mode 100644 index 00000000..55001252 --- /dev/null +++ b/data/minecraft/recipe/flint_and_steel.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "equipment", + "ingredients": [ + { + "item": "minecraft:iron_ingot" + }, + { + "item": "minecraft:flint" + } + ], + "result": { + "count": 1, + "id": "minecraft:flint_and_steel" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/flow_armor_trim_smithing_template.json b/data/minecraft/recipe/flow_armor_trim_smithing_template.json new file mode 100644 index 00000000..6295e847 --- /dev/null +++ b/data/minecraft/recipe/flow_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:breeze_rod" + }, + "S": { + "item": "minecraft:flow_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:flow_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/flow_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/flow_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..acbdc95e --- /dev/null +++ b/data/minecraft/recipe/flow_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:flow_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/flower_banner_pattern.json b/data/minecraft/recipe/flower_banner_pattern.json new file mode 100644 index 00000000..be72848a --- /dev/null +++ b/data/minecraft/recipe/flower_banner_pattern.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:paper" + }, + { + "item": "minecraft:oxeye_daisy" + } + ], + "result": { + "count": 1, + "id": "minecraft:flower_banner_pattern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/flower_pot.json b/data/minecraft/recipe/flower_pot.json new file mode 100644 index 00000000..70ea1292 --- /dev/null +++ b/data/minecraft/recipe/flower_pot.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:brick" + } + }, + "pattern": [ + "# #", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:flower_pot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/furnace.json b/data/minecraft/recipe/furnace.json new file mode 100644 index 00000000..64c766d5 --- /dev/null +++ b/data/minecraft/recipe/furnace.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:stone_crafting_materials" + } + }, + "pattern": [ + "###", + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:furnace" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/furnace_minecart.json b/data/minecraft/recipe/furnace_minecart.json new file mode 100644 index 00000000..2f5f2feb --- /dev/null +++ b/data/minecraft/recipe/furnace_minecart.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:furnace" + }, + { + "item": "minecraft:minecart" + } + ], + "result": { + "count": 1, + "id": "minecraft:furnace_minecart" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/glass.json b/data/minecraft/recipe/glass.json new file mode 100644 index 00000000..da3ffa4c --- /dev/null +++ b/data/minecraft/recipe/glass.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "tag": "minecraft:smelts_to_glass" + }, + "result": { + "id": "minecraft:glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/glass_bottle.json b/data/minecraft/recipe/glass_bottle.json new file mode 100644 index 00000000..e13b0698 --- /dev/null +++ b/data/minecraft/recipe/glass_bottle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:glass" + } + }, + "pattern": [ + "# #", + " # " + ], + "result": { + "count": 3, + "id": "minecraft:glass_bottle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/glass_pane.json b/data/minecraft/recipe/glass_pane.json new file mode 100644 index 00000000..1ed154bd --- /dev/null +++ b/data/minecraft/recipe/glass_pane.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/glistering_melon_slice.json b/data/minecraft/recipe/glistering_melon_slice.json new file mode 100644 index 00000000..6834e757 --- /dev/null +++ b/data/minecraft/recipe/glistering_melon_slice.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:gold_nugget" + }, + "X": { + "item": "minecraft:melon_slice" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:glistering_melon_slice" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/glow_item_frame.json b/data/minecraft/recipe/glow_item_frame.json new file mode 100644 index 00000000..de684759 --- /dev/null +++ b/data/minecraft/recipe/glow_item_frame.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:item_frame" + }, + { + "item": "minecraft:glow_ink_sac" + } + ], + "result": { + "count": 1, + "id": "minecraft:glow_item_frame" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/glowstone.json b/data/minecraft/recipe/glowstone.json new file mode 100644 index 00000000..46069cd8 --- /dev/null +++ b/data/minecraft/recipe/glowstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:glowstone_dust" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:glowstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_block.json b/data/minecraft/recipe/gold_block.json new file mode 100644 index 00000000..5de5ef16 --- /dev/null +++ b/data/minecraft/recipe/gold_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:gold_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_blasting_deepslate_gold_ore.json b/data/minecraft/recipe/gold_ingot_from_blasting_deepslate_gold_ore.json new file mode 100644 index 00000000..649c8c3a --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_blasting_deepslate_gold_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:deepslate_gold_ore" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_blasting_gold_ore.json b/data/minecraft/recipe/gold_ingot_from_blasting_gold_ore.json new file mode 100644 index 00000000..d2300b66 --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_blasting_gold_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:gold_ore" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_blasting_nether_gold_ore.json b/data/minecraft/recipe/gold_ingot_from_blasting_nether_gold_ore.json new file mode 100644 index 00000000..8175c7e2 --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_blasting_nether_gold_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:nether_gold_ore" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_blasting_raw_gold.json b/data/minecraft/recipe/gold_ingot_from_blasting_raw_gold.json new file mode 100644 index 00000000..35d02d82 --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_blasting_raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:raw_gold" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_gold_block.json b/data/minecraft/recipe/gold_ingot_from_gold_block.json new file mode 100644 index 00000000..46a7af5d --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_gold_block.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "gold_ingot", + "ingredients": [ + { + "item": "minecraft:gold_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_nuggets.json b/data/minecraft/recipe/gold_ingot_from_nuggets.json new file mode 100644 index 00000000..7a144c31 --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_nuggets.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "gold_ingot", + "key": { + "#": { + "item": "minecraft:gold_nugget" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_smelting_deepslate_gold_ore.json b/data/minecraft/recipe/gold_ingot_from_smelting_deepslate_gold_ore.json new file mode 100644 index 00000000..06c91f70 --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_smelting_deepslate_gold_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:deepslate_gold_ore" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_smelting_gold_ore.json b/data/minecraft/recipe/gold_ingot_from_smelting_gold_ore.json new file mode 100644 index 00000000..21ec609c --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_smelting_gold_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:gold_ore" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_smelting_nether_gold_ore.json b/data/minecraft/recipe/gold_ingot_from_smelting_nether_gold_ore.json new file mode 100644 index 00000000..e0d84cdc --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_smelting_nether_gold_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:nether_gold_ore" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_ingot_from_smelting_raw_gold.json b/data/minecraft/recipe/gold_ingot_from_smelting_raw_gold.json new file mode 100644 index 00000000..efa4057a --- /dev/null +++ b/data/minecraft/recipe/gold_ingot_from_smelting_raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "group": "gold_ingot", + "ingredient": { + "item": "minecraft:raw_gold" + }, + "result": { + "id": "minecraft:gold_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_nugget.json b/data/minecraft/recipe/gold_nugget.json new file mode 100644 index 00000000..88249012 --- /dev/null +++ b/data/minecraft/recipe/gold_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:gold_ingot" + } + ], + "result": { + "count": 9, + "id": "minecraft:gold_nugget" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_nugget_from_blasting.json b/data/minecraft/recipe/gold_nugget_from_blasting.json new file mode 100644 index 00000000..32ee594e --- /dev/null +++ b/data/minecraft/recipe/gold_nugget_from_blasting.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.1, + "ingredient": [ + { + "item": "minecraft:golden_pickaxe" + }, + { + "item": "minecraft:golden_shovel" + }, + { + "item": "minecraft:golden_axe" + }, + { + "item": "minecraft:golden_hoe" + }, + { + "item": "minecraft:golden_sword" + }, + { + "item": "minecraft:golden_helmet" + }, + { + "item": "minecraft:golden_chestplate" + }, + { + "item": "minecraft:golden_leggings" + }, + { + "item": "minecraft:golden_boots" + }, + { + "item": "minecraft:golden_horse_armor" + } + ], + "result": { + "id": "minecraft:gold_nugget" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gold_nugget_from_smelting.json b/data/minecraft/recipe/gold_nugget_from_smelting.json new file mode 100644 index 00000000..7a9efdef --- /dev/null +++ b/data/minecraft/recipe/gold_nugget_from_smelting.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "ingredient": [ + { + "item": "minecraft:golden_pickaxe" + }, + { + "item": "minecraft:golden_shovel" + }, + { + "item": "minecraft:golden_axe" + }, + { + "item": "minecraft:golden_hoe" + }, + { + "item": "minecraft:golden_sword" + }, + { + "item": "minecraft:golden_helmet" + }, + { + "item": "minecraft:golden_chestplate" + }, + { + "item": "minecraft:golden_leggings" + }, + { + "item": "minecraft:golden_boots" + }, + { + "item": "minecraft:golden_horse_armor" + } + ], + "result": { + "id": "minecraft:gold_nugget" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_apple.json b/data/minecraft/recipe/golden_apple.json new file mode 100644 index 00000000..e391be59 --- /dev/null +++ b/data/minecraft/recipe/golden_apple.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:gold_ingot" + }, + "X": { + "item": "minecraft:apple" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:golden_apple" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_axe.json b/data/minecraft/recipe/golden_axe.json new file mode 100644 index 00000000..a2d569c4 --- /dev/null +++ b/data/minecraft/recipe/golden_axe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "XX", + "X#", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:golden_axe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_boots.json b/data/minecraft/recipe/golden_boots.json new file mode 100644 index 00000000..0ef11308 --- /dev/null +++ b/data/minecraft/recipe/golden_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:golden_boots" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_carrot.json b/data/minecraft/recipe/golden_carrot.json new file mode 100644 index 00000000..553a5c63 --- /dev/null +++ b/data/minecraft/recipe/golden_carrot.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:gold_nugget" + }, + "X": { + "item": "minecraft:carrot" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:golden_carrot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_chestplate.json b/data/minecraft/recipe/golden_chestplate.json new file mode 100644 index 00000000..9a4d4c80 --- /dev/null +++ b/data/minecraft/recipe/golden_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "X X", + "XXX", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:golden_chestplate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_helmet.json b/data/minecraft/recipe/golden_helmet.json new file mode 100644 index 00000000..7fa84a9a --- /dev/null +++ b/data/minecraft/recipe/golden_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "XXX", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:golden_helmet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_hoe.json b/data/minecraft/recipe/golden_hoe.json new file mode 100644 index 00000000..2979c915 --- /dev/null +++ b/data/minecraft/recipe/golden_hoe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "XX", + " #", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:golden_hoe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_leggings.json b/data/minecraft/recipe/golden_leggings.json new file mode 100644 index 00000000..ccf22dcb --- /dev/null +++ b/data/minecraft/recipe/golden_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "XXX", + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:golden_leggings" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_pickaxe.json b/data/minecraft/recipe/golden_pickaxe.json new file mode 100644 index 00000000..998acc7d --- /dev/null +++ b/data/minecraft/recipe/golden_pickaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "XXX", + " # ", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:golden_pickaxe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_shovel.json b/data/minecraft/recipe/golden_shovel.json new file mode 100644 index 00000000..d386a8b7 --- /dev/null +++ b/data/minecraft/recipe/golden_shovel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "X", + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:golden_shovel" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/golden_sword.json b/data/minecraft/recipe/golden_sword.json new file mode 100644 index 00000000..837b89b7 --- /dev/null +++ b/data/minecraft/recipe/golden_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "X", + "X", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:golden_sword" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/granite.json b/data/minecraft/recipe/granite.json new file mode 100644 index 00000000..b65cf324 --- /dev/null +++ b/data/minecraft/recipe/granite.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:diorite" + }, + { + "item": "minecraft:quartz" + } + ], + "result": { + "count": 1, + "id": "minecraft:granite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/granite_slab.json b/data/minecraft/recipe/granite_slab.json new file mode 100644 index 00000000..e69d72a8 --- /dev/null +++ b/data/minecraft/recipe/granite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:granite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:granite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/granite_slab_from_granite_stonecutting.json b/data/minecraft/recipe/granite_slab_from_granite_stonecutting.json new file mode 100644 index 00000000..05ad0930 --- /dev/null +++ b/data/minecraft/recipe/granite_slab_from_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": { + "count": 2, + "id": "minecraft:granite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/granite_stairs.json b/data/minecraft/recipe/granite_stairs.json new file mode 100644 index 00000000..9eed8e99 --- /dev/null +++ b/data/minecraft/recipe/granite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:granite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:granite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/granite_stairs_from_granite_stonecutting.json b/data/minecraft/recipe/granite_stairs_from_granite_stonecutting.json new file mode 100644 index 00000000..29d520aa --- /dev/null +++ b/data/minecraft/recipe/granite_stairs_from_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": { + "count": 1, + "id": "minecraft:granite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/granite_wall.json b/data/minecraft/recipe/granite_wall.json new file mode 100644 index 00000000..f1cbff7a --- /dev/null +++ b/data/minecraft/recipe/granite_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:granite" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:granite_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/granite_wall_from_granite_stonecutting.json b/data/minecraft/recipe/granite_wall_from_granite_stonecutting.json new file mode 100644 index 00000000..8aa4af61 --- /dev/null +++ b/data/minecraft/recipe/granite_wall_from_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": { + "count": 1, + "id": "minecraft:granite_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_banner.json b/data/minecraft/recipe/gray_banner.json new file mode 100644 index 00000000..af97a4de --- /dev/null +++ b/data/minecraft/recipe/gray_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:gray_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:gray_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_bed.json b/data/minecraft/recipe/gray_bed.json new file mode 100644 index 00000000..fa9bb5a5 --- /dev/null +++ b/data/minecraft/recipe/gray_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:gray_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:gray_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_candle.json b/data/minecraft/recipe/gray_candle.json new file mode 100644 index 00000000..249a3c88 --- /dev/null +++ b/data/minecraft/recipe/gray_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:gray_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:gray_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_carpet.json b/data/minecraft/recipe/gray_carpet.json new file mode 100644 index 00000000..b305806a --- /dev/null +++ b/data/minecraft/recipe/gray_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:gray_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:gray_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_concrete_powder.json b/data/minecraft/recipe/gray_concrete_powder.json new file mode 100644 index 00000000..cb3b0cf9 --- /dev/null +++ b/data/minecraft/recipe/gray_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:gray_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:gray_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_dye.json b/data/minecraft/recipe/gray_dye.json new file mode 100644 index 00000000..d61ff807 --- /dev/null +++ b/data/minecraft/recipe/gray_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:black_dye" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:gray_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_glazed_terracotta.json b/data/minecraft/recipe/gray_glazed_terracotta.json new file mode 100644 index 00000000..92a4e96d --- /dev/null +++ b/data/minecraft/recipe/gray_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:gray_terracotta" + }, + "result": { + "id": "minecraft:gray_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_stained_glass.json b/data/minecraft/recipe/gray_stained_glass.json new file mode 100644 index 00000000..77881e3c --- /dev/null +++ b/data/minecraft/recipe/gray_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:gray_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:gray_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_stained_glass_pane.json b/data/minecraft/recipe/gray_stained_glass_pane.json new file mode 100644 index 00000000..9c9e9b40 --- /dev/null +++ b/data/minecraft/recipe/gray_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:gray_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:gray_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/gray_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..f811b93a --- /dev/null +++ b/data/minecraft/recipe/gray_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:gray_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:gray_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/gray_terracotta.json b/data/minecraft/recipe/gray_terracotta.json new file mode 100644 index 00000000..6db6f6fb --- /dev/null +++ b/data/minecraft/recipe/gray_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:gray_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:gray_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_banner.json b/data/minecraft/recipe/green_banner.json new file mode 100644 index 00000000..d18c734d --- /dev/null +++ b/data/minecraft/recipe/green_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:green_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:green_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_bed.json b/data/minecraft/recipe/green_bed.json new file mode 100644 index 00000000..946f86c2 --- /dev/null +++ b/data/minecraft/recipe/green_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:green_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:green_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_candle.json b/data/minecraft/recipe/green_candle.json new file mode 100644 index 00000000..fe0e6c61 --- /dev/null +++ b/data/minecraft/recipe/green_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:green_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:green_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_carpet.json b/data/minecraft/recipe/green_carpet.json new file mode 100644 index 00000000..cb094fe1 --- /dev/null +++ b/data/minecraft/recipe/green_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:green_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:green_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_concrete_powder.json b/data/minecraft/recipe/green_concrete_powder.json new file mode 100644 index 00000000..f314e2b5 --- /dev/null +++ b/data/minecraft/recipe/green_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:green_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:green_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_dye.json b/data/minecraft/recipe/green_dye.json new file mode 100644 index 00000000..645248d2 --- /dev/null +++ b/data/minecraft/recipe/green_dye.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "ingredient": { + "item": "minecraft:cactus" + }, + "result": { + "id": "minecraft:green_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_glazed_terracotta.json b/data/minecraft/recipe/green_glazed_terracotta.json new file mode 100644 index 00000000..ad81e60e --- /dev/null +++ b/data/minecraft/recipe/green_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:green_terracotta" + }, + "result": { + "id": "minecraft:green_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_stained_glass.json b/data/minecraft/recipe/green_stained_glass.json new file mode 100644 index 00000000..2ee5b6b1 --- /dev/null +++ b/data/minecraft/recipe/green_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:green_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:green_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_stained_glass_pane.json b/data/minecraft/recipe/green_stained_glass_pane.json new file mode 100644 index 00000000..774bfc22 --- /dev/null +++ b/data/minecraft/recipe/green_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:green_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:green_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/green_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..89189e3c --- /dev/null +++ b/data/minecraft/recipe/green_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:green_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:green_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/green_terracotta.json b/data/minecraft/recipe/green_terracotta.json new file mode 100644 index 00000000..5149f6c2 --- /dev/null +++ b/data/minecraft/recipe/green_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:green_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:green_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/grindstone.json b/data/minecraft/recipe/grindstone.json new file mode 100644 index 00000000..5f7c4dd7 --- /dev/null +++ b/data/minecraft/recipe/grindstone.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "-": { + "item": "minecraft:stone_slab" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "I-I", + "# #" + ], + "result": { + "count": 1, + "id": "minecraft:grindstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/hay_block.json b/data/minecraft/recipe/hay_block.json new file mode 100644 index 00000000..6b00af3e --- /dev/null +++ b/data/minecraft/recipe/hay_block.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + }, + { + "item": "minecraft:wheat" + } + ], + "result": { + "count": 1, + "id": "minecraft:hay_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/heavy_weighted_pressure_plate.json b/data/minecraft/recipe/heavy_weighted_pressure_plate.json new file mode 100644 index 00000000..aef3960a --- /dev/null +++ b/data/minecraft/recipe/heavy_weighted_pressure_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:heavy_weighted_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/honey_block.json b/data/minecraft/recipe/honey_block.json new file mode 100644 index 00000000..2d4874f1 --- /dev/null +++ b/data/minecraft/recipe/honey_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:honey_bottle" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:honey_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/honey_bottle.json b/data/minecraft/recipe/honey_bottle.json new file mode 100644 index 00000000..928f2910 --- /dev/null +++ b/data/minecraft/recipe/honey_bottle.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:honey_block" + }, + { + "item": "minecraft:glass_bottle" + }, + { + "item": "minecraft:glass_bottle" + }, + { + "item": "minecraft:glass_bottle" + }, + { + "item": "minecraft:glass_bottle" + } + ], + "result": { + "count": 4, + "id": "minecraft:honey_bottle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/honeycomb_block.json b/data/minecraft/recipe/honeycomb_block.json new file mode 100644 index 00000000..22382d06 --- /dev/null +++ b/data/minecraft/recipe/honeycomb_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:honeycomb" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:honeycomb_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/hopper.json b/data/minecraft/recipe/hopper.json new file mode 100644 index 00000000..8fee6063 --- /dev/null +++ b/data/minecraft/recipe/hopper.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "C": { + "item": "minecraft:chest" + }, + "I": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "I I", + "ICI", + " I " + ], + "result": { + "count": 1, + "id": "minecraft:hopper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/hopper_minecart.json b/data/minecraft/recipe/hopper_minecart.json new file mode 100644 index 00000000..4fff8f93 --- /dev/null +++ b/data/minecraft/recipe/hopper_minecart.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:hopper" + }, + { + "item": "minecraft:minecart" + } + ], + "result": { + "count": 1, + "id": "minecraft:hopper_minecart" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/host_armor_trim_smithing_template.json b/data/minecraft/recipe/host_armor_trim_smithing_template.json new file mode 100644 index 00000000..a1f371c4 --- /dev/null +++ b/data/minecraft/recipe/host_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:terracotta" + }, + "S": { + "item": "minecraft:host_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:host_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/host_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/host_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..0e6e1816 --- /dev/null +++ b/data/minecraft/recipe/host_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:host_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_axe.json b/data/minecraft/recipe/iron_axe.json new file mode 100644 index 00000000..10e03a02 --- /dev/null +++ b/data/minecraft/recipe/iron_axe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "XX", + "X#", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:iron_axe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_bars.json b/data/minecraft/recipe/iron_bars.json new file mode 100644 index 00000000..1d0be1f9 --- /dev/null +++ b/data/minecraft/recipe/iron_bars.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:iron_bars" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_block.json b/data/minecraft/recipe/iron_block.json new file mode 100644 index 00000000..576df075 --- /dev/null +++ b/data/minecraft/recipe/iron_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:iron_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_boots.json b/data/minecraft/recipe/iron_boots.json new file mode 100644 index 00000000..46262248 --- /dev/null +++ b/data/minecraft/recipe/iron_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:iron_boots" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_chestplate.json b/data/minecraft/recipe/iron_chestplate.json new file mode 100644 index 00000000..66295050 --- /dev/null +++ b/data/minecraft/recipe/iron_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "X X", + "XXX", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:iron_chestplate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_door.json b/data/minecraft/recipe/iron_door.json new file mode 100644 index 00000000..b2740681 --- /dev/null +++ b/data/minecraft/recipe/iron_door.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:iron_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_helmet.json b/data/minecraft/recipe/iron_helmet.json new file mode 100644 index 00000000..b4ae4872 --- /dev/null +++ b/data/minecraft/recipe/iron_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "XXX", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:iron_helmet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_hoe.json b/data/minecraft/recipe/iron_hoe.json new file mode 100644 index 00000000..3e1a829e --- /dev/null +++ b/data/minecraft/recipe/iron_hoe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "XX", + " #", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:iron_hoe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_blasting_deepslate_iron_ore.json b/data/minecraft/recipe/iron_ingot_from_blasting_deepslate_iron_ore.json new file mode 100644 index 00000000..90516673 --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_blasting_deepslate_iron_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.7, + "group": "iron_ingot", + "ingredient": { + "item": "minecraft:deepslate_iron_ore" + }, + "result": { + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_blasting_iron_ore.json b/data/minecraft/recipe/iron_ingot_from_blasting_iron_ore.json new file mode 100644 index 00000000..6fd59d78 --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_blasting_iron_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.7, + "group": "iron_ingot", + "ingredient": { + "item": "minecraft:iron_ore" + }, + "result": { + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_blasting_raw_iron.json b/data/minecraft/recipe/iron_ingot_from_blasting_raw_iron.json new file mode 100644 index 00000000..7e30b960 --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_blasting_raw_iron.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.7, + "group": "iron_ingot", + "ingredient": { + "item": "minecraft:raw_iron" + }, + "result": { + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_iron_block.json b/data/minecraft/recipe/iron_ingot_from_iron_block.json new file mode 100644 index 00000000..41969df9 --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_iron_block.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "iron_ingot", + "ingredients": [ + { + "item": "minecraft:iron_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_nuggets.json b/data/minecraft/recipe/iron_ingot_from_nuggets.json new file mode 100644 index 00000000..2ffbc7d3 --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_nuggets.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "iron_ingot", + "key": { + "#": { + "item": "minecraft:iron_nugget" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_smelting_deepslate_iron_ore.json b/data/minecraft/recipe/iron_ingot_from_smelting_deepslate_iron_ore.json new file mode 100644 index 00000000..4fbd9f4e --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_smelting_deepslate_iron_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.7, + "group": "iron_ingot", + "ingredient": { + "item": "minecraft:deepslate_iron_ore" + }, + "result": { + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_smelting_iron_ore.json b/data/minecraft/recipe/iron_ingot_from_smelting_iron_ore.json new file mode 100644 index 00000000..5fd408c0 --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_smelting_iron_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.7, + "group": "iron_ingot", + "ingredient": { + "item": "minecraft:iron_ore" + }, + "result": { + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_ingot_from_smelting_raw_iron.json b/data/minecraft/recipe/iron_ingot_from_smelting_raw_iron.json new file mode 100644 index 00000000..294b245c --- /dev/null +++ b/data/minecraft/recipe/iron_ingot_from_smelting_raw_iron.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.7, + "group": "iron_ingot", + "ingredient": { + "item": "minecraft:raw_iron" + }, + "result": { + "id": "minecraft:iron_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_leggings.json b/data/minecraft/recipe/iron_leggings.json new file mode 100644 index 00000000..0b248191 --- /dev/null +++ b/data/minecraft/recipe/iron_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "XXX", + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:iron_leggings" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_nugget.json b/data/minecraft/recipe/iron_nugget.json new file mode 100644 index 00000000..d2077648 --- /dev/null +++ b/data/minecraft/recipe/iron_nugget.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:iron_ingot" + } + ], + "result": { + "count": 9, + "id": "minecraft:iron_nugget" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_nugget_from_blasting.json b/data/minecraft/recipe/iron_nugget_from_blasting.json new file mode 100644 index 00000000..6226b652 --- /dev/null +++ b/data/minecraft/recipe/iron_nugget_from_blasting.json @@ -0,0 +1,53 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.1, + "ingredient": [ + { + "item": "minecraft:iron_pickaxe" + }, + { + "item": "minecraft:iron_shovel" + }, + { + "item": "minecraft:iron_axe" + }, + { + "item": "minecraft:iron_hoe" + }, + { + "item": "minecraft:iron_sword" + }, + { + "item": "minecraft:iron_helmet" + }, + { + "item": "minecraft:iron_chestplate" + }, + { + "item": "minecraft:iron_leggings" + }, + { + "item": "minecraft:iron_boots" + }, + { + "item": "minecraft:iron_horse_armor" + }, + { + "item": "minecraft:chainmail_helmet" + }, + { + "item": "minecraft:chainmail_chestplate" + }, + { + "item": "minecraft:chainmail_leggings" + }, + { + "item": "minecraft:chainmail_boots" + } + ], + "result": { + "id": "minecraft:iron_nugget" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_nugget_from_smelting.json b/data/minecraft/recipe/iron_nugget_from_smelting.json new file mode 100644 index 00000000..6e2e3b0b --- /dev/null +++ b/data/minecraft/recipe/iron_nugget_from_smelting.json @@ -0,0 +1,53 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "ingredient": [ + { + "item": "minecraft:iron_pickaxe" + }, + { + "item": "minecraft:iron_shovel" + }, + { + "item": "minecraft:iron_axe" + }, + { + "item": "minecraft:iron_hoe" + }, + { + "item": "minecraft:iron_sword" + }, + { + "item": "minecraft:iron_helmet" + }, + { + "item": "minecraft:iron_chestplate" + }, + { + "item": "minecraft:iron_leggings" + }, + { + "item": "minecraft:iron_boots" + }, + { + "item": "minecraft:iron_horse_armor" + }, + { + "item": "minecraft:chainmail_helmet" + }, + { + "item": "minecraft:chainmail_chestplate" + }, + { + "item": "minecraft:chainmail_leggings" + }, + { + "item": "minecraft:chainmail_boots" + } + ], + "result": { + "id": "minecraft:iron_nugget" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_pickaxe.json b/data/minecraft/recipe/iron_pickaxe.json new file mode 100644 index 00000000..dc34f99a --- /dev/null +++ b/data/minecraft/recipe/iron_pickaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "XXX", + " # ", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:iron_pickaxe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_shovel.json b/data/minecraft/recipe/iron_shovel.json new file mode 100644 index 00000000..d9100ef3 --- /dev/null +++ b/data/minecraft/recipe/iron_shovel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "X", + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:iron_shovel" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_sword.json b/data/minecraft/recipe/iron_sword.json new file mode 100644 index 00000000..9525e0d8 --- /dev/null +++ b/data/minecraft/recipe/iron_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "X", + "X", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:iron_sword" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/iron_trapdoor.json b/data/minecraft/recipe/iron_trapdoor.json new file mode 100644 index 00000000..075241ba --- /dev/null +++ b/data/minecraft/recipe/iron_trapdoor.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:iron_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/item_frame.json b/data/minecraft/recipe/item_frame.json new file mode 100644 index 00000000..a98aacf8 --- /dev/null +++ b/data/minecraft/recipe/item_frame.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:leather" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:item_frame" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jack_o_lantern.json b/data/minecraft/recipe/jack_o_lantern.json new file mode 100644 index 00000000..e1a83be8 --- /dev/null +++ b/data/minecraft/recipe/jack_o_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "A": { + "item": "minecraft:carved_pumpkin" + }, + "B": { + "item": "minecraft:torch" + } + }, + "pattern": [ + "A", + "B" + ], + "result": { + "count": 1, + "id": "minecraft:jack_o_lantern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jukebox.json b/data/minecraft/recipe/jukebox.json new file mode 100644 index 00000000..e655b5e1 --- /dev/null +++ b/data/minecraft/recipe/jukebox.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "X": { + "item": "minecraft:diamond" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:jukebox" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_boat.json b/data/minecraft/recipe/jungle_boat.json new file mode 100644 index 00000000..e2511c89 --- /dev/null +++ b/data/minecraft/recipe/jungle_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:jungle_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_button.json b/data/minecraft/recipe/jungle_button.json new file mode 100644 index 00000000..d1d16acb --- /dev/null +++ b/data/minecraft/recipe/jungle_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:jungle_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:jungle_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_chest_boat.json b/data/minecraft/recipe/jungle_chest_boat.json new file mode 100644 index 00000000..df5ebea1 --- /dev/null +++ b/data/minecraft/recipe/jungle_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:jungle_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:jungle_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_door.json b/data/minecraft/recipe/jungle_door.json new file mode 100644 index 00000000..7e343e19 --- /dev/null +++ b/data/minecraft/recipe/jungle_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:jungle_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_fence.json b/data/minecraft/recipe/jungle_fence.json new file mode 100644 index 00000000..f4ed1231 --- /dev/null +++ b/data/minecraft/recipe/jungle_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:jungle_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_fence_gate.json b/data/minecraft/recipe/jungle_fence_gate.json new file mode 100644 index 00000000..4f91ccd9 --- /dev/null +++ b/data/minecraft/recipe/jungle_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:jungle_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_hanging_sign.json b/data/minecraft/recipe/jungle_hanging_sign.json new file mode 100644 index 00000000..d003664a --- /dev/null +++ b/data/minecraft/recipe/jungle_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_jungle_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:jungle_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_planks.json b/data/minecraft/recipe/jungle_planks.json new file mode 100644 index 00000000..67f1f919 --- /dev/null +++ b/data/minecraft/recipe/jungle_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:jungle_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:jungle_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_pressure_plate.json b/data/minecraft/recipe/jungle_pressure_plate.json new file mode 100644 index 00000000..e75ee512 --- /dev/null +++ b/data/minecraft/recipe/jungle_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:jungle_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_sign.json b/data/minecraft/recipe/jungle_sign.json new file mode 100644 index 00000000..cf8da545 --- /dev/null +++ b/data/minecraft/recipe/jungle_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:jungle_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:jungle_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_slab.json b/data/minecraft/recipe/jungle_slab.json new file mode 100644 index 00000000..d1f33536 --- /dev/null +++ b/data/minecraft/recipe/jungle_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:jungle_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_stairs.json b/data/minecraft/recipe/jungle_stairs.json new file mode 100644 index 00000000..53a7b3cf --- /dev/null +++ b/data/minecraft/recipe/jungle_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:jungle_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_trapdoor.json b/data/minecraft/recipe/jungle_trapdoor.json new file mode 100644 index 00000000..048194a3 --- /dev/null +++ b/data/minecraft/recipe/jungle_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:jungle_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:jungle_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/jungle_wood.json b/data/minecraft/recipe/jungle_wood.json new file mode 100644 index 00000000..ee41aca3 --- /dev/null +++ b/data/minecraft/recipe/jungle_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:jungle_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:jungle_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/ladder.json b/data/minecraft/recipe/ladder.json new file mode 100644 index 00000000..103c56cc --- /dev/null +++ b/data/minecraft/recipe/ladder.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "# #", + "###", + "# #" + ], + "result": { + "count": 3, + "id": "minecraft:ladder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lantern.json b/data/minecraft/recipe/lantern.json new file mode 100644 index 00000000..e4c39240 --- /dev/null +++ b/data/minecraft/recipe/lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:torch" + }, + "X": { + "item": "minecraft:iron_nugget" + } + }, + "pattern": [ + "XXX", + "X#X", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:lantern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lapis_block.json b/data/minecraft/recipe/lapis_block.json new file mode 100644 index 00000000..f31c939f --- /dev/null +++ b/data/minecraft/recipe/lapis_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:lapis_lazuli" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:lapis_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lapis_lazuli.json b/data/minecraft/recipe/lapis_lazuli.json new file mode 100644 index 00000000..55a30a11 --- /dev/null +++ b/data/minecraft/recipe/lapis_lazuli.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:lapis_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:lapis_lazuli" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lapis_lazuli_from_blasting_deepslate_lapis_ore.json b/data/minecraft/recipe/lapis_lazuli_from_blasting_deepslate_lapis_ore.json new file mode 100644 index 00000000..8697d73f --- /dev/null +++ b/data/minecraft/recipe/lapis_lazuli_from_blasting_deepslate_lapis_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.2, + "group": "lapis_lazuli", + "ingredient": { + "item": "minecraft:deepslate_lapis_ore" + }, + "result": { + "id": "minecraft:lapis_lazuli" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lapis_lazuli_from_blasting_lapis_ore.json b/data/minecraft/recipe/lapis_lazuli_from_blasting_lapis_ore.json new file mode 100644 index 00000000..1f244b48 --- /dev/null +++ b/data/minecraft/recipe/lapis_lazuli_from_blasting_lapis_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.2, + "group": "lapis_lazuli", + "ingredient": { + "item": "minecraft:lapis_ore" + }, + "result": { + "id": "minecraft:lapis_lazuli" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lapis_lazuli_from_smelting_deepslate_lapis_ore.json b/data/minecraft/recipe/lapis_lazuli_from_smelting_deepslate_lapis_ore.json new file mode 100644 index 00000000..af2bbe4e --- /dev/null +++ b/data/minecraft/recipe/lapis_lazuli_from_smelting_deepslate_lapis_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.2, + "group": "lapis_lazuli", + "ingredient": { + "item": "minecraft:deepslate_lapis_ore" + }, + "result": { + "id": "minecraft:lapis_lazuli" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lapis_lazuli_from_smelting_lapis_ore.json b/data/minecraft/recipe/lapis_lazuli_from_smelting_lapis_ore.json new file mode 100644 index 00000000..40102488 --- /dev/null +++ b/data/minecraft/recipe/lapis_lazuli_from_smelting_lapis_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.2, + "group": "lapis_lazuli", + "ingredient": { + "item": "minecraft:lapis_ore" + }, + "result": { + "id": "minecraft:lapis_lazuli" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lead.json b/data/minecraft/recipe/lead.json new file mode 100644 index 00000000..803e8b3c --- /dev/null +++ b/data/minecraft/recipe/lead.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "O": { + "item": "minecraft:slime_ball" + }, + "~": { + "item": "minecraft:string" + } + }, + "pattern": [ + "~~ ", + "~O ", + " ~" + ], + "result": { + "count": 2, + "id": "minecraft:lead" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/leather.json b/data/minecraft/recipe/leather.json new file mode 100644 index 00000000..2ebd711b --- /dev/null +++ b/data/minecraft/recipe/leather.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:rabbit_hide" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:leather" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/leather_boots.json b/data/minecraft/recipe/leather_boots.json new file mode 100644 index 00000000..8141c0bc --- /dev/null +++ b/data/minecraft/recipe/leather_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:leather" + } + }, + "pattern": [ + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:leather_boots" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/leather_chestplate.json b/data/minecraft/recipe/leather_chestplate.json new file mode 100644 index 00000000..a32f9ef1 --- /dev/null +++ b/data/minecraft/recipe/leather_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:leather" + } + }, + "pattern": [ + "X X", + "XXX", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:leather_chestplate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/leather_helmet.json b/data/minecraft/recipe/leather_helmet.json new file mode 100644 index 00000000..6295fe83 --- /dev/null +++ b/data/minecraft/recipe/leather_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:leather" + } + }, + "pattern": [ + "XXX", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:leather_helmet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/leather_horse_armor.json b/data/minecraft/recipe/leather_horse_armor.json new file mode 100644 index 00000000..cd82c8a0 --- /dev/null +++ b/data/minecraft/recipe/leather_horse_armor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "X": { + "item": "minecraft:leather" + } + }, + "pattern": [ + "X X", + "XXX", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:leather_horse_armor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/leather_leggings.json b/data/minecraft/recipe/leather_leggings.json new file mode 100644 index 00000000..550dd310 --- /dev/null +++ b/data/minecraft/recipe/leather_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:leather" + } + }, + "pattern": [ + "XXX", + "X X", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:leather_leggings" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lectern.json b/data/minecraft/recipe/lectern.json new file mode 100644 index 00000000..720c9a89 --- /dev/null +++ b/data/minecraft/recipe/lectern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:bookshelf" + }, + "S": { + "tag": "minecraft:wooden_slabs" + } + }, + "pattern": [ + "SSS", + " B ", + " S " + ], + "result": { + "count": 1, + "id": "minecraft:lectern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lever.json b/data/minecraft/recipe/lever.json new file mode 100644 index 00000000..d4250e9b --- /dev/null +++ b/data/minecraft/recipe/lever.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "X", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:lever" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_banner.json b/data/minecraft/recipe/light_blue_banner.json new file mode 100644 index 00000000..35f1f284 --- /dev/null +++ b/data/minecraft/recipe/light_blue_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:light_blue_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:light_blue_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_bed.json b/data/minecraft/recipe/light_blue_bed.json new file mode 100644 index 00000000..c82e0c03 --- /dev/null +++ b/data/minecraft/recipe/light_blue_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:light_blue_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:light_blue_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_candle.json b/data/minecraft/recipe/light_blue_candle.json new file mode 100644 index 00000000..fc6d5815 --- /dev/null +++ b/data/minecraft/recipe/light_blue_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:light_blue_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:light_blue_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_carpet.json b/data/minecraft/recipe/light_blue_carpet.json new file mode 100644 index 00000000..bd55bb14 --- /dev/null +++ b/data/minecraft/recipe/light_blue_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:light_blue_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:light_blue_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_concrete_powder.json b/data/minecraft/recipe/light_blue_concrete_powder.json new file mode 100644 index 00000000..21a2d119 --- /dev/null +++ b/data/minecraft/recipe/light_blue_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:light_blue_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:light_blue_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_dye_from_blue_orchid.json b/data/minecraft/recipe/light_blue_dye_from_blue_orchid.json new file mode 100644 index 00000000..b310c040 --- /dev/null +++ b/data/minecraft/recipe/light_blue_dye_from_blue_orchid.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "light_blue_dye", + "ingredients": [ + { + "item": "minecraft:blue_orchid" + } + ], + "result": { + "count": 1, + "id": "minecraft:light_blue_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_dye_from_blue_white_dye.json b/data/minecraft/recipe/light_blue_dye_from_blue_white_dye.json new file mode 100644 index 00000000..eb2e6a32 --- /dev/null +++ b/data/minecraft/recipe/light_blue_dye_from_blue_white_dye.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "light_blue_dye", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:light_blue_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_glazed_terracotta.json b/data/minecraft/recipe/light_blue_glazed_terracotta.json new file mode 100644 index 00000000..e3528c4c --- /dev/null +++ b/data/minecraft/recipe/light_blue_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:light_blue_terracotta" + }, + "result": { + "id": "minecraft:light_blue_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_stained_glass.json b/data/minecraft/recipe/light_blue_stained_glass.json new file mode 100644 index 00000000..437113c5 --- /dev/null +++ b/data/minecraft/recipe/light_blue_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:light_blue_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:light_blue_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_stained_glass_pane.json b/data/minecraft/recipe/light_blue_stained_glass_pane.json new file mode 100644 index 00000000..6644cfcb --- /dev/null +++ b/data/minecraft/recipe/light_blue_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:light_blue_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:light_blue_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/light_blue_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..c88b2fe1 --- /dev/null +++ b/data/minecraft/recipe/light_blue_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:light_blue_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:light_blue_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_blue_terracotta.json b/data/minecraft/recipe/light_blue_terracotta.json new file mode 100644 index 00000000..8dd86951 --- /dev/null +++ b/data/minecraft/recipe/light_blue_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:light_blue_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:light_blue_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_banner.json b/data/minecraft/recipe/light_gray_banner.json new file mode 100644 index 00000000..0797185f --- /dev/null +++ b/data/minecraft/recipe/light_gray_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:light_gray_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_bed.json b/data/minecraft/recipe/light_gray_bed.json new file mode 100644 index 00000000..5cd91070 --- /dev/null +++ b/data/minecraft/recipe/light_gray_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:light_gray_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_candle.json b/data/minecraft/recipe/light_gray_candle.json new file mode 100644 index 00000000..60750af9 --- /dev/null +++ b/data/minecraft/recipe/light_gray_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:light_gray_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_carpet.json b/data/minecraft/recipe/light_gray_carpet.json new file mode 100644 index 00000000..41e26b4c --- /dev/null +++ b/data/minecraft/recipe/light_gray_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:light_gray_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:light_gray_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_concrete_powder.json b/data/minecraft/recipe/light_gray_concrete_powder.json new file mode 100644 index 00000000..05c63572 --- /dev/null +++ b/data/minecraft/recipe/light_gray_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:light_gray_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:light_gray_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_dye_from_azure_bluet.json b/data/minecraft/recipe/light_gray_dye_from_azure_bluet.json new file mode 100644 index 00000000..4bb0f1fb --- /dev/null +++ b/data/minecraft/recipe/light_gray_dye_from_azure_bluet.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "light_gray_dye", + "ingredients": [ + { + "item": "minecraft:azure_bluet" + } + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_dye_from_black_white_dye.json b/data/minecraft/recipe/light_gray_dye_from_black_white_dye.json new file mode 100644 index 00000000..55df87c6 --- /dev/null +++ b/data/minecraft/recipe/light_gray_dye_from_black_white_dye.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "light_gray_dye", + "ingredients": [ + { + "item": "minecraft:black_dye" + }, + { + "item": "minecraft:white_dye" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 3, + "id": "minecraft:light_gray_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_dye_from_gray_white_dye.json b/data/minecraft/recipe/light_gray_dye_from_gray_white_dye.json new file mode 100644 index 00000000..69a30475 --- /dev/null +++ b/data/minecraft/recipe/light_gray_dye_from_gray_white_dye.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "light_gray_dye", + "ingredients": [ + { + "item": "minecraft:gray_dye" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:light_gray_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_dye_from_oxeye_daisy.json b/data/minecraft/recipe/light_gray_dye_from_oxeye_daisy.json new file mode 100644 index 00000000..34f3b4fe --- /dev/null +++ b/data/minecraft/recipe/light_gray_dye_from_oxeye_daisy.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "light_gray_dye", + "ingredients": [ + { + "item": "minecraft:oxeye_daisy" + } + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_dye_from_white_tulip.json b/data/minecraft/recipe/light_gray_dye_from_white_tulip.json new file mode 100644 index 00000000..8d5cbd94 --- /dev/null +++ b/data/minecraft/recipe/light_gray_dye_from_white_tulip.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "light_gray_dye", + "ingredients": [ + { + "item": "minecraft:white_tulip" + } + ], + "result": { + "count": 1, + "id": "minecraft:light_gray_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_glazed_terracotta.json b/data/minecraft/recipe/light_gray_glazed_terracotta.json new file mode 100644 index 00000000..01b9bfbd --- /dev/null +++ b/data/minecraft/recipe/light_gray_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:light_gray_terracotta" + }, + "result": { + "id": "minecraft:light_gray_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_stained_glass.json b/data/minecraft/recipe/light_gray_stained_glass.json new file mode 100644 index 00000000..e43a5eb3 --- /dev/null +++ b/data/minecraft/recipe/light_gray_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:light_gray_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:light_gray_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_stained_glass_pane.json b/data/minecraft/recipe/light_gray_stained_glass_pane.json new file mode 100644 index 00000000..e25f68f8 --- /dev/null +++ b/data/minecraft/recipe/light_gray_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:light_gray_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:light_gray_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/light_gray_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..21e1fc19 --- /dev/null +++ b/data/minecraft/recipe/light_gray_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:light_gray_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:light_gray_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_gray_terracotta.json b/data/minecraft/recipe/light_gray_terracotta.json new file mode 100644 index 00000000..72a9c906 --- /dev/null +++ b/data/minecraft/recipe/light_gray_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:light_gray_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:light_gray_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/light_weighted_pressure_plate.json b/data/minecraft/recipe/light_weighted_pressure_plate.json new file mode 100644 index 00000000..eb602d1a --- /dev/null +++ b/data/minecraft/recipe/light_weighted_pressure_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:light_weighted_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lightning_rod.json b/data/minecraft/recipe/lightning_rod.json new file mode 100644 index 00000000..4d362327 --- /dev/null +++ b/data/minecraft/recipe/lightning_rod.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + "#", + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:lightning_rod" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_banner.json b/data/minecraft/recipe/lime_banner.json new file mode 100644 index 00000000..374aa2ba --- /dev/null +++ b/data/minecraft/recipe/lime_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:lime_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:lime_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_bed.json b/data/minecraft/recipe/lime_bed.json new file mode 100644 index 00000000..5ca298d8 --- /dev/null +++ b/data/minecraft/recipe/lime_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:lime_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:lime_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_candle.json b/data/minecraft/recipe/lime_candle.json new file mode 100644 index 00000000..bc843899 --- /dev/null +++ b/data/minecraft/recipe/lime_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:lime_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:lime_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_carpet.json b/data/minecraft/recipe/lime_carpet.json new file mode 100644 index 00000000..04e1f9ad --- /dev/null +++ b/data/minecraft/recipe/lime_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:lime_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:lime_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_concrete_powder.json b/data/minecraft/recipe/lime_concrete_powder.json new file mode 100644 index 00000000..50789d54 --- /dev/null +++ b/data/minecraft/recipe/lime_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:lime_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:lime_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_dye.json b/data/minecraft/recipe/lime_dye.json new file mode 100644 index 00000000..103319d0 --- /dev/null +++ b/data/minecraft/recipe/lime_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:green_dye" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:lime_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_dye_from_smelting.json b/data/minecraft/recipe/lime_dye_from_smelting.json new file mode 100644 index 00000000..58fd175a --- /dev/null +++ b/data/minecraft/recipe/lime_dye_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:sea_pickle" + }, + "result": { + "id": "minecraft:lime_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_glazed_terracotta.json b/data/minecraft/recipe/lime_glazed_terracotta.json new file mode 100644 index 00000000..3274152c --- /dev/null +++ b/data/minecraft/recipe/lime_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:lime_terracotta" + }, + "result": { + "id": "minecraft:lime_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_stained_glass.json b/data/minecraft/recipe/lime_stained_glass.json new file mode 100644 index 00000000..0de0b387 --- /dev/null +++ b/data/minecraft/recipe/lime_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:lime_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:lime_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_stained_glass_pane.json b/data/minecraft/recipe/lime_stained_glass_pane.json new file mode 100644 index 00000000..55e3872d --- /dev/null +++ b/data/minecraft/recipe/lime_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:lime_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:lime_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/lime_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..a53b73d8 --- /dev/null +++ b/data/minecraft/recipe/lime_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:lime_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:lime_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lime_terracotta.json b/data/minecraft/recipe/lime_terracotta.json new file mode 100644 index 00000000..62941cdd --- /dev/null +++ b/data/minecraft/recipe/lime_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:lime_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:lime_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/lodestone.json b/data/minecraft/recipe/lodestone.json new file mode 100644 index 00000000..6709adc5 --- /dev/null +++ b/data/minecraft/recipe/lodestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:netherite_ingot" + }, + "S": { + "item": "minecraft:chiseled_stone_bricks" + } + }, + "pattern": [ + "SSS", + "S#S", + "SSS" + ], + "result": { + "count": 1, + "id": "minecraft:lodestone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/loom.json b/data/minecraft/recipe/loom.json new file mode 100644 index 00000000..6bc34305 --- /dev/null +++ b/data/minecraft/recipe/loom.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "@": { + "item": "minecraft:string" + } + }, + "pattern": [ + "@@", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:loom" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mace.json b/data/minecraft/recipe/mace.json new file mode 100644 index 00000000..32e8e6dd --- /dev/null +++ b/data/minecraft/recipe/mace.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:heavy_core" + }, + "I": { + "item": "minecraft:breeze_rod" + } + }, + "pattern": [ + " # ", + " I " + ], + "result": { + "count": 1, + "id": "minecraft:mace" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_banner.json b/data/minecraft/recipe/magenta_banner.json new file mode 100644 index 00000000..a0991a0d --- /dev/null +++ b/data/minecraft/recipe/magenta_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:magenta_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:magenta_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_bed.json b/data/minecraft/recipe/magenta_bed.json new file mode 100644 index 00000000..e39410c8 --- /dev/null +++ b/data/minecraft/recipe/magenta_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:magenta_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:magenta_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_candle.json b/data/minecraft/recipe/magenta_candle.json new file mode 100644 index 00000000..4189b814 --- /dev/null +++ b/data/minecraft/recipe/magenta_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:magenta_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:magenta_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_carpet.json b/data/minecraft/recipe/magenta_carpet.json new file mode 100644 index 00000000..53369607 --- /dev/null +++ b/data/minecraft/recipe/magenta_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:magenta_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:magenta_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_concrete_powder.json b/data/minecraft/recipe/magenta_concrete_powder.json new file mode 100644 index 00000000..8f4d0fea --- /dev/null +++ b/data/minecraft/recipe/magenta_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:magenta_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:magenta_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_dye_from_allium.json b/data/minecraft/recipe/magenta_dye_from_allium.json new file mode 100644 index 00000000..6e217976 --- /dev/null +++ b/data/minecraft/recipe/magenta_dye_from_allium.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "magenta_dye", + "ingredients": [ + { + "item": "minecraft:allium" + } + ], + "result": { + "count": 1, + "id": "minecraft:magenta_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_dye_from_blue_red_pink.json b/data/minecraft/recipe/magenta_dye_from_blue_red_pink.json new file mode 100644 index 00000000..3d58b3d8 --- /dev/null +++ b/data/minecraft/recipe/magenta_dye_from_blue_red_pink.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "magenta_dye", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + { + "item": "minecraft:red_dye" + }, + { + "item": "minecraft:pink_dye" + } + ], + "result": { + "count": 3, + "id": "minecraft:magenta_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_dye_from_blue_red_white_dye.json b/data/minecraft/recipe/magenta_dye_from_blue_red_white_dye.json new file mode 100644 index 00000000..d8fe2b66 --- /dev/null +++ b/data/minecraft/recipe/magenta_dye_from_blue_red_white_dye.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "magenta_dye", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + { + "item": "minecraft:red_dye" + }, + { + "item": "minecraft:red_dye" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 4, + "id": "minecraft:magenta_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_dye_from_lilac.json b/data/minecraft/recipe/magenta_dye_from_lilac.json new file mode 100644 index 00000000..54120494 --- /dev/null +++ b/data/minecraft/recipe/magenta_dye_from_lilac.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "magenta_dye", + "ingredients": [ + { + "item": "minecraft:lilac" + } + ], + "result": { + "count": 2, + "id": "minecraft:magenta_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_dye_from_purple_and_pink.json b/data/minecraft/recipe/magenta_dye_from_purple_and_pink.json new file mode 100644 index 00000000..6fa2c933 --- /dev/null +++ b/data/minecraft/recipe/magenta_dye_from_purple_and_pink.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "magenta_dye", + "ingredients": [ + { + "item": "minecraft:purple_dye" + }, + { + "item": "minecraft:pink_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:magenta_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_glazed_terracotta.json b/data/minecraft/recipe/magenta_glazed_terracotta.json new file mode 100644 index 00000000..b58ff651 --- /dev/null +++ b/data/minecraft/recipe/magenta_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:magenta_terracotta" + }, + "result": { + "id": "minecraft:magenta_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_stained_glass.json b/data/minecraft/recipe/magenta_stained_glass.json new file mode 100644 index 00000000..1583b801 --- /dev/null +++ b/data/minecraft/recipe/magenta_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:magenta_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:magenta_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_stained_glass_pane.json b/data/minecraft/recipe/magenta_stained_glass_pane.json new file mode 100644 index 00000000..5c69f0c1 --- /dev/null +++ b/data/minecraft/recipe/magenta_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:magenta_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:magenta_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/magenta_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..a6ad8a97 --- /dev/null +++ b/data/minecraft/recipe/magenta_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:magenta_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:magenta_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magenta_terracotta.json b/data/minecraft/recipe/magenta_terracotta.json new file mode 100644 index 00000000..880e1c6c --- /dev/null +++ b/data/minecraft/recipe/magenta_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:magenta_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:magenta_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magma_block.json b/data/minecraft/recipe/magma_block.json new file mode 100644 index 00000000..8d9bf414 --- /dev/null +++ b/data/minecraft/recipe/magma_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:magma_cream" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:magma_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/magma_cream.json b/data/minecraft/recipe/magma_cream.json new file mode 100644 index 00000000..9ba59605 --- /dev/null +++ b/data/minecraft/recipe/magma_cream.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:blaze_powder" + }, + { + "item": "minecraft:slime_ball" + } + ], + "result": { + "count": 1, + "id": "minecraft:magma_cream" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_boat.json b/data/minecraft/recipe/mangrove_boat.json new file mode 100644 index 00000000..727137ee --- /dev/null +++ b/data/minecraft/recipe/mangrove_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:mangrove_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_button.json b/data/minecraft/recipe/mangrove_button.json new file mode 100644 index 00000000..23c09f52 --- /dev/null +++ b/data/minecraft/recipe/mangrove_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:mangrove_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:mangrove_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_chest_boat.json b/data/minecraft/recipe/mangrove_chest_boat.json new file mode 100644 index 00000000..46915434 --- /dev/null +++ b/data/minecraft/recipe/mangrove_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:mangrove_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:mangrove_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_door.json b/data/minecraft/recipe/mangrove_door.json new file mode 100644 index 00000000..55392409 --- /dev/null +++ b/data/minecraft/recipe/mangrove_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:mangrove_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_fence.json b/data/minecraft/recipe/mangrove_fence.json new file mode 100644 index 00000000..00403079 --- /dev/null +++ b/data/minecraft/recipe/mangrove_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:mangrove_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_fence_gate.json b/data/minecraft/recipe/mangrove_fence_gate.json new file mode 100644 index 00000000..4e9979c5 --- /dev/null +++ b/data/minecraft/recipe/mangrove_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:mangrove_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_hanging_sign.json b/data/minecraft/recipe/mangrove_hanging_sign.json new file mode 100644 index 00000000..d78d5b08 --- /dev/null +++ b/data/minecraft/recipe/mangrove_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_mangrove_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mangrove_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_planks.json b/data/minecraft/recipe/mangrove_planks.json new file mode 100644 index 00000000..6a394ba4 --- /dev/null +++ b/data/minecraft/recipe/mangrove_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:mangrove_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:mangrove_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_pressure_plate.json b/data/minecraft/recipe/mangrove_pressure_plate.json new file mode 100644 index 00000000..9cdda39b --- /dev/null +++ b/data/minecraft/recipe/mangrove_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:mangrove_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_sign.json b/data/minecraft/recipe/mangrove_sign.json new file mode 100644 index 00000000..d18e84f1 --- /dev/null +++ b/data/minecraft/recipe/mangrove_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:mangrove_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:mangrove_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_slab.json b/data/minecraft/recipe/mangrove_slab.json new file mode 100644 index 00000000..baa9cb8f --- /dev/null +++ b/data/minecraft/recipe/mangrove_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mangrove_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_stairs.json b/data/minecraft/recipe/mangrove_stairs.json new file mode 100644 index 00000000..41341066 --- /dev/null +++ b/data/minecraft/recipe/mangrove_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:mangrove_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_trapdoor.json b/data/minecraft/recipe/mangrove_trapdoor.json new file mode 100644 index 00000000..a51766c2 --- /dev/null +++ b/data/minecraft/recipe/mangrove_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:mangrove_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:mangrove_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mangrove_wood.json b/data/minecraft/recipe/mangrove_wood.json new file mode 100644 index 00000000..c8c830e7 --- /dev/null +++ b/data/minecraft/recipe/mangrove_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:mangrove_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:mangrove_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/map.json b/data/minecraft/recipe/map.json new file mode 100644 index 00000000..e364fc5b --- /dev/null +++ b/data/minecraft/recipe/map.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:paper" + }, + "X": { + "item": "minecraft:compass" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:map" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/map_cloning.json b/data/minecraft/recipe/map_cloning.json new file mode 100644 index 00000000..42e0baf0 --- /dev/null +++ b/data/minecraft/recipe/map_cloning.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_mapcloning", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/map_extending.json b/data/minecraft/recipe/map_extending.json new file mode 100644 index 00000000..10ad7f5e --- /dev/null +++ b/data/minecraft/recipe/map_extending.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_mapextending", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/melon.json b/data/minecraft/recipe/melon.json new file mode 100644 index 00000000..6a6fea7b --- /dev/null +++ b/data/minecraft/recipe/melon.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + }, + { + "item": "minecraft:melon_slice" + } + ], + "result": { + "count": 1, + "id": "minecraft:melon" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/melon_seeds.json b/data/minecraft/recipe/melon_seeds.json new file mode 100644 index 00000000..092f2465 --- /dev/null +++ b/data/minecraft/recipe/melon_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:melon_slice" + } + ], + "result": { + "count": 1, + "id": "minecraft:melon_seeds" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/minecart.json b/data/minecraft/recipe/minecart.json new file mode 100644 index 00000000..3cc6602a --- /dev/null +++ b/data/minecraft/recipe/minecart.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:minecart" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mojang_banner_pattern.json b/data/minecraft/recipe/mojang_banner_pattern.json new file mode 100644 index 00000000..823f6208 --- /dev/null +++ b/data/minecraft/recipe/mojang_banner_pattern.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:paper" + }, + { + "item": "minecraft:enchanted_golden_apple" + } + ], + "result": { + "count": 1, + "id": "minecraft:mojang_banner_pattern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/moss_carpet.json b/data/minecraft/recipe/moss_carpet.json new file mode 100644 index 00000000..5c21671e --- /dev/null +++ b/data/minecraft/recipe/moss_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:moss_block" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:moss_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_from_moss_block.json b/data/minecraft/recipe/mossy_cobblestone_from_moss_block.json new file mode 100644 index 00000000..9c79741e --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_from_moss_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "mossy_cobblestone", + "ingredients": [ + { + "item": "minecraft:cobblestone" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "count": 1, + "id": "minecraft:mossy_cobblestone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_from_vine.json b/data/minecraft/recipe/mossy_cobblestone_from_vine.json new file mode 100644 index 00000000..8cc6fdac --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_from_vine.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "mossy_cobblestone", + "ingredients": [ + { + "item": "minecraft:cobblestone" + }, + { + "item": "minecraft:vine" + } + ], + "result": { + "count": 1, + "id": "minecraft:mossy_cobblestone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_slab.json b/data/minecraft/recipe/mossy_cobblestone_slab.json new file mode 100644 index 00000000..57479c27 --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:mossy_cobblestone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mossy_cobblestone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting.json b/data/minecraft/recipe/mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting.json new file mode 100644 index 00000000..1628de59 --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_slab_from_mossy_cobblestone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mossy_cobblestone" + }, + "result": { + "count": 2, + "id": "minecraft:mossy_cobblestone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_stairs.json b/data/minecraft/recipe/mossy_cobblestone_stairs.json new file mode 100644 index 00000000..13957195 --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:mossy_cobblestone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:mossy_cobblestone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting.json b/data/minecraft/recipe/mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting.json new file mode 100644 index 00000000..62ca71dd --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_stairs_from_mossy_cobblestone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mossy_cobblestone" + }, + "result": { + "count": 1, + "id": "minecraft:mossy_cobblestone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_wall.json b/data/minecraft/recipe/mossy_cobblestone_wall.json new file mode 100644 index 00000000..6d84af0c --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:mossy_cobblestone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mossy_cobblestone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting.json b/data/minecraft/recipe/mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting.json new file mode 100644 index 00000000..3d97d583 --- /dev/null +++ b/data/minecraft/recipe/mossy_cobblestone_wall_from_mossy_cobblestone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mossy_cobblestone" + }, + "result": { + "count": 1, + "id": "minecraft:mossy_cobblestone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_brick_slab.json b/data/minecraft/recipe/mossy_stone_brick_slab.json new file mode 100644 index 00000000..38b9ea7f --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:mossy_stone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mossy_stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting.json b/data/minecraft/recipe/mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting.json new file mode 100644 index 00000000..5dc89f2e --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mossy_stone_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:mossy_stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_brick_stairs.json b/data/minecraft/recipe/mossy_stone_brick_stairs.json new file mode 100644 index 00000000..fbf71364 --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:mossy_stone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:mossy_stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting.json b/data/minecraft/recipe/mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting.json new file mode 100644 index 00000000..aea88ed4 --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mossy_stone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:mossy_stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_brick_wall.json b/data/minecraft/recipe/mossy_stone_brick_wall.json new file mode 100644 index 00000000..a586bd6d --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:mossy_stone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mossy_stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting.json b/data/minecraft/recipe/mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting.json new file mode 100644 index 00000000..60cabe8d --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mossy_stone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:mossy_stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_bricks_from_moss_block.json b/data/minecraft/recipe/mossy_stone_bricks_from_moss_block.json new file mode 100644 index 00000000..3cfa67d2 --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_bricks_from_moss_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "mossy_stone_bricks", + "ingredients": [ + { + "item": "minecraft:stone_bricks" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "count": 1, + "id": "minecraft:mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mossy_stone_bricks_from_vine.json b/data/minecraft/recipe/mossy_stone_bricks_from_vine.json new file mode 100644 index 00000000..a09452c8 --- /dev/null +++ b/data/minecraft/recipe/mossy_stone_bricks_from_vine.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "mossy_stone_bricks", + "ingredients": [ + { + "item": "minecraft:stone_bricks" + }, + { + "item": "minecraft:vine" + } + ], + "result": { + "count": 1, + "id": "minecraft:mossy_stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mud_brick_slab.json b/data/minecraft/recipe/mud_brick_slab.json new file mode 100644 index 00000000..7bbd7f9a --- /dev/null +++ b/data/minecraft/recipe/mud_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:mud_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mud_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mud_brick_slab_from_mud_bricks_stonecutting.json b/data/minecraft/recipe/mud_brick_slab_from_mud_bricks_stonecutting.json new file mode 100644 index 00000000..eca88a0f --- /dev/null +++ b/data/minecraft/recipe/mud_brick_slab_from_mud_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mud_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:mud_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mud_brick_stairs.json b/data/minecraft/recipe/mud_brick_stairs.json new file mode 100644 index 00000000..21e063cb --- /dev/null +++ b/data/minecraft/recipe/mud_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:mud_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:mud_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mud_brick_stairs_from_mud_bricks_stonecutting.json b/data/minecraft/recipe/mud_brick_stairs_from_mud_bricks_stonecutting.json new file mode 100644 index 00000000..60af8a3d --- /dev/null +++ b/data/minecraft/recipe/mud_brick_stairs_from_mud_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mud_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:mud_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mud_brick_wall.json b/data/minecraft/recipe/mud_brick_wall.json new file mode 100644 index 00000000..72780084 --- /dev/null +++ b/data/minecraft/recipe/mud_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:mud_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mud_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mud_brick_wall_from_mud_bricks_stonecutting.json b/data/minecraft/recipe/mud_brick_wall_from_mud_bricks_stonecutting.json new file mode 100644 index 00000000..14b680f7 --- /dev/null +++ b/data/minecraft/recipe/mud_brick_wall_from_mud_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:mud_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:mud_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mud_bricks.json b/data/minecraft/recipe/mud_bricks.json new file mode 100644 index 00000000..ea53bc07 --- /dev/null +++ b/data/minecraft/recipe/mud_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:packed_mud" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:mud_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/muddy_mangrove_roots.json b/data/minecraft/recipe/muddy_mangrove_roots.json new file mode 100644 index 00000000..8412f23f --- /dev/null +++ b/data/minecraft/recipe/muddy_mangrove_roots.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:mud" + }, + { + "item": "minecraft:mangrove_roots" + } + ], + "result": { + "count": 1, + "id": "minecraft:muddy_mangrove_roots" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/mushroom_stew.json b/data/minecraft/recipe/mushroom_stew.json new file mode 100644 index 00000000..34dc6cab --- /dev/null +++ b/data/minecraft/recipe/mushroom_stew.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:brown_mushroom" + }, + { + "item": "minecraft:red_mushroom" + }, + { + "item": "minecraft:bowl" + } + ], + "result": { + "count": 1, + "id": "minecraft:mushroom_stew" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/music_disc_5.json b/data/minecraft/recipe/music_disc_5.json new file mode 100644 index 00000000..4cee6a31 --- /dev/null +++ b/data/minecraft/recipe/music_disc_5.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + }, + { + "item": "minecraft:disc_fragment_5" + } + ], + "result": { + "count": 1, + "id": "minecraft:music_disc_5" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick.json b/data/minecraft/recipe/nether_brick.json new file mode 100644 index 00000000..1a0cb2f6 --- /dev/null +++ b/data/minecraft/recipe/nether_brick.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:netherrack" + }, + "result": { + "id": "minecraft:nether_brick" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick_fence.json b/data/minecraft/recipe/nether_brick_fence.json new file mode 100644 index 00000000..95cb4c47 --- /dev/null +++ b/data/minecraft/recipe/nether_brick_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:nether_brick" + }, + "W": { + "item": "minecraft:nether_bricks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 6, + "id": "minecraft:nether_brick_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick_slab.json b/data/minecraft/recipe/nether_brick_slab.json new file mode 100644 index 00000000..ce44030f --- /dev/null +++ b/data/minecraft/recipe/nether_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:nether_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:nether_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick_slab_from_nether_bricks_stonecutting.json b/data/minecraft/recipe/nether_brick_slab_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..d13c18cb --- /dev/null +++ b/data/minecraft/recipe/nether_brick_slab_from_nether_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:nether_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:nether_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick_stairs.json b/data/minecraft/recipe/nether_brick_stairs.json new file mode 100644 index 00000000..bb2ec08f --- /dev/null +++ b/data/minecraft/recipe/nether_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:nether_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:nether_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick_stairs_from_nether_bricks_stonecutting.json b/data/minecraft/recipe/nether_brick_stairs_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..c0d05028 --- /dev/null +++ b/data/minecraft/recipe/nether_brick_stairs_from_nether_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:nether_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:nether_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick_wall.json b/data/minecraft/recipe/nether_brick_wall.json new file mode 100644 index 00000000..c8f756a7 --- /dev/null +++ b/data/minecraft/recipe/nether_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:nether_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:nether_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_brick_wall_from_nether_bricks_stonecutting.json b/data/minecraft/recipe/nether_brick_wall_from_nether_bricks_stonecutting.json new file mode 100644 index 00000000..518ada42 --- /dev/null +++ b/data/minecraft/recipe/nether_brick_wall_from_nether_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:nether_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:nether_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_bricks.json b/data/minecraft/recipe/nether_bricks.json new file mode 100644 index 00000000..50a2b1f7 --- /dev/null +++ b/data/minecraft/recipe/nether_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:nether_brick" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:nether_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/nether_wart_block.json b/data/minecraft/recipe/nether_wart_block.json new file mode 100644 index 00000000..c445e07a --- /dev/null +++ b/data/minecraft/recipe/nether_wart_block.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + }, + { + "item": "minecraft:nether_wart" + } + ], + "result": { + "count": 1, + "id": "minecraft:nether_wart_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_axe_smithing.json b/data/minecraft/recipe/netherite_axe_smithing.json new file mode 100644 index 00000000..2cb2af38 --- /dev/null +++ b/data/minecraft/recipe/netherite_axe_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_axe" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_axe" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_block.json b/data/minecraft/recipe/netherite_block.json new file mode 100644 index 00000000..05f294cb --- /dev/null +++ b/data/minecraft/recipe/netherite_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:netherite_ingot" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:netherite_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_boots_smithing.json b/data/minecraft/recipe/netherite_boots_smithing.json new file mode 100644 index 00000000..8e4694b1 --- /dev/null +++ b/data/minecraft/recipe/netherite_boots_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_boots" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_boots" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_chestplate_smithing.json b/data/minecraft/recipe/netherite_chestplate_smithing.json new file mode 100644 index 00000000..9eaada2f --- /dev/null +++ b/data/minecraft/recipe/netherite_chestplate_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_chestplate" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_chestplate" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_helmet_smithing.json b/data/minecraft/recipe/netherite_helmet_smithing.json new file mode 100644 index 00000000..16450464 --- /dev/null +++ b/data/minecraft/recipe/netherite_helmet_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_helmet" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_helmet" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_hoe_smithing.json b/data/minecraft/recipe/netherite_hoe_smithing.json new file mode 100644 index 00000000..da0690f9 --- /dev/null +++ b/data/minecraft/recipe/netherite_hoe_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_hoe" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_hoe" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_ingot.json b/data/minecraft/recipe/netherite_ingot.json new file mode 100644 index 00000000..75756891 --- /dev/null +++ b/data/minecraft/recipe/netherite_ingot.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "netherite_ingot", + "ingredients": [ + { + "item": "minecraft:netherite_scrap" + }, + { + "item": "minecraft:netherite_scrap" + }, + { + "item": "minecraft:netherite_scrap" + }, + { + "item": "minecraft:netherite_scrap" + }, + { + "item": "minecraft:gold_ingot" + }, + { + "item": "minecraft:gold_ingot" + }, + { + "item": "minecraft:gold_ingot" + }, + { + "item": "minecraft:gold_ingot" + } + ], + "result": { + "count": 1, + "id": "minecraft:netherite_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_ingot_from_netherite_block.json b/data/minecraft/recipe/netherite_ingot_from_netherite_block.json new file mode 100644 index 00000000..0b82b5d9 --- /dev/null +++ b/data/minecraft/recipe/netherite_ingot_from_netherite_block.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "netherite_ingot", + "ingredients": [ + { + "item": "minecraft:netherite_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:netherite_ingot" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_leggings_smithing.json b/data/minecraft/recipe/netherite_leggings_smithing.json new file mode 100644 index 00000000..feb9759a --- /dev/null +++ b/data/minecraft/recipe/netherite_leggings_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_leggings" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_leggings" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_pickaxe_smithing.json b/data/minecraft/recipe/netherite_pickaxe_smithing.json new file mode 100644 index 00000000..7e1f2cae --- /dev/null +++ b/data/minecraft/recipe/netherite_pickaxe_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_pickaxe" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_pickaxe" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_scrap.json b/data/minecraft/recipe/netherite_scrap.json new file mode 100644 index 00000000..a94d9e42 --- /dev/null +++ b/data/minecraft/recipe/netherite_scrap.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 2.0, + "ingredient": { + "item": "minecraft:ancient_debris" + }, + "result": { + "id": "minecraft:netherite_scrap" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_scrap_from_blasting.json b/data/minecraft/recipe/netherite_scrap_from_blasting.json new file mode 100644 index 00000000..483f5e45 --- /dev/null +++ b/data/minecraft/recipe/netherite_scrap_from_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 2.0, + "ingredient": { + "item": "minecraft:ancient_debris" + }, + "result": { + "id": "minecraft:netherite_scrap" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_shovel_smithing.json b/data/minecraft/recipe/netherite_shovel_smithing.json new file mode 100644 index 00000000..34648509 --- /dev/null +++ b/data/minecraft/recipe/netherite_shovel_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_shovel" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_shovel" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_sword_smithing.json b/data/minecraft/recipe/netherite_sword_smithing.json new file mode 100644 index 00000000..009425c4 --- /dev/null +++ b/data/minecraft/recipe/netherite_sword_smithing.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:smithing_transform", + "addition": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:diamond_sword" + }, + "result": { + "count": 1, + "id": "minecraft:netherite_sword" + }, + "template": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/netherite_upgrade_smithing_template.json b/data/minecraft/recipe/netherite_upgrade_smithing_template.json new file mode 100644 index 00000000..ff57f7d1 --- /dev/null +++ b/data/minecraft/recipe/netherite_upgrade_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:netherrack" + }, + "S": { + "item": "minecraft:netherite_upgrade_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/note_block.json b/data/minecraft/recipe/note_block.json new file mode 100644 index 00000000..41776f7f --- /dev/null +++ b/data/minecraft/recipe/note_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:note_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_boat.json b/data/minecraft/recipe/oak_boat.json new file mode 100644 index 00000000..44c2f68e --- /dev/null +++ b/data/minecraft/recipe/oak_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:oak_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_button.json b/data/minecraft/recipe/oak_button.json new file mode 100644 index 00000000..aeeef07e --- /dev/null +++ b/data/minecraft/recipe/oak_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:oak_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:oak_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_chest_boat.json b/data/minecraft/recipe/oak_chest_boat.json new file mode 100644 index 00000000..7b3d727f --- /dev/null +++ b/data/minecraft/recipe/oak_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:oak_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:oak_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_door.json b/data/minecraft/recipe/oak_door.json new file mode 100644 index 00000000..2b4514f0 --- /dev/null +++ b/data/minecraft/recipe/oak_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:oak_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_fence.json b/data/minecraft/recipe/oak_fence.json new file mode 100644 index 00000000..c4fe6c5f --- /dev/null +++ b/data/minecraft/recipe/oak_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:oak_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_fence_gate.json b/data/minecraft/recipe/oak_fence_gate.json new file mode 100644 index 00000000..5f90202e --- /dev/null +++ b/data/minecraft/recipe/oak_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:oak_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_hanging_sign.json b/data/minecraft/recipe/oak_hanging_sign.json new file mode 100644 index 00000000..2c3e6a1f --- /dev/null +++ b/data/minecraft/recipe/oak_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_oak_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:oak_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_planks.json b/data/minecraft/recipe/oak_planks.json new file mode 100644 index 00000000..3ac125dc --- /dev/null +++ b/data/minecraft/recipe/oak_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:oak_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:oak_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_pressure_plate.json b/data/minecraft/recipe/oak_pressure_plate.json new file mode 100644 index 00000000..d3d5205c --- /dev/null +++ b/data/minecraft/recipe/oak_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:oak_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_sign.json b/data/minecraft/recipe/oak_sign.json new file mode 100644 index 00000000..825cdf5b --- /dev/null +++ b/data/minecraft/recipe/oak_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:oak_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:oak_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_slab.json b/data/minecraft/recipe/oak_slab.json new file mode 100644 index 00000000..05698632 --- /dev/null +++ b/data/minecraft/recipe/oak_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:oak_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_stairs.json b/data/minecraft/recipe/oak_stairs.json new file mode 100644 index 00000000..59f7b68d --- /dev/null +++ b/data/minecraft/recipe/oak_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:oak_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_trapdoor.json b/data/minecraft/recipe/oak_trapdoor.json new file mode 100644 index 00000000..24d53d79 --- /dev/null +++ b/data/minecraft/recipe/oak_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:oak_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:oak_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oak_wood.json b/data/minecraft/recipe/oak_wood.json new file mode 100644 index 00000000..8a6d5e47 --- /dev/null +++ b/data/minecraft/recipe/oak_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:oak_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:oak_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/observer.json b/data/minecraft/recipe/observer.json new file mode 100644 index 00000000..65f83168 --- /dev/null +++ b/data/minecraft/recipe/observer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "Q": { + "item": "minecraft:quartz" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "###", + "RRQ", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:observer" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_banner.json b/data/minecraft/recipe/orange_banner.json new file mode 100644 index 00000000..230fa931 --- /dev/null +++ b/data/minecraft/recipe/orange_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:orange_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:orange_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_bed.json b/data/minecraft/recipe/orange_bed.json new file mode 100644 index 00000000..67026e36 --- /dev/null +++ b/data/minecraft/recipe/orange_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:orange_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:orange_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_candle.json b/data/minecraft/recipe/orange_candle.json new file mode 100644 index 00000000..ec2bcc44 --- /dev/null +++ b/data/minecraft/recipe/orange_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:orange_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:orange_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_carpet.json b/data/minecraft/recipe/orange_carpet.json new file mode 100644 index 00000000..aae0e0ff --- /dev/null +++ b/data/minecraft/recipe/orange_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:orange_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:orange_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_concrete_powder.json b/data/minecraft/recipe/orange_concrete_powder.json new file mode 100644 index 00000000..61e7cd1b --- /dev/null +++ b/data/minecraft/recipe/orange_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:orange_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:orange_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_dye_from_orange_tulip.json b/data/minecraft/recipe/orange_dye_from_orange_tulip.json new file mode 100644 index 00000000..940a2918 --- /dev/null +++ b/data/minecraft/recipe/orange_dye_from_orange_tulip.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "orange_dye", + "ingredients": [ + { + "item": "minecraft:orange_tulip" + } + ], + "result": { + "count": 1, + "id": "minecraft:orange_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_dye_from_red_yellow.json b/data/minecraft/recipe/orange_dye_from_red_yellow.json new file mode 100644 index 00000000..1a4616ff --- /dev/null +++ b/data/minecraft/recipe/orange_dye_from_red_yellow.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "orange_dye", + "ingredients": [ + { + "item": "minecraft:red_dye" + }, + { + "item": "minecraft:yellow_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:orange_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_dye_from_torchflower.json b/data/minecraft/recipe/orange_dye_from_torchflower.json new file mode 100644 index 00000000..4a4ebfa8 --- /dev/null +++ b/data/minecraft/recipe/orange_dye_from_torchflower.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "orange_dye", + "ingredients": [ + { + "item": "minecraft:torchflower" + } + ], + "result": { + "count": 1, + "id": "minecraft:orange_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_glazed_terracotta.json b/data/minecraft/recipe/orange_glazed_terracotta.json new file mode 100644 index 00000000..eaf02c17 --- /dev/null +++ b/data/minecraft/recipe/orange_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:orange_terracotta" + }, + "result": { + "id": "minecraft:orange_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_stained_glass.json b/data/minecraft/recipe/orange_stained_glass.json new file mode 100644 index 00000000..4aecd84e --- /dev/null +++ b/data/minecraft/recipe/orange_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:orange_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:orange_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_stained_glass_pane.json b/data/minecraft/recipe/orange_stained_glass_pane.json new file mode 100644 index 00000000..8c5fa980 --- /dev/null +++ b/data/minecraft/recipe/orange_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:orange_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:orange_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/orange_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..0c83fcde --- /dev/null +++ b/data/minecraft/recipe/orange_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:orange_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:orange_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/orange_terracotta.json b/data/minecraft/recipe/orange_terracotta.json new file mode 100644 index 00000000..96bb9dea --- /dev/null +++ b/data/minecraft/recipe/orange_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:orange_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:orange_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_chiseled_copper.json b/data/minecraft/recipe/oxidized_chiseled_copper.json new file mode 100644 index 00000000..a8b40d7a --- /dev/null +++ b/data/minecraft/recipe/oxidized_chiseled_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:oxidized_cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_chiseled_copper_from_oxidized_copper_stonecutting.json b/data/minecraft/recipe/oxidized_chiseled_copper_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..2c4e1c23 --- /dev/null +++ b/data/minecraft/recipe/oxidized_chiseled_copper_from_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting.json b/data/minecraft/recipe/oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..c8468440 --- /dev/null +++ b/data/minecraft/recipe/oxidized_chiseled_copper_from_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_copper_bulb.json b/data/minecraft/recipe/oxidized_copper_bulb.json new file mode 100644 index 00000000..069634c2 --- /dev/null +++ b/data/minecraft/recipe/oxidized_copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:oxidized_copper" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:oxidized_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_copper_grate.json b/data/minecraft/recipe/oxidized_copper_grate.json new file mode 100644 index 00000000..0ecfbc6b --- /dev/null +++ b/data/minecraft/recipe/oxidized_copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:oxidized_copper" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:oxidized_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_copper_grate_from_oxidized_copper_stonecutting.json b/data/minecraft/recipe/oxidized_copper_grate_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..a816c127 --- /dev/null +++ b/data/minecraft/recipe/oxidized_copper_grate_from_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:oxidized_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper.json b/data/minecraft/recipe/oxidized_cut_copper.json new file mode 100644 index 00000000..855b71f4 --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:oxidized_copper" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper_from_oxidized_copper_stonecutting.json b/data/minecraft/recipe/oxidized_cut_copper_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..6182576e --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper_from_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper_slab.json b/data/minecraft/recipe/oxidized_cut_copper_slab.json new file mode 100644 index 00000000..75d5c201 --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:oxidized_cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:oxidized_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper_slab_from_oxidized_copper_stonecutting.json b/data/minecraft/recipe/oxidized_cut_copper_slab_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..965aeaa6 --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper_slab_from_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_copper" + }, + "result": { + "count": 8, + "id": "minecraft:oxidized_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting.json b/data/minecraft/recipe/oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..84945651 --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper_slab_from_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:oxidized_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper_stairs.json b/data/minecraft/recipe/oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..27c84fa5 --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:oxidized_cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting.json b/data/minecraft/recipe/oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..9e36f1c2 --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper_stairs_from_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting.json b/data/minecraft/recipe/oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..b45096c4 --- /dev/null +++ b/data/minecraft/recipe/oxidized_cut_copper_stairs_from_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:oxidized_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/packed_ice.json b/data/minecraft/recipe/packed_ice.json new file mode 100644 index 00000000..fa647b7c --- /dev/null +++ b/data/minecraft/recipe/packed_ice.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + }, + { + "item": "minecraft:ice" + } + ], + "result": { + "count": 1, + "id": "minecraft:packed_ice" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/packed_mud.json b/data/minecraft/recipe/packed_mud.json new file mode 100644 index 00000000..4944d15d --- /dev/null +++ b/data/minecraft/recipe/packed_mud.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:mud" + }, + { + "item": "minecraft:wheat" + } + ], + "result": { + "count": 1, + "id": "minecraft:packed_mud" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/painting.json b/data/minecraft/recipe/painting.json new file mode 100644 index 00000000..c88f5272 --- /dev/null +++ b/data/minecraft/recipe/painting.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:wool" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:painting" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/paper.json b/data/minecraft/recipe/paper.json new file mode 100644 index 00000000..f768457b --- /dev/null +++ b/data/minecraft/recipe/paper.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:sugar_cane" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 3, + "id": "minecraft:paper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_banner.json b/data/minecraft/recipe/pink_banner.json new file mode 100644 index 00000000..9f4b4441 --- /dev/null +++ b/data/minecraft/recipe/pink_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:pink_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:pink_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_bed.json b/data/minecraft/recipe/pink_bed.json new file mode 100644 index 00000000..f98c1e8b --- /dev/null +++ b/data/minecraft/recipe/pink_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:pink_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:pink_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_candle.json b/data/minecraft/recipe/pink_candle.json new file mode 100644 index 00000000..2c6ea76b --- /dev/null +++ b/data/minecraft/recipe/pink_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:pink_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:pink_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_carpet.json b/data/minecraft/recipe/pink_carpet.json new file mode 100644 index 00000000..cd828567 --- /dev/null +++ b/data/minecraft/recipe/pink_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:pink_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:pink_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_concrete_powder.json b/data/minecraft/recipe/pink_concrete_powder.json new file mode 100644 index 00000000..22198acf --- /dev/null +++ b/data/minecraft/recipe/pink_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:pink_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:pink_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_dye_from_peony.json b/data/minecraft/recipe/pink_dye_from_peony.json new file mode 100644 index 00000000..1cbe8a9c --- /dev/null +++ b/data/minecraft/recipe/pink_dye_from_peony.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "pink_dye", + "ingredients": [ + { + "item": "minecraft:peony" + } + ], + "result": { + "count": 2, + "id": "minecraft:pink_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_dye_from_pink_petals.json b/data/minecraft/recipe/pink_dye_from_pink_petals.json new file mode 100644 index 00000000..a69e6570 --- /dev/null +++ b/data/minecraft/recipe/pink_dye_from_pink_petals.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "pink_dye", + "ingredients": [ + { + "item": "minecraft:pink_petals" + } + ], + "result": { + "count": 1, + "id": "minecraft:pink_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_dye_from_pink_tulip.json b/data/minecraft/recipe/pink_dye_from_pink_tulip.json new file mode 100644 index 00000000..492737d4 --- /dev/null +++ b/data/minecraft/recipe/pink_dye_from_pink_tulip.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "pink_dye", + "ingredients": [ + { + "item": "minecraft:pink_tulip" + } + ], + "result": { + "count": 1, + "id": "minecraft:pink_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_dye_from_red_white_dye.json b/data/minecraft/recipe/pink_dye_from_red_white_dye.json new file mode 100644 index 00000000..d0be92ae --- /dev/null +++ b/data/minecraft/recipe/pink_dye_from_red_white_dye.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "pink_dye", + "ingredients": [ + { + "item": "minecraft:red_dye" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:pink_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_glazed_terracotta.json b/data/minecraft/recipe/pink_glazed_terracotta.json new file mode 100644 index 00000000..2b82ea41 --- /dev/null +++ b/data/minecraft/recipe/pink_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:pink_terracotta" + }, + "result": { + "id": "minecraft:pink_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_stained_glass.json b/data/minecraft/recipe/pink_stained_glass.json new file mode 100644 index 00000000..82c30891 --- /dev/null +++ b/data/minecraft/recipe/pink_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:pink_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:pink_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_stained_glass_pane.json b/data/minecraft/recipe/pink_stained_glass_pane.json new file mode 100644 index 00000000..51aefbf2 --- /dev/null +++ b/data/minecraft/recipe/pink_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:pink_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:pink_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/pink_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..ac57a21a --- /dev/null +++ b/data/minecraft/recipe/pink_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:pink_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:pink_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pink_terracotta.json b/data/minecraft/recipe/pink_terracotta.json new file mode 100644 index 00000000..942fad44 --- /dev/null +++ b/data/minecraft/recipe/pink_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:pink_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:pink_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/piston.json b/data/minecraft/recipe/piston.json new file mode 100644 index 00000000..344dcedc --- /dev/null +++ b/data/minecraft/recipe/piston.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "R": { + "item": "minecraft:redstone" + }, + "T": { + "tag": "minecraft:planks" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "TTT", + "#X#", + "#R#" + ], + "result": { + "count": 1, + "id": "minecraft:piston" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite.json b/data/minecraft/recipe/polished_andesite.json new file mode 100644 index 00000000..a42a7fe1 --- /dev/null +++ b/data/minecraft/recipe/polished_andesite.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:andesite" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_andesite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite_from_andesite_stonecutting.json b/data/minecraft/recipe/polished_andesite_from_andesite_stonecutting.json new file mode 100644 index 00000000..b55e151d --- /dev/null +++ b/data/minecraft/recipe/polished_andesite_from_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_andesite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite_slab.json b/data/minecraft/recipe/polished_andesite_slab.json new file mode 100644 index 00000000..b0df8270 --- /dev/null +++ b/data/minecraft/recipe/polished_andesite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_andesite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_andesite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite_slab_from_andesite_stonecutting.json b/data/minecraft/recipe/polished_andesite_slab_from_andesite_stonecutting.json new file mode 100644 index 00000000..618d18ab --- /dev/null +++ b/data/minecraft/recipe/polished_andesite_slab_from_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": { + "count": 2, + "id": "minecraft:polished_andesite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite_slab_from_polished_andesite_stonecutting.json b/data/minecraft/recipe/polished_andesite_slab_from_polished_andesite_stonecutting.json new file mode 100644 index 00000000..054e57d8 --- /dev/null +++ b/data/minecraft/recipe/polished_andesite_slab_from_polished_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_andesite" + }, + "result": { + "count": 2, + "id": "minecraft:polished_andesite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite_stairs.json b/data/minecraft/recipe/polished_andesite_stairs.json new file mode 100644 index 00000000..11ef91c5 --- /dev/null +++ b/data/minecraft/recipe/polished_andesite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_andesite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:polished_andesite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite_stairs_from_andesite_stonecutting.json b/data/minecraft/recipe/polished_andesite_stairs_from_andesite_stonecutting.json new file mode 100644 index 00000000..a861458e --- /dev/null +++ b/data/minecraft/recipe/polished_andesite_stairs_from_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_andesite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_andesite_stairs_from_polished_andesite_stonecutting.json b/data/minecraft/recipe/polished_andesite_stairs_from_polished_andesite_stonecutting.json new file mode 100644 index 00000000..4caa3fd4 --- /dev/null +++ b/data/minecraft/recipe/polished_andesite_stairs_from_polished_andesite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_andesite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_andesite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_basalt.json b/data/minecraft/recipe/polished_basalt.json new file mode 100644 index 00000000..5da8b1bb --- /dev/null +++ b/data/minecraft/recipe/polished_basalt.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:basalt" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_basalt" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_basalt_from_basalt_stonecutting.json b/data/minecraft/recipe/polished_basalt_from_basalt_stonecutting.json new file mode 100644 index 00000000..550d9534 --- /dev/null +++ b/data/minecraft/recipe/polished_basalt_from_basalt_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:basalt" + }, + "result": { + "count": 1, + "id": "minecraft:polished_basalt" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone.json b/data/minecraft/recipe/polished_blackstone.json new file mode 100644 index 00000000..93610533 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:blackstone" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_blackstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_slab.json b/data/minecraft/recipe/polished_blackstone_brick_slab.json new file mode 100644 index 00000000..82f09e49 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_blackstone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_blackstone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_slab_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_slab_from_blackstone_stonecutting.json new file mode 100644 index 00000000..a78c0cbb --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_slab_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 2, + "id": "minecraft:polished_blackstone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting.json new file mode 100644 index 00000000..de1d6d23 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_slab_from_polished_blackstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:polished_blackstone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_slab_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_slab_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..bc4aba35 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_slab_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 2, + "id": "minecraft:polished_blackstone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_stairs.json b/data/minecraft/recipe/polished_blackstone_brick_stairs.json new file mode 100644 index 00000000..41a80c7e --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_blackstone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:polished_blackstone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_stairs_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_stairs_from_blackstone_stonecutting.json new file mode 100644 index 00000000..9f075c83 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_stairs_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting.json new file mode 100644 index 00000000..19aa960c --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_stairs_from_polished_blackstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..0a31755d --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_stairs_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_wall.json b/data/minecraft/recipe/polished_blackstone_brick_wall.json new file mode 100644 index 00000000..8d2fa78a --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:polished_blackstone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_blackstone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_wall_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_wall_from_blackstone_stonecutting.json new file mode 100644 index 00000000..293beaa5 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_wall_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting.json new file mode 100644 index 00000000..fad519fe --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_wall_from_polished_blackstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_brick_wall_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_brick_wall_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..5da029e8 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_brick_wall_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_bricks.json b/data/minecraft/recipe/polished_blackstone_bricks.json new file mode 100644 index 00000000..826d1f98 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:polished_blackstone" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_bricks_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_bricks_from_blackstone_stonecutting.json new file mode 100644 index 00000000..47d9e1db --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_bricks_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_bricks_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_bricks_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..56e8678e --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_bricks_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_button.json b/data/minecraft/recipe/polished_blackstone_button.json new file mode 100644 index 00000000..4f065021 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_button.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "item": "minecraft:polished_blackstone" + } + ], + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_from_blackstone_stonecutting.json new file mode 100644 index 00000000..f1528a47 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_pressure_plate.json b/data/minecraft/recipe/polished_blackstone_pressure_plate.json new file mode 100644 index 00000000..c4ecdd9a --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_pressure_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:polished_blackstone" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_slab.json b/data/minecraft/recipe/polished_blackstone_slab.json new file mode 100644 index 00000000..1b1b88b3 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_blackstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_blackstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_slab_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_slab_from_blackstone_stonecutting.json new file mode 100644 index 00000000..7911f422 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_slab_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 2, + "id": "minecraft:polished_blackstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_slab_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_slab_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..09b14566 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_slab_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 2, + "id": "minecraft:polished_blackstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_stairs.json b/data/minecraft/recipe/polished_blackstone_stairs.json new file mode 100644 index 00000000..d9284d0a --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_blackstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:polished_blackstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_stairs_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_stairs_from_blackstone_stonecutting.json new file mode 100644 index 00000000..9902df47 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_stairs_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_stairs_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_stairs_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..215dc98b --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_stairs_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_wall.json b/data/minecraft/recipe/polished_blackstone_wall.json new file mode 100644 index 00000000..ae15cfa5 --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:polished_blackstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_blackstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_wall_from_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_wall_from_blackstone_stonecutting.json new file mode 100644 index 00000000..77294a3b --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_wall_from_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_blackstone_wall_from_polished_blackstone_stonecutting.json b/data/minecraft/recipe/polished_blackstone_wall_from_polished_blackstone_stonecutting.json new file mode 100644 index 00000000..332318ad --- /dev/null +++ b/data/minecraft/recipe/polished_blackstone_wall_from_polished_blackstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_blackstone" + }, + "result": { + "count": 1, + "id": "minecraft:polished_blackstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate.json b/data/minecraft/recipe/polished_deepslate.json new file mode 100644 index 00000000..45449199 --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:cobbled_deepslate" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_deepslate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/polished_deepslate_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..3a26ce6e --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:polished_deepslate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_slab.json b/data/minecraft/recipe/polished_deepslate_slab.json new file mode 100644 index 00000000..d1f4ece1 --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_deepslate" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_deepslate_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_slab_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/polished_deepslate_slab_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..a73cf719 --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_slab_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 2, + "id": "minecraft:polished_deepslate_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_slab_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/polished_deepslate_slab_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..8f33a41c --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_slab_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 2, + "id": "minecraft:polished_deepslate_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_stairs.json b/data/minecraft/recipe/polished_deepslate_stairs.json new file mode 100644 index 00000000..54244fe7 --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_deepslate" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:polished_deepslate_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..891d3141 --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:polished_deepslate_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_stairs_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/polished_deepslate_stairs_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..5e32210e --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_stairs_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:polished_deepslate_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_wall.json b/data/minecraft/recipe/polished_deepslate_wall.json new file mode 100644 index 00000000..b9260a87 --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:polished_deepslate" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_deepslate_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_wall_from_cobbled_deepslate_stonecutting.json b/data/minecraft/recipe/polished_deepslate_wall_from_cobbled_deepslate_stonecutting.json new file mode 100644 index 00000000..371a2ea6 --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_wall_from_cobbled_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:cobbled_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:polished_deepslate_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_deepslate_wall_from_polished_deepslate_stonecutting.json b/data/minecraft/recipe/polished_deepslate_wall_from_polished_deepslate_stonecutting.json new file mode 100644 index 00000000..98a39b8f --- /dev/null +++ b/data/minecraft/recipe/polished_deepslate_wall_from_polished_deepslate_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_deepslate" + }, + "result": { + "count": 1, + "id": "minecraft:polished_deepslate_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite.json b/data/minecraft/recipe/polished_diorite.json new file mode 100644 index 00000000..ea1f2ba4 --- /dev/null +++ b/data/minecraft/recipe/polished_diorite.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:diorite" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_diorite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite_from_diorite_stonecutting.json b/data/minecraft/recipe/polished_diorite_from_diorite_stonecutting.json new file mode 100644 index 00000000..d9eb266f --- /dev/null +++ b/data/minecraft/recipe/polished_diorite_from_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_diorite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite_slab.json b/data/minecraft/recipe/polished_diorite_slab.json new file mode 100644 index 00000000..6669c741 --- /dev/null +++ b/data/minecraft/recipe/polished_diorite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_diorite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_diorite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite_slab_from_diorite_stonecutting.json b/data/minecraft/recipe/polished_diorite_slab_from_diorite_stonecutting.json new file mode 100644 index 00000000..51f52d94 --- /dev/null +++ b/data/minecraft/recipe/polished_diorite_slab_from_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": { + "count": 2, + "id": "minecraft:polished_diorite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite_slab_from_polished_diorite_stonecutting.json b/data/minecraft/recipe/polished_diorite_slab_from_polished_diorite_stonecutting.json new file mode 100644 index 00000000..27a5cec1 --- /dev/null +++ b/data/minecraft/recipe/polished_diorite_slab_from_polished_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_diorite" + }, + "result": { + "count": 2, + "id": "minecraft:polished_diorite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite_stairs.json b/data/minecraft/recipe/polished_diorite_stairs.json new file mode 100644 index 00000000..73be0400 --- /dev/null +++ b/data/minecraft/recipe/polished_diorite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_diorite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:polished_diorite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite_stairs_from_diorite_stonecutting.json b/data/minecraft/recipe/polished_diorite_stairs_from_diorite_stonecutting.json new file mode 100644 index 00000000..8c2fc3f8 --- /dev/null +++ b/data/minecraft/recipe/polished_diorite_stairs_from_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_diorite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_diorite_stairs_from_polished_diorite_stonecutting.json b/data/minecraft/recipe/polished_diorite_stairs_from_polished_diorite_stonecutting.json new file mode 100644 index 00000000..67f548b6 --- /dev/null +++ b/data/minecraft/recipe/polished_diorite_stairs_from_polished_diorite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_diorite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_diorite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite.json b/data/minecraft/recipe/polished_granite.json new file mode 100644 index 00000000..09b4dd99 --- /dev/null +++ b/data/minecraft/recipe/polished_granite.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:granite" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_granite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite_from_granite_stonecutting.json b/data/minecraft/recipe/polished_granite_from_granite_stonecutting.json new file mode 100644 index 00000000..6e7a751f --- /dev/null +++ b/data/minecraft/recipe/polished_granite_from_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_granite" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite_slab.json b/data/minecraft/recipe/polished_granite_slab.json new file mode 100644 index 00000000..3c130c54 --- /dev/null +++ b/data/minecraft/recipe/polished_granite_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_granite" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_granite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite_slab_from_granite_stonecutting.json b/data/minecraft/recipe/polished_granite_slab_from_granite_stonecutting.json new file mode 100644 index 00000000..d8aa01b6 --- /dev/null +++ b/data/minecraft/recipe/polished_granite_slab_from_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": { + "count": 2, + "id": "minecraft:polished_granite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite_slab_from_polished_granite_stonecutting.json b/data/minecraft/recipe/polished_granite_slab_from_polished_granite_stonecutting.json new file mode 100644 index 00000000..a0c39f79 --- /dev/null +++ b/data/minecraft/recipe/polished_granite_slab_from_polished_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_granite" + }, + "result": { + "count": 2, + "id": "minecraft:polished_granite_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite_stairs.json b/data/minecraft/recipe/polished_granite_stairs.json new file mode 100644 index 00000000..8abed9b1 --- /dev/null +++ b/data/minecraft/recipe/polished_granite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_granite" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:polished_granite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite_stairs_from_granite_stonecutting.json b/data/minecraft/recipe/polished_granite_stairs_from_granite_stonecutting.json new file mode 100644 index 00000000..0bc3fbaf --- /dev/null +++ b/data/minecraft/recipe/polished_granite_stairs_from_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_granite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_granite_stairs_from_polished_granite_stonecutting.json b/data/minecraft/recipe/polished_granite_stairs_from_polished_granite_stonecutting.json new file mode 100644 index 00000000..c33b8177 --- /dev/null +++ b/data/minecraft/recipe/polished_granite_stairs_from_polished_granite_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_granite" + }, + "result": { + "count": 1, + "id": "minecraft:polished_granite_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff.json b/data/minecraft/recipe/polished_tuff.json new file mode 100644 index 00000000..bbc9c60f --- /dev/null +++ b/data/minecraft/recipe/polished_tuff.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:tuff" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:polished_tuff" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_from_tuff_stonecutting.json b/data/minecraft/recipe/polished_tuff_from_tuff_stonecutting.json new file mode 100644 index 00000000..2d37b14d --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:polished_tuff" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_slab.json b/data/minecraft/recipe/polished_tuff_slab.json new file mode 100644 index 00000000..4ac967e3 --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_tuff" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_tuff_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_slab_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/polished_tuff_slab_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..1c99b3ff --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_slab_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 2, + "id": "minecraft:polished_tuff_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_slab_from_tuff_stonecutting.json b/data/minecraft/recipe/polished_tuff_slab_from_tuff_stonecutting.json new file mode 100644 index 00000000..bd746a4a --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_slab_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 2, + "id": "minecraft:polished_tuff_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_stairs.json b/data/minecraft/recipe/polished_tuff_stairs.json new file mode 100644 index 00000000..f27f854b --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:polished_tuff" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:polished_tuff_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_stairs_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/polished_tuff_stairs_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..5e5297ee --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_stairs_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 1, + "id": "minecraft:polished_tuff_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_stairs_from_tuff_stonecutting.json b/data/minecraft/recipe/polished_tuff_stairs_from_tuff_stonecutting.json new file mode 100644 index 00000000..ad98d4f7 --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_stairs_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:polished_tuff_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_wall.json b/data/minecraft/recipe/polished_tuff_wall.json new file mode 100644 index 00000000..15f98fae --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:polished_tuff" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_tuff_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_wall_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/polished_tuff_wall_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..6f179470 --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_wall_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 1, + "id": "minecraft:polished_tuff_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/polished_tuff_wall_from_tuff_stonecutting.json b/data/minecraft/recipe/polished_tuff_wall_from_tuff_stonecutting.json new file mode 100644 index 00000000..3a2e5338 --- /dev/null +++ b/data/minecraft/recipe/polished_tuff_wall_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:polished_tuff_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/popped_chorus_fruit.json b/data/minecraft/recipe/popped_chorus_fruit.json new file mode 100644 index 00000000..ec043bcf --- /dev/null +++ b/data/minecraft/recipe/popped_chorus_fruit.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:chorus_fruit" + }, + "result": { + "id": "minecraft:popped_chorus_fruit" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/powered_rail.json b/data/minecraft/recipe/powered_rail.json new file mode 100644 index 00000000..eb53d700 --- /dev/null +++ b/data/minecraft/recipe/powered_rail.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stick" + }, + "R": { + "item": "minecraft:redstone" + }, + "X": { + "item": "minecraft:gold_ingot" + } + }, + "pattern": [ + "X X", + "X#X", + "XRX" + ], + "result": { + "count": 6, + "id": "minecraft:powered_rail" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine.json b/data/minecraft/recipe/prismarine.json new file mode 100644 index 00000000..acebd914 --- /dev/null +++ b/data/minecraft/recipe/prismarine.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:prismarine_shard" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:prismarine" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_brick_slab.json b/data/minecraft/recipe/prismarine_brick_slab.json new file mode 100644 index 00000000..896d9d5f --- /dev/null +++ b/data/minecraft/recipe/prismarine_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:prismarine_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:prismarine_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_brick_slab_from_prismarine_stonecutting.json b/data/minecraft/recipe/prismarine_brick_slab_from_prismarine_stonecutting.json new file mode 100644 index 00000000..cf6cfc2b --- /dev/null +++ b/data/minecraft/recipe/prismarine_brick_slab_from_prismarine_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:prismarine_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:prismarine_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_brick_stairs.json b/data/minecraft/recipe/prismarine_brick_stairs.json new file mode 100644 index 00000000..2be6b898 --- /dev/null +++ b/data/minecraft/recipe/prismarine_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:prismarine_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:prismarine_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_brick_stairs_from_prismarine_stonecutting.json b/data/minecraft/recipe/prismarine_brick_stairs_from_prismarine_stonecutting.json new file mode 100644 index 00000000..447d843a --- /dev/null +++ b/data/minecraft/recipe/prismarine_brick_stairs_from_prismarine_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:prismarine_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:prismarine_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_bricks.json b/data/minecraft/recipe/prismarine_bricks.json new file mode 100644 index 00000000..e11198a5 --- /dev/null +++ b/data/minecraft/recipe/prismarine_bricks.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + }, + { + "item": "minecraft:prismarine_shard" + } + ], + "result": { + "count": 1, + "id": "minecraft:prismarine_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_slab.json b/data/minecraft/recipe/prismarine_slab.json new file mode 100644 index 00000000..4969ffe0 --- /dev/null +++ b/data/minecraft/recipe/prismarine_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:prismarine" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:prismarine_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_slab_from_prismarine_stonecutting.json b/data/minecraft/recipe/prismarine_slab_from_prismarine_stonecutting.json new file mode 100644 index 00000000..a0d9acad --- /dev/null +++ b/data/minecraft/recipe/prismarine_slab_from_prismarine_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:prismarine" + }, + "result": { + "count": 2, + "id": "minecraft:prismarine_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_stairs.json b/data/minecraft/recipe/prismarine_stairs.json new file mode 100644 index 00000000..5b9b6128 --- /dev/null +++ b/data/minecraft/recipe/prismarine_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:prismarine" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:prismarine_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_stairs_from_prismarine_stonecutting.json b/data/minecraft/recipe/prismarine_stairs_from_prismarine_stonecutting.json new file mode 100644 index 00000000..4127ebe9 --- /dev/null +++ b/data/minecraft/recipe/prismarine_stairs_from_prismarine_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:prismarine" + }, + "result": { + "count": 1, + "id": "minecraft:prismarine_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_wall.json b/data/minecraft/recipe/prismarine_wall.json new file mode 100644 index 00000000..6712d7de --- /dev/null +++ b/data/minecraft/recipe/prismarine_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:prismarine" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:prismarine_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/prismarine_wall_from_prismarine_stonecutting.json b/data/minecraft/recipe/prismarine_wall_from_prismarine_stonecutting.json new file mode 100644 index 00000000..503e3c8e --- /dev/null +++ b/data/minecraft/recipe/prismarine_wall_from_prismarine_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:prismarine" + }, + "result": { + "count": 1, + "id": "minecraft:prismarine_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pumpkin_pie.json b/data/minecraft/recipe/pumpkin_pie.json new file mode 100644 index 00000000..b7ad3776 --- /dev/null +++ b/data/minecraft/recipe/pumpkin_pie.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:pumpkin" + }, + { + "item": "minecraft:sugar" + }, + { + "item": "minecraft:egg" + } + ], + "result": { + "count": 1, + "id": "minecraft:pumpkin_pie" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/pumpkin_seeds.json b/data/minecraft/recipe/pumpkin_seeds.json new file mode 100644 index 00000000..5fc91e8d --- /dev/null +++ b/data/minecraft/recipe/pumpkin_seeds.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:pumpkin" + } + ], + "result": { + "count": 4, + "id": "minecraft:pumpkin_seeds" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_banner.json b/data/minecraft/recipe/purple_banner.json new file mode 100644 index 00000000..e2dfb3f6 --- /dev/null +++ b/data/minecraft/recipe/purple_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:purple_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:purple_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_bed.json b/data/minecraft/recipe/purple_bed.json new file mode 100644 index 00000000..8c3a311b --- /dev/null +++ b/data/minecraft/recipe/purple_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:purple_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:purple_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_candle.json b/data/minecraft/recipe/purple_candle.json new file mode 100644 index 00000000..efbed25f --- /dev/null +++ b/data/minecraft/recipe/purple_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:purple_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:purple_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_carpet.json b/data/minecraft/recipe/purple_carpet.json new file mode 100644 index 00000000..1f5962ad --- /dev/null +++ b/data/minecraft/recipe/purple_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:purple_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:purple_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_concrete_powder.json b/data/minecraft/recipe/purple_concrete_powder.json new file mode 100644 index 00000000..e044c3b9 --- /dev/null +++ b/data/minecraft/recipe/purple_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:purple_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:purple_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_dye.json b/data/minecraft/recipe/purple_dye.json new file mode 100644 index 00000000..ff658287 --- /dev/null +++ b/data/minecraft/recipe/purple_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + { + "item": "minecraft:red_dye" + } + ], + "result": { + "count": 2, + "id": "minecraft:purple_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_glazed_terracotta.json b/data/minecraft/recipe/purple_glazed_terracotta.json new file mode 100644 index 00000000..da71ab71 --- /dev/null +++ b/data/minecraft/recipe/purple_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:purple_terracotta" + }, + "result": { + "id": "minecraft:purple_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_stained_glass.json b/data/minecraft/recipe/purple_stained_glass.json new file mode 100644 index 00000000..e2d03c56 --- /dev/null +++ b/data/minecraft/recipe/purple_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:purple_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:purple_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_stained_glass_pane.json b/data/minecraft/recipe/purple_stained_glass_pane.json new file mode 100644 index 00000000..a2fe4255 --- /dev/null +++ b/data/minecraft/recipe/purple_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:purple_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:purple_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/purple_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..06325967 --- /dev/null +++ b/data/minecraft/recipe/purple_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:purple_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:purple_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purple_terracotta.json b/data/minecraft/recipe/purple_terracotta.json new file mode 100644 index 00000000..ab1eb35c --- /dev/null +++ b/data/minecraft/recipe/purple_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:purple_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:purple_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purpur_block.json b/data/minecraft/recipe/purpur_block.json new file mode 100644 index 00000000..6f90c2a0 --- /dev/null +++ b/data/minecraft/recipe/purpur_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "F": { + "item": "minecraft:popped_chorus_fruit" + } + }, + "pattern": [ + "FF", + "FF" + ], + "result": { + "count": 4, + "id": "minecraft:purpur_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purpur_pillar.json b/data/minecraft/recipe/purpur_pillar.json new file mode 100644 index 00000000..9d68b8d8 --- /dev/null +++ b/data/minecraft/recipe/purpur_pillar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:purpur_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:purpur_pillar" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purpur_pillar_from_purpur_block_stonecutting.json b/data/minecraft/recipe/purpur_pillar_from_purpur_block_stonecutting.json new file mode 100644 index 00000000..c9bf1cc7 --- /dev/null +++ b/data/minecraft/recipe/purpur_pillar_from_purpur_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:purpur_block" + }, + "result": { + "count": 1, + "id": "minecraft:purpur_pillar" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purpur_slab.json b/data/minecraft/recipe/purpur_slab.json new file mode 100644 index 00000000..1345b04c --- /dev/null +++ b/data/minecraft/recipe/purpur_slab.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:purpur_block" + }, + { + "item": "minecraft:purpur_pillar" + } + ] + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:purpur_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purpur_slab_from_purpur_block_stonecutting.json b/data/minecraft/recipe/purpur_slab_from_purpur_block_stonecutting.json new file mode 100644 index 00000000..7e865be5 --- /dev/null +++ b/data/minecraft/recipe/purpur_slab_from_purpur_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:purpur_block" + }, + "result": { + "count": 2, + "id": "minecraft:purpur_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purpur_stairs.json b/data/minecraft/recipe/purpur_stairs.json new file mode 100644 index 00000000..31ccb4ba --- /dev/null +++ b/data/minecraft/recipe/purpur_stairs.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:purpur_block" + }, + { + "item": "minecraft:purpur_pillar" + } + ] + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:purpur_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/purpur_stairs_from_purpur_block_stonecutting.json b/data/minecraft/recipe/purpur_stairs_from_purpur_block_stonecutting.json new file mode 100644 index 00000000..eae1dd9c --- /dev/null +++ b/data/minecraft/recipe/purpur_stairs_from_purpur_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:purpur_block" + }, + "result": { + "count": 1, + "id": "minecraft:purpur_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz.json b/data/minecraft/recipe/quartz.json new file mode 100644 index 00000000..4bc5b63a --- /dev/null +++ b/data/minecraft/recipe/quartz.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.2, + "ingredient": { + "item": "minecraft:nether_quartz_ore" + }, + "result": { + "id": "minecraft:quartz" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_block.json b/data/minecraft/recipe/quartz_block.json new file mode 100644 index 00000000..f0d16a0b --- /dev/null +++ b/data/minecraft/recipe/quartz_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:quartz" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:quartz_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_bricks.json b/data/minecraft/recipe/quartz_bricks.json new file mode 100644 index 00000000..23a8b5f3 --- /dev/null +++ b/data/minecraft/recipe/quartz_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:quartz_block" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:quartz_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_bricks_from_quartz_block_stonecutting.json b/data/minecraft/recipe/quartz_bricks_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..0e426a3a --- /dev/null +++ b/data/minecraft/recipe/quartz_bricks_from_quartz_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:quartz_block" + }, + "result": { + "count": 1, + "id": "minecraft:quartz_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_from_blasting.json b/data/minecraft/recipe/quartz_from_blasting.json new file mode 100644 index 00000000..275f30ec --- /dev/null +++ b/data/minecraft/recipe/quartz_from_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.2, + "ingredient": { + "item": "minecraft:nether_quartz_ore" + }, + "result": { + "id": "minecraft:quartz" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_pillar.json b/data/minecraft/recipe/quartz_pillar.json new file mode 100644 index 00000000..3e3c9a05 --- /dev/null +++ b/data/minecraft/recipe/quartz_pillar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:quartz_block" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 2, + "id": "minecraft:quartz_pillar" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_pillar_from_quartz_block_stonecutting.json b/data/minecraft/recipe/quartz_pillar_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..cc38e9da --- /dev/null +++ b/data/minecraft/recipe/quartz_pillar_from_quartz_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:quartz_block" + }, + "result": { + "count": 1, + "id": "minecraft:quartz_pillar" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_slab.json b/data/minecraft/recipe/quartz_slab.json new file mode 100644 index 00000000..6ead9ead --- /dev/null +++ b/data/minecraft/recipe/quartz_slab.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:chiseled_quartz_block" + }, + { + "item": "minecraft:quartz_block" + }, + { + "item": "minecraft:quartz_pillar" + } + ] + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:quartz_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_slab_from_stonecutting.json b/data/minecraft/recipe/quartz_slab_from_stonecutting.json new file mode 100644 index 00000000..8c869615 --- /dev/null +++ b/data/minecraft/recipe/quartz_slab_from_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:quartz_block" + }, + "result": { + "count": 2, + "id": "minecraft:quartz_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_stairs.json b/data/minecraft/recipe/quartz_stairs.json new file mode 100644 index 00000000..366d2b64 --- /dev/null +++ b/data/minecraft/recipe/quartz_stairs.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:chiseled_quartz_block" + }, + { + "item": "minecraft:quartz_block" + }, + { + "item": "minecraft:quartz_pillar" + } + ] + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:quartz_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/quartz_stairs_from_quartz_block_stonecutting.json b/data/minecraft/recipe/quartz_stairs_from_quartz_block_stonecutting.json new file mode 100644 index 00000000..7de49c20 --- /dev/null +++ b/data/minecraft/recipe/quartz_stairs_from_quartz_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:quartz_block" + }, + "result": { + "count": 1, + "id": "minecraft:quartz_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/rabbit_stew_from_brown_mushroom.json b/data/minecraft/recipe/rabbit_stew_from_brown_mushroom.json new file mode 100644 index 00000000..834a3cfd --- /dev/null +++ b/data/minecraft/recipe/rabbit_stew_from_brown_mushroom.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "rabbit_stew", + "ingredients": [ + { + "item": "minecraft:baked_potato" + }, + { + "item": "minecraft:cooked_rabbit" + }, + { + "item": "minecraft:bowl" + }, + { + "item": "minecraft:carrot" + }, + { + "item": "minecraft:brown_mushroom" + } + ], + "result": { + "count": 1, + "id": "minecraft:rabbit_stew" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/rabbit_stew_from_red_mushroom.json b/data/minecraft/recipe/rabbit_stew_from_red_mushroom.json new file mode 100644 index 00000000..31f1ed24 --- /dev/null +++ b/data/minecraft/recipe/rabbit_stew_from_red_mushroom.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "rabbit_stew", + "ingredients": [ + { + "item": "minecraft:baked_potato" + }, + { + "item": "minecraft:cooked_rabbit" + }, + { + "item": "minecraft:bowl" + }, + { + "item": "minecraft:carrot" + }, + { + "item": "minecraft:red_mushroom" + } + ], + "result": { + "count": 1, + "id": "minecraft:rabbit_stew" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/rail.json b/data/minecraft/recipe/rail.json new file mode 100644 index 00000000..68ce7fae --- /dev/null +++ b/data/minecraft/recipe/rail.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "X X", + "X#X", + "X X" + ], + "result": { + "count": 16, + "id": "minecraft:rail" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raiser_armor_trim_smithing_template.json b/data/minecraft/recipe/raiser_armor_trim_smithing_template.json new file mode 100644 index 00000000..043eb56f --- /dev/null +++ b/data/minecraft/recipe/raiser_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:terracotta" + }, + "S": { + "item": "minecraft:raiser_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:raiser_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raiser_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/raiser_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..25250bec --- /dev/null +++ b/data/minecraft/recipe/raiser_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:raiser_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raw_copper.json b/data/minecraft/recipe/raw_copper.json new file mode 100644 index 00000000..9f549193 --- /dev/null +++ b/data/minecraft/recipe/raw_copper.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:raw_copper_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:raw_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raw_copper_block.json b/data/minecraft/recipe/raw_copper_block.json new file mode 100644 index 00000000..de0cc1d1 --- /dev/null +++ b/data/minecraft/recipe/raw_copper_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:raw_copper" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:raw_copper_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raw_gold.json b/data/minecraft/recipe/raw_gold.json new file mode 100644 index 00000000..d8cd5646 --- /dev/null +++ b/data/minecraft/recipe/raw_gold.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:raw_gold_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:raw_gold" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raw_gold_block.json b/data/minecraft/recipe/raw_gold_block.json new file mode 100644 index 00000000..f3b42df8 --- /dev/null +++ b/data/minecraft/recipe/raw_gold_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:raw_gold" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:raw_gold_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raw_iron.json b/data/minecraft/recipe/raw_iron.json new file mode 100644 index 00000000..18c818ff --- /dev/null +++ b/data/minecraft/recipe/raw_iron.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:raw_iron_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:raw_iron" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/raw_iron_block.json b/data/minecraft/recipe/raw_iron_block.json new file mode 100644 index 00000000..ea81aa8d --- /dev/null +++ b/data/minecraft/recipe/raw_iron_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:raw_iron" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:raw_iron_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/recovery_compass.json b/data/minecraft/recipe/recovery_compass.json new file mode 100644 index 00000000..952af391 --- /dev/null +++ b/data/minecraft/recipe/recovery_compass.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "C": { + "item": "minecraft:compass" + }, + "S": { + "item": "minecraft:echo_shard" + } + }, + "pattern": [ + "SSS", + "SCS", + "SSS" + ], + "result": { + "count": 1, + "id": "minecraft:recovery_compass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_banner.json b/data/minecraft/recipe/red_banner.json new file mode 100644 index 00000000..6d31bd01 --- /dev/null +++ b/data/minecraft/recipe/red_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:red_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:red_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_bed.json b/data/minecraft/recipe/red_bed.json new file mode 100644 index 00000000..5974e230 --- /dev/null +++ b/data/minecraft/recipe/red_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:red_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:red_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_candle.json b/data/minecraft/recipe/red_candle.json new file mode 100644 index 00000000..04c581de --- /dev/null +++ b/data/minecraft/recipe/red_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:red_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:red_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_carpet.json b/data/minecraft/recipe/red_carpet.json new file mode 100644 index 00000000..456e9ddb --- /dev/null +++ b/data/minecraft/recipe/red_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:red_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:red_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_concrete_powder.json b/data/minecraft/recipe/red_concrete_powder.json new file mode 100644 index 00000000..8d243a88 --- /dev/null +++ b/data/minecraft/recipe/red_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:red_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:red_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_dye_from_beetroot.json b/data/minecraft/recipe/red_dye_from_beetroot.json new file mode 100644 index 00000000..b4e98b8c --- /dev/null +++ b/data/minecraft/recipe/red_dye_from_beetroot.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "red_dye", + "ingredients": [ + { + "item": "minecraft:beetroot" + } + ], + "result": { + "count": 1, + "id": "minecraft:red_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_dye_from_poppy.json b/data/minecraft/recipe/red_dye_from_poppy.json new file mode 100644 index 00000000..2d8b3910 --- /dev/null +++ b/data/minecraft/recipe/red_dye_from_poppy.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "red_dye", + "ingredients": [ + { + "item": "minecraft:poppy" + } + ], + "result": { + "count": 1, + "id": "minecraft:red_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_dye_from_rose_bush.json b/data/minecraft/recipe/red_dye_from_rose_bush.json new file mode 100644 index 00000000..7575482d --- /dev/null +++ b/data/minecraft/recipe/red_dye_from_rose_bush.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "red_dye", + "ingredients": [ + { + "item": "minecraft:rose_bush" + } + ], + "result": { + "count": 2, + "id": "minecraft:red_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_dye_from_tulip.json b/data/minecraft/recipe/red_dye_from_tulip.json new file mode 100644 index 00000000..295a0fb0 --- /dev/null +++ b/data/minecraft/recipe/red_dye_from_tulip.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "red_dye", + "ingredients": [ + { + "item": "minecraft:red_tulip" + } + ], + "result": { + "count": 1, + "id": "minecraft:red_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_glazed_terracotta.json b/data/minecraft/recipe/red_glazed_terracotta.json new file mode 100644 index 00000000..4d111f4b --- /dev/null +++ b/data/minecraft/recipe/red_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:red_terracotta" + }, + "result": { + "id": "minecraft:red_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_nether_brick_slab.json b/data/minecraft/recipe/red_nether_brick_slab.json new file mode 100644 index 00000000..d0c178c3 --- /dev/null +++ b/data/minecraft/recipe/red_nether_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:red_nether_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:red_nether_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_nether_brick_slab_from_red_nether_bricks_stonecutting.json b/data/minecraft/recipe/red_nether_brick_slab_from_red_nether_bricks_stonecutting.json new file mode 100644 index 00000000..81095bb7 --- /dev/null +++ b/data/minecraft/recipe/red_nether_brick_slab_from_red_nether_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_nether_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:red_nether_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_nether_brick_stairs.json b/data/minecraft/recipe/red_nether_brick_stairs.json new file mode 100644 index 00000000..aadd6066 --- /dev/null +++ b/data/minecraft/recipe/red_nether_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:red_nether_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:red_nether_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_nether_brick_stairs_from_red_nether_bricks_stonecutting.json b/data/minecraft/recipe/red_nether_brick_stairs_from_red_nether_bricks_stonecutting.json new file mode 100644 index 00000000..823c38bf --- /dev/null +++ b/data/minecraft/recipe/red_nether_brick_stairs_from_red_nether_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_nether_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:red_nether_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_nether_brick_wall.json b/data/minecraft/recipe/red_nether_brick_wall.json new file mode 100644 index 00000000..f3f083be --- /dev/null +++ b/data/minecraft/recipe/red_nether_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:red_nether_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:red_nether_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_nether_brick_wall_from_red_nether_bricks_stonecutting.json b/data/minecraft/recipe/red_nether_brick_wall_from_red_nether_bricks_stonecutting.json new file mode 100644 index 00000000..d7a465cc --- /dev/null +++ b/data/minecraft/recipe/red_nether_brick_wall_from_red_nether_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_nether_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:red_nether_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_nether_bricks.json b/data/minecraft/recipe/red_nether_bricks.json new file mode 100644 index 00000000..4a85f40c --- /dev/null +++ b/data/minecraft/recipe/red_nether_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "N": { + "item": "minecraft:nether_brick" + }, + "W": { + "item": "minecraft:nether_wart" + } + }, + "pattern": [ + "NW", + "WN" + ], + "result": { + "count": 1, + "id": "minecraft:red_nether_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_sandstone.json b/data/minecraft/recipe/red_sandstone.json new file mode 100644 index 00000000..ad04e67f --- /dev/null +++ b/data/minecraft/recipe/red_sandstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:red_sand" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:red_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_sandstone_slab.json b/data/minecraft/recipe/red_sandstone_slab.json new file mode 100644 index 00000000..3687a5a4 --- /dev/null +++ b/data/minecraft/recipe/red_sandstone_slab.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:red_sandstone" + }, + { + "item": "minecraft:chiseled_red_sandstone" + } + ] + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:red_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_sandstone_slab_from_red_sandstone_stonecutting.json b/data/minecraft/recipe/red_sandstone_slab_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..c9e77aec --- /dev/null +++ b/data/minecraft/recipe/red_sandstone_slab_from_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:red_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_sandstone_stairs.json b/data/minecraft/recipe/red_sandstone_stairs.json new file mode 100644 index 00000000..5f936bae --- /dev/null +++ b/data/minecraft/recipe/red_sandstone_stairs.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:red_sandstone" + }, + { + "item": "minecraft:chiseled_red_sandstone" + }, + { + "item": "minecraft:cut_red_sandstone" + } + ] + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:red_sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_sandstone_stairs_from_red_sandstone_stonecutting.json b/data/minecraft/recipe/red_sandstone_stairs_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..50035c62 --- /dev/null +++ b/data/minecraft/recipe/red_sandstone_stairs_from_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:red_sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_sandstone_wall.json b/data/minecraft/recipe/red_sandstone_wall.json new file mode 100644 index 00000000..d8fc1373 --- /dev/null +++ b/data/minecraft/recipe/red_sandstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:red_sandstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:red_sandstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_sandstone_wall_from_red_sandstone_stonecutting.json b/data/minecraft/recipe/red_sandstone_wall_from_red_sandstone_stonecutting.json new file mode 100644 index 00000000..98d391e9 --- /dev/null +++ b/data/minecraft/recipe/red_sandstone_wall_from_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:red_sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:red_sandstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_stained_glass.json b/data/minecraft/recipe/red_stained_glass.json new file mode 100644 index 00000000..11e393b7 --- /dev/null +++ b/data/minecraft/recipe/red_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:red_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:red_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_stained_glass_pane.json b/data/minecraft/recipe/red_stained_glass_pane.json new file mode 100644 index 00000000..e2b9fa18 --- /dev/null +++ b/data/minecraft/recipe/red_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:red_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:red_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/red_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..9bba70da --- /dev/null +++ b/data/minecraft/recipe/red_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:red_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:red_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/red_terracotta.json b/data/minecraft/recipe/red_terracotta.json new file mode 100644 index 00000000..49560234 --- /dev/null +++ b/data/minecraft/recipe/red_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:red_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:red_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone.json b/data/minecraft/recipe/redstone.json new file mode 100644 index 00000000..36ff3aa0 --- /dev/null +++ b/data/minecraft/recipe/redstone.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "item": "minecraft:redstone_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:redstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone_block.json b/data/minecraft/recipe/redstone_block.json new file mode 100644 index 00000000..d3d71a16 --- /dev/null +++ b/data/minecraft/recipe/redstone_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:redstone_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone_from_blasting_deepslate_redstone_ore.json b/data/minecraft/recipe/redstone_from_blasting_deepslate_redstone_ore.json new file mode 100644 index 00000000..58ee2a5a --- /dev/null +++ b/data/minecraft/recipe/redstone_from_blasting_deepslate_redstone_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "blocks", + "cookingtime": 100, + "experience": 0.7, + "group": "redstone", + "ingredient": { + "item": "minecraft:deepslate_redstone_ore" + }, + "result": { + "id": "minecraft:redstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone_from_blasting_redstone_ore.json b/data/minecraft/recipe/redstone_from_blasting_redstone_ore.json new file mode 100644 index 00000000..83973044 --- /dev/null +++ b/data/minecraft/recipe/redstone_from_blasting_redstone_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "blocks", + "cookingtime": 100, + "experience": 0.7, + "group": "redstone", + "ingredient": { + "item": "minecraft:redstone_ore" + }, + "result": { + "id": "minecraft:redstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone_from_smelting_deepslate_redstone_ore.json b/data/minecraft/recipe/redstone_from_smelting_deepslate_redstone_ore.json new file mode 100644 index 00000000..ae7989ea --- /dev/null +++ b/data/minecraft/recipe/redstone_from_smelting_deepslate_redstone_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.7, + "group": "redstone", + "ingredient": { + "item": "minecraft:deepslate_redstone_ore" + }, + "result": { + "id": "minecraft:redstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone_from_smelting_redstone_ore.json b/data/minecraft/recipe/redstone_from_smelting_redstone_ore.json new file mode 100644 index 00000000..25de9eed --- /dev/null +++ b/data/minecraft/recipe/redstone_from_smelting_redstone_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.7, + "group": "redstone", + "ingredient": { + "item": "minecraft:redstone_ore" + }, + "result": { + "id": "minecraft:redstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone_lamp.json b/data/minecraft/recipe/redstone_lamp.json new file mode 100644 index 00000000..1a335b1e --- /dev/null +++ b/data/minecraft/recipe/redstone_lamp.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "G": { + "item": "minecraft:glowstone" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " R ", + "RGR", + " R " + ], + "result": { + "count": 1, + "id": "minecraft:redstone_lamp" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/redstone_torch.json b/data/minecraft/recipe/redstone_torch.json new file mode 100644 index 00000000..84be789a --- /dev/null +++ b/data/minecraft/recipe/redstone_torch.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "X", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:redstone_torch" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/repair_item.json b/data/minecraft/recipe/repair_item.json new file mode 100644 index 00000000..5ea3869a --- /dev/null +++ b/data/minecraft/recipe/repair_item.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_repairitem", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/repeater.json b/data/minecraft/recipe/repeater.json new file mode 100644 index 00000000..1821c255 --- /dev/null +++ b/data/minecraft/recipe/repeater.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:redstone_torch" + }, + "I": { + "item": "minecraft:stone" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "#X#", + "III" + ], + "result": { + "count": 1, + "id": "minecraft:repeater" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/respawn_anchor.json b/data/minecraft/recipe/respawn_anchor.json new file mode 100644 index 00000000..26e570a3 --- /dev/null +++ b/data/minecraft/recipe/respawn_anchor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "G": { + "item": "minecraft:glowstone" + }, + "O": { + "item": "minecraft:crying_obsidian" + } + }, + "pattern": [ + "OOO", + "GGG", + "OOO" + ], + "result": { + "count": 1, + "id": "minecraft:respawn_anchor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/rib_armor_trim_smithing_template.json b/data/minecraft/recipe/rib_armor_trim_smithing_template.json new file mode 100644 index 00000000..3cd0e67d --- /dev/null +++ b/data/minecraft/recipe/rib_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:netherrack" + }, + "S": { + "item": "minecraft:rib_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:rib_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/rib_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/rib_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..2ec1b6a9 --- /dev/null +++ b/data/minecraft/recipe/rib_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:rib_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sandstone.json b/data/minecraft/recipe/sandstone.json new file mode 100644 index 00000000..f907bd1d --- /dev/null +++ b/data/minecraft/recipe/sandstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:sand" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sandstone_slab.json b/data/minecraft/recipe/sandstone_slab.json new file mode 100644 index 00000000..4e27d957 --- /dev/null +++ b/data/minecraft/recipe/sandstone_slab.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:sandstone" + }, + { + "item": "minecraft:chiseled_sandstone" + } + ] + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sandstone_slab_from_sandstone_stonecutting.json b/data/minecraft/recipe/sandstone_slab_from_sandstone_stonecutting.json new file mode 100644 index 00000000..0eaed176 --- /dev/null +++ b/data/minecraft/recipe/sandstone_slab_from_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sandstone_stairs.json b/data/minecraft/recipe/sandstone_stairs.json new file mode 100644 index 00000000..5606110c --- /dev/null +++ b/data/minecraft/recipe/sandstone_stairs.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": [ + { + "item": "minecraft:sandstone" + }, + { + "item": "minecraft:chiseled_sandstone" + }, + { + "item": "minecraft:cut_sandstone" + } + ] + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sandstone_stairs_from_sandstone_stonecutting.json b/data/minecraft/recipe/sandstone_stairs_from_sandstone_stonecutting.json new file mode 100644 index 00000000..a6ad01e2 --- /dev/null +++ b/data/minecraft/recipe/sandstone_stairs_from_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sandstone_wall.json b/data/minecraft/recipe/sandstone_wall.json new file mode 100644 index 00000000..e056bd75 --- /dev/null +++ b/data/minecraft/recipe/sandstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:sandstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:sandstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sandstone_wall_from_sandstone_stonecutting.json b/data/minecraft/recipe/sandstone_wall_from_sandstone_stonecutting.json new file mode 100644 index 00000000..0fa3ef98 --- /dev/null +++ b/data/minecraft/recipe/sandstone_wall_from_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:sandstone_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/scaffolding.json b/data/minecraft/recipe/scaffolding.json new file mode 100644 index 00000000..b63af0c4 --- /dev/null +++ b/data/minecraft/recipe/scaffolding.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "I": { + "item": "minecraft:bamboo" + }, + "~": { + "item": "minecraft:string" + } + }, + "pattern": [ + "I~I", + "I I", + "I I" + ], + "result": { + "count": 6, + "id": "minecraft:scaffolding" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sea_lantern.json b/data/minecraft/recipe/sea_lantern.json new file mode 100644 index 00000000..c9ecf071 --- /dev/null +++ b/data/minecraft/recipe/sea_lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "C": { + "item": "minecraft:prismarine_crystals" + }, + "S": { + "item": "minecraft:prismarine_shard" + } + }, + "pattern": [ + "SCS", + "CCC", + "SCS" + ], + "result": { + "count": 1, + "id": "minecraft:sea_lantern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sentry_armor_trim_smithing_template.json b/data/minecraft/recipe/sentry_armor_trim_smithing_template.json new file mode 100644 index 00000000..e6e6dee7 --- /dev/null +++ b/data/minecraft/recipe/sentry_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:cobblestone" + }, + "S": { + "item": "minecraft:sentry_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:sentry_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sentry_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/sentry_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..5099fe1a --- /dev/null +++ b/data/minecraft/recipe/sentry_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:sentry_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/shaper_armor_trim_smithing_template.json b/data/minecraft/recipe/shaper_armor_trim_smithing_template.json new file mode 100644 index 00000000..b785a45e --- /dev/null +++ b/data/minecraft/recipe/shaper_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:terracotta" + }, + "S": { + "item": "minecraft:shaper_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:shaper_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/shaper_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/shaper_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..8adf0be5 --- /dev/null +++ b/data/minecraft/recipe/shaper_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:shaper_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/shears.json b/data/minecraft/recipe/shears.json new file mode 100644 index 00000000..b66335ca --- /dev/null +++ b/data/minecraft/recipe/shears.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + " #", + "# " + ], + "result": { + "count": 1, + "id": "minecraft:shears" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/shield.json b/data/minecraft/recipe/shield.json new file mode 100644 index 00000000..9a7a82cb --- /dev/null +++ b/data/minecraft/recipe/shield.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "W": { + "tag": "minecraft:planks" + }, + "o": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "WoW", + "WWW", + " W " + ], + "result": { + "count": 1, + "id": "minecraft:shield" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/shield_decoration.json b/data/minecraft/recipe/shield_decoration.json new file mode 100644 index 00000000..3b9facc8 --- /dev/null +++ b/data/minecraft/recipe/shield_decoration.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_shielddecoration", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/shulker_box.json b/data/minecraft/recipe/shulker_box.json new file mode 100644 index 00000000..ae36ba9d --- /dev/null +++ b/data/minecraft/recipe/shulker_box.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:chest" + }, + "-": { + "item": "minecraft:shulker_shell" + } + }, + "pattern": [ + "-", + "#", + "-" + ], + "result": { + "count": 1, + "id": "minecraft:shulker_box" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/shulker_box_coloring.json b/data/minecraft/recipe/shulker_box_coloring.json new file mode 100644 index 00000000..21d4783c --- /dev/null +++ b/data/minecraft/recipe/shulker_box_coloring.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_shulkerboxcoloring", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/silence_armor_trim_smithing_template.json b/data/minecraft/recipe/silence_armor_trim_smithing_template.json new file mode 100644 index 00000000..f05d33ac --- /dev/null +++ b/data/minecraft/recipe/silence_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:cobbled_deepslate" + }, + "S": { + "item": "minecraft:silence_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:silence_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/silence_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/silence_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..0ca3d145 --- /dev/null +++ b/data/minecraft/recipe/silence_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:silence_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/skull_banner_pattern.json b/data/minecraft/recipe/skull_banner_pattern.json new file mode 100644 index 00000000..135f9a1b --- /dev/null +++ b/data/minecraft/recipe/skull_banner_pattern.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:paper" + }, + { + "item": "minecraft:wither_skeleton_skull" + } + ], + "result": { + "count": 1, + "id": "minecraft:skull_banner_pattern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/slime_ball.json b/data/minecraft/recipe/slime_ball.json new file mode 100644 index 00000000..fb3c0a3e --- /dev/null +++ b/data/minecraft/recipe/slime_ball.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:slime_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:slime_ball" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/slime_block.json b/data/minecraft/recipe/slime_block.json new file mode 100644 index 00000000..ba2d3be3 --- /dev/null +++ b/data/minecraft/recipe/slime_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:slime_ball" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:slime_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smithing_table.json b/data/minecraft/recipe/smithing_table.json new file mode 100644 index 00000000..5be9a218 --- /dev/null +++ b/data/minecraft/recipe/smithing_table.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "@": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "@@", + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:smithing_table" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smoker.json b/data/minecraft/recipe/smoker.json new file mode 100644 index 00000000..a9966241 --- /dev/null +++ b/data/minecraft/recipe/smoker.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:logs" + }, + "X": { + "item": "minecraft:furnace" + } + }, + "pattern": [ + " # ", + "#X#", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:smoker" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_basalt.json b/data/minecraft/recipe/smooth_basalt.json new file mode 100644 index 00000000..f594a027 --- /dev/null +++ b/data/minecraft/recipe/smooth_basalt.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:basalt" + }, + "result": { + "id": "minecraft:smooth_basalt" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_quartz.json b/data/minecraft/recipe/smooth_quartz.json new file mode 100644 index 00000000..003ca9af --- /dev/null +++ b/data/minecraft/recipe/smooth_quartz.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:quartz_block" + }, + "result": { + "id": "minecraft:smooth_quartz" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_quartz_slab.json b/data/minecraft/recipe/smooth_quartz_slab.json new file mode 100644 index 00000000..ff491613 --- /dev/null +++ b/data/minecraft/recipe/smooth_quartz_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:smooth_quartz" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:smooth_quartz_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_quartz_slab_from_smooth_quartz_stonecutting.json b/data/minecraft/recipe/smooth_quartz_slab_from_smooth_quartz_stonecutting.json new file mode 100644 index 00000000..8c7279be --- /dev/null +++ b/data/minecraft/recipe/smooth_quartz_slab_from_smooth_quartz_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:smooth_quartz" + }, + "result": { + "count": 2, + "id": "minecraft:smooth_quartz_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_quartz_stairs.json b/data/minecraft/recipe/smooth_quartz_stairs.json new file mode 100644 index 00000000..c862c4ba --- /dev/null +++ b/data/minecraft/recipe/smooth_quartz_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:smooth_quartz" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:smooth_quartz_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_quartz_stairs_from_smooth_quartz_stonecutting.json b/data/minecraft/recipe/smooth_quartz_stairs_from_smooth_quartz_stonecutting.json new file mode 100644 index 00000000..1fa8bfc6 --- /dev/null +++ b/data/minecraft/recipe/smooth_quartz_stairs_from_smooth_quartz_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:smooth_quartz" + }, + "result": { + "count": 1, + "id": "minecraft:smooth_quartz_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_red_sandstone.json b/data/minecraft/recipe/smooth_red_sandstone.json new file mode 100644 index 00000000..c42c175e --- /dev/null +++ b/data/minecraft/recipe/smooth_red_sandstone.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:red_sandstone" + }, + "result": { + "id": "minecraft:smooth_red_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_red_sandstone_slab.json b/data/minecraft/recipe/smooth_red_sandstone_slab.json new file mode 100644 index 00000000..71c1b318 --- /dev/null +++ b/data/minecraft/recipe/smooth_red_sandstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:smooth_red_sandstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:smooth_red_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting.json b/data/minecraft/recipe/smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting.json new file mode 100644 index 00000000..4883035a --- /dev/null +++ b/data/minecraft/recipe/smooth_red_sandstone_slab_from_smooth_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:smooth_red_sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:smooth_red_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_red_sandstone_stairs.json b/data/minecraft/recipe/smooth_red_sandstone_stairs.json new file mode 100644 index 00000000..3712cec8 --- /dev/null +++ b/data/minecraft/recipe/smooth_red_sandstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:smooth_red_sandstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:smooth_red_sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting.json b/data/minecraft/recipe/smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting.json new file mode 100644 index 00000000..3fc8f25b --- /dev/null +++ b/data/minecraft/recipe/smooth_red_sandstone_stairs_from_smooth_red_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:smooth_red_sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:smooth_red_sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_sandstone.json b/data/minecraft/recipe/smooth_sandstone.json new file mode 100644 index 00000000..fe4cc526 --- /dev/null +++ b/data/minecraft/recipe/smooth_sandstone.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:sandstone" + }, + "result": { + "id": "minecraft:smooth_sandstone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_sandstone_slab.json b/data/minecraft/recipe/smooth_sandstone_slab.json new file mode 100644 index 00000000..17e6bf5d --- /dev/null +++ b/data/minecraft/recipe/smooth_sandstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:smooth_sandstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:smooth_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_sandstone_slab_from_smooth_sandstone_stonecutting.json b/data/minecraft/recipe/smooth_sandstone_slab_from_smooth_sandstone_stonecutting.json new file mode 100644 index 00000000..7ce33786 --- /dev/null +++ b/data/minecraft/recipe/smooth_sandstone_slab_from_smooth_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:smooth_sandstone" + }, + "result": { + "count": 2, + "id": "minecraft:smooth_sandstone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_sandstone_stairs.json b/data/minecraft/recipe/smooth_sandstone_stairs.json new file mode 100644 index 00000000..32b7b6d3 --- /dev/null +++ b/data/minecraft/recipe/smooth_sandstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:smooth_sandstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:smooth_sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting.json b/data/minecraft/recipe/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting.json new file mode 100644 index 00000000..18ed9bdd --- /dev/null +++ b/data/minecraft/recipe/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:smooth_sandstone" + }, + "result": { + "count": 1, + "id": "minecraft:smooth_sandstone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_stone.json b/data/minecraft/recipe/smooth_stone.json new file mode 100644 index 00000000..16782810 --- /dev/null +++ b/data/minecraft/recipe/smooth_stone.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "id": "minecraft:smooth_stone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_stone_slab.json b/data/minecraft/recipe/smooth_stone_slab.json new file mode 100644 index 00000000..641a012b --- /dev/null +++ b/data/minecraft/recipe/smooth_stone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:smooth_stone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:smooth_stone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/smooth_stone_slab_from_smooth_stone_stonecutting.json b/data/minecraft/recipe/smooth_stone_slab_from_smooth_stone_stonecutting.json new file mode 100644 index 00000000..01e6876b --- /dev/null +++ b/data/minecraft/recipe/smooth_stone_slab_from_smooth_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:smooth_stone" + }, + "result": { + "count": 2, + "id": "minecraft:smooth_stone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/snout_armor_trim_smithing_template.json b/data/minecraft/recipe/snout_armor_trim_smithing_template.json new file mode 100644 index 00000000..711ae3c5 --- /dev/null +++ b/data/minecraft/recipe/snout_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:blackstone" + }, + "S": { + "item": "minecraft:snout_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:snout_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/snout_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/snout_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..8450f8f5 --- /dev/null +++ b/data/minecraft/recipe/snout_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:snout_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/snow.json b/data/minecraft/recipe/snow.json new file mode 100644 index 00000000..ea033ff8 --- /dev/null +++ b/data/minecraft/recipe/snow.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:snow_block" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:snow" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/snow_block.json b/data/minecraft/recipe/snow_block.json new file mode 100644 index 00000000..10b6d1fe --- /dev/null +++ b/data/minecraft/recipe/snow_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:snowball" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:snow_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/soul_campfire.json b/data/minecraft/recipe/soul_campfire.json new file mode 100644 index 00000000..aab9e25b --- /dev/null +++ b/data/minecraft/recipe/soul_campfire.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "minecraft:soul_fire_base_blocks" + }, + "L": { + "tag": "minecraft:logs" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " S ", + "S#S", + "LLL" + ], + "result": { + "count": 1, + "id": "minecraft:soul_campfire" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/soul_lantern.json b/data/minecraft/recipe/soul_lantern.json new file mode 100644 index 00000000..e3bfc790 --- /dev/null +++ b/data/minecraft/recipe/soul_lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:soul_torch" + }, + "X": { + "item": "minecraft:iron_nugget" + } + }, + "pattern": [ + "XXX", + "X#X", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:soul_lantern" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/soul_torch.json b/data/minecraft/recipe/soul_torch.json new file mode 100644 index 00000000..f61013f5 --- /dev/null +++ b/data/minecraft/recipe/soul_torch.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stick" + }, + "S": { + "tag": "minecraft:soul_fire_base_blocks" + }, + "X": [ + { + "item": "minecraft:coal" + }, + { + "item": "minecraft:charcoal" + } + ] + }, + "pattern": [ + "X", + "#", + "S" + ], + "result": { + "count": 4, + "id": "minecraft:soul_torch" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spectral_arrow.json b/data/minecraft/recipe/spectral_arrow.json new file mode 100644 index 00000000..5e6eabe1 --- /dev/null +++ b/data/minecraft/recipe/spectral_arrow.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:glowstone_dust" + }, + "X": { + "item": "minecraft:arrow" + } + }, + "pattern": [ + " # ", + "#X#", + " # " + ], + "result": { + "count": 2, + "id": "minecraft:spectral_arrow" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spire_armor_trim_smithing_template.json b/data/minecraft/recipe/spire_armor_trim_smithing_template.json new file mode 100644 index 00000000..698ce6f7 --- /dev/null +++ b/data/minecraft/recipe/spire_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:purpur_block" + }, + "S": { + "item": "minecraft:spire_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:spire_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spire_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/spire_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..c3ce1c5c --- /dev/null +++ b/data/minecraft/recipe/spire_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:spire_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sponge.json b/data/minecraft/recipe/sponge.json new file mode 100644 index 00000000..5ace4580 --- /dev/null +++ b/data/minecraft/recipe/sponge.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.15, + "ingredient": { + "item": "minecraft:wet_sponge" + }, + "result": { + "id": "minecraft:sponge" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_boat.json b/data/minecraft/recipe/spruce_boat.json new file mode 100644 index 00000000..d7b1e8b5 --- /dev/null +++ b/data/minecraft/recipe/spruce_boat.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "boat", + "key": { + "#": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:spruce_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_button.json b/data/minecraft/recipe/spruce_button.json new file mode 100644 index 00000000..f4312533 --- /dev/null +++ b/data/minecraft/recipe/spruce_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:spruce_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:spruce_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_chest_boat.json b/data/minecraft/recipe/spruce_chest_boat.json new file mode 100644 index 00000000..21e5d4f5 --- /dev/null +++ b/data/minecraft/recipe/spruce_chest_boat.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "chest_boat", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:spruce_boat" + } + ], + "result": { + "count": 1, + "id": "minecraft:spruce_chest_boat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_door.json b/data/minecraft/recipe/spruce_door.json new file mode 100644 index 00000000..ccb9a390 --- /dev/null +++ b/data/minecraft/recipe/spruce_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:spruce_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_fence.json b/data/minecraft/recipe/spruce_fence.json new file mode 100644 index 00000000..c6b37439 --- /dev/null +++ b/data/minecraft/recipe/spruce_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:spruce_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_fence_gate.json b/data/minecraft/recipe/spruce_fence_gate.json new file mode 100644 index 00000000..2320f30e --- /dev/null +++ b/data/minecraft/recipe/spruce_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:spruce_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_hanging_sign.json b/data/minecraft/recipe/spruce_hanging_sign.json new file mode 100644 index 00000000..5a7029a7 --- /dev/null +++ b/data/minecraft/recipe/spruce_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_spruce_log" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:spruce_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_planks.json b/data/minecraft/recipe/spruce_planks.json new file mode 100644 index 00000000..d5277931 --- /dev/null +++ b/data/minecraft/recipe/spruce_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:spruce_logs" + } + ], + "result": { + "count": 4, + "id": "minecraft:spruce_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_pressure_plate.json b/data/minecraft/recipe/spruce_pressure_plate.json new file mode 100644 index 00000000..7d7626c5 --- /dev/null +++ b/data/minecraft/recipe/spruce_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:spruce_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_sign.json b/data/minecraft/recipe/spruce_sign.json new file mode 100644 index 00000000..0e06445d --- /dev/null +++ b/data/minecraft/recipe/spruce_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:spruce_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:spruce_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_slab.json b/data/minecraft/recipe/spruce_slab.json new file mode 100644 index 00000000..3b4fcaa4 --- /dev/null +++ b/data/minecraft/recipe/spruce_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:spruce_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_stairs.json b/data/minecraft/recipe/spruce_stairs.json new file mode 100644 index 00000000..19d9d0c0 --- /dev/null +++ b/data/minecraft/recipe/spruce_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:spruce_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_trapdoor.json b/data/minecraft/recipe/spruce_trapdoor.json new file mode 100644 index 00000000..124e3d9c --- /dev/null +++ b/data/minecraft/recipe/spruce_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:spruce_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:spruce_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spruce_wood.json b/data/minecraft/recipe/spruce_wood.json new file mode 100644 index 00000000..1bb2dc4b --- /dev/null +++ b/data/minecraft/recipe/spruce_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:spruce_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:spruce_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/spyglass.json b/data/minecraft/recipe/spyglass.json new file mode 100644 index 00000000..79d1ab2c --- /dev/null +++ b/data/minecraft/recipe/spyglass.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:amethyst_shard" + }, + "X": { + "item": "minecraft:copper_ingot" + } + }, + "pattern": [ + " # ", + " X ", + " X " + ], + "result": { + "count": 1, + "id": "minecraft:spyglass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stick.json b/data/minecraft/recipe/stick.json new file mode 100644 index 00000000..cae5e52a --- /dev/null +++ b/data/minecraft/recipe/stick.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "sticks", + "key": { + "#": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 4, + "id": "minecraft:stick" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stick_from_bamboo_item.json b/data/minecraft/recipe/stick_from_bamboo_item.json new file mode 100644 index 00000000..8bd43124 --- /dev/null +++ b/data/minecraft/recipe/stick_from_bamboo_item.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "sticks", + "key": { + "#": { + "item": "minecraft:bamboo" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:stick" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sticky_piston.json b/data/minecraft/recipe/sticky_piston.json new file mode 100644 index 00000000..a24955ff --- /dev/null +++ b/data/minecraft/recipe/sticky_piston.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "P": { + "item": "minecraft:piston" + }, + "S": { + "item": "minecraft:slime_ball" + } + }, + "pattern": [ + "S", + "P" + ], + "result": { + "count": 1, + "id": "minecraft:sticky_piston" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone.json b/data/minecraft/recipe/stone.json new file mode 100644 index 00000000..e16a0d0a --- /dev/null +++ b/data/minecraft/recipe/stone.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:cobblestone" + }, + "result": { + "id": "minecraft:stone" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_axe.json b/data/minecraft/recipe/stone_axe.json new file mode 100644 index 00000000..1de18e38 --- /dev/null +++ b/data/minecraft/recipe/stone_axe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "pattern": [ + "XX", + "X#", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:stone_axe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_slab.json b/data/minecraft/recipe/stone_brick_slab.json new file mode 100644 index 00000000..24819921 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:stone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_slab_from_stone_bricks_stonecutting.json b/data/minecraft/recipe/stone_brick_slab_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..e56107e0 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_slab_from_stone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_slab_from_stone_stonecutting.json b/data/minecraft/recipe/stone_brick_slab_from_stone_stonecutting.json new file mode 100644 index 00000000..7a34cb85 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_slab_from_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "count": 2, + "id": "minecraft:stone_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_stairs.json b/data/minecraft/recipe/stone_brick_stairs.json new file mode 100644 index 00000000..9c9ba7f9 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:stone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_stairs_from_stone_bricks_stonecutting.json b/data/minecraft/recipe/stone_brick_stairs_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..bba72b15 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_stairs_from_stone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_stairs_from_stone_stonecutting.json b/data/minecraft/recipe/stone_brick_stairs_from_stone_stonecutting.json new file mode 100644 index 00000000..a640ba4e --- /dev/null +++ b/data/minecraft/recipe/stone_brick_stairs_from_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "count": 1, + "id": "minecraft:stone_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_wall.json b/data/minecraft/recipe/stone_brick_wall.json new file mode 100644 index 00000000..de144c56 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_wall_from_stone_bricks_stonecutting.json b/data/minecraft/recipe/stone_brick_wall_from_stone_bricks_stonecutting.json new file mode 100644 index 00000000..b36f84d1 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_wall_from_stone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_brick_walls_from_stone_stonecutting.json b/data/minecraft/recipe/stone_brick_walls_from_stone_stonecutting.json new file mode 100644 index 00000000..9d2a2ce9 --- /dev/null +++ b/data/minecraft/recipe/stone_brick_walls_from_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "count": 1, + "id": "minecraft:stone_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_bricks.json b/data/minecraft/recipe/stone_bricks.json new file mode 100644 index 00000000..3dfbecac --- /dev/null +++ b/data/minecraft/recipe/stone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:stone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_bricks_from_stone_stonecutting.json b/data/minecraft/recipe/stone_bricks_from_stone_stonecutting.json new file mode 100644 index 00000000..8a9567e0 --- /dev/null +++ b/data/minecraft/recipe/stone_bricks_from_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "count": 1, + "id": "minecraft:stone_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_button.json b/data/minecraft/recipe/stone_button.json new file mode 100644 index 00000000..69f3d243 --- /dev/null +++ b/data/minecraft/recipe/stone_button.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "item": "minecraft:stone" + } + ], + "result": { + "count": 1, + "id": "minecraft:stone_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_hoe.json b/data/minecraft/recipe/stone_hoe.json new file mode 100644 index 00000000..87391a19 --- /dev/null +++ b/data/minecraft/recipe/stone_hoe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "pattern": [ + "XX", + " #", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:stone_hoe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_pickaxe.json b/data/minecraft/recipe/stone_pickaxe.json new file mode 100644 index 00000000..f86f2076 --- /dev/null +++ b/data/minecraft/recipe/stone_pickaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "pattern": [ + "XXX", + " # ", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:stone_pickaxe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_pressure_plate.json b/data/minecraft/recipe/stone_pressure_plate.json new file mode 100644 index 00000000..5ed08a50 --- /dev/null +++ b/data/minecraft/recipe/stone_pressure_plate.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "item": "minecraft:stone" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:stone_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_shovel.json b/data/minecraft/recipe/stone_shovel.json new file mode 100644 index 00000000..f2eb9d66 --- /dev/null +++ b/data/minecraft/recipe/stone_shovel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "pattern": [ + "X", + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:stone_shovel" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_slab.json b/data/minecraft/recipe/stone_slab.json new file mode 100644 index 00000000..faf55c2f --- /dev/null +++ b/data/minecraft/recipe/stone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:stone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:stone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_slab_from_stone_stonecutting.json b/data/minecraft/recipe/stone_slab_from_stone_stonecutting.json new file mode 100644 index 00000000..3542f7c1 --- /dev/null +++ b/data/minecraft/recipe/stone_slab_from_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "count": 2, + "id": "minecraft:stone_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_stairs.json b/data/minecraft/recipe/stone_stairs.json new file mode 100644 index 00000000..1012f5cd --- /dev/null +++ b/data/minecraft/recipe/stone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:stone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:stone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_stairs_from_stone_stonecutting.json b/data/minecraft/recipe/stone_stairs_from_stone_stonecutting.json new file mode 100644 index 00000000..d7ae1ccf --- /dev/null +++ b/data/minecraft/recipe/stone_stairs_from_stone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:stone" + }, + "result": { + "count": 1, + "id": "minecraft:stone_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stone_sword.json b/data/minecraft/recipe/stone_sword.json new file mode 100644 index 00000000..73fa937d --- /dev/null +++ b/data/minecraft/recipe/stone_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "pattern": [ + "X", + "X", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:stone_sword" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stonecutter.json b/data/minecraft/recipe/stonecutter.json new file mode 100644 index 00000000..dabaafe5 --- /dev/null +++ b/data/minecraft/recipe/stonecutter.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stone" + }, + "I": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + " I ", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:stonecutter" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_acacia_wood.json b/data/minecraft/recipe/stripped_acacia_wood.json new file mode 100644 index 00000000..6e983d7d --- /dev/null +++ b/data/minecraft/recipe/stripped_acacia_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_acacia_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_acacia_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_birch_wood.json b/data/minecraft/recipe/stripped_birch_wood.json new file mode 100644 index 00000000..780e818f --- /dev/null +++ b/data/minecraft/recipe/stripped_birch_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_birch_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_birch_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_cherry_wood.json b/data/minecraft/recipe/stripped_cherry_wood.json new file mode 100644 index 00000000..2d2c53b7 --- /dev/null +++ b/data/minecraft/recipe/stripped_cherry_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_cherry_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_cherry_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_crimson_hyphae.json b/data/minecraft/recipe/stripped_crimson_hyphae.json new file mode 100644 index 00000000..dc4eecb8 --- /dev/null +++ b/data/minecraft/recipe/stripped_crimson_hyphae.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_crimson_stem" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_crimson_hyphae" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_dark_oak_wood.json b/data/minecraft/recipe/stripped_dark_oak_wood.json new file mode 100644 index 00000000..a59037ec --- /dev/null +++ b/data/minecraft/recipe/stripped_dark_oak_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_dark_oak_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_dark_oak_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_jungle_wood.json b/data/minecraft/recipe/stripped_jungle_wood.json new file mode 100644 index 00000000..a238dc42 --- /dev/null +++ b/data/minecraft/recipe/stripped_jungle_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_jungle_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_jungle_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_mangrove_wood.json b/data/minecraft/recipe/stripped_mangrove_wood.json new file mode 100644 index 00000000..2c46cf28 --- /dev/null +++ b/data/minecraft/recipe/stripped_mangrove_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_mangrove_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_mangrove_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_oak_wood.json b/data/minecraft/recipe/stripped_oak_wood.json new file mode 100644 index 00000000..0b7ce6d5 --- /dev/null +++ b/data/minecraft/recipe/stripped_oak_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_oak_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_oak_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_spruce_wood.json b/data/minecraft/recipe/stripped_spruce_wood.json new file mode 100644 index 00000000..ce9a7496 --- /dev/null +++ b/data/minecraft/recipe/stripped_spruce_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_spruce_log" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_spruce_wood" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/stripped_warped_hyphae.json b/data/minecraft/recipe/stripped_warped_hyphae.json new file mode 100644 index 00000000..8b64f662 --- /dev/null +++ b/data/minecraft/recipe/stripped_warped_hyphae.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:stripped_warped_stem" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:stripped_warped_hyphae" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sugar_from_honey_bottle.json b/data/minecraft/recipe/sugar_from_honey_bottle.json new file mode 100644 index 00000000..cc050f1a --- /dev/null +++ b/data/minecraft/recipe/sugar_from_honey_bottle.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "sugar", + "ingredients": [ + { + "item": "minecraft:honey_bottle" + } + ], + "result": { + "count": 3, + "id": "minecraft:sugar" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/sugar_from_sugar_cane.json b/data/minecraft/recipe/sugar_from_sugar_cane.json new file mode 100644 index 00000000..51f85370 --- /dev/null +++ b/data/minecraft/recipe/sugar_from_sugar_cane.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "sugar", + "ingredients": [ + { + "item": "minecraft:sugar_cane" + } + ], + "result": { + "count": 1, + "id": "minecraft:sugar" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/suspicious_stew.json b/data/minecraft/recipe/suspicious_stew.json new file mode 100644 index 00000000..31eddde0 --- /dev/null +++ b/data/minecraft/recipe/suspicious_stew.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_suspiciousstew", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/target.json b/data/minecraft/recipe/target.json new file mode 100644 index 00000000..2c7c6359 --- /dev/null +++ b/data/minecraft/recipe/target.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "H": { + "item": "minecraft:hay_block" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " R ", + "RHR", + " R " + ], + "result": { + "count": 1, + "id": "minecraft:target" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/terracotta.json b/data/minecraft/recipe/terracotta.json new file mode 100644 index 00000000..6834b820 --- /dev/null +++ b/data/minecraft/recipe/terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "minecraft:clay" + }, + "result": { + "id": "minecraft:terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tide_armor_trim_smithing_template.json b/data/minecraft/recipe/tide_armor_trim_smithing_template.json new file mode 100644 index 00000000..a7d608a0 --- /dev/null +++ b/data/minecraft/recipe/tide_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:prismarine" + }, + "S": { + "item": "minecraft:tide_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:tide_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tide_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/tide_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..13f6f020 --- /dev/null +++ b/data/minecraft/recipe/tide_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:tide_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tinted_glass.json b/data/minecraft/recipe/tinted_glass.json new file mode 100644 index 00000000..8b5c13e4 --- /dev/null +++ b/data/minecraft/recipe/tinted_glass.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "G": { + "item": "minecraft:glass" + }, + "S": { + "item": "minecraft:amethyst_shard" + } + }, + "pattern": [ + " S ", + "SGS", + " S " + ], + "result": { + "count": 2, + "id": "minecraft:tinted_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tipped_arrow.json b/data/minecraft/recipe/tipped_arrow.json new file mode 100644 index 00000000..dfd02df2 --- /dev/null +++ b/data/minecraft/recipe/tipped_arrow.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:crafting_special_tippedarrow", + "category": "misc" +} \ No newline at end of file diff --git a/data/minecraft/recipe/tnt.json b/data/minecraft/recipe/tnt.json new file mode 100644 index 00000000..ad347c65 --- /dev/null +++ b/data/minecraft/recipe/tnt.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": [ + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:red_sand" + } + ], + "X": { + "item": "minecraft:gunpowder" + } + }, + "pattern": [ + "X#X", + "#X#", + "X#X" + ], + "result": { + "count": 1, + "id": "minecraft:tnt" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tnt_minecart.json b/data/minecraft/recipe/tnt_minecart.json new file mode 100644 index 00000000..eded95d4 --- /dev/null +++ b/data/minecraft/recipe/tnt_minecart.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:tnt" + }, + { + "item": "minecraft:minecart" + } + ], + "result": { + "count": 1, + "id": "minecraft:tnt_minecart" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/torch.json b/data/minecraft/recipe/torch.json new file mode 100644 index 00000000..1dd3833d --- /dev/null +++ b/data/minecraft/recipe/torch.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": [ + { + "item": "minecraft:coal" + }, + { + "item": "minecraft:charcoal" + } + ] + }, + "pattern": [ + "X", + "#" + ], + "result": { + "count": 4, + "id": "minecraft:torch" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/trapped_chest.json b/data/minecraft/recipe/trapped_chest.json new file mode 100644 index 00000000..5d0e395b --- /dev/null +++ b/data/minecraft/recipe/trapped_chest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "ingredients": [ + { + "item": "minecraft:chest" + }, + { + "item": "minecraft:tripwire_hook" + } + ], + "result": { + "count": 1, + "id": "minecraft:trapped_chest" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tripwire_hook.json b/data/minecraft/recipe/tripwire_hook.json new file mode 100644 index 00000000..6b027fdf --- /dev/null +++ b/data/minecraft/recipe/tripwire_hook.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "I": { + "item": "minecraft:iron_ingot" + }, + "S": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "I", + "S", + "#" + ], + "result": { + "count": 2, + "id": "minecraft:tripwire_hook" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_slab.json b/data/minecraft/recipe/tuff_brick_slab.json new file mode 100644 index 00000000..fc288dad --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:tuff_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:tuff_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_slab_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/tuff_brick_slab_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..0360fe66 --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_slab_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 2, + "id": "minecraft:tuff_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_slab_from_tuff_bricks_stonecutting.json b/data/minecraft/recipe/tuff_brick_slab_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..85cf98fd --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_slab_from_tuff_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff_bricks" + }, + "result": { + "count": 2, + "id": "minecraft:tuff_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_slab_from_tuff_stonecutting.json b/data/minecraft/recipe/tuff_brick_slab_from_tuff_stonecutting.json new file mode 100644 index 00000000..8a033380 --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_slab_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 2, + "id": "minecraft:tuff_brick_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_stairs.json b/data/minecraft/recipe/tuff_brick_stairs.json new file mode 100644 index 00000000..0cb44456 --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:tuff_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:tuff_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_stairs_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/tuff_brick_stairs_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..697f4f19 --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_stairs_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_stairs_from_tuff_bricks_stonecutting.json b/data/minecraft/recipe/tuff_brick_stairs_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..7978e054 --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_stairs_from_tuff_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_stairs_from_tuff_stonecutting.json b/data/minecraft/recipe/tuff_brick_stairs_from_tuff_stonecutting.json new file mode 100644 index 00000000..3d2bff0e --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_stairs_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_brick_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_wall.json b/data/minecraft/recipe/tuff_brick_wall.json new file mode 100644 index 00000000..de614891 --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:tuff_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:tuff_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_wall_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/tuff_brick_wall_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..bfc66879 --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_wall_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_wall_from_tuff_bricks_stonecutting.json b/data/minecraft/recipe/tuff_brick_wall_from_tuff_bricks_stonecutting.json new file mode 100644 index 00000000..674b561e --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_wall_from_tuff_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff_bricks" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_brick_wall_from_tuff_stonecutting.json b/data/minecraft/recipe/tuff_brick_wall_from_tuff_stonecutting.json new file mode 100644 index 00000000..81ebddcf --- /dev/null +++ b/data/minecraft/recipe/tuff_brick_wall_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_brick_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_bricks.json b/data/minecraft/recipe/tuff_bricks.json new file mode 100644 index 00000000..192fd9f9 --- /dev/null +++ b/data/minecraft/recipe/tuff_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:polished_tuff" + } + }, + "pattern": [ + "SS", + "SS" + ], + "result": { + "count": 4, + "id": "minecraft:tuff_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_bricks_from_polished_tuff_stonecutting.json b/data/minecraft/recipe/tuff_bricks_from_polished_tuff_stonecutting.json new file mode 100644 index 00000000..9645585b --- /dev/null +++ b/data/minecraft/recipe/tuff_bricks_from_polished_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_bricks_from_tuff_stonecutting.json b/data/minecraft/recipe/tuff_bricks_from_tuff_stonecutting.json new file mode 100644 index 00000000..2a834983 --- /dev/null +++ b/data/minecraft/recipe/tuff_bricks_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_bricks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_slab.json b/data/minecraft/recipe/tuff_slab.json new file mode 100644 index 00000000..cfae773b --- /dev/null +++ b/data/minecraft/recipe/tuff_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:tuff" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:tuff_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_slab_from_tuff_stonecutting.json b/data/minecraft/recipe/tuff_slab_from_tuff_stonecutting.json new file mode 100644 index 00000000..448cb918 --- /dev/null +++ b/data/minecraft/recipe/tuff_slab_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 2, + "id": "minecraft:tuff_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_stairs.json b/data/minecraft/recipe/tuff_stairs.json new file mode 100644 index 00000000..a188ae4f --- /dev/null +++ b/data/minecraft/recipe/tuff_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:tuff" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:tuff_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_stairs_from_tuff_stonecutting.json b/data/minecraft/recipe/tuff_stairs_from_tuff_stonecutting.json new file mode 100644 index 00000000..714fb327 --- /dev/null +++ b/data/minecraft/recipe/tuff_stairs_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_wall.json b/data/minecraft/recipe/tuff_wall.json new file mode 100644 index 00000000..3ceda908 --- /dev/null +++ b/data/minecraft/recipe/tuff_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:tuff" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:tuff_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/tuff_wall_from_tuff_stonecutting.json b/data/minecraft/recipe/tuff_wall_from_tuff_stonecutting.json new file mode 100644 index 00000000..9c282d18 --- /dev/null +++ b/data/minecraft/recipe/tuff_wall_from_tuff_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:tuff" + }, + "result": { + "count": 1, + "id": "minecraft:tuff_wall" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/turtle_helmet.json b/data/minecraft/recipe/turtle_helmet.json new file mode 100644 index 00000000..31096350 --- /dev/null +++ b/data/minecraft/recipe/turtle_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:turtle_scute" + } + }, + "pattern": [ + "XXX", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:turtle_helmet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/vex_armor_trim_smithing_template.json b/data/minecraft/recipe/vex_armor_trim_smithing_template.json new file mode 100644 index 00000000..12f3e924 --- /dev/null +++ b/data/minecraft/recipe/vex_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:cobblestone" + }, + "S": { + "item": "minecraft:vex_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:vex_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/vex_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/vex_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..26537323 --- /dev/null +++ b/data/minecraft/recipe/vex_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:vex_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/ward_armor_trim_smithing_template.json b/data/minecraft/recipe/ward_armor_trim_smithing_template.json new file mode 100644 index 00000000..3cea4234 --- /dev/null +++ b/data/minecraft/recipe/ward_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:cobbled_deepslate" + }, + "S": { + "item": "minecraft:ward_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:ward_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/ward_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/ward_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..eb8d7982 --- /dev/null +++ b/data/minecraft/recipe/ward_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:ward_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_button.json b/data/minecraft/recipe/warped_button.json new file mode 100644 index 00000000..b918ed9b --- /dev/null +++ b/data/minecraft/recipe/warped_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "wooden_button", + "ingredients": [ + { + "item": "minecraft:warped_planks" + } + ], + "result": { + "count": 1, + "id": "minecraft:warped_button" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_door.json b/data/minecraft/recipe/warped_door.json new file mode 100644 index 00000000..6500490d --- /dev/null +++ b/data/minecraft/recipe/warped_door.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_door", + "key": { + "#": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + "##", + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:warped_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_fence.json b/data/minecraft/recipe/warped_fence.json new file mode 100644 index 00000000..a3c235a0 --- /dev/null +++ b/data/minecraft/recipe/warped_fence.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_fence", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + "W#W", + "W#W" + ], + "result": { + "count": 3, + "id": "minecraft:warped_fence" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_fence_gate.json b/data/minecraft/recipe/warped_fence_gate.json new file mode 100644 index 00000000..0c3cec38 --- /dev/null +++ b/data/minecraft/recipe/warped_fence_gate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + "#W#", + "#W#" + ], + "result": { + "count": 1, + "id": "minecraft:warped_fence_gate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_fungus_on_a_stick.json b/data/minecraft/recipe/warped_fungus_on_a_stick.json new file mode 100644 index 00000000..b73bf4aa --- /dev/null +++ b/data/minecraft/recipe/warped_fungus_on_a_stick.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:fishing_rod" + }, + "X": { + "item": "minecraft:warped_fungus" + } + }, + "pattern": [ + "# ", + " X" + ], + "result": { + "count": 1, + "id": "minecraft:warped_fungus_on_a_stick" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_hanging_sign.json b/data/minecraft/recipe/warped_hanging_sign.json new file mode 100644 index 00000000..0af96cca --- /dev/null +++ b/data/minecraft/recipe/warped_hanging_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "hanging_sign", + "key": { + "#": { + "item": "minecraft:stripped_warped_stem" + }, + "X": { + "item": "minecraft:chain" + } + }, + "pattern": [ + "X X", + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:warped_hanging_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_hyphae.json b/data/minecraft/recipe/warped_hyphae.json new file mode 100644 index 00000000..88cbce77 --- /dev/null +++ b/data/minecraft/recipe/warped_hyphae.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": { + "item": "minecraft:warped_stem" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 3, + "id": "minecraft:warped_hyphae" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_planks.json b/data/minecraft/recipe/warped_planks.json new file mode 100644 index 00000000..6554b485 --- /dev/null +++ b/data/minecraft/recipe/warped_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "planks", + "ingredients": [ + { + "tag": "minecraft:warped_stems" + } + ], + "result": { + "count": 4, + "id": "minecraft:warped_planks" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_pressure_plate.json b/data/minecraft/recipe/warped_pressure_plate.json new file mode 100644 index 00000000..ab8dd686 --- /dev/null +++ b/data/minecraft/recipe/warped_pressure_plate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_pressure_plate", + "key": { + "#": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 1, + "id": "minecraft:warped_pressure_plate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_sign.json b/data/minecraft/recipe/warped_sign.json new file mode 100644 index 00000000..0efb0f31 --- /dev/null +++ b/data/minecraft/recipe/warped_sign.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "wooden_sign", + "key": { + "#": { + "item": "minecraft:warped_planks" + }, + "X": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " X " + ], + "result": { + "count": 3, + "id": "minecraft:warped_sign" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_slab.json b/data/minecraft/recipe/warped_slab.json new file mode 100644 index 00000000..1002459b --- /dev/null +++ b/data/minecraft/recipe/warped_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_slab", + "key": { + "#": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:warped_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_stairs.json b/data/minecraft/recipe/warped_stairs.json new file mode 100644 index 00000000..57b5202d --- /dev/null +++ b/data/minecraft/recipe/warped_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:warped_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/warped_trapdoor.json b/data/minecraft/recipe/warped_trapdoor.json new file mode 100644 index 00000000..2d85de09 --- /dev/null +++ b/data/minecraft/recipe/warped_trapdoor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": { + "item": "minecraft:warped_planks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:warped_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_chiseled_copper.json b/data/minecraft/recipe/waxed_chiseled_copper.json new file mode 100644 index 00000000..4f24c78f --- /dev/null +++ b/data/minecraft/recipe/waxed_chiseled_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper_chiseled", + "key": { + "#": { + "item": "minecraft:waxed_cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_chiseled_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..5f857637 --- /dev/null +++ b/data/minecraft/recipe/waxed_chiseled_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_chiseled_copper", + "ingredients": [ + { + "item": "minecraft:chiseled_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_chiseled_copper_from_waxed_copper_block_stonecutting.json b/data/minecraft/recipe/waxed_chiseled_copper_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..6917e602 --- /dev/null +++ b/data/minecraft/recipe/waxed_chiseled_copper_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_chiseled_copper_from_waxed_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_chiseled_copper_from_waxed_cut_copper_stonecutting.json new file mode 100644 index 00000000..7c2a43a9 --- /dev/null +++ b/data/minecraft/recipe/waxed_chiseled_copper_from_waxed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_block_from_honeycomb.json b/data/minecraft/recipe/waxed_copper_block_from_honeycomb.json new file mode 100644 index 00000000..7283829b --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_block_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_copper_block", + "ingredients": [ + { + "item": "minecraft:copper_block" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_copper_block" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_bulb.json b/data/minecraft/recipe/waxed_copper_bulb.json new file mode 100644 index 00000000..728b47bf --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:waxed_copper_block" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_bulb_from_honeycomb.json b/data/minecraft/recipe/waxed_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..c11cea6b --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_bulb_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_copper_bulb", + "ingredients": [ + { + "item": "minecraft:copper_bulb" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_door_from_honeycomb.json b/data/minecraft/recipe/waxed_copper_door_from_honeycomb.json new file mode 100644 index 00000000..fa8c6881 --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_door_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_copper_door", + "ingredients": [ + { + "item": "minecraft:copper_door" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_copper_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_grate.json b/data/minecraft/recipe/waxed_copper_grate.json new file mode 100644 index 00000000..2f0b68c0 --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:waxed_copper_block" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_grate_from_honeycomb.json b/data/minecraft/recipe/waxed_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..5af0d233 --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_grate_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_copper_grate", + "ingredients": [ + { + "item": "minecraft:copper_grate" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_grate_from_waxed_copper_block_stonecutting.json b/data/minecraft/recipe/waxed_copper_grate_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..b46052cf --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_grate_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_copper_trapdoor_from_honeycomb.json b/data/minecraft/recipe/waxed_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..7d765e7a --- /dev/null +++ b/data/minecraft/recipe/waxed_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_copper_trapdoor", + "ingredients": [ + { + "item": "minecraft:copper_trapdoor" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper.json b/data/minecraft/recipe/waxed_cut_copper.json new file mode 100644 index 00000000..db468a04 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper", + "key": { + "#": { + "item": "minecraft:waxed_copper_block" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..82bf9872 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_cut_copper", + "ingredients": [ + { + "item": "minecraft:cut_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_from_waxed_copper_block_stonecutting.json b/data/minecraft/recipe/waxed_cut_copper_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..3df438a4 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_slab.json b/data/minecraft/recipe/waxed_cut_copper_slab.json new file mode 100644 index 00000000..d39cdbe8 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper_slab", + "key": { + "#": { + "item": "minecraft:waxed_cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_slab_from_honeycomb.json b/data/minecraft/recipe/waxed_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..0b8addee --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_cut_copper_slab", + "ingredients": [ + { + "item": "minecraft:cut_copper_slab" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_slab_from_waxed_copper_block_stonecutting.json b/data/minecraft/recipe/waxed_cut_copper_slab_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..edb1fe90 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_slab_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_copper_block" + }, + "result": { + "count": 8, + "id": "minecraft:waxed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting.json new file mode 100644 index 00000000..b3b360d5 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_slab_from_waxed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:waxed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_stairs.json b/data/minecraft/recipe/waxed_cut_copper_stairs.json new file mode 100644 index 00000000..e32d34b5 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper_stairs", + "key": { + "#": { + "item": "minecraft:waxed_cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_stairs_from_honeycomb.json b/data/minecraft/recipe/waxed_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..77233fe5 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_cut_copper_stairs", + "ingredients": [ + { + "item": "minecraft:cut_copper_stairs" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting.json b/data/minecraft/recipe/waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting.json new file mode 100644 index 00000000..f0347bd0 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_stairs_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_copper_block" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting.json new file mode 100644 index 00000000..1d38e466 --- /dev/null +++ b/data/minecraft/recipe/waxed_cut_copper_stairs_from_waxed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_chiseled_copper.json b/data/minecraft/recipe/waxed_exposed_chiseled_copper.json new file mode 100644 index 00000000..dd330e18 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_chiseled_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_exposed_cut_copper_chiseled", + "key": { + "#": { + "item": "minecraft:waxed_exposed_cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..aeae63ee --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_chiseled_copper", + "ingredients": [ + { + "item": "minecraft:exposed_chiseled_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..1fc745b9 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..928a4c19 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_chiseled_copper_from_waxed_exposed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_bulb.json b/data/minecraft/recipe/waxed_exposed_copper_bulb.json new file mode 100644 index 00000000..85e5e307 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:waxed_exposed_copper" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_bulb_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..d000c530 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_bulb_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_copper_bulb", + "ingredients": [ + { + "item": "minecraft:exposed_copper_bulb" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_door_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_copper_door_from_honeycomb.json new file mode 100644 index 00000000..3f062454 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_door_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_copper_door", + "ingredients": [ + { + "item": "minecraft:exposed_copper_door" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_copper_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_copper_from_honeycomb.json new file mode 100644 index 00000000..00a7f70c --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_copper", + "ingredients": [ + { + "item": "minecraft:exposed_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_grate.json b/data/minecraft/recipe/waxed_exposed_copper_grate.json new file mode 100644 index 00000000..bcdfad73 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:waxed_exposed_copper" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_grate_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..a295cd51 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_grate_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_copper_grate", + "ingredients": [ + { + "item": "minecraft:exposed_copper_grate" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..f66a4932 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_copper_trapdoor_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..47533b0f --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_copper_trapdoor", + "ingredients": [ + { + "item": "minecraft:exposed_copper_trapdoor" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper.json b/data/minecraft/recipe/waxed_exposed_cut_copper.json new file mode 100644 index 00000000..a4c1ada6 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_exposed_cut_copper", + "key": { + "#": { + "item": "minecraft:waxed_exposed_copper" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..66a70c93 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_cut_copper", + "ingredients": [ + { + "item": "minecraft:exposed_cut_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..679e1707 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_slab.json b/data/minecraft/recipe/waxed_exposed_cut_copper_slab.json new file mode 100644 index 00000000..664394ff --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_exposed_cut_copper_slab", + "key": { + "#": { + "item": "minecraft:waxed_exposed_cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_exposed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..17ff8089 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_cut_copper_slab", + "ingredients": [ + { + "item": "minecraft:exposed_cut_copper_slab" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..ee82afcf --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_copper" + }, + "result": { + "count": 8, + "id": "minecraft:waxed_exposed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..f134671a --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_slab_from_waxed_exposed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:waxed_exposed_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_stairs.json b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs.json new file mode 100644 index 00000000..bff1e305 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_exposed_cut_copper_stairs", + "key": { + "#": { + "item": "minecraft:waxed_exposed_cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_honeycomb.json b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..bb22cbc4 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_exposed_cut_copper_stairs", + "ingredients": [ + { + "item": "minecraft:exposed_cut_copper_stairs" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting.json new file mode 100644 index 00000000..1f1f1ac8 --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting.json new file mode 100644 index 00000000..abe95bdc --- /dev/null +++ b/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_waxed_exposed_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_exposed_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_chiseled_copper.json b/data/minecraft/recipe/waxed_oxidized_chiseled_copper.json new file mode 100644 index 00000000..48d56c7b --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_chiseled_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_oxidized_cut_copper_chiseled", + "key": { + "#": { + "item": "minecraft:waxed_oxidized_cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..5f9ffbae --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_chiseled_copper", + "ingredients": [ + { + "item": "minecraft:oxidized_chiseled_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..f041db0d --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..3c440e01 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_chiseled_copper_from_waxed_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_bulb.json b/data/minecraft/recipe/waxed_oxidized_copper_bulb.json new file mode 100644 index 00000000..452a0056 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:waxed_oxidized_copper" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_bulb_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..c1f9818a --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_bulb_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_copper_bulb", + "ingredients": [ + { + "item": "minecraft:oxidized_copper_bulb" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_door_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_copper_door_from_honeycomb.json new file mode 100644 index 00000000..c1c90f36 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_door_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_copper_door", + "ingredients": [ + { + "item": "minecraft:oxidized_copper_door" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_copper_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_copper_from_honeycomb.json new file mode 100644 index 00000000..9b6a5fff --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_copper", + "ingredients": [ + { + "item": "minecraft:oxidized_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_grate.json b/data/minecraft/recipe/waxed_oxidized_copper_grate.json new file mode 100644 index 00000000..5a92b806 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:waxed_oxidized_copper" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_grate_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..a9b7ab59 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_grate_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_copper_grate", + "ingredients": [ + { + "item": "minecraft:oxidized_copper_grate" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..f2170694 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_grate_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_copper_trapdoor_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..4203a7cc --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_copper_trapdoor", + "ingredients": [ + { + "item": "minecraft:oxidized_copper_trapdoor" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_copper_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper.json b/data/minecraft/recipe/waxed_oxidized_cut_copper.json new file mode 100644 index 00000000..32d57daa --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_oxidized_cut_copper", + "key": { + "#": { + "item": "minecraft:waxed_oxidized_copper" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..65bf655c --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_cut_copper", + "ingredients": [ + { + "item": "minecraft:oxidized_cut_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..ec6d2ddc --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_slab.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab.json new file mode 100644 index 00000000..dc24a34d --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_oxidized_cut_copper_slab", + "key": { + "#": { + "item": "minecraft:waxed_oxidized_cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_oxidized_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..0ebbb41e --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_cut_copper_slab", + "ingredients": [ + { + "item": "minecraft:oxidized_cut_copper_slab" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..fc029be8 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_copper" + }, + "result": { + "count": 8, + "id": "minecraft:waxed_oxidized_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..bf039613 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_slab_from_waxed_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:waxed_oxidized_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs.json new file mode 100644 index 00000000..e9a67202 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_oxidized_cut_copper_stairs", + "key": { + "#": { + "item": "minecraft:waxed_oxidized_cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_honeycomb.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..4f0fe722 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_oxidized_cut_copper_stairs", + "ingredients": [ + { + "item": "minecraft:oxidized_cut_copper_stairs" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting.json new file mode 100644 index 00000000..0d19d4ee --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting.json new file mode 100644 index 00000000..477c99a2 --- /dev/null +++ b/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_waxed_oxidized_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_oxidized_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_chiseled_copper.json b/data/minecraft/recipe/waxed_weathered_chiseled_copper.json new file mode 100644 index 00000000..53242cc3 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_chiseled_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_weathered_cut_copper_chiseled", + "key": { + "#": { + "item": "minecraft:waxed_weathered_cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_honeycomb.json new file mode 100644 index 00000000..03d442ed --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_chiseled_copper", + "ingredients": [ + { + "item": "minecraft:weathered_chiseled_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..0a836383 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..a081489f --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_chiseled_copper_from_waxed_weathered_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_bulb.json b/data/minecraft/recipe/waxed_weathered_copper_bulb.json new file mode 100644 index 00000000..0da99b4b --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:waxed_weathered_copper" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_bulb_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_copper_bulb_from_honeycomb.json new file mode 100644 index 00000000..d3421d3e --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_bulb_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_copper_bulb", + "ingredients": [ + { + "item": "minecraft:weathered_copper_bulb" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_door_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_copper_door_from_honeycomb.json new file mode 100644 index 00000000..a0e7cfff --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_door_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_copper_door", + "ingredients": [ + { + "item": "minecraft:weathered_copper_door" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_copper_door" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_copper_from_honeycomb.json new file mode 100644 index 00000000..42550f29 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_copper", + "ingredients": [ + { + "item": "minecraft:weathered_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_grate.json b/data/minecraft/recipe/waxed_weathered_copper_grate.json new file mode 100644 index 00000000..9f20d5c5 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:waxed_weathered_copper" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_grate_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_copper_grate_from_honeycomb.json new file mode 100644 index 00000000..59704e07 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_grate_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_copper_grate", + "ingredients": [ + { + "item": "minecraft:weathered_copper_grate" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..e77620cc --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_grate_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_copper_trapdoor_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_copper_trapdoor_from_honeycomb.json new file mode 100644 index 00000000..265bf3cb --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_copper_trapdoor_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_copper_trapdoor", + "ingredients": [ + { + "item": "minecraft:weathered_copper_trapdoor" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_copper_trapdoor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper.json b/data/minecraft/recipe/waxed_weathered_cut_copper.json new file mode 100644 index 00000000..a07b669a --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_weathered_cut_copper", + "key": { + "#": { + "item": "minecraft:waxed_weathered_copper" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_cut_copper_from_honeycomb.json new file mode 100644 index 00000000..27f4ea09 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_cut_copper", + "ingredients": [ + { + "item": "minecraft:weathered_cut_copper" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..9ae8af09 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_slab.json b/data/minecraft/recipe/waxed_weathered_cut_copper_slab.json new file mode 100644 index 00000000..421b4820 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_slab.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_weathered_cut_copper_slab", + "key": { + "#": { + "item": "minecraft:waxed_weathered_cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_weathered_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_honeycomb.json new file mode 100644 index 00000000..768e3e2a --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_cut_copper_slab", + "ingredients": [ + { + "item": "minecraft:weathered_cut_copper_slab" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..a5e9acd9 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_copper" + }, + "result": { + "count": 8, + "id": "minecraft:waxed_weathered_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..d4319792 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_slab_from_waxed_weathered_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:waxed_weathered_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_stairs.json b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs.json new file mode 100644 index 00000000..26cee52b --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_weathered_cut_copper_stairs", + "key": { + "#": { + "item": "minecraft:waxed_weathered_cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_honeycomb.json b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_honeycomb.json new file mode 100644 index 00000000..618de31e --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_weathered_cut_copper_stairs", + "ingredients": [ + { + "item": "minecraft:weathered_cut_copper_stairs" + }, + { + "item": "minecraft:honeycomb" + } + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting.json new file mode 100644 index 00000000..5a4c8784 --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:waxed_weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting.json b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..9f419def --- /dev/null +++ b/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_waxed_weathered_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:waxed_weathered_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wayfinder_armor_trim_smithing_template.json b/data/minecraft/recipe/wayfinder_armor_trim_smithing_template.json new file mode 100644 index 00000000..223f3036 --- /dev/null +++ b/data/minecraft/recipe/wayfinder_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:terracotta" + }, + "S": { + "item": "minecraft:wayfinder_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:wayfinder_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wayfinder_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/wayfinder_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..4e0387ac --- /dev/null +++ b/data/minecraft/recipe/wayfinder_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:wayfinder_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_chiseled_copper.json b/data/minecraft/recipe/weathered_chiseled_copper.json new file mode 100644 index 00000000..74e7f0d2 --- /dev/null +++ b/data/minecraft/recipe/weathered_chiseled_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:weathered_cut_copper_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_chiseled_copper_from_weathered_copper_stonecutting.json b/data/minecraft/recipe/weathered_chiseled_copper_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..c5875afe --- /dev/null +++ b/data/minecraft/recipe/weathered_chiseled_copper_from_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_chiseled_copper_from_weathered_cut_copper_stonecutting.json b/data/minecraft/recipe/weathered_chiseled_copper_from_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..2bfb2bef --- /dev/null +++ b/data/minecraft/recipe/weathered_chiseled_copper_from_weathered_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:weathered_chiseled_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_copper_bulb.json b/data/minecraft/recipe/weathered_copper_bulb.json new file mode 100644 index 00000000..18b1f05d --- /dev/null +++ b/data/minecraft/recipe/weathered_copper_bulb.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "C": { + "item": "minecraft:weathered_copper" + }, + "R": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + " C ", + "CBC", + " R " + ], + "result": { + "count": 4, + "id": "minecraft:weathered_copper_bulb" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_copper_grate.json b/data/minecraft/recipe/weathered_copper_grate.json new file mode 100644 index 00000000..198acad9 --- /dev/null +++ b/data/minecraft/recipe/weathered_copper_grate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "M": { + "item": "minecraft:weathered_copper" + } + }, + "pattern": [ + " M ", + "M M", + " M " + ], + "result": { + "count": 4, + "id": "minecraft:weathered_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_copper_grate_from_weathered_copper_stonecutting.json b/data/minecraft/recipe/weathered_copper_grate_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..419531a8 --- /dev/null +++ b/data/minecraft/recipe/weathered_copper_grate_from_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:weathered_copper_grate" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper.json b/data/minecraft/recipe/weathered_cut_copper.json new file mode 100644 index 00000000..1a5c81f2 --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:weathered_copper" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:weathered_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper_from_weathered_copper_stonecutting.json b/data/minecraft/recipe/weathered_cut_copper_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..05a5beb2 --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper_from_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:weathered_cut_copper" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper_slab.json b/data/minecraft/recipe/weathered_cut_copper_slab.json new file mode 100644 index 00000000..347bbb38 --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:weathered_cut_copper" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "minecraft:weathered_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper_slab_from_weathered_copper_stonecutting.json b/data/minecraft/recipe/weathered_cut_copper_slab_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..a006d0d7 --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper_slab_from_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_copper" + }, + "result": { + "count": 8, + "id": "minecraft:weathered_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting.json b/data/minecraft/recipe/weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..658418f6 --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper_slab_from_weathered_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_cut_copper" + }, + "result": { + "count": 2, + "id": "minecraft:weathered_cut_copper_slab" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper_stairs.json b/data/minecraft/recipe/weathered_cut_copper_stairs.json new file mode 100644 index 00000000..cab7fef9 --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:weathered_cut_copper" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "minecraft:weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper_stairs_from_weathered_copper_stonecutting.json b/data/minecraft/recipe/weathered_cut_copper_stairs_from_weathered_copper_stonecutting.json new file mode 100644 index 00000000..a9a7586a --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper_stairs_from_weathered_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_copper" + }, + "result": { + "count": 4, + "id": "minecraft:weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting.json b/data/minecraft/recipe/weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting.json new file mode 100644 index 00000000..37765040 --- /dev/null +++ b/data/minecraft/recipe/weathered_cut_copper_stairs_from_weathered_cut_copper_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:weathered_cut_copper" + }, + "result": { + "count": 1, + "id": "minecraft:weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wheat.json b/data/minecraft/recipe/wheat.json new file mode 100644 index 00000000..57fa4c38 --- /dev/null +++ b/data/minecraft/recipe/wheat.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:hay_block" + } + ], + "result": { + "count": 9, + "id": "minecraft:wheat" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_banner.json b/data/minecraft/recipe/white_banner.json new file mode 100644 index 00000000..b82105db --- /dev/null +++ b/data/minecraft/recipe/white_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:white_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:white_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_bed.json b/data/minecraft/recipe/white_bed.json new file mode 100644 index 00000000..87ff4d30 --- /dev/null +++ b/data/minecraft/recipe/white_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:white_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:white_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_candle.json b/data/minecraft/recipe/white_candle.json new file mode 100644 index 00000000..f62fe8fc --- /dev/null +++ b/data/minecraft/recipe/white_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:white_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_carpet.json b/data/minecraft/recipe/white_carpet.json new file mode 100644 index 00000000..2ebc01bd --- /dev/null +++ b/data/minecraft/recipe/white_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:white_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:white_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_concrete_powder.json b/data/minecraft/recipe/white_concrete_powder.json new file mode 100644 index 00000000..fd4a9017 --- /dev/null +++ b/data/minecraft/recipe/white_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:white_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:white_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_dye.json b/data/minecraft/recipe/white_dye.json new file mode 100644 index 00000000..9a1bdaa5 --- /dev/null +++ b/data/minecraft/recipe/white_dye.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "white_dye", + "ingredients": [ + { + "item": "minecraft:bone_meal" + } + ], + "result": { + "count": 1, + "id": "minecraft:white_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_dye_from_lily_of_the_valley.json b/data/minecraft/recipe/white_dye_from_lily_of_the_valley.json new file mode 100644 index 00000000..e33d2cfc --- /dev/null +++ b/data/minecraft/recipe/white_dye_from_lily_of_the_valley.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "white_dye", + "ingredients": [ + { + "item": "minecraft:lily_of_the_valley" + } + ], + "result": { + "count": 1, + "id": "minecraft:white_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_glazed_terracotta.json b/data/minecraft/recipe/white_glazed_terracotta.json new file mode 100644 index 00000000..69fb56bd --- /dev/null +++ b/data/minecraft/recipe/white_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:white_terracotta" + }, + "result": { + "id": "minecraft:white_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_stained_glass.json b/data/minecraft/recipe/white_stained_glass.json new file mode 100644 index 00000000..e333eacc --- /dev/null +++ b/data/minecraft/recipe/white_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:white_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:white_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_stained_glass_pane.json b/data/minecraft/recipe/white_stained_glass_pane.json new file mode 100644 index 00000000..80215a9a --- /dev/null +++ b/data/minecraft/recipe/white_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:white_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:white_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/white_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..283f1c70 --- /dev/null +++ b/data/minecraft/recipe/white_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:white_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:white_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_terracotta.json b/data/minecraft/recipe/white_terracotta.json new file mode 100644 index 00000000..ad08fc5e --- /dev/null +++ b/data/minecraft/recipe/white_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:white_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:white_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/white_wool_from_string.json b/data/minecraft/recipe/white_wool_from_string.json new file mode 100644 index 00000000..efecc096 --- /dev/null +++ b/data/minecraft/recipe/white_wool_from_string.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "minecraft:string" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:white_wool" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wild_armor_trim_smithing_template.json b/data/minecraft/recipe/wild_armor_trim_smithing_template.json new file mode 100644 index 00000000..52aa4a6e --- /dev/null +++ b/data/minecraft/recipe/wild_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:mossy_cobblestone" + }, + "S": { + "item": "minecraft:wild_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:wild_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wild_armor_trim_smithing_template_smithing_trim.json b/data/minecraft/recipe/wild_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..97055818 --- /dev/null +++ b/data/minecraft/recipe/wild_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "minecraft:wild_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wind_charge.json b/data/minecraft/recipe/wind_charge.json new file mode 100644 index 00000000..9668aee0 --- /dev/null +++ b/data/minecraft/recipe/wind_charge.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:breeze_rod" + } + ], + "result": { + "count": 4, + "id": "minecraft:wind_charge" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wolf_armor.json b/data/minecraft/recipe/wolf_armor.json new file mode 100644 index 00000000..ca407094 --- /dev/null +++ b/data/minecraft/recipe/wolf_armor.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "X": { + "item": "minecraft:armadillo_scute" + } + }, + "pattern": [ + "X ", + "XXX", + "X X" + ], + "result": { + "count": 1, + "id": "minecraft:wolf_armor" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wooden_axe.json b/data/minecraft/recipe/wooden_axe.json new file mode 100644 index 00000000..018e4e0c --- /dev/null +++ b/data/minecraft/recipe/wooden_axe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "XX", + "X#", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:wooden_axe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wooden_hoe.json b/data/minecraft/recipe/wooden_hoe.json new file mode 100644 index 00000000..8f239bee --- /dev/null +++ b/data/minecraft/recipe/wooden_hoe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "XX", + " #", + " #" + ], + "result": { + "count": 1, + "id": "minecraft:wooden_hoe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wooden_pickaxe.json b/data/minecraft/recipe/wooden_pickaxe.json new file mode 100644 index 00000000..a5eb5169 --- /dev/null +++ b/data/minecraft/recipe/wooden_pickaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "XXX", + " # ", + " # " + ], + "result": { + "count": 1, + "id": "minecraft:wooden_pickaxe" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wooden_shovel.json b/data/minecraft/recipe/wooden_shovel.json new file mode 100644 index 00000000..3aa856e9 --- /dev/null +++ b/data/minecraft/recipe/wooden_shovel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "X", + "#", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:wooden_shovel" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/wooden_sword.json b/data/minecraft/recipe/wooden_sword.json new file mode 100644 index 00000000..6fef69e5 --- /dev/null +++ b/data/minecraft/recipe/wooden_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "X", + "X", + "#" + ], + "result": { + "count": 1, + "id": "minecraft:wooden_sword" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/writable_book.json b/data/minecraft/recipe/writable_book.json new file mode 100644 index 00000000..e89c5818 --- /dev/null +++ b/data/minecraft/recipe/writable_book.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:book" + }, + { + "item": "minecraft:ink_sac" + }, + { + "item": "minecraft:feather" + } + ], + "result": { + "count": 1, + "id": "minecraft:writable_book" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_banner.json b/data/minecraft/recipe/yellow_banner.json new file mode 100644 index 00000000..4e3a8311 --- /dev/null +++ b/data/minecraft/recipe/yellow_banner.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "banner", + "key": { + "#": { + "item": "minecraft:yellow_wool" + }, + "|": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + "###", + " | " + ], + "result": { + "count": 1, + "id": "minecraft:yellow_banner" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_bed.json b/data/minecraft/recipe/yellow_bed.json new file mode 100644 index 00000000..3781df2c --- /dev/null +++ b/data/minecraft/recipe/yellow_bed.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "bed", + "key": { + "#": { + "item": "minecraft:yellow_wool" + }, + "X": { + "tag": "minecraft:planks" + } + }, + "pattern": [ + "###", + "XXX" + ], + "result": { + "count": 1, + "id": "minecraft:yellow_bed" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_candle.json b/data/minecraft/recipe/yellow_candle.json new file mode 100644 index 00000000..f377b4ce --- /dev/null +++ b/data/minecraft/recipe/yellow_candle.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "dyed_candle", + "ingredients": [ + { + "item": "minecraft:candle" + }, + { + "item": "minecraft:yellow_dye" + } + ], + "result": { + "count": 1, + "id": "minecraft:yellow_candle" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_carpet.json b/data/minecraft/recipe/yellow_carpet.json new file mode 100644 index 00000000..7a8c3685 --- /dev/null +++ b/data/minecraft/recipe/yellow_carpet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "carpet", + "key": { + "#": { + "item": "minecraft:yellow_wool" + } + }, + "pattern": [ + "##" + ], + "result": { + "count": 3, + "id": "minecraft:yellow_carpet" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_concrete_powder.json b/data/minecraft/recipe/yellow_concrete_powder.json new file mode 100644 index 00000000..07546643 --- /dev/null +++ b/data/minecraft/recipe/yellow_concrete_powder.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "concrete_powder", + "ingredients": [ + { + "item": "minecraft:yellow_dye" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:sand" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "count": 8, + "id": "minecraft:yellow_concrete_powder" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_dye_from_dandelion.json b/data/minecraft/recipe/yellow_dye_from_dandelion.json new file mode 100644 index 00000000..19b0b932 --- /dev/null +++ b/data/minecraft/recipe/yellow_dye_from_dandelion.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "yellow_dye", + "ingredients": [ + { + "item": "minecraft:dandelion" + } + ], + "result": { + "count": 1, + "id": "minecraft:yellow_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_dye_from_sunflower.json b/data/minecraft/recipe/yellow_dye_from_sunflower.json new file mode 100644 index 00000000..879e7ebb --- /dev/null +++ b/data/minecraft/recipe/yellow_dye_from_sunflower.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "group": "yellow_dye", + "ingredients": [ + { + "item": "minecraft:sunflower" + } + ], + "result": { + "count": 2, + "id": "minecraft:yellow_dye" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_glazed_terracotta.json b/data/minecraft/recipe/yellow_glazed_terracotta.json new file mode 100644 index 00000000..d0fe4da2 --- /dev/null +++ b/data/minecraft/recipe/yellow_glazed_terracotta.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "minecraft:yellow_terracotta" + }, + "result": { + "id": "minecraft:yellow_glazed_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_stained_glass.json b/data/minecraft/recipe/yellow_stained_glass.json new file mode 100644 index 00000000..2f18ee03 --- /dev/null +++ b/data/minecraft/recipe/yellow_stained_glass.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_glass", + "key": { + "#": { + "item": "minecraft:glass" + }, + "X": { + "item": "minecraft:yellow_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:yellow_stained_glass" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_stained_glass_pane.json b/data/minecraft/recipe/yellow_stained_glass_pane.json new file mode 100644 index 00000000..f8fb7afc --- /dev/null +++ b/data/minecraft/recipe/yellow_stained_glass_pane.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:yellow_stained_glass" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 16, + "id": "minecraft:yellow_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_stained_glass_pane_from_glass_pane.json b/data/minecraft/recipe/yellow_stained_glass_pane_from_glass_pane.json new file mode 100644 index 00000000..7c60d55e --- /dev/null +++ b/data/minecraft/recipe/yellow_stained_glass_pane_from_glass_pane.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "group": "stained_glass_pane", + "key": { + "#": { + "item": "minecraft:glass_pane" + }, + "$": { + "item": "minecraft:yellow_dye" + } + }, + "pattern": [ + "###", + "#$#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:yellow_stained_glass_pane" + } +} \ No newline at end of file diff --git a/data/minecraft/recipe/yellow_terracotta.json b/data/minecraft/recipe/yellow_terracotta.json new file mode 100644 index 00000000..add1de3e --- /dev/null +++ b/data/minecraft/recipe/yellow_terracotta.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "stained_terracotta", + "key": { + "#": { + "item": "minecraft:terracotta" + }, + "X": { + "item": "minecraft:yellow_dye" + } + }, + "pattern": [ + "###", + "#X#", + "###" + ], + "result": { + "count": 8, + "id": "minecraft:yellow_terracotta" + } +} \ No newline at end of file diff --git a/data/minecraft/structure/ancient_city/city/entrance/entrance_connector.nbt b/data/minecraft/structure/ancient_city/city/entrance/entrance_connector.nbt new file mode 100644 index 00000000..7a958f0d --- /dev/null +++ b/data/minecraft/structure/ancient_city/city/entrance/entrance_connector.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2728b3383dcecbfd884da89a85b91321f0666f55e5623c62a5a0df4ead24117 +size 9414 diff --git a/data/minecraft/structure/ancient_city/city/entrance/entrance_path_1.nbt b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_1.nbt new file mode 100644 index 00000000..b85ae9ec --- /dev/null +++ b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76ab4244ea26e9d93059d421aab94d9d4c73a0e4a522ff3b2cbae600c6c054e2 +size 9746 diff --git a/data/minecraft/structure/ancient_city/city/entrance/entrance_path_2.nbt b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_2.nbt new file mode 100644 index 00000000..a18e72b2 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac4c0e66c03e0c9cb7a80192037eb9240946a4eefe075c69446a610841ce0e40 +size 13774 diff --git a/data/minecraft/structure/ancient_city/city/entrance/entrance_path_3.nbt b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_3.nbt new file mode 100644 index 00000000..f67cc9a6 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d90b43cfee1ff30c211eedab24fdfdebb48f9079d491d3a814de63324e7edda +size 12151 diff --git a/data/minecraft/structure/ancient_city/city/entrance/entrance_path_4.nbt b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_4.nbt new file mode 100644 index 00000000..978e5cc3 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c2a2e10c1616808f7d7f4f19c1c38e52b6ce3d6f79b49dc7dc561eb0e189e19 +size 11785 diff --git a/data/minecraft/structure/ancient_city/city/entrance/entrance_path_5.nbt b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_5.nbt new file mode 100644 index 00000000..1884669e --- /dev/null +++ b/data/minecraft/structure/ancient_city/city/entrance/entrance_path_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53255d065aa22b4edf83524beaaab392c8d95205f4480c6a78a4882d685652f7 +size 9066 diff --git a/data/minecraft/structure/ancient_city/city_center/city_center_1.nbt b/data/minecraft/structure/ancient_city/city_center/city_center_1.nbt new file mode 100644 index 00000000..f2ad4c96 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/city_center_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7e42d24322eb30f91f3760c18a11149b28ffd2f16ef59e4ffb89e1fd01f74bb +size 26259 diff --git a/data/minecraft/structure/ancient_city/city_center/city_center_2.nbt b/data/minecraft/structure/ancient_city/city_center/city_center_2.nbt new file mode 100644 index 00000000..185425a9 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/city_center_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63a3231697aa716e486a53b4635875579ac360981003e906d12942a35e28e726 +size 26653 diff --git a/data/minecraft/structure/ancient_city/city_center/city_center_3.nbt b/data/minecraft/structure/ancient_city/city_center/city_center_3.nbt new file mode 100644 index 00000000..289d983a --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/city_center_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2677e158bb805ecf14f60bd59a54e447a00f9ef140642abcf35a69ad3ca85705 +size 26122 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/bottom_1.nbt b/data/minecraft/structure/ancient_city/city_center/walls/bottom_1.nbt new file mode 100644 index 00000000..e1969f53 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/bottom_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92b9974bb5687cbadf36795e6b5fa85be5afb1790a88f536fc8e3d1a33ea6311 +size 7470 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/bottom_2.nbt b/data/minecraft/structure/ancient_city/city_center/walls/bottom_2.nbt new file mode 100644 index 00000000..a2a79358 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/bottom_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff7534164864cb424e135dc8634843769269284ff15b6ae2ac007d100271df39 +size 6999 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/bottom_left_corner.nbt b/data/minecraft/structure/ancient_city/city_center/walls/bottom_left_corner.nbt new file mode 100644 index 00000000..a36da910 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/bottom_left_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50ed1fa17907366aab1fd03f722bf39396366acd82b4cdb3da73c95237ec63f4 +size 2610 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner.nbt b/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner.nbt new file mode 100644 index 00000000..8bc294ef --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9586807c0b4cc40493ae8e2d2d6f6d6e1e9f9114ffc80870ed797e1263cc3f0 +size 3045 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner_1.nbt b/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner_1.nbt new file mode 100644 index 00000000..5aaa3b8a --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:777ff9307ae9ff84b329a8fafe25621cd894a70ea1e7efdba25abf4fd9742106 +size 2594 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner_2.nbt b/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner_2.nbt new file mode 100644 index 00000000..258441dc --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/bottom_right_corner_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b73c10c96975229df36b3d806235f0f853c80a224a843a9d4693df70db3683c +size 2665 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/left.nbt b/data/minecraft/structure/ancient_city/city_center/walls/left.nbt new file mode 100644 index 00000000..60c69c8f --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/left.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:781a577d849610d95e018ea41d43cf5b8ed8d903910d3757b36e6ea034185773 +size 3181 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/right.nbt b/data/minecraft/structure/ancient_city/city_center/walls/right.nbt new file mode 100644 index 00000000..a749e0ca --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/right.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6164a092f4c50c60f463e099128b1a4a4e6b40401edae51373b4a934c228eeb +size 3175 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/top.nbt b/data/minecraft/structure/ancient_city/city_center/walls/top.nbt new file mode 100644 index 00000000..959a252a --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/top.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88aa1b956a1a8f0d0be6d08eb87fd062cb3ca2b8fa8032b944abfb34e3aaf84f +size 7117 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/top_left_corner.nbt b/data/minecraft/structure/ancient_city/city_center/walls/top_left_corner.nbt new file mode 100644 index 00000000..ac85462d --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/top_left_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3563e9df3d125630c237934049504afd7dbc76665ece1f8e18d750e6a27d6aa5 +size 2596 diff --git a/data/minecraft/structure/ancient_city/city_center/walls/top_right_corner.nbt b/data/minecraft/structure/ancient_city/city_center/walls/top_right_corner.nbt new file mode 100644 index 00000000..c07ba686 --- /dev/null +++ b/data/minecraft/structure/ancient_city/city_center/walls/top_right_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cc6d45b8226f2343bdaadf82131f2796fe9811d592280a4a40a98ab69f97a99 +size 2641 diff --git a/data/minecraft/structure/ancient_city/structures/barracks.nbt b/data/minecraft/structure/ancient_city/structures/barracks.nbt new file mode 100644 index 00000000..a6f5dd3e --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/barracks.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c316c4971840086bb1d1432ca2dfc62ce958755c9785980729f75f882cfd95b +size 5631 diff --git a/data/minecraft/structure/ancient_city/structures/camp_1.nbt b/data/minecraft/structure/ancient_city/structures/camp_1.nbt new file mode 100644 index 00000000..e67bff45 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/camp_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a20f3da4ea7e1720bcc0d3e8e1f5d1bf4e353615488a2268f415e506d8dd8f1f +size 1163 diff --git a/data/minecraft/structure/ancient_city/structures/camp_2.nbt b/data/minecraft/structure/ancient_city/structures/camp_2.nbt new file mode 100644 index 00000000..70b1167d --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/camp_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8887ec22d4a42c45c977855720315be600d462529783350e237789d9644510e8 +size 1271 diff --git a/data/minecraft/structure/ancient_city/structures/camp_3.nbt b/data/minecraft/structure/ancient_city/structures/camp_3.nbt new file mode 100644 index 00000000..0a4a43f8 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/camp_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d62089cafc86cb948062235951248f10b61bc4e2ad14b582bc0e54d390654d50 +size 1015 diff --git a/data/minecraft/structure/ancient_city/structures/chamber_1.nbt b/data/minecraft/structure/ancient_city/structures/chamber_1.nbt new file mode 100644 index 00000000..5b181c49 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/chamber_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f449163ebabe172c2f77a0c0239b354ceb3b057984caf5199eeab9678fa6277d +size 2533 diff --git a/data/minecraft/structure/ancient_city/structures/chamber_2.nbt b/data/minecraft/structure/ancient_city/structures/chamber_2.nbt new file mode 100644 index 00000000..0974cb80 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/chamber_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03a2341cfa1355bbbb06d9160463ec5039f77910e00bb6f1ce32f9e4688c3888 +size 1310 diff --git a/data/minecraft/structure/ancient_city/structures/chamber_3.nbt b/data/minecraft/structure/ancient_city/structures/chamber_3.nbt new file mode 100644 index 00000000..a1efbf62 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/chamber_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb39c5f593417a57d090d3731e72f1799ce31fe10a9be0f5dc07cf21066b5077 +size 1098 diff --git a/data/minecraft/structure/ancient_city/structures/ice_box_1.nbt b/data/minecraft/structure/ancient_city/structures/ice_box_1.nbt new file mode 100644 index 00000000..6d8cb648 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/ice_box_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f33fafb4594aafe7d5e806fdff3c0b3f6f202b6ef79043e15adf827a4148a78 +size 3905 diff --git a/data/minecraft/structure/ancient_city/structures/large_pillar_1.nbt b/data/minecraft/structure/ancient_city/structures/large_pillar_1.nbt new file mode 100644 index 00000000..585a4bb3 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/large_pillar_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6826e85c165676a575533f6a374a4623c7bdba0a659b6828235f3614651126e6 +size 1475 diff --git a/data/minecraft/structure/ancient_city/structures/large_ruin_1.nbt b/data/minecraft/structure/ancient_city/structures/large_ruin_1.nbt new file mode 100644 index 00000000..2052bac1 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/large_ruin_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:001dc2aced09de145f27d4f93cf0acd07c224f57240a44cf0b4b950f7b6e7b56 +size 395 diff --git a/data/minecraft/structure/ancient_city/structures/medium_pillar_1.nbt b/data/minecraft/structure/ancient_city/structures/medium_pillar_1.nbt new file mode 100644 index 00000000..4cc40302 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/medium_pillar_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a66d7c52e599108d4e75bb6a0fe411d6e0a12976e3a4a83642ec2ce54c3be746 +size 958 diff --git a/data/minecraft/structure/ancient_city/structures/medium_ruin_1.nbt b/data/minecraft/structure/ancient_city/structures/medium_ruin_1.nbt new file mode 100644 index 00000000..9f872d6a --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/medium_ruin_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf04deb9e0983ac7816bf774f54ef898c0d406bda58555aca30286c2c0c5c908 +size 325 diff --git a/data/minecraft/structure/ancient_city/structures/medium_ruin_2.nbt b/data/minecraft/structure/ancient_city/structures/medium_ruin_2.nbt new file mode 100644 index 00000000..25362841 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/medium_ruin_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4bf9b3af3cb764297b333375755a78f2efb077839b864040bcadd6d0d17a1ac +size 351 diff --git a/data/minecraft/structure/ancient_city/structures/sauna_1.nbt b/data/minecraft/structure/ancient_city/structures/sauna_1.nbt new file mode 100644 index 00000000..59a14f8e --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/sauna_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a7752e57ed49930124f224f2424aad5df8d0cfa2e79961c94d248b1743c809e +size 6955 diff --git a/data/minecraft/structure/ancient_city/structures/small_ruin_1.nbt b/data/minecraft/structure/ancient_city/structures/small_ruin_1.nbt new file mode 100644 index 00000000..69ff5ea5 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/small_ruin_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2adbd215c1e2173f170b2352f62b65cf4168152a9aa975154a5d4f271ca331cd +size 313 diff --git a/data/minecraft/structure/ancient_city/structures/small_ruin_2.nbt b/data/minecraft/structure/ancient_city/structures/small_ruin_2.nbt new file mode 100644 index 00000000..13b206ff --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/small_ruin_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee24efaee3aab340f730124a530bd48058ef43de2eeefb888946bba4e6223b0c +size 308 diff --git a/data/minecraft/structure/ancient_city/structures/small_statue.nbt b/data/minecraft/structure/ancient_city/structures/small_statue.nbt new file mode 100644 index 00000000..732bc281 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/small_statue.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91aa1bfd3e0803ff45748ec605d148a012bf9ca7e62494ad8781511e159851a +size 890 diff --git a/data/minecraft/structure/ancient_city/structures/tall_ruin_1.nbt b/data/minecraft/structure/ancient_city/structures/tall_ruin_1.nbt new file mode 100644 index 00000000..3ac64045 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/tall_ruin_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67971b4d66749fa1bca5a46048018982b21e6dc137ab3625038e2243e399d5d3 +size 2790 diff --git a/data/minecraft/structure/ancient_city/structures/tall_ruin_2.nbt b/data/minecraft/structure/ancient_city/structures/tall_ruin_2.nbt new file mode 100644 index 00000000..6f728831 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/tall_ruin_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9758ed8f86dbfb81758139f32aa267fd32142ac122fcde1e718d8a3bf9898fd0 +size 3484 diff --git a/data/minecraft/structure/ancient_city/structures/tall_ruin_3.nbt b/data/minecraft/structure/ancient_city/structures/tall_ruin_3.nbt new file mode 100644 index 00000000..fc667032 --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/tall_ruin_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f987f87ffe4f4f600e06305a088f36f0bc3cb5b7469115ca49fe1fc342ef7a4 +size 1520 diff --git a/data/minecraft/structure/ancient_city/structures/tall_ruin_4.nbt b/data/minecraft/structure/ancient_city/structures/tall_ruin_4.nbt new file mode 100644 index 00000000..b77cc6bb --- /dev/null +++ b/data/minecraft/structure/ancient_city/structures/tall_ruin_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eef9be7372a464739d469e05e2760141703d2ed47f3573bd8be98a41b31848c5 +size 2294 diff --git a/data/minecraft/structure/ancient_city/walls/intact_corner_wall_1.nbt b/data/minecraft/structure/ancient_city/walls/intact_corner_wall_1.nbt new file mode 100644 index 00000000..3053d5a5 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_corner_wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f09b9e861b06d6db4a4abc40ed08c731a13dec1a0ae150b6c71061a87cefde01 +size 3835 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_1.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_1.nbt new file mode 100644 index 00000000..7cfbc24c --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30fbc1ebdc4463a923cf74271201c9bbaa5e2e6bc3482ca2171b26f3acd0a1bf +size 2024 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_2.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_2.nbt new file mode 100644 index 00000000..706434f4 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:738f57e0e9049b23f3c062b2b7db1ee78d174c85828fb845e754081c8e5c3b5b +size 2004 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_bridge.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_bridge.nbt new file mode 100644 index 00000000..dd8ad72a --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_bridge.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:701802407bf0864112d1eff9e1496fb6a057b1620b0d5205198e84cd26ce8663 +size 2719 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_passage_1.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_passage_1.nbt new file mode 100644 index 00000000..4bf39e57 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_passage_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43e2b7d7c3b264fce5cc95bdbacfffdfc9642519d6c9f5b4c1ecca69a1bb8bdb +size 1660 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_1.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_1.nbt new file mode 100644 index 00000000..96c433a9 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee6ef134b0f9a39f3191a27b5d63d3011d0c09536884803ea6565938c343ca14 +size 2116 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_2.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_2.nbt new file mode 100644 index 00000000..f114fec6 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2295dd1972b8d457aa09c8c02a0bf2beb5e239d69b60493ccfe81340750f0fed +size 2166 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_3.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_3.nbt new file mode 100644 index 00000000..c22b6934 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4221bee85021fe50c090c9780e6f65c9f453725133d2903a58d0db85a7abfec +size 2154 diff --git a/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_4.nbt b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_4.nbt new file mode 100644 index 00000000..54fec139 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_horizontal_wall_stairs_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2efd77e647d0761104e63afff39a93757b23a0662626d9b752e1cdb69b464e3f +size 2052 diff --git a/data/minecraft/structure/ancient_city/walls/intact_intersection_wall_1.nbt b/data/minecraft/structure/ancient_city/walls/intact_intersection_wall_1.nbt new file mode 100644 index 00000000..f49782a7 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_intersection_wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b82faccc6e7498a19a9e29cf62ffa34498b8f49acb1f8ef0a5b77f8f44bbf8ae +size 3123 diff --git a/data/minecraft/structure/ancient_city/walls/intact_lshape_wall_1.nbt b/data/minecraft/structure/ancient_city/walls/intact_lshape_wall_1.nbt new file mode 100644 index 00000000..166496dc --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/intact_lshape_wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2da2a8c3a4f0adc25058dd9bc641adf01a6b4f95f72fbeae4142bedfffd2e70f +size 2382 diff --git a/data/minecraft/structure/ancient_city/walls/ruined_corner_wall_1.nbt b/data/minecraft/structure/ancient_city/walls/ruined_corner_wall_1.nbt new file mode 100644 index 00000000..e868a77b --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/ruined_corner_wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c67b9848d98a7cf0cfe24c95665eec66b6a86ed25910959aa734cdaf267ecd54 +size 4167 diff --git a/data/minecraft/structure/ancient_city/walls/ruined_corner_wall_2.nbt b/data/minecraft/structure/ancient_city/walls/ruined_corner_wall_2.nbt new file mode 100644 index 00000000..69590b4d --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/ruined_corner_wall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b6084279aab3271960c202ee0bb20d1fd6a2a54a2d2addc9fba8193afa1eff0 +size 3301 diff --git a/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_1.nbt b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_1.nbt new file mode 100644 index 00000000..ec8135ae --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8504ef02f3751d70a4989c76ef7d1e7400f9fa3927e504701c394a9bb2bff51 +size 1488 diff --git a/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_2.nbt b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_2.nbt new file mode 100644 index 00000000..3712b7b8 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e21ce6e71e10d7d5135caa5eba05a1890e2c22268195791c49f0c147359dd3e5 +size 1973 diff --git a/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_3.nbt b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_3.nbt new file mode 100644 index 00000000..36cb87aa --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5e359c96d8db2cd25e677579246ded8badd27cb2dbe83498f1f9bc8a1898163 +size 1383 diff --git a/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_4.nbt b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_4.nbt new file mode 100644 index 00000000..4dee6875 --- /dev/null +++ b/data/minecraft/structure/ancient_city/walls/ruined_horizontal_wall_stairs_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2e39ed7fd2021dfe553e837cc7a1587db3b58b9d477228d3fa06f95f34a2fb5 +size 1338 diff --git a/data/minecraft/structure/bastion/blocks/air.nbt b/data/minecraft/structure/bastion/blocks/air.nbt new file mode 100644 index 00000000..88055775 --- /dev/null +++ b/data/minecraft/structure/bastion/blocks/air.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd0a2439716616388058ecf3094b27df0fdc9c6ddf1217764e9fbb6e2a7191b5 +size 226 diff --git a/data/minecraft/structure/bastion/blocks/gold.nbt b/data/minecraft/structure/bastion/blocks/gold.nbt new file mode 100644 index 00000000..30f1fbf9 --- /dev/null +++ b/data/minecraft/structure/bastion/blocks/gold.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0d7b5d4ff4e68ec313f6b8dd5cec6a4a1908a5cddf9d7db86d5bd471db1f248 +size 231 diff --git a/data/minecraft/structure/bastion/bridge/bridge_pieces/bridge.nbt b/data/minecraft/structure/bastion/bridge/bridge_pieces/bridge.nbt new file mode 100644 index 00000000..75cfac3e --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/bridge_pieces/bridge.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a161a95dc6d9de7dc27c1f1cc2b55e6998ad6ee77e58984dc43b77139ad1ed57 +size 15685 diff --git a/data/minecraft/structure/bastion/bridge/connectors/back_bridge_bottom.nbt b/data/minecraft/structure/bastion/bridge/connectors/back_bridge_bottom.nbt new file mode 100644 index 00000000..87e2b900 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/connectors/back_bridge_bottom.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5815427f464cee60cd2cf41707ce3e9612d6acaab8929764f82ff54d5cbf3f98 +size 1426 diff --git a/data/minecraft/structure/bastion/bridge/connectors/back_bridge_top.nbt b/data/minecraft/structure/bastion/bridge/connectors/back_bridge_top.nbt new file mode 100644 index 00000000..e981420b --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/connectors/back_bridge_top.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82fe66eece6e6bee7b95e892d260437bb534e54b7edb44f4a494fd6bf428821d +size 1372 diff --git a/data/minecraft/structure/bastion/bridge/legs/leg_0.nbt b/data/minecraft/structure/bastion/bridge/legs/leg_0.nbt new file mode 100644 index 00000000..f284b57a --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/legs/leg_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b632d6820f1430f2bec7b34d704968d46fd9155246612b2de8dbf3e90c2aa10 +size 705 diff --git a/data/minecraft/structure/bastion/bridge/legs/leg_1.nbt b/data/minecraft/structure/bastion/bridge/legs/leg_1.nbt new file mode 100644 index 00000000..f2659350 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/legs/leg_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:876f3dfcb157cfad3b48e01a6e2d142f5c28c97a3d99d3f1bc8046cfd1c97e3c +size 737 diff --git a/data/minecraft/structure/bastion/bridge/rampart_plates/plate_0.nbt b/data/minecraft/structure/bastion/bridge/rampart_plates/plate_0.nbt new file mode 100644 index 00000000..a2570901 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/rampart_plates/plate_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51b152e50af08574989e3973955a32d2edddda02c57f5be999a879de6bcd0500 +size 2052 diff --git a/data/minecraft/structure/bastion/bridge/ramparts/rampart_0.nbt b/data/minecraft/structure/bastion/bridge/ramparts/rampart_0.nbt new file mode 100644 index 00000000..31fa3bfb --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/ramparts/rampart_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18edc14c5826c184b5ff0f85dd9b98b9c42f6f6defe64bf090637c2cdf7b092f +size 12576 diff --git a/data/minecraft/structure/bastion/bridge/ramparts/rampart_1.nbt b/data/minecraft/structure/bastion/bridge/ramparts/rampart_1.nbt new file mode 100644 index 00000000..dfb71188 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/ramparts/rampart_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a3512dc4fe718894d30f483ce02a0f6f6ee087dd17718d642b322bc3e214de +size 19407 diff --git a/data/minecraft/structure/bastion/bridge/starting_pieces/entrance.nbt b/data/minecraft/structure/bastion/bridge/starting_pieces/entrance.nbt new file mode 100644 index 00000000..8a4bfc67 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/starting_pieces/entrance.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95af7aaae1af7a1e65b2ded0b2226d418c55496bdc29f43c59af9cb6a897c10c +size 41135 diff --git a/data/minecraft/structure/bastion/bridge/starting_pieces/entrance_base.nbt b/data/minecraft/structure/bastion/bridge/starting_pieces/entrance_base.nbt new file mode 100644 index 00000000..607023ec --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/starting_pieces/entrance_base.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:977c448039e71e8b513b0856c678c8e4e2e7a9b516954b1948fee53b406a082d +size 45583 diff --git a/data/minecraft/structure/bastion/bridge/starting_pieces/entrance_face.nbt b/data/minecraft/structure/bastion/bridge/starting_pieces/entrance_face.nbt new file mode 100644 index 00000000..e4d980e4 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/starting_pieces/entrance_face.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e373f84d145565cbdf4cd4bd0edde8a56ad84b0591f1efc86636f1db091221c6 +size 2736 diff --git a/data/minecraft/structure/bastion/bridge/walls/wall_base_0.nbt b/data/minecraft/structure/bastion/bridge/walls/wall_base_0.nbt new file mode 100644 index 00000000..4d89adb1 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/walls/wall_base_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e029a57932d3cdb04f320ad1d88c5c405896a5658c9fbaafe5be987496106ee +size 17430 diff --git a/data/minecraft/structure/bastion/bridge/walls/wall_base_1.nbt b/data/minecraft/structure/bastion/bridge/walls/wall_base_1.nbt new file mode 100644 index 00000000..f7241898 --- /dev/null +++ b/data/minecraft/structure/bastion/bridge/walls/wall_base_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dd39cebfd4d47da897b8a3ff3aec1fe8ff27c7d0ed0cf233804f1d1c62da7f0 +size 17257 diff --git a/data/minecraft/structure/bastion/hoglin_stable/air_base.nbt b/data/minecraft/structure/bastion/hoglin_stable/air_base.nbt new file mode 100644 index 00000000..97b54eb1 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/air_base.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:206b6c7da357f49f828eef94b6f7215f26a62ccc0051c267b11e1479230ee3a7 +size 80378 diff --git a/data/minecraft/structure/bastion/hoglin_stable/connectors/end_post_connector.nbt b/data/minecraft/structure/bastion/hoglin_stable/connectors/end_post_connector.nbt new file mode 100644 index 00000000..51629fb2 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/connectors/end_post_connector.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1932d09fc43bb8230fcd39fd09b00ed11386369cdc95c7bef665cd911e2f47f +size 286 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_0.nbt new file mode 100644 index 00000000..5a9ac011 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1aee607de3ba426cbf20b09211227c1feb399b945b2e9c0384031488841a032 +size 1877 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_1.nbt new file mode 100644 index 00000000..b943d476 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9ddcf45b4f289115b4d2694da03407af9b035f88fa398b405eaf73fae655149 +size 2074 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_2.nbt new file mode 100644 index 00000000..f8b1ffca --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe1ef24cfca84ea6e6ce95389de2a270aeab84e1628a026ea93dd18afbdb0dfc +size 2350 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_3.nbt new file mode 100644 index 00000000..9be3d148 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:148f4d8c83271c1c33ad901172800f974383bab12380cbbdc43081f8b9ade7fc +size 2397 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_4.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_4.nbt new file mode 100644 index 00000000..bf5c247c --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/inner_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cfa4fe5b1521a92ba359ac4b5897dd4dd5faba629d9203a42f7108bc41e2c5a +size 2144 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_0.nbt new file mode 100644 index 00000000..9e362fd3 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbebb56594472f14d51132868126878c0c8e326eef3c7be84ce7671292f45204 +size 1963 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_1.nbt new file mode 100644 index 00000000..4b7c0651 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d37085d65a9a6020fdddbee26f8250d11749b015e4a5bca9662e3349b66daae1 +size 2316 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_2.nbt new file mode 100644 index 00000000..7ce7a5c7 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5eb2342c60e7dd3dcbd9b0254ac153c2dcd748bebcea65e3987902d1f69aece0 +size 2553 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_3.nbt new file mode 100644 index 00000000..700aba02 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edc4dd445ebb11a1a03442f18b182a519a2519674102d4e7d7dd7ed4a9591c26 +size 2451 diff --git a/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_4.nbt b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_4.nbt new file mode 100644 index 00000000..9789dd90 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/large_stables/outer_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e703f274fdd2881e920b1bc61bf01e4dc79be724b58a50eed3b9dd5bdcf340d0 +size 2395 diff --git a/data/minecraft/structure/bastion/hoglin_stable/posts/end_post.nbt b/data/minecraft/structure/bastion/hoglin_stable/posts/end_post.nbt new file mode 100644 index 00000000..2b6157ea --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/posts/end_post.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3047fc9c64bd6ede35df47d5f4698f28e2e8fc6a7a941e66b74510335cc3069f +size 528 diff --git a/data/minecraft/structure/bastion/hoglin_stable/posts/stair_post.nbt b/data/minecraft/structure/bastion/hoglin_stable/posts/stair_post.nbt new file mode 100644 index 00000000..9d4d9bae --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/posts/stair_post.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08a5c32a4f6ec23eb7dd8ab2745bf51366b5ddf64cbbaa428ea6044fbfe1740c +size 1164 diff --git a/data/minecraft/structure/bastion/hoglin_stable/rampart_plates/rampart_plate_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/rampart_plates/rampart_plate_1.nbt new file mode 100644 index 00000000..3ee01717 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/rampart_plates/rampart_plate_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5909e11fc091dab4bfeed1b7bddd95692f98345d80711df1fa6f4a5683df4093 +size 2177 diff --git a/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_1.nbt new file mode 100644 index 00000000..928a7936 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e9e5eec38c4cb8318a06b0babac1c82f3629579748730e94251ca6b9a81b54d +size 19107 diff --git a/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_2.nbt new file mode 100644 index 00000000..50f450d3 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1604b73eec9ba8761f43f8eee560e0c5479c4c0438ac5a92a5a18b802a189a4d +size 12205 diff --git a/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_3.nbt new file mode 100644 index 00000000..9f47f04d --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/ramparts/ramparts_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5f28066fadfa4825742adaedfedcffbab051094aab778500b8cae4acdf7a250 +size 6387 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_0.nbt new file mode 100644 index 00000000..dd552320 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d67ea01735eff0fdab842651fc84f9187add4a3d272836039169197875e8b5d +size 1895 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_1.nbt new file mode 100644 index 00000000..ab127bd6 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ed5e38cfeb22baffd1a4dd13a0ec629e606203b65ca21f881d8ac8cc67f9e74 +size 1978 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_2.nbt new file mode 100644 index 00000000..4379f118 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:614ddf7f0d18a1ca111b46f15323aeff7bcd7fb46aa40a491fd4fcd880767f4e +size 2208 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_3.nbt new file mode 100644 index 00000000..d7f2ff9b --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/inner_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e735456a78e7d0313f4611852e7272b25ae4c41bc1f61df74cab0a6bf313b9f8 +size 1679 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_0.nbt new file mode 100644 index 00000000..0fb6dfec --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41e58d58a57bc6cc1b2b9804cefe55e9b01e139ac1236c57ea9319b79da74166 +size 2135 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_1.nbt new file mode 100644 index 00000000..b9ac2b58 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a35c0b45190d5aaf2e2deaa194ff4e9d211bb8ffe97d762883d8dd47606b702 +size 2062 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_2.nbt new file mode 100644 index 00000000..8de74ce7 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a81378a7f567c19c7b85c82e8ae392038f8cc0f8b83c0078c3db41f38a6aa53 +size 2147 diff --git a/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_3.nbt new file mode 100644 index 00000000..037aa01e --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/small_stables/outer_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a97ad77442d8b63476fc8ef37af72dbc2e54ed523560ee59871a51af59513478 +size 1848 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_0.nbt new file mode 100644 index 00000000..44f715bd --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24796ae8cfdb9fea82e25de56b76e1dbfa38f1f5aef8e1fe7afa33f961ac3ed9 +size 4463 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_1.nbt new file mode 100644 index 00000000..5ace3182 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12eed7b69071b590eedc4ea5e1ba2cacfc0e8256f2cc2b77374851cf8ff470c6 +size 4273 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_2.nbt new file mode 100644 index 00000000..0d2c69e1 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37e9f645efdbd5b43b2b847f8683f2728169d7af8d44a1eb8053747be5835443 +size 4336 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_3.nbt new file mode 100644 index 00000000..7ba35db0 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b761a8c70527c2812dc8fc695b5b42595de11976f0b965c7efa78c8ae10f330c +size 4495 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_4.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_4.nbt new file mode 100644 index 00000000..4b9225f1 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_1_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f50c7c7f44b6cc56fdf77ca42f9a125e4063191a84e05f9cf0808451bdafc00 +size 4436 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_0.nbt new file mode 100644 index 00000000..fd89ea52 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f64bcb02eeaead3e2afa80fae47cbea3154b3f3f76145693c57b0d36d1e76681 +size 4411 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_1.nbt new file mode 100644 index 00000000..2ce02b3a --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e54d5c845832d863826b6e3b589734cbf0f72b67358673ab855b83167942f08 +size 4331 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_2.nbt new file mode 100644 index 00000000..b881292b --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3711b310dc230950c3e8f47afaf2639d830eb41c05d2f4aebac307556fa941fc +size 4117 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_3.nbt new file mode 100644 index 00000000..9ce37aca --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c152010c7b59d2dac3025d851bf43e95671389335e580f0635044028b44a7fa7 +size 3300 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_4.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_4.nbt new file mode 100644 index 00000000..9b66c948 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_2_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aafd651e4263a000f760df47c2e48bfc50e4dce48a08c2528b33b4ed48720562 +size 4376 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_0.nbt new file mode 100644 index 00000000..f05ce601 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed3ff547a6fcb05ff667458242ae85a6dae3ff121d83d57664662143fd5ced60 +size 4018 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_1.nbt new file mode 100644 index 00000000..ceb6155b --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb694189f6de3c45dd1358f7b0e04f536e47cf769282f2bb26cc09f6730828bf +size 4003 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_2.nbt new file mode 100644 index 00000000..aed8345f --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09b094b0922eaba75edfa0682d619d8c388a8e0f3ef00e744f93b08111c4cf6f +size 4207 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_3.nbt new file mode 100644 index 00000000..9ae2362b --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02ef3657b75c4dc679e753b974f193684f901e7afdcbb1924d17974fbc085b4e +size 4320 diff --git a/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_4.nbt b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_4.nbt new file mode 100644 index 00000000..e95214e3 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/stairs/stairs_3_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02f6273eecf7cce50fd22c7dfd8feb083f7d344e8d2f9f10124d948de3149ac0 +size 2776 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_0_mirrored.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_0_mirrored.nbt new file mode 100644 index 00000000..5f233d5d --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_0_mirrored.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab35577bf04c99eaf190f2480f27d42b1510d40cf881505a84d9651ff78f9801 +size 4609 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_1_mirrored.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_1_mirrored.nbt new file mode 100644 index 00000000..0c2bff86 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_1_mirrored.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:256c374fea5a4d602c51201d661cb4fb40e8fffad45e5ec47693dd820744592f +size 4624 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_2_mirrored.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_2_mirrored.nbt new file mode 100644 index 00000000..851fab30 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_2_mirrored.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0b02348a1eb5cbd4e64f9c7e9b716e8655380b389fac4ac993f911ee0a0340e +size 4541 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_3_mirrored.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_3_mirrored.nbt new file mode 100644 index 00000000..3753edde --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_3_mirrored.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6540aebd8cf9d0f4d198741655fd71f973b0a49bf4ec79bdf638f83f5203dd00 +size 4739 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_4_mirrored.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_4_mirrored.nbt new file mode 100644 index 00000000..c21968a7 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/stairs_4_mirrored.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b909becc1851739ac5542a92b8c5b92cd5e315e6fd2be40c370ea52f5e49098c +size 4588 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_0.nbt new file mode 100644 index 00000000..1c008107 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37b5d7e3b4353214f407abbc64f0b65aed309012506d78f7440299e1bb811525 +size 4624 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_1.nbt new file mode 100644 index 00000000..d4b30e6a --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f31549b820e31462f61b8a5c9127223fb74596ab8cf6ff1e66518c163c955ed +size 4908 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_2.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_2.nbt new file mode 100644 index 00000000..f4274a70 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:629837246cd59f569dbb0b67d199f7638d5c7920f97e4ff849c6f5f8f0c8f0b3 +size 4907 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_3.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_3.nbt new file mode 100644 index 00000000..7624b379 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f77df5b1a7057b68ffbd7c2921f263a49798cb6044fabf73bb4c851482d47a8 +size 4914 diff --git a/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_4.nbt b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_4.nbt new file mode 100644 index 00000000..08566e5a --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/starting_pieces/starting_stairs_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69c422109255d7eaf2f6d7ef87faa49baf6f25ba68f5d987935691759ef4fff1 +size 4583 diff --git a/data/minecraft/structure/bastion/hoglin_stable/walls/side_wall_0.nbt b/data/minecraft/structure/bastion/hoglin_stable/walls/side_wall_0.nbt new file mode 100644 index 00000000..90663b38 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/walls/side_wall_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cdbafa370c994a5e9f32e693b3768021510efead055f1c08a260c2291ee264a +size 16615 diff --git a/data/minecraft/structure/bastion/hoglin_stable/walls/side_wall_1.nbt b/data/minecraft/structure/bastion/hoglin_stable/walls/side_wall_1.nbt new file mode 100644 index 00000000..7b97c2f6 --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/walls/side_wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c04ab612f943bbbe4e26f640ebffb3428e62e8f98aec0f9f7de17de25ef765a1 +size 17024 diff --git a/data/minecraft/structure/bastion/hoglin_stable/walls/wall_base.nbt b/data/minecraft/structure/bastion/hoglin_stable/walls/wall_base.nbt new file mode 100644 index 00000000..1cc4838d --- /dev/null +++ b/data/minecraft/structure/bastion/hoglin_stable/walls/wall_base.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7a0cfaed6f66bd1fa328c5ee3d1717a06850f2fe20aa6afe7c56e34ccc18866 +size 16412 diff --git a/data/minecraft/structure/bastion/mobs/crossbow_piglin.nbt b/data/minecraft/structure/bastion/mobs/crossbow_piglin.nbt new file mode 100644 index 00000000..cbf5842f --- /dev/null +++ b/data/minecraft/structure/bastion/mobs/crossbow_piglin.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcf377d3af45ca6ab93828b6f5ea0ad3009dcdfa1336b499c955f22c881a32c9 +size 694 diff --git a/data/minecraft/structure/bastion/mobs/empty.nbt b/data/minecraft/structure/bastion/mobs/empty.nbt new file mode 100644 index 00000000..d6f05692 --- /dev/null +++ b/data/minecraft/structure/bastion/mobs/empty.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28a4bbd9dacf8d69162fa4c26b7afd8adbfb0b6ac134ca2cac01c44022bf6499 +size 226 diff --git a/data/minecraft/structure/bastion/mobs/hoglin.nbt b/data/minecraft/structure/bastion/mobs/hoglin.nbt new file mode 100644 index 00000000..29a67be5 --- /dev/null +++ b/data/minecraft/structure/bastion/mobs/hoglin.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b58921025ec3c28b25fa8da6d002941565e17de3e2ca868825507b22f966ef09 +size 737 diff --git a/data/minecraft/structure/bastion/mobs/melee_piglin.nbt b/data/minecraft/structure/bastion/mobs/melee_piglin.nbt new file mode 100644 index 00000000..2e91120e --- /dev/null +++ b/data/minecraft/structure/bastion/mobs/melee_piglin.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4d29344b91b4b9c0f2eb4e16d4b52753a16701acd5371cd70d51f75a4a932ad +size 681 diff --git a/data/minecraft/structure/bastion/mobs/melee_piglin_always.nbt b/data/minecraft/structure/bastion/mobs/melee_piglin_always.nbt new file mode 100644 index 00000000..48b24848 --- /dev/null +++ b/data/minecraft/structure/bastion/mobs/melee_piglin_always.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5907374e855606737e7951b9d787ab3f27ef2b794f6ef78f7ff135e0799fd92 +size 674 diff --git a/data/minecraft/structure/bastion/mobs/sword_piglin.nbt b/data/minecraft/structure/bastion/mobs/sword_piglin.nbt new file mode 100644 index 00000000..02150395 --- /dev/null +++ b/data/minecraft/structure/bastion/mobs/sword_piglin.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a1b91ff8501ccfb5898c87055000a946096b31023882131410294077cf98f5f +size 701 diff --git a/data/minecraft/structure/bastion/treasure/bases/centers/center_0.nbt b/data/minecraft/structure/bastion/treasure/bases/centers/center_0.nbt new file mode 100644 index 00000000..aa61532f --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/bases/centers/center_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc0f458ebf8ee8d55f6fd89203015743a4b1fced53bc425c94a8ffa556dabeba +size 1022 diff --git a/data/minecraft/structure/bastion/treasure/bases/centers/center_1.nbt b/data/minecraft/structure/bastion/treasure/bases/centers/center_1.nbt new file mode 100644 index 00000000..77a9a041 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/bases/centers/center_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55000d2a132f5d05acb4cfb9dea235ed4644b44d104632e637c89c9b5524bd61 +size 957 diff --git a/data/minecraft/structure/bastion/treasure/bases/centers/center_2.nbt b/data/minecraft/structure/bastion/treasure/bases/centers/center_2.nbt new file mode 100644 index 00000000..6f60f055 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/bases/centers/center_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11815d9fd8680ac34895d006ff1b1c93b0f228e9bf859f6d5f987ff5b59e7537 +size 1073 diff --git a/data/minecraft/structure/bastion/treasure/bases/centers/center_3.nbt b/data/minecraft/structure/bastion/treasure/bases/centers/center_3.nbt new file mode 100644 index 00000000..09224086 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/bases/centers/center_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20aaa0ab92fba75ea31116d3e2a5047b097221dff99a64742442d1e91d634d27 +size 734 diff --git a/data/minecraft/structure/bastion/treasure/bases/lava_basin.nbt b/data/minecraft/structure/bastion/treasure/bases/lava_basin.nbt new file mode 100644 index 00000000..e1755128 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/bases/lava_basin.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cb1c8cf7f32c62609c4c55b1f20c7d1fffafd557385370bec5b12fe5d98d95b +size 6582 diff --git a/data/minecraft/structure/bastion/treasure/big_air_full.nbt b/data/minecraft/structure/bastion/treasure/big_air_full.nbt new file mode 100644 index 00000000..b99da862 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/big_air_full.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:764c03b7eea7d49de541e1fcb66b21388d5a57ce7fea1c83f805603c7944965c +size 69672 diff --git a/data/minecraft/structure/bastion/treasure/brains/center_brain.nbt b/data/minecraft/structure/bastion/treasure/brains/center_brain.nbt new file mode 100644 index 00000000..137b22d3 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/brains/center_brain.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92ebe907f4cc5249f618e0065637100fae7d29b7949db15d30eee0cb55839f1d +size 414 diff --git a/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_middle.nbt b/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_middle.nbt new file mode 100644 index 00000000..cfea4dbf --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_middle.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c41d11e15bccc002800f8aa475f46a413c63ed3938c9ac1a898dc1681c91ff75 +size 285 diff --git a/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_top.nbt b/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_top.nbt new file mode 100644 index 00000000..23022e74 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_top.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce941a2c6275206b4c16a8c30f2d5e9f1edccf38652ba135a29daa4ddfce1f82 +size 285 diff --git a/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_top_entrance.nbt b/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_top_entrance.nbt new file mode 100644 index 00000000..12c0f935 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/connectors/center_to_wall_top_entrance.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39374c9da967f5e84abbc681a693f3c28c94b86216189b940022cab3e21b2c3e +size 289 diff --git a/data/minecraft/structure/bastion/treasure/corners/bottom/corner_0.nbt b/data/minecraft/structure/bastion/treasure/corners/bottom/corner_0.nbt new file mode 100644 index 00000000..b5143722 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/bottom/corner_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1afd34d69dc2fd7b0cc31cd1b28845b156007fd3badbf1f8ea5706bd66f87f20 +size 1682 diff --git a/data/minecraft/structure/bastion/treasure/corners/bottom/corner_1.nbt b/data/minecraft/structure/bastion/treasure/corners/bottom/corner_1.nbt new file mode 100644 index 00000000..63524214 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/bottom/corner_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fd1faf80335ea7a4fd70a35010f943e268d24a2896aa00d3f02dd86adcdd02f +size 1679 diff --git a/data/minecraft/structure/bastion/treasure/corners/edges/bottom.nbt b/data/minecraft/structure/bastion/treasure/corners/edges/bottom.nbt new file mode 100644 index 00000000..c66232b0 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/edges/bottom.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de24cff5f3823fce2f5281d7fd62f33804974bf955275a6a886b9c62e6aac4a0 +size 448 diff --git a/data/minecraft/structure/bastion/treasure/corners/edges/middle.nbt b/data/minecraft/structure/bastion/treasure/corners/edges/middle.nbt new file mode 100644 index 00000000..361b7733 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/edges/middle.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81813f7e9278cde7055e369ae38ad69f3fc506380d4cfdc99562848802677f63 +size 438 diff --git a/data/minecraft/structure/bastion/treasure/corners/edges/top.nbt b/data/minecraft/structure/bastion/treasure/corners/edges/top.nbt new file mode 100644 index 00000000..f6dc2936 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/edges/top.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae50772d621ca910d35e4dcee5372dcf9df29e059faeb0c2be9fa6da73973f59 +size 455 diff --git a/data/minecraft/structure/bastion/treasure/corners/middle/corner_0.nbt b/data/minecraft/structure/bastion/treasure/corners/middle/corner_0.nbt new file mode 100644 index 00000000..13b7f92c --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/middle/corner_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9735e7b323540085d2cf36bd1467dabd1652a462dcd4b620736c5d8a63c9b08e +size 1583 diff --git a/data/minecraft/structure/bastion/treasure/corners/middle/corner_1.nbt b/data/minecraft/structure/bastion/treasure/corners/middle/corner_1.nbt new file mode 100644 index 00000000..e1ad269b --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/middle/corner_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:820de9e199568f90d78bec260501f33ee93f468aa4c4715c9fc38299aea864b7 +size 1537 diff --git a/data/minecraft/structure/bastion/treasure/corners/top/corner_0.nbt b/data/minecraft/structure/bastion/treasure/corners/top/corner_0.nbt new file mode 100644 index 00000000..2a566844 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/top/corner_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e57458ae97aceb33af25bb33987497c522eed65c106ead740f1295ad517dfdb0 +size 1551 diff --git a/data/minecraft/structure/bastion/treasure/corners/top/corner_1.nbt b/data/minecraft/structure/bastion/treasure/corners/top/corner_1.nbt new file mode 100644 index 00000000..dbff5cac --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/corners/top/corner_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50744cfb466d2720f52cda1419307db8c4c01396f191c6c63bd8500423c53aad +size 1571 diff --git a/data/minecraft/structure/bastion/treasure/entrances/entrance_0.nbt b/data/minecraft/structure/bastion/treasure/entrances/entrance_0.nbt new file mode 100644 index 00000000..bea5ee8c --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/entrances/entrance_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a70794ce3a33c558227abcb5c8ff8d3b8e04c40cc4ce6baecc948e1a05c8ce3 +size 11195 diff --git a/data/minecraft/structure/bastion/treasure/extensions/empty.nbt b/data/minecraft/structure/bastion/treasure/extensions/empty.nbt new file mode 100644 index 00000000..40ccf6da --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/empty.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0eee62109c85124f69fb0e8efb4baaf7b30b2fc166da1c2cc7c2a61a8456f4e +size 230 diff --git a/data/minecraft/structure/bastion/treasure/extensions/fire_room.nbt b/data/minecraft/structure/bastion/treasure/extensions/fire_room.nbt new file mode 100644 index 00000000..22274312 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/fire_room.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91a5aa1cde11f2eaff46838eb432bb943b99e8476ab808474868a2345c7569eb +size 1864 diff --git a/data/minecraft/structure/bastion/treasure/extensions/house_0.nbt b/data/minecraft/structure/bastion/treasure/extensions/house_0.nbt new file mode 100644 index 00000000..0db34e65 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/house_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ec939c9d7b145f50d2ecd86ccf0e85d47eb4c8fa4144311f3380fb10dff52f6 +size 2075 diff --git a/data/minecraft/structure/bastion/treasure/extensions/house_1.nbt b/data/minecraft/structure/bastion/treasure/extensions/house_1.nbt new file mode 100644 index 00000000..7c479915 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d47006195be7f852b0083a4ba6ca926663ab8c3b4cf13a8ea7ad6e5357cec541 +size 2157 diff --git a/data/minecraft/structure/bastion/treasure/extensions/large_bridge_0.nbt b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_0.nbt new file mode 100644 index 00000000..430397ed --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6212c7b10218cf493a48f14d394392d1301cb459dbb6d956ea4a1932fef315f9 +size 452 diff --git a/data/minecraft/structure/bastion/treasure/extensions/large_bridge_1.nbt b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_1.nbt new file mode 100644 index 00000000..ed27da6d --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ba789bc064452c799ee1018752f00123bd96561ea68e3b87ed098e6feb0b493 +size 416 diff --git a/data/minecraft/structure/bastion/treasure/extensions/large_bridge_2.nbt b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_2.nbt new file mode 100644 index 00000000..90ed7980 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f24bc3f8c4cde18b524e7fba85fe775ba84cb9dbf528514aa7cacad0bf63b7af +size 536 diff --git a/data/minecraft/structure/bastion/treasure/extensions/large_bridge_3.nbt b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_3.nbt new file mode 100644 index 00000000..f9b4d95b --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/large_bridge_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc471747da7da8e48d29d7041ced2d225cce13a78cdbc73cac3c8486629f4151 +size 613 diff --git a/data/minecraft/structure/bastion/treasure/extensions/roofed_bridge.nbt b/data/minecraft/structure/bastion/treasure/extensions/roofed_bridge.nbt new file mode 100644 index 00000000..4bf3ded3 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/roofed_bridge.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a9c43ca856e672d35cb919f39c06b795c852493c70dd62c0fdada57e2ef9b07 +size 640 diff --git a/data/minecraft/structure/bastion/treasure/extensions/small_bridge_0.nbt b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_0.nbt new file mode 100644 index 00000000..e65a1060 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75a1948e268112adb89501bd555f7889f417c3abde7a3c81619123ee3bf3ed5f +size 318 diff --git a/data/minecraft/structure/bastion/treasure/extensions/small_bridge_1.nbt b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_1.nbt new file mode 100644 index 00000000..267bee1e --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:839a7bf4559bd3ede1a57cb1fe11b57c84a591b6cf4c584573be3d527387ede4 +size 388 diff --git a/data/minecraft/structure/bastion/treasure/extensions/small_bridge_2.nbt b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_2.nbt new file mode 100644 index 00000000..a9759fe3 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1c1f5f371a4b8a0a2a7a7ad16e0502b097fb4bfe033f910c25d6489ed17d835 +size 347 diff --git a/data/minecraft/structure/bastion/treasure/extensions/small_bridge_3.nbt b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_3.nbt new file mode 100644 index 00000000..9d070d24 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/extensions/small_bridge_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba7e0f7446861edd73e4c20fad84e7a454029e75962771679a18a05b2433751a +size 478 diff --git a/data/minecraft/structure/bastion/treasure/ramparts/bottom_wall_0.nbt b/data/minecraft/structure/bastion/treasure/ramparts/bottom_wall_0.nbt new file mode 100644 index 00000000..95ac780f --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/ramparts/bottom_wall_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b21b8de47ccae7d0f050b4c2268471a8dc94396ca06843992a1ed8539d9eac81 +size 11778 diff --git a/data/minecraft/structure/bastion/treasure/ramparts/lava_basin_main.nbt b/data/minecraft/structure/bastion/treasure/ramparts/lava_basin_main.nbt new file mode 100644 index 00000000..e738ad1f --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/ramparts/lava_basin_main.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:017e19f4d775e035fd5f3658a0bd29dbdfc71f15aa0540dd7d235ef92c2e28de +size 24167 diff --git a/data/minecraft/structure/bastion/treasure/ramparts/lava_basin_side.nbt b/data/minecraft/structure/bastion/treasure/ramparts/lava_basin_side.nbt new file mode 100644 index 00000000..8037f77f --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/ramparts/lava_basin_side.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00b123187c367eaa18ba4eb3c4ba7621f783f041eac7320c24984c2f619c7329 +size 23966 diff --git a/data/minecraft/structure/bastion/treasure/ramparts/mid_wall_main.nbt b/data/minecraft/structure/bastion/treasure/ramparts/mid_wall_main.nbt new file mode 100644 index 00000000..049a2571 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/ramparts/mid_wall_main.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de4b107b72a29da37aa8514784d0eeef081179fb3564524b38545ae0694d62ba +size 18996 diff --git a/data/minecraft/structure/bastion/treasure/ramparts/mid_wall_side.nbt b/data/minecraft/structure/bastion/treasure/ramparts/mid_wall_side.nbt new file mode 100644 index 00000000..a54f0952 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/ramparts/mid_wall_side.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1b25fd8a8920caa87a1de35faa611007b089843279625e8d92200672762609c +size 18144 diff --git a/data/minecraft/structure/bastion/treasure/ramparts/top_wall.nbt b/data/minecraft/structure/bastion/treasure/ramparts/top_wall.nbt new file mode 100644 index 00000000..3c93d1f7 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/ramparts/top_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9461ad6935e482fed62c1abe677a82200861eabebb07872df676d94f707d07f8 +size 9858 diff --git a/data/minecraft/structure/bastion/treasure/roofs/center_roof.nbt b/data/minecraft/structure/bastion/treasure/roofs/center_roof.nbt new file mode 100644 index 00000000..c7d0a732 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/roofs/center_roof.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5144762cb24b42be41ac06153f061d1c546b53088b2d9650551cbc4735a053b1 +size 3446 diff --git a/data/minecraft/structure/bastion/treasure/roofs/corner_roof.nbt b/data/minecraft/structure/bastion/treasure/roofs/corner_roof.nbt new file mode 100644 index 00000000..31fdc269 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/roofs/corner_roof.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20d66fd113a802c338c030785e5b3570f77f4b979709eb6898c1bdaf6fb28c75 +size 423 diff --git a/data/minecraft/structure/bastion/treasure/roofs/wall_roof.nbt b/data/minecraft/structure/bastion/treasure/roofs/wall_roof.nbt new file mode 100644 index 00000000..1fd2a8ea --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/roofs/wall_roof.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f108dbd8ce287ea58079b872c2c9cf518acf1fec9a18ea9ac0fca2f625513602 +size 990 diff --git a/data/minecraft/structure/bastion/treasure/stairs/lower_stairs.nbt b/data/minecraft/structure/bastion/treasure/stairs/lower_stairs.nbt new file mode 100644 index 00000000..b25fe088 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/stairs/lower_stairs.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12a22329f893482ddcba4607c388ed508d96e6b6fc3e5913e3e364a0e822f6f2 +size 445 diff --git a/data/minecraft/structure/bastion/treasure/walls/bottom/wall_0.nbt b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_0.nbt new file mode 100644 index 00000000..ab67f351 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c18d085667d46fea5c95106d9d2a5f12f151d84070bc46f11e22858b65254b55 +size 6610 diff --git a/data/minecraft/structure/bastion/treasure/walls/bottom/wall_1.nbt b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_1.nbt new file mode 100644 index 00000000..c1181882 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d55b14f10edde3edd18dbbaf298581069e9508f407c23a2ea437d8a666218077 +size 6497 diff --git a/data/minecraft/structure/bastion/treasure/walls/bottom/wall_2.nbt b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_2.nbt new file mode 100644 index 00000000..4779d756 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31a733019eebb05054bc0d401236fb0efccd274ba7e81c2551dec0c908891f1a +size 6440 diff --git a/data/minecraft/structure/bastion/treasure/walls/bottom/wall_3.nbt b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_3.nbt new file mode 100644 index 00000000..c9338980 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/bottom/wall_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3073930a517dd50182913277818fc19e631749c56946d65f3c221fc36db20820 +size 6488 diff --git a/data/minecraft/structure/bastion/treasure/walls/entrance_wall.nbt b/data/minecraft/structure/bastion/treasure/walls/entrance_wall.nbt new file mode 100644 index 00000000..52eb3688 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/entrance_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e664ac995fe845c96c5bd3e4c22ebbc510be214f45cebb0c0884f1fd539f45e +size 2676 diff --git a/data/minecraft/structure/bastion/treasure/walls/lava_wall.nbt b/data/minecraft/structure/bastion/treasure/walls/lava_wall.nbt new file mode 100644 index 00000000..06772982 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/lava_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e81df88d87e9b94f37b875db676eece9883a65cb0234a25231ab4eef3a0bd81 +size 2797 diff --git a/data/minecraft/structure/bastion/treasure/walls/mid/wall_0.nbt b/data/minecraft/structure/bastion/treasure/walls/mid/wall_0.nbt new file mode 100644 index 00000000..bb660d60 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/mid/wall_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c383d1c1e20cc2eb49968494ca388b701af3f08cac0a95886640a565b20a633d +size 6294 diff --git a/data/minecraft/structure/bastion/treasure/walls/mid/wall_1.nbt b/data/minecraft/structure/bastion/treasure/walls/mid/wall_1.nbt new file mode 100644 index 00000000..2486138b --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/mid/wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07339e3ed9d519a52f0ded08dffc5895ef1fa299723d1db51b97f290abef4b2e +size 6150 diff --git a/data/minecraft/structure/bastion/treasure/walls/mid/wall_2.nbt b/data/minecraft/structure/bastion/treasure/walls/mid/wall_2.nbt new file mode 100644 index 00000000..8f227dd8 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/mid/wall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ddc7ec187ccb4f6ce4abd92455ce1c5b46a60a08eb594c6d8d9a4d4a9e908d7 +size 6172 diff --git a/data/minecraft/structure/bastion/treasure/walls/outer/bottom_corner.nbt b/data/minecraft/structure/bastion/treasure/walls/outer/bottom_corner.nbt new file mode 100644 index 00000000..fc26e4ad --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/outer/bottom_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e7cd14256fb725b2e750a60e089de59f3967c033df43cf4f64934b3deed593b +size 779 diff --git a/data/minecraft/structure/bastion/treasure/walls/outer/medium_outer_wall.nbt b/data/minecraft/structure/bastion/treasure/walls/outer/medium_outer_wall.nbt new file mode 100644 index 00000000..fac86a2d --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/outer/medium_outer_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc4d7b6b7cb9de3e02ee2fd5b36b260ddae0d8405021787ac232e86c7892c2a2 +size 2331 diff --git a/data/minecraft/structure/bastion/treasure/walls/outer/mid_corner.nbt b/data/minecraft/structure/bastion/treasure/walls/outer/mid_corner.nbt new file mode 100644 index 00000000..a49fddbc --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/outer/mid_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db49ae98c19c55b4d8bf4cf372a0e097c666fc6a969a85a7d9c49f1bebb83652 +size 712 diff --git a/data/minecraft/structure/bastion/treasure/walls/outer/outer_wall.nbt b/data/minecraft/structure/bastion/treasure/walls/outer/outer_wall.nbt new file mode 100644 index 00000000..592064e4 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/outer/outer_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7e93ece62d62e3c0725ac497e4e24ea950ee9115fd6c9337720042358029dc0 +size 2203 diff --git a/data/minecraft/structure/bastion/treasure/walls/outer/tall_outer_wall.nbt b/data/minecraft/structure/bastion/treasure/walls/outer/tall_outer_wall.nbt new file mode 100644 index 00000000..24d4f013 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/outer/tall_outer_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7efa41ed0d5c8c6a185df2234cbf3c561da9e496ee6f1fee04e3ac762adad882 +size 2447 diff --git a/data/minecraft/structure/bastion/treasure/walls/outer/top_corner.nbt b/data/minecraft/structure/bastion/treasure/walls/outer/top_corner.nbt new file mode 100644 index 00000000..517900fc --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/outer/top_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e9f310ea9243481387881ff6db3a0aa6d7015df4de829b9bf5ea717138aab40 +size 804 diff --git a/data/minecraft/structure/bastion/treasure/walls/top/main_entrance.nbt b/data/minecraft/structure/bastion/treasure/walls/top/main_entrance.nbt new file mode 100644 index 00000000..2f704382 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/top/main_entrance.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51693531ebe2bd224a969c2ac8d5db0555843c5b943ad20e7237f88785ad20da +size 6217 diff --git a/data/minecraft/structure/bastion/treasure/walls/top/wall_0.nbt b/data/minecraft/structure/bastion/treasure/walls/top/wall_0.nbt new file mode 100644 index 00000000..99c43cf0 --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/top/wall_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4da69f079405ab1f6987dd15230d993c5172488b5204cca84498e3ebc672a9f7 +size 6223 diff --git a/data/minecraft/structure/bastion/treasure/walls/top/wall_1.nbt b/data/minecraft/structure/bastion/treasure/walls/top/wall_1.nbt new file mode 100644 index 00000000..a4d4625d --- /dev/null +++ b/data/minecraft/structure/bastion/treasure/walls/top/wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e3959fa7803d5bd6beec2ca1d2855da54a2d56f7583d9d7f01702b87a0cb470 +size 6216 diff --git a/data/minecraft/structure/bastion/units/air_base.nbt b/data/minecraft/structure/bastion/units/air_base.nbt new file mode 100644 index 00000000..59a7bba6 --- /dev/null +++ b/data/minecraft/structure/bastion/units/air_base.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e82159c55e5172558d0d2ad5646c9974c575fd226f240ad229aa5c9304a75a60 +size 63630 diff --git a/data/minecraft/structure/bastion/units/center_pieces/center_0.nbt b/data/minecraft/structure/bastion/units/center_pieces/center_0.nbt new file mode 100644 index 00000000..d475a784 --- /dev/null +++ b/data/minecraft/structure/bastion/units/center_pieces/center_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7efb8bd28cfb0fb9e027437a591a8ae0656c93dfb26d557403e8f1b1699ae4d +size 3080 diff --git a/data/minecraft/structure/bastion/units/center_pieces/center_1.nbt b/data/minecraft/structure/bastion/units/center_pieces/center_1.nbt new file mode 100644 index 00000000..f3186545 --- /dev/null +++ b/data/minecraft/structure/bastion/units/center_pieces/center_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddd7c86a83e8c563218c919886e139d53869454fa93b60e887a0ddeef5eb0a4f +size 3291 diff --git a/data/minecraft/structure/bastion/units/center_pieces/center_2.nbt b/data/minecraft/structure/bastion/units/center_pieces/center_2.nbt new file mode 100644 index 00000000..f2fa687c --- /dev/null +++ b/data/minecraft/structure/bastion/units/center_pieces/center_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a31776c9307a9a1f7c8b5779ba21219c806f4f3c340e9a2882fb2ac4b414059 +size 3356 diff --git a/data/minecraft/structure/bastion/units/edges/edge_0.nbt b/data/minecraft/structure/bastion/units/edges/edge_0.nbt new file mode 100644 index 00000000..c858c1c7 --- /dev/null +++ b/data/minecraft/structure/bastion/units/edges/edge_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd2d03e58f230c30ea2c708f147c56efae4aebe604a4cc24d36bf3fab9451323 +size 2380 diff --git a/data/minecraft/structure/bastion/units/fillers/stage_0.nbt b/data/minecraft/structure/bastion/units/fillers/stage_0.nbt new file mode 100644 index 00000000..ca1f40d4 --- /dev/null +++ b/data/minecraft/structure/bastion/units/fillers/stage_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f018e5179abb9f4aa84c4bde27592c815c9e3ee81dbe8b8839d12493f447d3d +size 2451 diff --git a/data/minecraft/structure/bastion/units/pathways/pathway_0.nbt b/data/minecraft/structure/bastion/units/pathways/pathway_0.nbt new file mode 100644 index 00000000..88d60c34 --- /dev/null +++ b/data/minecraft/structure/bastion/units/pathways/pathway_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8ec58cacd7c1b599cc4619b875d9e6796d9af9cd6240c1c5731231e885bd65d +size 353 diff --git a/data/minecraft/structure/bastion/units/pathways/pathway_wall_0.nbt b/data/minecraft/structure/bastion/units/pathways/pathway_wall_0.nbt new file mode 100644 index 00000000..d914c9b4 --- /dev/null +++ b/data/minecraft/structure/bastion/units/pathways/pathway_wall_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee79ed846920a4cce54ade4f770db240905855a6f9ed22aa02abfabba1d539cc +size 352 diff --git a/data/minecraft/structure/bastion/units/rampart_plates/plate_0.nbt b/data/minecraft/structure/bastion/units/rampart_plates/plate_0.nbt new file mode 100644 index 00000000..9eabfe59 --- /dev/null +++ b/data/minecraft/structure/bastion/units/rampart_plates/plate_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d2147ca093506d77bec05d61d71be98d867509092476648b03615d74518aea +size 3654 diff --git a/data/minecraft/structure/bastion/units/ramparts/ramparts_0.nbt b/data/minecraft/structure/bastion/units/ramparts/ramparts_0.nbt new file mode 100644 index 00000000..60310d78 --- /dev/null +++ b/data/minecraft/structure/bastion/units/ramparts/ramparts_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34ba5fca2d92c48c19d8e61431a7851534b92c6e6a669ca9eb2036e1b272b082 +size 23658 diff --git a/data/minecraft/structure/bastion/units/ramparts/ramparts_1.nbt b/data/minecraft/structure/bastion/units/ramparts/ramparts_1.nbt new file mode 100644 index 00000000..2a36a8fa --- /dev/null +++ b/data/minecraft/structure/bastion/units/ramparts/ramparts_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca7f813efe24c0d286317c398f08aa5d6b3569b957a1721457686b164d01b225 +size 11768 diff --git a/data/minecraft/structure/bastion/units/ramparts/ramparts_2.nbt b/data/minecraft/structure/bastion/units/ramparts/ramparts_2.nbt new file mode 100644 index 00000000..90a80ede --- /dev/null +++ b/data/minecraft/structure/bastion/units/ramparts/ramparts_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f31e3d26dfece9a8f348588215c01b2da626e80cc3da6be013d9856e3a354601 +size 6939 diff --git a/data/minecraft/structure/bastion/units/stages/rot/stage_1_0.nbt b/data/minecraft/structure/bastion/units/stages/rot/stage_1_0.nbt new file mode 100644 index 00000000..f8928104 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/rot/stage_1_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0696c4b6ecdc89ce5648c8be9f2b31858bce9fac2bc4735765a1e27c3ed8d316 +size 2398 diff --git a/data/minecraft/structure/bastion/units/stages/stage_0_0.nbt b/data/minecraft/structure/bastion/units/stages/stage_0_0.nbt new file mode 100644 index 00000000..dc0feaf1 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_0_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec9a7c3d59ed72f17dd177755ff14d8fd9fd0a6b8f53d88a2d855afa66c646a7 +size 2546 diff --git a/data/minecraft/structure/bastion/units/stages/stage_0_1.nbt b/data/minecraft/structure/bastion/units/stages/stage_0_1.nbt new file mode 100644 index 00000000..ed74a837 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_0_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea1927cda64b1c0bd6901c231a9c052c8ae0a9c6ede71c54bb81b58aeab2d8a6 +size 2610 diff --git a/data/minecraft/structure/bastion/units/stages/stage_0_2.nbt b/data/minecraft/structure/bastion/units/stages/stage_0_2.nbt new file mode 100644 index 00000000..36b97018 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_0_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f38567d3709281fe6938fc1b2a6166ae56d5e0cadd6bd410103b8eeaa85892c +size 2701 diff --git a/data/minecraft/structure/bastion/units/stages/stage_0_3.nbt b/data/minecraft/structure/bastion/units/stages/stage_0_3.nbt new file mode 100644 index 00000000..50e5d85b --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_0_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dea467593cc784f0f4df9cf3462abd1a8a39370c1eb5f3edffda8cbdb4cd8593 +size 2504 diff --git a/data/minecraft/structure/bastion/units/stages/stage_1_0.nbt b/data/minecraft/structure/bastion/units/stages/stage_1_0.nbt new file mode 100644 index 00000000..76e3c191 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_1_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf6f1d59e44114f45df668818082cb3388843d571cc14b39be3fc1fd441c054f +size 2439 diff --git a/data/minecraft/structure/bastion/units/stages/stage_1_1.nbt b/data/minecraft/structure/bastion/units/stages/stage_1_1.nbt new file mode 100644 index 00000000..49d60071 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_1_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ae9dc23e94a3b71d4183b9b64ed7c6be0de280b2b60ed1f7f5e8b29efd2c045 +size 2419 diff --git a/data/minecraft/structure/bastion/units/stages/stage_1_2.nbt b/data/minecraft/structure/bastion/units/stages/stage_1_2.nbt new file mode 100644 index 00000000..5b307302 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_1_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b720ffe7fd3f7e89ff8b2eaf17f306bdd9c585cc6eb81d17846facb247ed635 +size 2508 diff --git a/data/minecraft/structure/bastion/units/stages/stage_1_3.nbt b/data/minecraft/structure/bastion/units/stages/stage_1_3.nbt new file mode 100644 index 00000000..4497e5b2 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_1_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bff46a2bf3a4e30595adb35219ccbc760c8d49679dbeaac082e0b25caeca71d +size 2483 diff --git a/data/minecraft/structure/bastion/units/stages/stage_2_0.nbt b/data/minecraft/structure/bastion/units/stages/stage_2_0.nbt new file mode 100644 index 00000000..3a65c726 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_2_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d149165f383b705fd565b3c78a9fcd9cbc2c6f03dbbfdc46271a1ae02376e397 +size 2421 diff --git a/data/minecraft/structure/bastion/units/stages/stage_2_1.nbt b/data/minecraft/structure/bastion/units/stages/stage_2_1.nbt new file mode 100644 index 00000000..567dc085 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_2_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba3d63a97c27902ed7a38d97e662157606b60d1f7118c55ec0ea18029b2a5265 +size 2458 diff --git a/data/minecraft/structure/bastion/units/stages/stage_3_0.nbt b/data/minecraft/structure/bastion/units/stages/stage_3_0.nbt new file mode 100644 index 00000000..79390b1b --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_3_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ee8c5c23ccd082ced1ed7e3d9a563b3b3572d3720bea47fb2a30b0d10131957 +size 631 diff --git a/data/minecraft/structure/bastion/units/stages/stage_3_1.nbt b/data/minecraft/structure/bastion/units/stages/stage_3_1.nbt new file mode 100644 index 00000000..707a4be3 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_3_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8729cf138d23919ca2b76128bca435bc460a8f1e4a3f199621cd14417a063684 +size 688 diff --git a/data/minecraft/structure/bastion/units/stages/stage_3_2.nbt b/data/minecraft/structure/bastion/units/stages/stage_3_2.nbt new file mode 100644 index 00000000..d2d549e3 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_3_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bae110a5cb758aafe0b573fc41982276e3edc8c116597914857ee7894156c86 +size 626 diff --git a/data/minecraft/structure/bastion/units/stages/stage_3_3.nbt b/data/minecraft/structure/bastion/units/stages/stage_3_3.nbt new file mode 100644 index 00000000..7e669c02 --- /dev/null +++ b/data/minecraft/structure/bastion/units/stages/stage_3_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e251ef226dabaefa06cc19e4cf5f53a187bf843781692374663ee3668933688b +size 653 diff --git a/data/minecraft/structure/bastion/units/wall_units/edge_0_large.nbt b/data/minecraft/structure/bastion/units/wall_units/edge_0_large.nbt new file mode 100644 index 00000000..1a9a7431 --- /dev/null +++ b/data/minecraft/structure/bastion/units/wall_units/edge_0_large.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:229ba1be3d79cc2cf2192e891e8533eeb26ab79777234df9d09acaede41c4773 +size 2819 diff --git a/data/minecraft/structure/bastion/units/wall_units/unit_0.nbt b/data/minecraft/structure/bastion/units/wall_units/unit_0.nbt new file mode 100644 index 00000000..25a9b4a4 --- /dev/null +++ b/data/minecraft/structure/bastion/units/wall_units/unit_0.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92ae2f64d9d0970f051e84698ad0e5bbd7fb11ca71501190edc0bf4f313b2959 +size 2498 diff --git a/data/minecraft/structure/bastion/units/walls/connected_wall.nbt b/data/minecraft/structure/bastion/units/walls/connected_wall.nbt new file mode 100644 index 00000000..09277fdb --- /dev/null +++ b/data/minecraft/structure/bastion/units/walls/connected_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:386e0587644a95a7256d36bf453fc02eaa1b7fcd8a4dc0ef5a62268f3307262a +size 15614 diff --git a/data/minecraft/structure/bastion/units/walls/wall_base.nbt b/data/minecraft/structure/bastion/units/walls/wall_base.nbt new file mode 100644 index 00000000..4fd25181 --- /dev/null +++ b/data/minecraft/structure/bastion/units/walls/wall_base.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ae83e0e12c05e48a20b2efc79f088b41e677afe230f89fe19fbd03f5df3d5b6 +size 16900 diff --git a/data/minecraft/structure/end_city/base_floor.nbt b/data/minecraft/structure/end_city/base_floor.nbt new file mode 100644 index 00000000..8cbff57a --- /dev/null +++ b/data/minecraft/structure/end_city/base_floor.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8f14c60531fc857f5677989f72cabe0cf23369193c801fb42a0f4c80d6051ed +size 1683 diff --git a/data/minecraft/structure/end_city/base_roof.nbt b/data/minecraft/structure/end_city/base_roof.nbt new file mode 100644 index 00000000..5df2293c --- /dev/null +++ b/data/minecraft/structure/end_city/base_roof.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6ee7cee198efb9bd76ec2ba814172921f84685d28211870c0bfc0feb2eef142 +size 1178 diff --git a/data/minecraft/structure/end_city/bridge_end.nbt b/data/minecraft/structure/end_city/bridge_end.nbt new file mode 100644 index 00000000..b44fc36d --- /dev/null +++ b/data/minecraft/structure/end_city/bridge_end.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72d8df6548af43aa6e0e3ba52a8be57fdb4dc94645b26b4225ff53ee75ef3e33 +size 473 diff --git a/data/minecraft/structure/end_city/bridge_gentle_stairs.nbt b/data/minecraft/structure/end_city/bridge_gentle_stairs.nbt new file mode 100644 index 00000000..2a770b1b --- /dev/null +++ b/data/minecraft/structure/end_city/bridge_gentle_stairs.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63dea728bce0236fda8cbb742933d4c8249c2766ecb0a15b78011dde5ac4392a +size 1140 diff --git a/data/minecraft/structure/end_city/bridge_piece.nbt b/data/minecraft/structure/end_city/bridge_piece.nbt new file mode 100644 index 00000000..09908907 --- /dev/null +++ b/data/minecraft/structure/end_city/bridge_piece.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91081e87bf5a3a1ff5d1c1359b4b7cb04f5e2e6c8bf3c6b1071edced41ff772c +size 596 diff --git a/data/minecraft/structure/end_city/bridge_steep_stairs.nbt b/data/minecraft/structure/end_city/bridge_steep_stairs.nbt new file mode 100644 index 00000000..898adf77 --- /dev/null +++ b/data/minecraft/structure/end_city/bridge_steep_stairs.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b45c378f8e04a80ddaefcb15001d108dc3a8e89529bd8c90170ab185dd86b9be +size 712 diff --git a/data/minecraft/structure/end_city/fat_tower_base.nbt b/data/minecraft/structure/end_city/fat_tower_base.nbt new file mode 100644 index 00000000..8d3bd869 --- /dev/null +++ b/data/minecraft/structure/end_city/fat_tower_base.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da76f0b036d4e6bb90d48bc7f58b41e683390423aa2b53e36c3f0d6c9c48f0ee +size 2335 diff --git a/data/minecraft/structure/end_city/fat_tower_middle.nbt b/data/minecraft/structure/end_city/fat_tower_middle.nbt new file mode 100644 index 00000000..ae98c4cd --- /dev/null +++ b/data/minecraft/structure/end_city/fat_tower_middle.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11fb8b6a25f11027a289f9fe31f9b195f084b988636f00949c5b9f720bd06d98 +size 4466 diff --git a/data/minecraft/structure/end_city/fat_tower_top.nbt b/data/minecraft/structure/end_city/fat_tower_top.nbt new file mode 100644 index 00000000..c463d164 --- /dev/null +++ b/data/minecraft/structure/end_city/fat_tower_top.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d019e5d41f9269b6b14ef1ba32286d7070c9decf4c1057b1b764d7decaaf3ba2 +size 5957 diff --git a/data/minecraft/structure/end_city/second_floor_1.nbt b/data/minecraft/structure/end_city/second_floor_1.nbt new file mode 100644 index 00000000..62f11973 --- /dev/null +++ b/data/minecraft/structure/end_city/second_floor_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d943fe5ebf6ac65937e5a3243143e1c7522813633af3a39fdf43433d26c86a8e +size 3714 diff --git a/data/minecraft/structure/end_city/second_floor_2.nbt b/data/minecraft/structure/end_city/second_floor_2.nbt new file mode 100644 index 00000000..ffb0ef23 --- /dev/null +++ b/data/minecraft/structure/end_city/second_floor_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fde90b4ed80931566c81cc3af649112f366d182ee842c21b71e932d77f3534f1 +size 3968 diff --git a/data/minecraft/structure/end_city/second_roof.nbt b/data/minecraft/structure/end_city/second_roof.nbt new file mode 100644 index 00000000..53d4c280 --- /dev/null +++ b/data/minecraft/structure/end_city/second_roof.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:211c8493f091b1d2dfb8b041674dfbe29b3d7ca6846e6e43b51d62721bbb3370 +size 1424 diff --git a/data/minecraft/structure/end_city/ship.nbt b/data/minecraft/structure/end_city/ship.nbt new file mode 100644 index 00000000..873a8387 --- /dev/null +++ b/data/minecraft/structure/end_city/ship.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4a10cd0c6a495d96726c09713d7ec42ef991858cd4af6ebd86522ab45d78147 +size 26442 diff --git a/data/minecraft/structure/end_city/third_floor_1.nbt b/data/minecraft/structure/end_city/third_floor_1.nbt new file mode 100644 index 00000000..fc645e43 --- /dev/null +++ b/data/minecraft/structure/end_city/third_floor_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4f54717617df1fe70951e5f71d9472b46b92891555840cb3f174ebfc1853a36 +size 4784 diff --git a/data/minecraft/structure/end_city/third_floor_2.nbt b/data/minecraft/structure/end_city/third_floor_2.nbt new file mode 100644 index 00000000..658d999b --- /dev/null +++ b/data/minecraft/structure/end_city/third_floor_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc381cd0dd93d1c36e50571763fa0a296922550180acf052ca151f15019cf21e +size 5156 diff --git a/data/minecraft/structure/end_city/third_roof.nbt b/data/minecraft/structure/end_city/third_roof.nbt new file mode 100644 index 00000000..982497d2 --- /dev/null +++ b/data/minecraft/structure/end_city/third_roof.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee9b89f7c45d331f88ada41a3be5dedf0361bef03e17d352e635baaae8d580b5 +size 1829 diff --git a/data/minecraft/structure/end_city/tower_base.nbt b/data/minecraft/structure/end_city/tower_base.nbt new file mode 100644 index 00000000..97941625 --- /dev/null +++ b/data/minecraft/structure/end_city/tower_base.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:437eebc31c5a3773c23de1d1fc2ba3d31be7f9ae796ac20287cb6c6a4dfc55ed +size 931 diff --git a/data/minecraft/structure/end_city/tower_floor.nbt b/data/minecraft/structure/end_city/tower_floor.nbt new file mode 100644 index 00000000..0d0362b3 --- /dev/null +++ b/data/minecraft/structure/end_city/tower_floor.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8bc3f535d91843edc76800fa1403b823a0d6b22af9b2f304a221dd43efcbe9a +size 977 diff --git a/data/minecraft/structure/end_city/tower_piece.nbt b/data/minecraft/structure/end_city/tower_piece.nbt new file mode 100644 index 00000000..1992b7e3 --- /dev/null +++ b/data/minecraft/structure/end_city/tower_piece.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09d6465a3b6f128edb29a6c85ab8a310f29747ae2ff7be85e01e471140b435ac +size 896 diff --git a/data/minecraft/structure/end_city/tower_top.nbt b/data/minecraft/structure/end_city/tower_top.nbt new file mode 100644 index 00000000..7d6758de --- /dev/null +++ b/data/minecraft/structure/end_city/tower_top.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3474d9692bbbd635538c05150af0220ff2089235f3977a14acc918205989fbd4 +size 2033 diff --git a/data/minecraft/structure/fossil/skull_1.nbt b/data/minecraft/structure/fossil/skull_1.nbt new file mode 100644 index 00000000..3efb913c --- /dev/null +++ b/data/minecraft/structure/fossil/skull_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d9e667d3a24bfbf5e73be37df4ce03136e8074ba1559d3a6673ec80422140b0 +size 440 diff --git a/data/minecraft/structure/fossil/skull_1_coal.nbt b/data/minecraft/structure/fossil/skull_1_coal.nbt new file mode 100644 index 00000000..45498543 --- /dev/null +++ b/data/minecraft/structure/fossil/skull_1_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cf0c47cd2017dde456d644b62696bd563f275f86f46368d2b824a159954a1f9 +size 394 diff --git a/data/minecraft/structure/fossil/skull_2.nbt b/data/minecraft/structure/fossil/skull_2.nbt new file mode 100644 index 00000000..e4c2db52 --- /dev/null +++ b/data/minecraft/structure/fossil/skull_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87f14e46b5fd356dd0872535c510c28c2e16adf8364712436906910da3d7d6a9 +size 396 diff --git a/data/minecraft/structure/fossil/skull_2_coal.nbt b/data/minecraft/structure/fossil/skull_2_coal.nbt new file mode 100644 index 00000000..a3ac9c48 --- /dev/null +++ b/data/minecraft/structure/fossil/skull_2_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd3d8d895c069861d010ec9816073f3b3e048bb829e358cc193899679ff19d40 +size 344 diff --git a/data/minecraft/structure/fossil/skull_3.nbt b/data/minecraft/structure/fossil/skull_3.nbt new file mode 100644 index 00000000..ee2dce0b --- /dev/null +++ b/data/minecraft/structure/fossil/skull_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41f06601cfe38dccca7a7a45a044062e06fc2603d2e002c64de98c985708f252 +size 346 diff --git a/data/minecraft/structure/fossil/skull_3_coal.nbt b/data/minecraft/structure/fossil/skull_3_coal.nbt new file mode 100644 index 00000000..a27c1ac2 --- /dev/null +++ b/data/minecraft/structure/fossil/skull_3_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a3c063f17ffa3bc27289db2f3d9add857c8a4daf8885e4f43d6cc06d8cdc075 +size 315 diff --git a/data/minecraft/structure/fossil/skull_4.nbt b/data/minecraft/structure/fossil/skull_4.nbt new file mode 100644 index 00000000..f1b279b6 --- /dev/null +++ b/data/minecraft/structure/fossil/skull_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce003806d22baa85b645965041a2fd5bf5bd0689ff72a7d95f7de38ed1c18298 +size 268 diff --git a/data/minecraft/structure/fossil/skull_4_coal.nbt b/data/minecraft/structure/fossil/skull_4_coal.nbt new file mode 100644 index 00000000..28b74b78 --- /dev/null +++ b/data/minecraft/structure/fossil/skull_4_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01d4a4f6000196a903eaadeebf2463f6501fc6b6ff08a423be906b831c2c0d8c +size 234 diff --git a/data/minecraft/structure/fossil/spine_1.nbt b/data/minecraft/structure/fossil/spine_1.nbt new file mode 100644 index 00000000..3fa4f4aa --- /dev/null +++ b/data/minecraft/structure/fossil/spine_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5568815508e9f6cc9ef9277431a213ab92e6f49f64b92dbd0e64c5d3da986f15 +size 270 diff --git a/data/minecraft/structure/fossil/spine_1_coal.nbt b/data/minecraft/structure/fossil/spine_1_coal.nbt new file mode 100644 index 00000000..581b1bbb --- /dev/null +++ b/data/minecraft/structure/fossil/spine_1_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f19e68d1dc16254503f7eccbf6aacbdea58785032faab8fbff68e2340624125a +size 249 diff --git a/data/minecraft/structure/fossil/spine_2.nbt b/data/minecraft/structure/fossil/spine_2.nbt new file mode 100644 index 00000000..db2f36a2 --- /dev/null +++ b/data/minecraft/structure/fossil/spine_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edff3b6cb45ed7a6912d633da9596e67328a472a78a0810d6f2ab35d20632190 +size 359 diff --git a/data/minecraft/structure/fossil/spine_2_coal.nbt b/data/minecraft/structure/fossil/spine_2_coal.nbt new file mode 100644 index 00000000..1c1ed36a --- /dev/null +++ b/data/minecraft/structure/fossil/spine_2_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17b4b27be79443a39dc3d8fe5bd6fa3ad834678bbc14ec47df3c659f68639b8c +size 323 diff --git a/data/minecraft/structure/fossil/spine_3.nbt b/data/minecraft/structure/fossil/spine_3.nbt new file mode 100644 index 00000000..b1d6b848 --- /dev/null +++ b/data/minecraft/structure/fossil/spine_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d8c8e7fb8c79f7dec148edf29e20c1a70b33e15d1b319c451742d79e81c896e +size 454 diff --git a/data/minecraft/structure/fossil/spine_3_coal.nbt b/data/minecraft/structure/fossil/spine_3_coal.nbt new file mode 100644 index 00000000..3d508862 --- /dev/null +++ b/data/minecraft/structure/fossil/spine_3_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68126ef58bbd96ac54e0495ddb17c0087710b573c258e2ffcc784ee14631b017 +size 435 diff --git a/data/minecraft/structure/fossil/spine_4.nbt b/data/minecraft/structure/fossil/spine_4.nbt new file mode 100644 index 00000000..7a6a0560 --- /dev/null +++ b/data/minecraft/structure/fossil/spine_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b30791c15635b7cfab89c1863ff485630273488b8f1acc0407b3e23b50be5da5 +size 526 diff --git a/data/minecraft/structure/fossil/spine_4_coal.nbt b/data/minecraft/structure/fossil/spine_4_coal.nbt new file mode 100644 index 00000000..4d8e1866 --- /dev/null +++ b/data/minecraft/structure/fossil/spine_4_coal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43d28e976377b95681ed9e66019e81f5e445c13a0a4ac369b7c6ab12cbff7aee +size 480 diff --git a/data/minecraft/structure/igloo/bottom.nbt b/data/minecraft/structure/igloo/bottom.nbt new file mode 100644 index 00000000..89c2288a --- /dev/null +++ b/data/minecraft/structure/igloo/bottom.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a799e9b3a52c4958c8f071af3948d9056ce065b4569a4d9fb8f493ed403b12ad +size 2782 diff --git a/data/minecraft/structure/igloo/middle.nbt b/data/minecraft/structure/igloo/middle.nbt new file mode 100644 index 00000000..cd1d2e82 --- /dev/null +++ b/data/minecraft/structure/igloo/middle.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90f4044c307946c8c76d833417f96bed17f61a752cf9b69af48c39f46afcc553 +size 235 diff --git a/data/minecraft/structure/igloo/top.nbt b/data/minecraft/structure/igloo/top.nbt new file mode 100644 index 00000000..b7da4b5e --- /dev/null +++ b/data/minecraft/structure/igloo/top.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:986b92dfef282b5d6f6fcbf414dccdc3c7d4e8e7a31956483dfed33d506fab31 +size 907 diff --git a/data/minecraft/structure/nether_fossils/fossil_1.nbt b/data/minecraft/structure/nether_fossils/fossil_1.nbt new file mode 100644 index 00000000..bf57eb9c --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00c6e9663a775a84b03fedec06988b371cac1ee617b525946f1aa6541447a6c1 +size 395 diff --git a/data/minecraft/structure/nether_fossils/fossil_10.nbt b/data/minecraft/structure/nether_fossils/fossil_10.nbt new file mode 100644 index 00000000..324c3ba7 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_10.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04da081a2d3f1f76610653b69ed1e0dd90401a85273a6accf91cb0e14cd9021a +size 236 diff --git a/data/minecraft/structure/nether_fossils/fossil_11.nbt b/data/minecraft/structure/nether_fossils/fossil_11.nbt new file mode 100644 index 00000000..6df01d9b --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_11.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a07bdc251d014a01f6092d40d3f1f05a11541e1f288373c56785c98a37157b67 +size 672 diff --git a/data/minecraft/structure/nether_fossils/fossil_12.nbt b/data/minecraft/structure/nether_fossils/fossil_12.nbt new file mode 100644 index 00000000..cc9d0a23 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_12.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8e875cc118174f6a9a15d4cbcb18fa8eecc936d78564f1b894914e733f50bec +size 315 diff --git a/data/minecraft/structure/nether_fossils/fossil_13.nbt b/data/minecraft/structure/nether_fossils/fossil_13.nbt new file mode 100644 index 00000000..87be8ba0 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_13.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bb1127c50803668356b5b6c70bf832c0bcb54f6d7663f7b3c88467305ea789e +size 522 diff --git a/data/minecraft/structure/nether_fossils/fossil_14.nbt b/data/minecraft/structure/nether_fossils/fossil_14.nbt new file mode 100644 index 00000000..a6582f2f --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_14.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0574ebe29d27cfc1969d4e5a9388d3ddcced722385fb90c40975a99371127cd +size 938 diff --git a/data/minecraft/structure/nether_fossils/fossil_2.nbt b/data/minecraft/structure/nether_fossils/fossil_2.nbt new file mode 100644 index 00000000..acb4d82b --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae6bb616f3821492f2d5cd4f075f35398eaafcd09312b8e1943cad0b877c7c2a +size 257 diff --git a/data/minecraft/structure/nether_fossils/fossil_3.nbt b/data/minecraft/structure/nether_fossils/fossil_3.nbt new file mode 100644 index 00000000..37b4ccc5 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:502389b527b26f07a56dfa210db47439eb907a7195479c21749e13bc123603fd +size 248 diff --git a/data/minecraft/structure/nether_fossils/fossil_4.nbt b/data/minecraft/structure/nether_fossils/fossil_4.nbt new file mode 100644 index 00000000..d1361e7f --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4df84349a8708397ceb9d10370fec88fa87681d73da547e4744af955b10e731 +size 210 diff --git a/data/minecraft/structure/nether_fossils/fossil_5.nbt b/data/minecraft/structure/nether_fossils/fossil_5.nbt new file mode 100644 index 00000000..47d21498 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8267b5faffd71de2b7c90c6110473b58360cb51855e25ab128b54400ead806d9 +size 204 diff --git a/data/minecraft/structure/nether_fossils/fossil_6.nbt b/data/minecraft/structure/nether_fossils/fossil_6.nbt new file mode 100644 index 00000000..9e240fc1 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c544dc9b1ca7cc19899156085490d52b72592d7196de3f7093eec713111edf47 +size 628 diff --git a/data/minecraft/structure/nether_fossils/fossil_7.nbt b/data/minecraft/structure/nether_fossils/fossil_7.nbt new file mode 100644 index 00000000..83f29673 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc22c27614e5a0db044fb5f05cdaa750ae5bf8e6d360ba43b72b6be51fb092b0 +size 508 diff --git a/data/minecraft/structure/nether_fossils/fossil_8.nbt b/data/minecraft/structure/nether_fossils/fossil_8.nbt new file mode 100644 index 00000000..be07bf29 --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85af074acf7b0e85ffab4080d8a7c5739ddf24c4bcb80bf69181b60c88ccffbf +size 218 diff --git a/data/minecraft/structure/nether_fossils/fossil_9.nbt b/data/minecraft/structure/nether_fossils/fossil_9.nbt new file mode 100644 index 00000000..9d1d782d --- /dev/null +++ b/data/minecraft/structure/nether_fossils/fossil_9.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bae457798c992d14de0ef74b1ebb6d5ad50b1700b62deaa83cfa680a166d23c5 +size 392 diff --git a/data/minecraft/structure/pillager_outpost/base_plate.nbt b/data/minecraft/structure/pillager_outpost/base_plate.nbt new file mode 100644 index 00000000..f9ad4505 --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/base_plate.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ba9eaa699159639b430aac3d2b5c539c22139be0cc2134d8dfb67cd02c65b70 +size 19279 diff --git a/data/minecraft/structure/pillager_outpost/feature_cage1.nbt b/data/minecraft/structure/pillager_outpost/feature_cage1.nbt new file mode 100644 index 00000000..003f6b3d --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_cage1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9df6cd633c520dbe8c7ad975712a2da01113465c2e1d605e97fb7a85b533a35 +size 1671 diff --git a/data/minecraft/structure/pillager_outpost/feature_cage2.nbt b/data/minecraft/structure/pillager_outpost/feature_cage2.nbt new file mode 100644 index 00000000..06741e8e --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_cage2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1a7a5a24c9ab71fbd2ffd18d79fd64fc44396f66bf078396eba9d7b9dc15ec1 +size 1030 diff --git a/data/minecraft/structure/pillager_outpost/feature_cage_with_allays.nbt b/data/minecraft/structure/pillager_outpost/feature_cage_with_allays.nbt new file mode 100644 index 00000000..0ca5abbf --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_cage_with_allays.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97b948c11a141a3de3db8b968f7d260848f98938d829c84eee09c79669a33b9c +size 1797 diff --git a/data/minecraft/structure/pillager_outpost/feature_logs.nbt b/data/minecraft/structure/pillager_outpost/feature_logs.nbt new file mode 100644 index 00000000..abc636c9 --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_logs.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec753eedf767c1468b9087b18b311380c175aa2afa3f30f53abaf5aaeedd00d7 +size 657 diff --git a/data/minecraft/structure/pillager_outpost/feature_plate.nbt b/data/minecraft/structure/pillager_outpost/feature_plate.nbt new file mode 100644 index 00000000..a93ae2c6 --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_plate.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ed6c2975d26b1702504318bdd540c5a11ed6ec8a16bb38cfb54cb10ff1513b7 +size 6037 diff --git a/data/minecraft/structure/pillager_outpost/feature_targets.nbt b/data/minecraft/structure/pillager_outpost/feature_targets.nbt new file mode 100644 index 00000000..ab73ac1d --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_targets.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7a276f64c14600f4cf472c7aae43c349f2671d5857855c1154be1e973f5fefe +size 576 diff --git a/data/minecraft/structure/pillager_outpost/feature_tent1.nbt b/data/minecraft/structure/pillager_outpost/feature_tent1.nbt new file mode 100644 index 00000000..43117cfe --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_tent1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43ca33a68d2976f807369a4991c573fbfdf3931f26a25034c8b4022f9a30e2b9 +size 855 diff --git a/data/minecraft/structure/pillager_outpost/feature_tent2.nbt b/data/minecraft/structure/pillager_outpost/feature_tent2.nbt new file mode 100644 index 00000000..7d78ba33 --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/feature_tent2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56f214123dc036de4900736f832edc2ca555f20c49f3afed981b50156772fc00 +size 866 diff --git a/data/minecraft/structure/pillager_outpost/watchtower.nbt b/data/minecraft/structure/pillager_outpost/watchtower.nbt new file mode 100644 index 00000000..1565afc1 --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/watchtower.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22f9051676b3923126d99f85ddf95e715ff19a82f88995d2a9a8ea66bbbb0006 +size 14621 diff --git a/data/minecraft/structure/pillager_outpost/watchtower_overgrown.nbt b/data/minecraft/structure/pillager_outpost/watchtower_overgrown.nbt new file mode 100644 index 00000000..e8b22b23 --- /dev/null +++ b/data/minecraft/structure/pillager_outpost/watchtower_overgrown.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed4cd89d70a03dbcae19c4e099f36042b37eb3cedbb30a74d38f6f4ea3d03445 +size 16060 diff --git a/data/minecraft/structure/ruined_portal/giant_portal_1.nbt b/data/minecraft/structure/ruined_portal/giant_portal_1.nbt new file mode 100644 index 00000000..d3bfc3c9 --- /dev/null +++ b/data/minecraft/structure/ruined_portal/giant_portal_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d6358a0fc661bc1b184d6311e9dd3717e757f4b293653393184f02f6fc3acde +size 7197 diff --git a/data/minecraft/structure/ruined_portal/giant_portal_2.nbt b/data/minecraft/structure/ruined_portal/giant_portal_2.nbt new file mode 100644 index 00000000..004c4d68 --- /dev/null +++ b/data/minecraft/structure/ruined_portal/giant_portal_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bd4ad999de435fbb22fb371f414a9c89084202e978f3e52e68b9000ba853cb9 +size 6836 diff --git a/data/minecraft/structure/ruined_portal/giant_portal_3.nbt b/data/minecraft/structure/ruined_portal/giant_portal_3.nbt new file mode 100644 index 00000000..025e934c --- /dev/null +++ b/data/minecraft/structure/ruined_portal/giant_portal_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7caac76603871f7824ee6d97a346e1f290554d306584afc56f8c294f904f888 +size 9896 diff --git a/data/minecraft/structure/ruined_portal/portal_1.nbt b/data/minecraft/structure/ruined_portal/portal_1.nbt new file mode 100644 index 00000000..2fca851c --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80e0369368524c4ec1d832fd763626c76daf245f899bcbf9dee9b4f26b90807d +size 1429 diff --git a/data/minecraft/structure/ruined_portal/portal_10.nbt b/data/minecraft/structure/ruined_portal/portal_10.nbt new file mode 100644 index 00000000..cf3db8b6 --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_10.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ba95496e4a0fd9f197b3bf42f79284396bbd6560958e1693500fef9cfc11940 +size 2877 diff --git a/data/minecraft/structure/ruined_portal/portal_2.nbt b/data/minecraft/structure/ruined_portal/portal_2.nbt new file mode 100644 index 00000000..5078fa34 --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21c3dc179fef8eec0e52806b8309f2a4b172c8fff18189550e9fd9c439f66442 +size 2760 diff --git a/data/minecraft/structure/ruined_portal/portal_3.nbt b/data/minecraft/structure/ruined_portal/portal_3.nbt new file mode 100644 index 00000000..e625ec6e --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36023274285864b9f47b3265047bc41a3687d9b2e6a5dd91f2a81e24c0454356 +size 1992 diff --git a/data/minecraft/structure/ruined_portal/portal_4.nbt b/data/minecraft/structure/ruined_portal/portal_4.nbt new file mode 100644 index 00000000..6b70461b --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9c10fff406611b0e1fe8ecf17aeb4a2ea1b670dfc18d4dffd461cce86ff2473 +size 1883 diff --git a/data/minecraft/structure/ruined_portal/portal_5.nbt b/data/minecraft/structure/ruined_portal/portal_5.nbt new file mode 100644 index 00000000..12a0a90e --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82ed9fa9595521f6306140b0954a5372914fd0817ef69501dbfb2470031233b6 +size 2213 diff --git a/data/minecraft/structure/ruined_portal/portal_6.nbt b/data/minecraft/structure/ruined_portal/portal_6.nbt new file mode 100644 index 00000000..8915037d --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d41ad34a05ff892c12c0c011c7a33c0b5d647a5d4e26ba73c1bf4ba473ade957 +size 984 diff --git a/data/minecraft/structure/ruined_portal/portal_7.nbt b/data/minecraft/structure/ruined_portal/portal_7.nbt new file mode 100644 index 00000000..4f360872 --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a42d0136e729fec126e5166578c53c44a55b36779feee4b3ab3cd8f3dc35b635 +size 1828 diff --git a/data/minecraft/structure/ruined_portal/portal_8.nbt b/data/minecraft/structure/ruined_portal/portal_8.nbt new file mode 100644 index 00000000..5095cfef --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99e58bc1a986394191192db21bb022dd94ca3150dcd387b815ad4cef402a5bd2 +size 3405 diff --git a/data/minecraft/structure/ruined_portal/portal_9.nbt b/data/minecraft/structure/ruined_portal/portal_9.nbt new file mode 100644 index 00000000..099a0c28 --- /dev/null +++ b/data/minecraft/structure/ruined_portal/portal_9.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee0f94870664d8e618f90f8559b56015779e27f417679434054d481208b6b0e3 +size 2167 diff --git a/data/minecraft/structure/shipwreck/rightsideup_backhalf.nbt b/data/minecraft/structure/shipwreck/rightsideup_backhalf.nbt new file mode 100644 index 00000000..7ee5ec82 --- /dev/null +++ b/data/minecraft/structure/shipwreck/rightsideup_backhalf.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ceb5e48ba9b06acfa30e2832b154e7175e25302733a7ce8be43a82bc93ac920 +size 2709 diff --git a/data/minecraft/structure/shipwreck/rightsideup_backhalf_degraded.nbt b/data/minecraft/structure/shipwreck/rightsideup_backhalf_degraded.nbt new file mode 100644 index 00000000..6018880b --- /dev/null +++ b/data/minecraft/structure/shipwreck/rightsideup_backhalf_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bd1cb7d765bef1ae2c490b551441218545f4f09b0b7a5f5acce8566e76006e7 +size 2567 diff --git a/data/minecraft/structure/shipwreck/rightsideup_fronthalf.nbt b/data/minecraft/structure/shipwreck/rightsideup_fronthalf.nbt new file mode 100644 index 00000000..6f0854bb --- /dev/null +++ b/data/minecraft/structure/shipwreck/rightsideup_fronthalf.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b92b44f9969d7ae9a69a899ba236ef8fd4c0bdc4fe8874ff543a74b81a0d5abc +size 2473 diff --git a/data/minecraft/structure/shipwreck/rightsideup_fronthalf_degraded.nbt b/data/minecraft/structure/shipwreck/rightsideup_fronthalf_degraded.nbt new file mode 100644 index 00000000..c9f25281 --- /dev/null +++ b/data/minecraft/structure/shipwreck/rightsideup_fronthalf_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3614b9d4d0933e22c6e3db71893f84e76e416209cacce9ea999de7a5ce7fcd66 +size 2250 diff --git a/data/minecraft/structure/shipwreck/rightsideup_full.nbt b/data/minecraft/structure/shipwreck/rightsideup_full.nbt new file mode 100644 index 00000000..0d1c0bf5 --- /dev/null +++ b/data/minecraft/structure/shipwreck/rightsideup_full.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:658e6f11d94c84e6dfda7eb2241d1f37714df4ff45c7cd8bd234d5ea5d0e1134 +size 3752 diff --git a/data/minecraft/structure/shipwreck/rightsideup_full_degraded.nbt b/data/minecraft/structure/shipwreck/rightsideup_full_degraded.nbt new file mode 100644 index 00000000..4c8a4645 --- /dev/null +++ b/data/minecraft/structure/shipwreck/rightsideup_full_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0570068d927be89c94677201e5fd3afcf7e0929e73c127351913db817828cf9 +size 3525 diff --git a/data/minecraft/structure/shipwreck/sideways_backhalf.nbt b/data/minecraft/structure/shipwreck/sideways_backhalf.nbt new file mode 100644 index 00000000..ecf6ded5 --- /dev/null +++ b/data/minecraft/structure/shipwreck/sideways_backhalf.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b52014d8b73682ba721caba7918212e8e996d87ed6a819348a57186934c5a108 +size 2433 diff --git a/data/minecraft/structure/shipwreck/sideways_backhalf_degraded.nbt b/data/minecraft/structure/shipwreck/sideways_backhalf_degraded.nbt new file mode 100644 index 00000000..2e710fb8 --- /dev/null +++ b/data/minecraft/structure/shipwreck/sideways_backhalf_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8ecbca559f7fa7131aa8a656028c867c25848b3c596c8f282ca2adfcde633d0 +size 2256 diff --git a/data/minecraft/structure/shipwreck/sideways_fronthalf.nbt b/data/minecraft/structure/shipwreck/sideways_fronthalf.nbt new file mode 100644 index 00000000..fda90d11 --- /dev/null +++ b/data/minecraft/structure/shipwreck/sideways_fronthalf.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24805522fe1613e94f5521080edd148131326cffd2d7d2d7d48643b9085d2b07 +size 2201 diff --git a/data/minecraft/structure/shipwreck/sideways_fronthalf_degraded.nbt b/data/minecraft/structure/shipwreck/sideways_fronthalf_degraded.nbt new file mode 100644 index 00000000..0ca1e371 --- /dev/null +++ b/data/minecraft/structure/shipwreck/sideways_fronthalf_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9bc932567e6f00788944b8cdfc32f7a5eadc2c16974020fe46e22d181af14e8 +size 1911 diff --git a/data/minecraft/structure/shipwreck/sideways_full.nbt b/data/minecraft/structure/shipwreck/sideways_full.nbt new file mode 100644 index 00000000..d6b0c882 --- /dev/null +++ b/data/minecraft/structure/shipwreck/sideways_full.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75471c1314d2322bbecfbe7b43b52d14af8d8800f21fd11f1c45060f8b1c1305 +size 3509 diff --git a/data/minecraft/structure/shipwreck/sideways_full_degraded.nbt b/data/minecraft/structure/shipwreck/sideways_full_degraded.nbt new file mode 100644 index 00000000..db2f8834 --- /dev/null +++ b/data/minecraft/structure/shipwreck/sideways_full_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83d6c0b59f9678530785cdfc21b17438ae3e105d9f3b94c7e4ecce1d157a4312 +size 3305 diff --git a/data/minecraft/structure/shipwreck/upsidedown_backhalf.nbt b/data/minecraft/structure/shipwreck/upsidedown_backhalf.nbt new file mode 100644 index 00000000..524c927b --- /dev/null +++ b/data/minecraft/structure/shipwreck/upsidedown_backhalf.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9b2599a3492122bacc438358dd0c1fa3ffc93f201ba38daf08ed530f17997ac +size 2515 diff --git a/data/minecraft/structure/shipwreck/upsidedown_backhalf_degraded.nbt b/data/minecraft/structure/shipwreck/upsidedown_backhalf_degraded.nbt new file mode 100644 index 00000000..8cf7f3be --- /dev/null +++ b/data/minecraft/structure/shipwreck/upsidedown_backhalf_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:569339d0f2c3ed7afbdd0dfc948dc0111e7c6c4c322138f84604451dd982d68b +size 2386 diff --git a/data/minecraft/structure/shipwreck/upsidedown_fronthalf.nbt b/data/minecraft/structure/shipwreck/upsidedown_fronthalf.nbt new file mode 100644 index 00000000..7f54672e --- /dev/null +++ b/data/minecraft/structure/shipwreck/upsidedown_fronthalf.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:183b4507bdd0113fb44b4f18cca2dac6ac610cc9f0cfaa0560d5aa3c1a03f824 +size 2321 diff --git a/data/minecraft/structure/shipwreck/upsidedown_fronthalf_degraded.nbt b/data/minecraft/structure/shipwreck/upsidedown_fronthalf_degraded.nbt new file mode 100644 index 00000000..0f666cfc --- /dev/null +++ b/data/minecraft/structure/shipwreck/upsidedown_fronthalf_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26edbc604dd8a58ddc9ee04d72e8d8e112be9c4041587dbac253012d35bf3d88 +size 2208 diff --git a/data/minecraft/structure/shipwreck/upsidedown_full.nbt b/data/minecraft/structure/shipwreck/upsidedown_full.nbt new file mode 100644 index 00000000..f5557119 --- /dev/null +++ b/data/minecraft/structure/shipwreck/upsidedown_full.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c3108d9c2e056eb17b1afa4815ddac5eadc83130f2c1221dc9c574ae83da825 +size 3468 diff --git a/data/minecraft/structure/shipwreck/upsidedown_full_degraded.nbt b/data/minecraft/structure/shipwreck/upsidedown_full_degraded.nbt new file mode 100644 index 00000000..143d2528 --- /dev/null +++ b/data/minecraft/structure/shipwreck/upsidedown_full_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:416d66e0f2abc6ef2c7cc23eebf3df09d6038e2fdb8bdb2cb8a798375921c86f +size 3297 diff --git a/data/minecraft/structure/shipwreck/with_mast.nbt b/data/minecraft/structure/shipwreck/with_mast.nbt new file mode 100644 index 00000000..23e733de --- /dev/null +++ b/data/minecraft/structure/shipwreck/with_mast.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fd6bf17d16fcf0ef07a3cb702e461eaff3db624e68c158e654255491a6f644e +size 3958 diff --git a/data/minecraft/structure/shipwreck/with_mast_degraded.nbt b/data/minecraft/structure/shipwreck/with_mast_degraded.nbt new file mode 100644 index 00000000..bb3bb9a6 --- /dev/null +++ b/data/minecraft/structure/shipwreck/with_mast_degraded.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76b167f884cac949ec25f5be5ac8bbad33ef6b01627a3d6508c302385dd29e8d +size 3683 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_full_1.nbt b/data/minecraft/structure/trail_ruins/buildings/group_full_1.nbt new file mode 100644 index 00000000..337e24b0 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_full_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5694dccc2d70ac01208b3f842784ec592954fb751408d4b3f332f47256bb579a +size 1337 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_full_2.nbt b/data/minecraft/structure/trail_ruins/buildings/group_full_2.nbt new file mode 100644 index 00000000..395b4869 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_full_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d80f6256dea8379cde9a2aa6c1bac56c1d3db0d01a4402518e9690dc81dfa65 +size 1278 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_full_3.nbt b/data/minecraft/structure/trail_ruins/buildings/group_full_3.nbt new file mode 100644 index 00000000..522185ba --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_full_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cce5f26d5de9e1439f0fb928f64ec87f00214966b02a17577eb5d886f21d16db +size 1297 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_full_4.nbt b/data/minecraft/structure/trail_ruins/buildings/group_full_4.nbt new file mode 100644 index 00000000..0ad3e02b --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_full_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:907f7c73a07b176446fee144b2c2a9128041d87473172e1e7306497836802412 +size 1261 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_full_5.nbt b/data/minecraft/structure/trail_ruins/buildings/group_full_5.nbt new file mode 100644 index 00000000..1361ba89 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_full_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49204fa8b222e08543fe35385359fbcb4cfa442f1c4e5d7669fda287950be742 +size 1258 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_hall_1.nbt b/data/minecraft/structure/trail_ruins/buildings/group_hall_1.nbt new file mode 100644 index 00000000..1922e21f --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_hall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aebd7e2df970d4aa2f02084956ed6af5507e896bd92e2ab8977e49611ce709b +size 1515 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_hall_2.nbt b/data/minecraft/structure/trail_ruins/buildings/group_hall_2.nbt new file mode 100644 index 00000000..3418893f --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_hall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d223c75cb4fd71d81332e67a6b4b490f78562258236c99eb4cb99fd4cafffab0 +size 1614 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_hall_3.nbt b/data/minecraft/structure/trail_ruins/buildings/group_hall_3.nbt new file mode 100644 index 00000000..716518ae --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_hall_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec5f3687a2249ee5c5446f25f2d3703b0b19a9abbb99587137137e8abf33a22d +size 1713 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_hall_4.nbt b/data/minecraft/structure/trail_ruins/buildings/group_hall_4.nbt new file mode 100644 index 00000000..b408e324 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_hall_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecb3626ddc4f593f7a7842c4dfb80420f49ad2f50be437c56da95baefb6ce737 +size 1638 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_hall_5.nbt b/data/minecraft/structure/trail_ruins/buildings/group_hall_5.nbt new file mode 100644 index 00000000..52e1cf12 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_hall_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b60214a842c97b8e378ee05a8244ca7801b8e47842f978bba0d5df97bc6d82c1 +size 1524 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_lower_1.nbt b/data/minecraft/structure/trail_ruins/buildings/group_lower_1.nbt new file mode 100644 index 00000000..5fe0183b --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_lower_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e66d2f805cd02435c4943eca55bbae8fcf5db2b025a11f91f537f7cb28415930 +size 1045 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_lower_2.nbt b/data/minecraft/structure/trail_ruins/buildings/group_lower_2.nbt new file mode 100644 index 00000000..963a0ca5 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_lower_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0abaa48794ca30460957a1bf5d7771dd0e94d0ae05a20dd31677aa68c7ca7fa8 +size 1041 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_lower_3.nbt b/data/minecraft/structure/trail_ruins/buildings/group_lower_3.nbt new file mode 100644 index 00000000..93702091 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_lower_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7b294a93f6ae7bb92935b93e54fe50f80cefa0d29879bc2108664e119a2ab5b +size 1045 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_lower_4.nbt b/data/minecraft/structure/trail_ruins/buildings/group_lower_4.nbt new file mode 100644 index 00000000..fb15b980 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_lower_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59f33c6071141ba25746b05a9a481628bf3ae24f15608bebe31bea435c631b7c +size 972 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_lower_5.nbt b/data/minecraft/structure/trail_ruins/buildings/group_lower_5.nbt new file mode 100644 index 00000000..82120c61 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_lower_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e07a2d65b925b6f29927026614bd2f5df533cbf23acc20bd499fb89dfba454f +size 970 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_room_1.nbt b/data/minecraft/structure/trail_ruins/buildings/group_room_1.nbt new file mode 100644 index 00000000..467a2a58 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_room_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb6c3957364350cd85de83a6166db5752af561db344882ce36449083023996cd +size 779 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_room_2.nbt b/data/minecraft/structure/trail_ruins/buildings/group_room_2.nbt new file mode 100644 index 00000000..604c4517 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_room_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5941896aa814e6dff3925331d6ff7dcd3b160b5983e4342673b01effeb81b162 +size 861 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_room_3.nbt b/data/minecraft/structure/trail_ruins/buildings/group_room_3.nbt new file mode 100644 index 00000000..85e7ee81 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_room_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:037cc654832dd7649d1e972d69179e24082661e26dadd52809cbe30016954731 +size 845 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_room_4.nbt b/data/minecraft/structure/trail_ruins/buildings/group_room_4.nbt new file mode 100644 index 00000000..6c9824df --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_room_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28c580547a260d45125368966c9fb1ae46c965cfd17ccb99580d0bd11ebf654a +size 778 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_room_5.nbt b/data/minecraft/structure/trail_ruins/buildings/group_room_5.nbt new file mode 100644 index 00000000..1dfa1c71 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_room_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43ce99c2d7c7792673fb290c0f688aad7adaa127ff5b43fd976ec712b4d0c31e +size 777 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_upper_1.nbt b/data/minecraft/structure/trail_ruins/buildings/group_upper_1.nbt new file mode 100644 index 00000000..3c67aa7e --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_upper_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b054dba6e09c6d95a3af05f437a50fc3ecbbadb6904998b2e623c80b319a2f1 +size 1267 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_upper_2.nbt b/data/minecraft/structure/trail_ruins/buildings/group_upper_2.nbt new file mode 100644 index 00000000..ab685b2f --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_upper_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca70f2b42c70915797cad742e982e69c0b16e558e45d9cf33d3c81e64655d336 +size 1260 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_upper_3.nbt b/data/minecraft/structure/trail_ruins/buildings/group_upper_3.nbt new file mode 100644 index 00000000..a9eec5fa --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_upper_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:515fff79be642284fb2c98f6749a746cdbac7fd5c3d40904ca737074d3686984 +size 1271 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_upper_4.nbt b/data/minecraft/structure/trail_ruins/buildings/group_upper_4.nbt new file mode 100644 index 00000000..5b872f25 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_upper_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60527a7cc510f7e780440e9f61560346bde58293e6149bcaf2283abef612ac25 +size 1179 diff --git a/data/minecraft/structure/trail_ruins/buildings/group_upper_5.nbt b/data/minecraft/structure/trail_ruins/buildings/group_upper_5.nbt new file mode 100644 index 00000000..40499103 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/group_upper_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b126a666cb09b7a7a39a58421ba4254c03f18ce12292675c5bc05790ef20808 +size 1175 diff --git a/data/minecraft/structure/trail_ruins/buildings/large_room_1.nbt b/data/minecraft/structure/trail_ruins/buildings/large_room_1.nbt new file mode 100644 index 00000000..ec53d1b3 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/large_room_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9724a1edc4b42e6f0af3926282a3a8ee5d678b0fa60f9c5bfd9548dd455a1b04 +size 1925 diff --git a/data/minecraft/structure/trail_ruins/buildings/large_room_2.nbt b/data/minecraft/structure/trail_ruins/buildings/large_room_2.nbt new file mode 100644 index 00000000..2835b65e --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/large_room_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb2846f0a413e59ff0049c2fdceeff3f34cf4ec50ec70777b2e3bf571ba12001 +size 1655 diff --git a/data/minecraft/structure/trail_ruins/buildings/large_room_3.nbt b/data/minecraft/structure/trail_ruins/buildings/large_room_3.nbt new file mode 100644 index 00000000..7f4107e3 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/large_room_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ab7faa0ec8bf83f7d824e3c0f99646fd3ff612aac143186853e14c8447775a4 +size 2706 diff --git a/data/minecraft/structure/trail_ruins/buildings/large_room_4.nbt b/data/minecraft/structure/trail_ruins/buildings/large_room_4.nbt new file mode 100644 index 00000000..54930320 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/large_room_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d4a9fc07ab51e3659b33517007ab4dd0b5bbd605984656f2fd130eb71d1388c +size 1561 diff --git a/data/minecraft/structure/trail_ruins/buildings/large_room_5.nbt b/data/minecraft/structure/trail_ruins/buildings/large_room_5.nbt new file mode 100644 index 00000000..8d398723 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/large_room_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:603a3ecfdf4c3f9e89b75a8ad96af48fd739427524c3dc7573c080b703633a71 +size 3196 diff --git a/data/minecraft/structure/trail_ruins/buildings/one_room_1.nbt b/data/minecraft/structure/trail_ruins/buildings/one_room_1.nbt new file mode 100644 index 00000000..77bad8fc --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/one_room_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72b600d280149b479fe3208a239f22387aa62d697a6eea25c09bd5d5bd6f2176 +size 1003 diff --git a/data/minecraft/structure/trail_ruins/buildings/one_room_2.nbt b/data/minecraft/structure/trail_ruins/buildings/one_room_2.nbt new file mode 100644 index 00000000..bf503949 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/one_room_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9790a3fb9896c90e861529114d210c87811a0c0270396516c4b18350f8eedc42 +size 1084 diff --git a/data/minecraft/structure/trail_ruins/buildings/one_room_3.nbt b/data/minecraft/structure/trail_ruins/buildings/one_room_3.nbt new file mode 100644 index 00000000..5ded186d --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/one_room_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e9fe585fad27a3f44f3f09faa9dc093db94a94c3d17b5086949e152585a9b2b +size 1103 diff --git a/data/minecraft/structure/trail_ruins/buildings/one_room_4.nbt b/data/minecraft/structure/trail_ruins/buildings/one_room_4.nbt new file mode 100644 index 00000000..81f494ec --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/one_room_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbb71d2ed348e2158142b567e51f1f60e3a39f75f6f0869c423303e69d7e44dd +size 1450 diff --git a/data/minecraft/structure/trail_ruins/buildings/one_room_5.nbt b/data/minecraft/structure/trail_ruins/buildings/one_room_5.nbt new file mode 100644 index 00000000..7c055aed --- /dev/null +++ b/data/minecraft/structure/trail_ruins/buildings/one_room_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1e373bb61f2e6533d708609eaf0e122851593a0f9583e93834fc810e580d62c +size 971 diff --git a/data/minecraft/structure/trail_ruins/decor/decor_1.nbt b/data/minecraft/structure/trail_ruins/decor/decor_1.nbt new file mode 100644 index 00000000..32294520 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/decor/decor_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aefcd9e00a2d8fbdbe2d533370bb8a4213fbdd5b1d776867c538a6181e234cbf +size 486 diff --git a/data/minecraft/structure/trail_ruins/decor/decor_2.nbt b/data/minecraft/structure/trail_ruins/decor/decor_2.nbt new file mode 100644 index 00000000..7a86f739 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/decor/decor_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:866386ca12ec591433a6c2d56c3e8969b9f4d2218ef96d05482497d6ea216e9c +size 469 diff --git a/data/minecraft/structure/trail_ruins/decor/decor_3.nbt b/data/minecraft/structure/trail_ruins/decor/decor_3.nbt new file mode 100644 index 00000000..7d6a72ca --- /dev/null +++ b/data/minecraft/structure/trail_ruins/decor/decor_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8ca685ce79cfb5bedbd8c42175fcd918acb5bfe3b6102ef4e5e58abc74fdd44 +size 374 diff --git a/data/minecraft/structure/trail_ruins/decor/decor_4.nbt b/data/minecraft/structure/trail_ruins/decor/decor_4.nbt new file mode 100644 index 00000000..04fc8d53 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/decor/decor_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d380bc8332444ed9e94b7cbc6a8c7ee9b244d22372812e94c74565bc7a26d298 +size 414 diff --git a/data/minecraft/structure/trail_ruins/decor/decor_5.nbt b/data/minecraft/structure/trail_ruins/decor/decor_5.nbt new file mode 100644 index 00000000..6a9f1c82 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/decor/decor_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f9c80da1ff81fa61e507af2ba9b8d70308114a2599a144bbc20921871bec870 +size 490 diff --git a/data/minecraft/structure/trail_ruins/decor/decor_6.nbt b/data/minecraft/structure/trail_ruins/decor/decor_6.nbt new file mode 100644 index 00000000..1c8d09f3 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/decor/decor_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d41924cec1c8f1671720b94c6700946543ad1837d878c4c133ba3a6dfa075b53 +size 504 diff --git a/data/minecraft/structure/trail_ruins/decor/decor_7.nbt b/data/minecraft/structure/trail_ruins/decor/decor_7.nbt new file mode 100644 index 00000000..56a74fc3 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/decor/decor_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7264bb5abe0d87c099cde3fdd58d85789d242f1f9431892317d84bae90a09fb +size 629 diff --git a/data/minecraft/structure/trail_ruins/roads/long_road_end.nbt b/data/minecraft/structure/trail_ruins/roads/long_road_end.nbt new file mode 100644 index 00000000..ae42a740 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/roads/long_road_end.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a966e879b9015b4e59066a22dca3d5f2c91270d7424aa97ffcc6e2136470d40 +size 856 diff --git a/data/minecraft/structure/trail_ruins/roads/road_end_1.nbt b/data/minecraft/structure/trail_ruins/roads/road_end_1.nbt new file mode 100644 index 00000000..24958fbd --- /dev/null +++ b/data/minecraft/structure/trail_ruins/roads/road_end_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d90b0c54711f8410d6821e9a98d1995cce41bec3e1125c75f89d4733276fbd1 +size 465 diff --git a/data/minecraft/structure/trail_ruins/roads/road_section_1.nbt b/data/minecraft/structure/trail_ruins/roads/road_section_1.nbt new file mode 100644 index 00000000..450059e6 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/roads/road_section_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8a760cb13d3185cffdd62a1d3a4a9f496bfd848a450406d146fc75cc98677cd +size 703 diff --git a/data/minecraft/structure/trail_ruins/roads/road_section_2.nbt b/data/minecraft/structure/trail_ruins/roads/road_section_2.nbt new file mode 100644 index 00000000..2ca6f579 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/roads/road_section_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d45c3936a141f4db899f5962f3dea51e24ac159727a68464152894a62804b8f +size 717 diff --git a/data/minecraft/structure/trail_ruins/roads/road_section_3.nbt b/data/minecraft/structure/trail_ruins/roads/road_section_3.nbt new file mode 100644 index 00000000..bb465ec9 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/roads/road_section_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f74848a8cefd45eb7d8574e24c53dab512f9091aba5503d99a2607be76a9d4 +size 754 diff --git a/data/minecraft/structure/trail_ruins/roads/road_section_4.nbt b/data/minecraft/structure/trail_ruins/roads/road_section_4.nbt new file mode 100644 index 00000000..3b62830b --- /dev/null +++ b/data/minecraft/structure/trail_ruins/roads/road_section_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:705ff6d8227e7e180b61dab2b1e63c0ae019eaec3c81a59cd4e7c37fc7939194 +size 770 diff --git a/data/minecraft/structure/trail_ruins/roads/road_spacer_1.nbt b/data/minecraft/structure/trail_ruins/roads/road_spacer_1.nbt new file mode 100644 index 00000000..ec2eb7df --- /dev/null +++ b/data/minecraft/structure/trail_ruins/roads/road_spacer_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdf532687a61ad6de63f9b32f237eb8f99f5412bb71e170f7498f86b7e597cc0 +size 642 diff --git a/data/minecraft/structure/trail_ruins/tower/hall_1.nbt b/data/minecraft/structure/trail_ruins/tower/hall_1.nbt new file mode 100644 index 00000000..0b69fe38 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/hall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:309de3d6f954222f9c10dfe493b3f492d5e67dfcc37e1e7007543e9b297264cd +size 1517 diff --git a/data/minecraft/structure/trail_ruins/tower/hall_2.nbt b/data/minecraft/structure/trail_ruins/tower/hall_2.nbt new file mode 100644 index 00000000..ae0249bc --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/hall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f59be9c23f07db3d3bd5b81f1782ea4c53467e771905051ba1649297ea987e64 +size 1891 diff --git a/data/minecraft/structure/trail_ruins/tower/hall_3.nbt b/data/minecraft/structure/trail_ruins/tower/hall_3.nbt new file mode 100644 index 00000000..9acbb1eb --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/hall_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d06bf4888ef013229b544e4a601d55247428e1cf9728368fdfb12a7c94a30179 +size 2137 diff --git a/data/minecraft/structure/trail_ruins/tower/hall_4.nbt b/data/minecraft/structure/trail_ruins/tower/hall_4.nbt new file mode 100644 index 00000000..c64e81a2 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/hall_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61a5cd35d212794307a4aa0e04269552d0e8dd0267b114b6caefe83d0b8dcb09 +size 2029 diff --git a/data/minecraft/structure/trail_ruins/tower/hall_5.nbt b/data/minecraft/structure/trail_ruins/tower/hall_5.nbt new file mode 100644 index 00000000..ce6a439c --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/hall_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf49a4c1d7c5f38b7d25ea0c7d98de0d9efb5f92e1997eff3e57879ca58216e8 +size 1870 diff --git a/data/minecraft/structure/trail_ruins/tower/large_hall_1.nbt b/data/minecraft/structure/trail_ruins/tower/large_hall_1.nbt new file mode 100644 index 00000000..c9138f2e --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/large_hall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c377c3b6169686bfcee832d78c635bd808c2fc03b4536caff9e10801640d450b +size 2022 diff --git a/data/minecraft/structure/trail_ruins/tower/large_hall_2.nbt b/data/minecraft/structure/trail_ruins/tower/large_hall_2.nbt new file mode 100644 index 00000000..fb59132e --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/large_hall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5df4b8ec47564065376d35c3fb7e741c37c3538a91653b8b8434610fdcaeaf6c +size 1963 diff --git a/data/minecraft/structure/trail_ruins/tower/large_hall_3.nbt b/data/minecraft/structure/trail_ruins/tower/large_hall_3.nbt new file mode 100644 index 00000000..5f904a1e --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/large_hall_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4234a1dee901fff39155ecd7d5cb0d61f91af41d27c95b22dccfe6724b0a66bb +size 2022 diff --git a/data/minecraft/structure/trail_ruins/tower/large_hall_4.nbt b/data/minecraft/structure/trail_ruins/tower/large_hall_4.nbt new file mode 100644 index 00000000..56cbf672 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/large_hall_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24c7d98cc4d069bc2c521cd798eb73d0423765ae577359ab4eecff93cb92e2aa +size 1805 diff --git a/data/minecraft/structure/trail_ruins/tower/large_hall_5.nbt b/data/minecraft/structure/trail_ruins/tower/large_hall_5.nbt new file mode 100644 index 00000000..720a5854 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/large_hall_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:751ee154833ad83c3291ee9da37674aaeea6a73970aee45de74c336fe0d639c0 +size 2000 diff --git a/data/minecraft/structure/trail_ruins/tower/one_room_1.nbt b/data/minecraft/structure/trail_ruins/tower/one_room_1.nbt new file mode 100644 index 00000000..6d01488a --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/one_room_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa0004c3b26eda9f9d449ee665e6c7793b12511eca3377ec5c29da250feaa685 +size 647 diff --git a/data/minecraft/structure/trail_ruins/tower/one_room_2.nbt b/data/minecraft/structure/trail_ruins/tower/one_room_2.nbt new file mode 100644 index 00000000..b20940ae --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/one_room_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b69a3f51a664de8ab647c58c0bad99d0934b1a272aee97df13647b1cae82719f +size 716 diff --git a/data/minecraft/structure/trail_ruins/tower/one_room_3.nbt b/data/minecraft/structure/trail_ruins/tower/one_room_3.nbt new file mode 100644 index 00000000..51984eab --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/one_room_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a62a554209647fff12b4422d483c35f596d8fa38fe0a9308a592ef157ff492f +size 620 diff --git a/data/minecraft/structure/trail_ruins/tower/one_room_4.nbt b/data/minecraft/structure/trail_ruins/tower/one_room_4.nbt new file mode 100644 index 00000000..f1b3289a --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/one_room_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c2e455f165ee7525a23d234d218cd3507db2ed6984d58917b225783484c1758 +size 613 diff --git a/data/minecraft/structure/trail_ruins/tower/one_room_5.nbt b/data/minecraft/structure/trail_ruins/tower/one_room_5.nbt new file mode 100644 index 00000000..91ed9d9a --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/one_room_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12edb0a26f69c09dcc839cb37187d19480583030bd62abcf9e2ef9cb396435dc +size 635 diff --git a/data/minecraft/structure/trail_ruins/tower/platform_1.nbt b/data/minecraft/structure/trail_ruins/tower/platform_1.nbt new file mode 100644 index 00000000..b31fd123 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/platform_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ce733f20a68da103ee7334485aad794d77d78d4753b49bb85057df69e7a3a07 +size 1194 diff --git a/data/minecraft/structure/trail_ruins/tower/platform_2.nbt b/data/minecraft/structure/trail_ruins/tower/platform_2.nbt new file mode 100644 index 00000000..83a8f499 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/platform_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dff8277725b934fd2185a01fff933ab61aa8bde4db25abab29b852a11b67251 +size 1133 diff --git a/data/minecraft/structure/trail_ruins/tower/platform_3.nbt b/data/minecraft/structure/trail_ruins/tower/platform_3.nbt new file mode 100644 index 00000000..9d5a850b --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/platform_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3da28a857a1dfd99dd719303c2be537e20b8e5b449b135f60de9cf7476778bd +size 857 diff --git a/data/minecraft/structure/trail_ruins/tower/platform_4.nbt b/data/minecraft/structure/trail_ruins/tower/platform_4.nbt new file mode 100644 index 00000000..e71c6e5d --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/platform_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12716f68b8ba0a540529ada952277ca100d00f9a96d4f7f29d2680f401d16f5d +size 1204 diff --git a/data/minecraft/structure/trail_ruins/tower/platform_5.nbt b/data/minecraft/structure/trail_ruins/tower/platform_5.nbt new file mode 100644 index 00000000..08d374e1 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/platform_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:584472f8b22adf6eb232d34d2d9605bb8c0f57372460e6bf9bc01fc44a4e5194 +size 1145 diff --git a/data/minecraft/structure/trail_ruins/tower/stable_1.nbt b/data/minecraft/structure/trail_ruins/tower/stable_1.nbt new file mode 100644 index 00000000..67ff075a --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/stable_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c07e0029f27cccd1417ca56794d04a8fc4916920b0dbec66d56ddfe1124bf476 +size 1271 diff --git a/data/minecraft/structure/trail_ruins/tower/stable_2.nbt b/data/minecraft/structure/trail_ruins/tower/stable_2.nbt new file mode 100644 index 00000000..d7aa2fbd --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/stable_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc3cd00bc5b57da3344f42bab69254f99a5f0d96ef72170159ecf49338af1404 +size 1289 diff --git a/data/minecraft/structure/trail_ruins/tower/stable_3.nbt b/data/minecraft/structure/trail_ruins/tower/stable_3.nbt new file mode 100644 index 00000000..d43b8ab4 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/stable_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de267c5a88f7eec0c861ac408d5b3deca8b3850c5d3ffe6060afcbf118eb345a +size 1254 diff --git a/data/minecraft/structure/trail_ruins/tower/stable_4.nbt b/data/minecraft/structure/trail_ruins/tower/stable_4.nbt new file mode 100644 index 00000000..9eae4ff3 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/stable_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d505f964a594c83527a7366efa2c503bdb0af95899ccf7800824427605e351a +size 1288 diff --git a/data/minecraft/structure/trail_ruins/tower/stable_5.nbt b/data/minecraft/structure/trail_ruins/tower/stable_5.nbt new file mode 100644 index 00000000..550c0b7d --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/stable_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7aad2bdac11efc3ce5b4fd3687f6421cdc7e15b88684eaad74d12c87a75730b +size 1034 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_1.nbt b/data/minecraft/structure/trail_ruins/tower/tower_1.nbt new file mode 100644 index 00000000..7619c8aa --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f006f8ec97ca2c35ed73028f1466c944d6db20842a7fae6c2399972adf4e8abe +size 1583 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_2.nbt b/data/minecraft/structure/trail_ruins/tower/tower_2.nbt new file mode 100644 index 00000000..596650c6 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dd28532ffaaaa76555f777f6ed2bfb4fe232fdac67784bcad3a2988c2465d31 +size 1615 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_3.nbt b/data/minecraft/structure/trail_ruins/tower/tower_3.nbt new file mode 100644 index 00000000..31f53bf9 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e104b857ba6ac8122ede6cec9ab72068548daf3a0a5d6bd1bd8d6f0594e1daa9 +size 2226 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_4.nbt b/data/minecraft/structure/trail_ruins/tower/tower_4.nbt new file mode 100644 index 00000000..699f238d --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e488721e3f2be0f1d46febd701fd029668d18d06b277bf080fd0c2bd67ef3e65 +size 2088 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_5.nbt b/data/minecraft/structure/trail_ruins/tower/tower_5.nbt new file mode 100644 index 00000000..4c307f36 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dc4b1c37654092b92bb14080488cfa3da9848adb0269cac580cff574a151011 +size 2059 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_top_1.nbt b/data/minecraft/structure/trail_ruins/tower/tower_top_1.nbt new file mode 100644 index 00000000..a1b88fdd --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_top_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0275764dffbe40c7c0431559016db0d24744f89c539a9fac2cf9a503d1c4e3d4 +size 503 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_top_2.nbt b/data/minecraft/structure/trail_ruins/tower/tower_top_2.nbt new file mode 100644 index 00000000..81d3b425 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_top_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:473ad87edca1fd2e87f0010e53e2dddee89581892a20a1551b4b18e1e914b70f +size 519 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_top_3.nbt b/data/minecraft/structure/trail_ruins/tower/tower_top_3.nbt new file mode 100644 index 00000000..73dce7da --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_top_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f24118296eb8ef87f8d40949c050ddf675b36ee4711bb93b3bebb4d963d0047 +size 499 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_top_4.nbt b/data/minecraft/structure/trail_ruins/tower/tower_top_4.nbt new file mode 100644 index 00000000..cffd3d50 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_top_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7ad466a2bf452784baa43dd834b92f9f7fd6685696b9b10a92947058b7f7f26 +size 478 diff --git a/data/minecraft/structure/trail_ruins/tower/tower_top_5.nbt b/data/minecraft/structure/trail_ruins/tower/tower_top_5.nbt new file mode 100644 index 00000000..a989d481 --- /dev/null +++ b/data/minecraft/structure/trail_ruins/tower/tower_top_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:198c3d6e40b1a1054c3e93041de3bb3a42a965539d11a2d76502d4cd783f1824 +size 404 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/c1_breeze.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/c1_breeze.nbt new file mode 100644 index 00000000..730477d0 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/c1_breeze.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9640e3fd73aaa8f224b3d8666da697f2e8247e4b2f5c76c5d384fa590c1bde9 +size 1692 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/full_corner_column.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/full_corner_column.nbt new file mode 100644 index 00000000..75d4ebfa --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/full_corner_column.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59c1ad9c73ed1520390bc046d016c08af445dd50289f691433f7e15344efe12 +size 4097 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/full_stacked_walkway.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/full_stacked_walkway.nbt new file mode 100644 index 00000000..d68d367b --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/full_stacked_walkway.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02ed7f1fb651ce011cb116c96773420d1a7f8b8e66742f3f203169c7e8a4699b +size 4266 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/full_stacked_walkway_2.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/full_stacked_walkway_2.nbt new file mode 100644 index 00000000..8e8bb9c6 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/full_stacked_walkway_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e92cd010f01c397eb350ae42bd4aea870eeb797acb4ebf5d068ae83b18b790eb +size 4277 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/grate_bridge.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/grate_bridge.nbt new file mode 100644 index 00000000..16c3cb94 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/grate_bridge.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78775c5108040ebd3c67040fe256531627443932bfda05321d59f27493365afb +size 1751 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/hanging_platform.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/hanging_platform.nbt new file mode 100644 index 00000000..5943ca53 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/hanging_platform.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f20e69834e9299b59187bc7b9600551230dfd4c5885100e7e477ea120d765c1e +size 485 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/lower_staircase_down.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/lower_staircase_down.nbt new file mode 100644 index 00000000..d6120c33 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/lower_staircase_down.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cc0f33b135b3c62e7ef6332a76e7018747f2087bcd94efadec2c149eac8f5ee +size 427 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/short_grate_platform.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/short_grate_platform.nbt new file mode 100644 index 00000000..989f48a5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/short_grate_platform.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7de0d3f387b1a446b4c1a1de9759a2803ebeb4d7d469ac065c5657583a6ed161 +size 798 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/short_platform.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/short_platform.nbt new file mode 100644 index 00000000..2a3b0c4e --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/short_platform.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:983b234f1da406b55cc8e0dd3181263243547fc72239e0ceb2cbefad4a3b5b90 +size 582 diff --git a/data/minecraft/structure/trial_chambers/chamber/addon/walkway_with_bridge_1.nbt b/data/minecraft/structure/trial_chambers/chamber/addon/walkway_with_bridge_1.nbt new file mode 100644 index 00000000..c242aeb2 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/addon/walkway_with_bridge_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccced75b1b2ad08ff56f4734141c2c948b77ac649c2e0e566010990b677c6854 +size 6219 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly.nbt new file mode 100644 index 00000000..a6ac47bd --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aff59223a6db7d39bf5f1e47c1470c220053eaf51f9792fea7ae1150d41404b8 +size 54428 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/cover_1.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_1.nbt new file mode 100644 index 00000000..bc6b20b2 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59a521e0ed43600667aa6bc8c3bd8bc920180a76c2d16c675b9fa54dfc5ad20b +size 955 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/cover_2.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_2.nbt new file mode 100644 index 00000000..3d3bcbba --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8a739026203e8ab69478814c8e9861d48515db04717891ccfc67df68d11f163 +size 948 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/cover_3.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_3.nbt new file mode 100644 index 00000000..f2f5b4e0 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb9f804a4a314d8c46e770b5889a4f84d39e03683ab2e065fd47c3f35fb5b248 +size 955 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/cover_4.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_4.nbt new file mode 100644 index 00000000..a98dda4b --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee8e29e36e03c6907cec00b6cc64008711f4741073d09d9257a97e3c2fb498d9 +size 951 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/cover_5.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_5.nbt new file mode 100644 index 00000000..c95eccd1 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a74907f41842182af978f31508f5a324df3f4a20c83eec2a380f822a9bf2e00 +size 1022 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/cover_6.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_6.nbt new file mode 100644 index 00000000..8653cba5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7af97b66e20d281cfa460fd22d7aeb86c0902248c954c526d1c833447765e21 +size 1020 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/cover_7.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_7.nbt new file mode 100644 index 00000000..39105cb0 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/cover_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84413b96c7458ec254fce1e7653da39c5148ef761e4240a95d2a5dd8800dab27 +size 753 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/full_column.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/full_column.nbt new file mode 100644 index 00000000..ef60eb33 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/full_column.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80566975ab9cf003e43665e95f51cd5d547c1501a556e0993615e376a85f760b +size 659 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_1.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_1.nbt new file mode 100644 index 00000000..27c99ed2 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:045fc1c5ceb37a97b6c27a698df6e87d929068456d8696d497249e59489d6bfc +size 584 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_2.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_2.nbt new file mode 100644 index 00000000..2065fac5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fbed8179e786b5c76386148c77fbc2e7d86605b5f2ba1f2093e66191ea51acb +size 866 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_3.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_3.nbt new file mode 100644 index 00000000..2a071175 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3901f7a1870ce979d39a89883cc3841a7b1de32917aa86773b4be559adb2abdd +size 534 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_4.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_4.nbt new file mode 100644 index 00000000..40a8adb7 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d7220ef0586723dbfe131db0bcb49c0f44282faaee9873ea997a5125ff89eac +size 636 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_5.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_5.nbt new file mode 100644 index 00000000..4ca9f81f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/hanging_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec67e8e617124be5abec79cb6d1ed31f12cc277dd0b1b2628f4a7c3d89060984 +size 338 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_1.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_1.nbt new file mode 100644 index 00000000..7e009125 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a794a02f0cb59e258e4dcef74c48c367f82b2dd4df1d998bf657ea44ce74ad7 +size 2460 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_2.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_2.nbt new file mode 100644 index 00000000..0f725ae1 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebcb10b98ef883216f7b26216ba9bee1a6079bfdd8da6f21a9db961152370442 +size 2493 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_3.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_3.nbt new file mode 100644 index 00000000..d74bf930 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/left_staircase_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b9c9ed7f500b256e2f53bd692b6d49c79647a7aa3f9f1d004f3a0b1acd9aa66 +size 2508 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/platform_1.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/platform_1.nbt new file mode 100644 index 00000000..b7503cb9 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/platform_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8301d93f413582627fb1f0ae875f6f212cbb1c33e7393afdded6d0bb0d5ffff +size 470 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_1.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_1.nbt new file mode 100644 index 00000000..c50acd1d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a4ed86bbf0798d7237a1332c705fa3ed748977b8a7f8030534c6642b1bc5f35 +size 2422 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_2.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_2.nbt new file mode 100644 index 00000000..d75c4000 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edf026e59381e54320706144442330393090685110b8d1f5421058596fb497b8 +size 2548 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_3.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_3.nbt new file mode 100644 index 00000000..7eeb7d62 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/right_staircase_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b617eec15c70505466564d3c9777deb39872cbc28cc7686ce5d4d06d1cc31de +size 2555 diff --git a/data/minecraft/structure/trial_chambers/chamber/assembly/spawner_1.nbt b/data/minecraft/structure/trial_chambers/chamber/assembly/spawner_1.nbt new file mode 100644 index 00000000..d04aec49 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/assembly/spawner_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dac61922a3aed8516606e81a61cc2c3df9a611dd21c464b6a6e2c5917528cfa7 +size 914 diff --git a/data/minecraft/structure/trial_chambers/chamber/chamber_1.nbt b/data/minecraft/structure/trial_chambers/chamber/chamber_1.nbt new file mode 100644 index 00000000..19f7d962 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/chamber_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4175455e9392c722733f1a4d6539d1ffa7ed9f2ede1f1e18d6c5a460ec7fc5c0 +size 38693 diff --git a/data/minecraft/structure/trial_chambers/chamber/chamber_2.nbt b/data/minecraft/structure/trial_chambers/chamber/chamber_2.nbt new file mode 100644 index 00000000..a5b9d631 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/chamber_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e723618b1c3ec47708f3646fc254c2a4724813b05f1724f933ab2ed3c5b45593 +size 39046 diff --git a/data/minecraft/structure/trial_chambers/chamber/chamber_4.nbt b/data/minecraft/structure/trial_chambers/chamber/chamber_4.nbt new file mode 100644 index 00000000..53d48dc4 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/chamber_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e6cea895dedf7f0d5b8236be170e04ceadb616c8c14eb158b04a98a4e2d980e +size 24476 diff --git a/data/minecraft/structure/trial_chambers/chamber/chamber_8.nbt b/data/minecraft/structure/trial_chambers/chamber/chamber_8.nbt new file mode 100644 index 00000000..0d313ca5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/chamber_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03fd4daae2ea92c57c51a212abd8ef22d0ce5dc49f91d1b22c2fda83c5b5d161 +size 19216 diff --git a/data/minecraft/structure/trial_chambers/chamber/entrance_cap.nbt b/data/minecraft/structure/trial_chambers/chamber/entrance_cap.nbt new file mode 100644 index 00000000..5955693d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/entrance_cap.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b0d052726976a12e2d0e1007f7759ce49ec769d54309dff92efe7cf55e81194 +size 381 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption.nbt new file mode 100644 index 00000000..7aef111a --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:708a810850ac0ff7434d5ec62281c197143d36b37a5c79af2a6e08c2b567a74f +size 31848 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/breeze_slice_1.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/breeze_slice_1.nbt new file mode 100644 index 00000000..2b4036b4 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/breeze_slice_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75c8e116d47099547f6da75aca5f825e2a7d3b72c9dda8916136e6d916c7c988 +size 2591 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/center_1.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/center_1.nbt new file mode 100644 index 00000000..5b4d9338 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/center_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1322853653d4c2f433ea130f81f0926cb9d7c905de8191d931d33b38c9d650a +size 1534 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_1.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_1.nbt new file mode 100644 index 00000000..844cedcf --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89e1caf267abfa91d9a7efa109517ba52a6fbb89c25a3c8fb90bbaf45b4cf2e1 +size 4435 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_2.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_2.nbt new file mode 100644 index 00000000..cb9d5149 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b6c7860174d023bb6eb869b85f967895ed928ff0e98f650f759c6189ba41ec1 +size 4599 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_3.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_3.nbt new file mode 100644 index 00000000..fadf0db7 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:482ec3ea85c008dbadea9c70c79992b24f3267c5b6dcbe070b2150a213cb9c7e +size 4685 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_4.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_4.nbt new file mode 100644 index 00000000..b254ac0e --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:857dfc877e278b79fdb6c219fc1fe089e8f89447174310abb69d907712914c6a +size 4832 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_5.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_5.nbt new file mode 100644 index 00000000..33621a1b --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/quadrant_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:576e06b903b7fac90bd2917d33246b3227d164c97c84e044e33c329716d804d9 +size 4788 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/slice_1.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/slice_1.nbt new file mode 100644 index 00000000..b6176c33 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/slice_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e9a4b0233502512d360f1819cc548b94e4f7ac1166b83f6cfa36f8ee27e25c1 +size 2503 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/slice_2.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/slice_2.nbt new file mode 100644 index 00000000..fa1c21a1 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/slice_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3070d028073c2c508779fd2badeb1d94e6bcc047b6896138059d7df32ab1a450 +size 2480 diff --git a/data/minecraft/structure/trial_chambers/chamber/eruption/slice_3.nbt b/data/minecraft/structure/trial_chambers/chamber/eruption/slice_3.nbt new file mode 100644 index 00000000..dc5446c9 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/eruption/slice_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31902dfeaa2080243e563111d74e04e1756420ac6fc33cec077b1691186e2e2d +size 2471 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal.nbt new file mode 100644 index 00000000..73b71d05 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42601c3592ed01f9ba69e150716351274fe5712ee40f4d11f2c6dcb6645265e8 +size 47446 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/center_1.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/center_1.nbt new file mode 100644 index 00000000..9f4f616c --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/center_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8570ece2521d80f4d43fafc9f6dc54c058409975f90bebdc6afce8c79d14eda8 +size 3673 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/ominous_slice_1.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/ominous_slice_1.nbt new file mode 100644 index 00000000..28d273fa --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/ominous_slice_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb16e8c15e62426e7795e0b97aace1dfb4a5be560b25a6f68f25a2c7dc6015d7 +size 1917 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_1.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_1.nbt new file mode 100644 index 00000000..0668fd5a --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e710cf13da4fb4a7e46b43df972cd9fdf7a018df635c47631a509ab8492a9a37 +size 3460 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_2.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_2.nbt new file mode 100644 index 00000000..80321d15 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d2e5ba5f7e187c73f7b1cdc7f842d20ba128a073282c6b08002dc107f7e4d1c +size 3323 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_3.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_3.nbt new file mode 100644 index 00000000..69ccb89b --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/quadrant_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dcffc04a7bc53ea757eb606e1753d15f42cea30079e52fbe9c8c3460cecc03f +size 3907 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_1.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_1.nbt new file mode 100644 index 00000000..3109bb87 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40875e9b7fde8efb0a5e7fb38e69dba7a25f7536f486604db2c0c231fbfca811 +size 1920 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_2.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_2.nbt new file mode 100644 index 00000000..f340aa03 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bab18c50c9f103be312c5d771f652bd97d590c83a6c1ce0ba9a21637f8202ebb +size 1962 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_3.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_3.nbt new file mode 100644 index 00000000..7044070c --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e3efd335f648f58c149ee8d4a6d111d5cb167729a3bdf543922293cc541a625 +size 2009 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_4.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_4.nbt new file mode 100644 index 00000000..19de499d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3a8ce86cc7b386c10f7a4cdd16c0433fa2ed9fe42e05b7d6e4eb0610b63ce4c +size 2016 diff --git a/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_5.nbt b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_5.nbt new file mode 100644 index 00000000..0572117b --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/pedestal/slice_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:998097cc52ab448b49b4085260e85f093f4cf3beed80bf9407c0e6f3c8e6af2c +size 1968 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted.nbt new file mode 100644 index 00000000..392a0250 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09c62624dcdc866e1c4af54668eea558f5001e640b44c83b5c7495f7d6ced029 +size 34554 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/center.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/center.nbt new file mode 100644 index 00000000..933a8836 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/center.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e45b5e0695069eaf7a033318622aa2b514d1596612b18dbca485699c65d844b5 +size 1274 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_1.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_1.nbt new file mode 100644 index 00000000..528e412f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fa79386e4a7a2d3a2b52669f69df76e37051dbea43e62853baf8b1b16d7bfac +size 1006 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_2.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_2.nbt new file mode 100644 index 00000000..a0581418 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0249407d4c7ac4521846c16740e54f076ee0794a826b1a383ec71c7fe66ade6 +size 1155 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_3.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_3.nbt new file mode 100644 index 00000000..a141cadd --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ab59ee9cfe74f9e452a48bb57f1f2da1afafc5a107d7b2344b1438d46f48938 +size 987 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_4.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_4.nbt new file mode 100644 index 00000000..ce0af160 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9d09449979a61274e38de012b0bf8bb8e83f0f5ca6f803c740d070a98abc387 +size 986 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_5.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_5.nbt new file mode 100644 index 00000000..937d1d0d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/hallway_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5ecd83b05a69d981f71adf573751fe666f33e3ee4b4f5f3d4ff934056688a6b +size 1003 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/ominous_upper_arm_1.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/ominous_upper_arm_1.nbt new file mode 100644 index 00000000..bc34c0a9 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/ominous_upper_arm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2bd5d598c35829f626acee57520123d715af20713fc1dd5fad5ff741933da6b +size 1341 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_1.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_1.nbt new file mode 100644 index 00000000..c224379d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6381158b23bcc650ca181235f8b82a4e973969f436acd4643049abb62b80b62e +size 3508 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_2.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_2.nbt new file mode 100644 index 00000000..878c1e7f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d221734e38fceacb1a4684337f8d41d48d642b67db057b50d20d12613695d009 +size 3487 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_3.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_3.nbt new file mode 100644 index 00000000..4bf89605 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4bb0743bec4833fd55b0ed5421c3ced2640d132860635fff02f80a2fb390404 +size 3451 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_4.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_4.nbt new file mode 100644 index 00000000..26958474 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/quadrant_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9245d5908f5462e89f4e2b81f5f893acfd845c4ad7f4b51f9e23d7ef8fb1622f +size 3386 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_1.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_1.nbt new file mode 100644 index 00000000..0dc37d93 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b7a9a15e1ba6950361b307b9f38d78d065192d724bb37cc6b6d4449ec5c0486 +size 1322 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_2.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_2.nbt new file mode 100644 index 00000000..f6766932 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7ad28f2c07d878a115baf820143a9bd085a4c1fcbee30f5bcd9ce5a47f738b9 +size 1316 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_3.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_3.nbt new file mode 100644 index 00000000..d2874e96 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee1c3adfb146f0fdd683c6241c4cca93cbc2b6aebeb159946bc40c5f4dc72dd0 +size 1450 diff --git a/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_4.nbt b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_4.nbt new file mode 100644 index 00000000..ec6d849b --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chamber/slanted/ramp_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69ba7c23d77b731f5ddcf2727880a600edfd17834d67860cc41ba17f94f79d16 +size 1230 diff --git a/data/minecraft/structure/trial_chambers/chests/connectors/supply.nbt b/data/minecraft/structure/trial_chambers/chests/connectors/supply.nbt new file mode 100644 index 00000000..45cc690a --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chests/connectors/supply.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:520270bde8ae87e357eb35743c70525d2f446bdab92572194332abebf47b1e4c +size 352 diff --git a/data/minecraft/structure/trial_chambers/chests/supply.nbt b/data/minecraft/structure/trial_chambers/chests/supply.nbt new file mode 100644 index 00000000..3fea0fe9 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/chests/supply.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:460465eb29d9fe0483c7d1711cd23f30c743d62104a4cd8daf96ff6651cca7ba +size 438 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/arrow_dispenser.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/arrow_dispenser.nbt new file mode 100644 index 00000000..2a63fe19 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/arrow_dispenser.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c96ed32b58ad4485fad5c700600c948f98091fb99ad84e72a27f1c9b7c6672d +size 832 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/bridge_lower.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/bridge_lower.nbt new file mode 100644 index 00000000..8b8c67e0 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/bridge_lower.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cda5ba059867f415e087bf82dc81e5f065a4ad5416240f4c095ffbf7a258e80 +size 696 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/chandelier_upper.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/chandelier_upper.nbt new file mode 100644 index 00000000..6bd66a23 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/chandelier_upper.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9156955d441a900c4694320df64955b71acc5dba28bb326ed346d8c9fc8f8bc9 +size 512 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/decoration_upper.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/decoration_upper.nbt new file mode 100644 index 00000000..8dc5f5ac --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/decoration_upper.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf409e8f2d473f628920de9db0ff27684aa8027f1a54cb15a806a147b972a17f +size 512 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/display_1.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/display_1.nbt new file mode 100644 index 00000000..7826a233 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/display_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a2ecfaa4d361376fe79fa82a1eea89d4367ba1b138a9ec69dc5242c5fe8b3f6 +size 899 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/display_2.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/display_2.nbt new file mode 100644 index 00000000..ab2b5d38 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/display_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:108eb368fa25bd1f4bb5208340be244c8c3f29169c53b78e8528bc9c3accc4e2 +size 1526 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/display_3.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/display_3.nbt new file mode 100644 index 00000000..f65ef8d3 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/display_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:831ed83525bd554c09840a397bdf47cad378537ef40957b4e425660bcfc4ff5e +size 809 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/head_upper.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/head_upper.nbt new file mode 100644 index 00000000..3c15c1b4 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/head_upper.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30d4b7cef7090ea41f6b47aa13a2d1f98c73c182d22cb221be76dc06fc86980e +size 524 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/ladder_to_middle.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/ladder_to_middle.nbt new file mode 100644 index 00000000..0c4dfb76 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/ladder_to_middle.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:126bf6e76712598c09e05022ca4510f302be5455f7b05f637bd87ab637b5718f +size 667 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/open_walkway.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/open_walkway.nbt new file mode 100644 index 00000000..0410b7cf --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/open_walkway.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fec942238050f473bf9ad55165bb198da3f22d1d2f3898da791b4748ee747af +size 1158 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/open_walkway_upper.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/open_walkway_upper.nbt new file mode 100644 index 00000000..9dd22bc0 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/open_walkway_upper.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e11ad0923a2eca9279a4432b46f9dc28ac028503ca0386a5bc4d89fa38a3a822 +size 582 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/reward_upper.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/reward_upper.nbt new file mode 100644 index 00000000..590964f2 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/reward_upper.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7d43de7c073994dcacb67cd0e976535cee7896a9657432efcc974bd3d0dc532 +size 548 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/staircase.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/staircase.nbt new file mode 100644 index 00000000..8a6543ea --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/staircase.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb65ec51f90a8cbc42d002f564925bb0aa58f4f1ce64baa912200ded6696a1b1 +size 455 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/wall.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/wall.nbt new file mode 100644 index 00000000..d89f88e5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac203bc35c4d94d3beee606f22ca531276d53921d6374f5bfc884bf83549e273 +size 907 diff --git a/data/minecraft/structure/trial_chambers/corridor/addon/walled_walkway.nbt b/data/minecraft/structure/trial_chambers/corridor/addon/walled_walkway.nbt new file mode 100644 index 00000000..ede9d39f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/addon/walled_walkway.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dd20f0d14587a7288a0ce050aad9661437eb2c346a94f55daef911a5b101680 +size 1184 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium/bogged_relief.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium/bogged_relief.nbt new file mode 100644 index 00000000..cb9bacdd --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium/bogged_relief.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba8767bf5bd0fdc6a13f83d72247c720149ef39c98806990a49187630816bc09 +size 3242 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium/breeze_relief.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium/breeze_relief.nbt new file mode 100644 index 00000000..9a04fbd7 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium/breeze_relief.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c2d1376d038367de06fd1cd6d90881dd733956f5387c8f2876dbea50a8f7f45 +size 3221 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_1.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_1.nbt new file mode 100644 index 00000000..0202f574 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43615f53db63277c3c9cae58ea451652f54000e93e0597e2ec9f68205945576d +size 2881 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_2.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_2.nbt new file mode 100644 index 00000000..55ef0669 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4981171562bb7bde82b45889064608d95862973c7a46d7ceeccdf0f348d6eebc +size 2818 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_3.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_3.nbt new file mode 100644 index 00000000..5d7aeb2c --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium/grand_staircase_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eedd8aec3926c2cab3271cefc59267aae42d9623433582c32f62a0773dfa3c99 +size 2828 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium/spider_relief.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium/spider_relief.nbt new file mode 100644 index 00000000..083d85be --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium/spider_relief.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f99165b9fe3df39bc21103502aba1c75a3057ce374bf7b9f4b14a88f3f98be79 +size 3847 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium/spiral_relief.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium/spiral_relief.nbt new file mode 100644 index 00000000..98e4c769 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium/spiral_relief.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fe080bcbda49d0ba44735e3cf0af48b98f55cd5df21b60d399f2b101279088e +size 3315 diff --git a/data/minecraft/structure/trial_chambers/corridor/atrium_1.nbt b/data/minecraft/structure/trial_chambers/corridor/atrium_1.nbt new file mode 100644 index 00000000..38ff1673 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/atrium_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bf5044f98b3e7f0bf4d55029fbf0f5eb47f51f8206fd5fc525217b209106154 +size 23436 diff --git a/data/minecraft/structure/trial_chambers/corridor/end_1.nbt b/data/minecraft/structure/trial_chambers/corridor/end_1.nbt new file mode 100644 index 00000000..7c56330c --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/end_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f70412c99563c76f5e5be5661ec676f897abab8aa25a8b76edfdea8a5b880094 +size 21443 diff --git a/data/minecraft/structure/trial_chambers/corridor/end_2.nbt b/data/minecraft/structure/trial_chambers/corridor/end_2.nbt new file mode 100644 index 00000000..2f646db7 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/end_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71db7eff49d2e7ccea8a741d3ae45d781b0737853adc04a429fcb5a7d3930b46 +size 21930 diff --git a/data/minecraft/structure/trial_chambers/corridor/entrance_1.nbt b/data/minecraft/structure/trial_chambers/corridor/entrance_1.nbt new file mode 100644 index 00000000..1663a48b --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/entrance_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1fcd6088c9d222b84f617dd1d69eedc857062cfe301bb8fe570ed12335856f5 +size 22135 diff --git a/data/minecraft/structure/trial_chambers/corridor/entrance_2.nbt b/data/minecraft/structure/trial_chambers/corridor/entrance_2.nbt new file mode 100644 index 00000000..e970ecbc --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/entrance_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea17143a716aaf0650f04967c41ed6ec5e5e90ccb10e10f40f59a02537277189 +size 21598 diff --git a/data/minecraft/structure/trial_chambers/corridor/entrance_3.nbt b/data/minecraft/structure/trial_chambers/corridor/entrance_3.nbt new file mode 100644 index 00000000..924b0b9c --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/entrance_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fc745e287ea1fb060ba78a27e2aba23fd541f36c9c47115fa63ae776ed8e185 +size 24028 diff --git a/data/minecraft/structure/trial_chambers/corridor/first_plate.nbt b/data/minecraft/structure/trial_chambers/corridor/first_plate.nbt new file mode 100644 index 00000000..84384ba7 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/first_plate.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ec176e402a52111201a67b8666a697e42374117b5dfb5fbe7b435c15bfd5ecc +size 1471 diff --git a/data/minecraft/structure/trial_chambers/corridor/second_plate.nbt b/data/minecraft/structure/trial_chambers/corridor/second_plate.nbt new file mode 100644 index 00000000..b5e5b750 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/second_plate.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccc0cd4570a36e83a92836e3b028c6c8d48ef8be0fe69e992b70cdd07b44f01f +size 1475 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_1.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_1.nbt new file mode 100644 index 00000000..0a054cb4 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a35f6e1a517b1c647fef321fe15d00aec8a6bc6eaee29142583c9588adf876c7 +size 5670 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_2.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_2.nbt new file mode 100644 index 00000000..8a6a7c18 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:986ee99af73f12583128675f5fe13431ea1410c260af95659e5a8b6f7355af68 +size 5846 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_3.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_3.nbt new file mode 100644 index 00000000..bfde3681 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47fb3c93ad6e4d4c97bbb380989ceec0ca2602fbc0119fa1ec5d41da945de9d9 +size 5818 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_4.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_4.nbt new file mode 100644 index 00000000..13ac2da9 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20182b75dee12a6edb5e9d2e7f47a1ed505a5cfa6f836410e869d949ca2936f3 +size 5812 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_5.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_5.nbt new file mode 100644 index 00000000..09a80d22 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef1e508418373233b8e6d86be1b5c77496e176ac5ac76de35b9cd54349c2c42a +size 5820 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_6.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_6.nbt new file mode 100644 index 00000000..ab5a0293 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c12c075f79eb741932bc7a726ab2af0bc81525037927f0baae18ad16cb79805 +size 5775 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_7.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_7.nbt new file mode 100644 index 00000000..77567324 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3faef9d2166e598be9315bcfadb1fd1c80715424358112feb7ac8e7d66cf7131 +size 5775 diff --git a/data/minecraft/structure/trial_chambers/corridor/straight_8.nbt b/data/minecraft/structure/trial_chambers/corridor/straight_8.nbt new file mode 100644 index 00000000..d47f39a8 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/corridor/straight_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b953e267c12d51c418ec649d7822900fdf52e7465fd5e2bc82372bf95ac1a3a3 +size 5560 diff --git a/data/minecraft/structure/trial_chambers/decor/barrel.nbt b/data/minecraft/structure/trial_chambers/decor/barrel.nbt new file mode 100644 index 00000000..13bc6284 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/barrel.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e1a0824298257cde1c990995798ad92e55584bd44e17ffadce709628cb98e75 +size 335 diff --git a/data/minecraft/structure/trial_chambers/decor/candle_1.nbt b/data/minecraft/structure/trial_chambers/decor/candle_1.nbt new file mode 100644 index 00000000..d8d53c17 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/candle_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc4982b38311d45f1a64d974f01b0e29f663cbdc6d4e61718e5f076d329418e2 +size 305 diff --git a/data/minecraft/structure/trial_chambers/decor/candle_2.nbt b/data/minecraft/structure/trial_chambers/decor/candle_2.nbt new file mode 100644 index 00000000..3fca6bdd --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/candle_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b8807d40b6fd0ea31ad53762dca7e1111031940796c3f9832ae5792def6bc56 +size 305 diff --git a/data/minecraft/structure/trial_chambers/decor/candle_3.nbt b/data/minecraft/structure/trial_chambers/decor/candle_3.nbt new file mode 100644 index 00000000..d70df56a --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/candle_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3637e57b22ff9b168b13e6b29083baf258e4d2a1a1771dcb6114038308b3170 +size 305 diff --git a/data/minecraft/structure/trial_chambers/decor/candle_4.nbt b/data/minecraft/structure/trial_chambers/decor/candle_4.nbt new file mode 100644 index 00000000..7ee2d2f5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/candle_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92cd2b29a3f0880926f9efad72ee9378b4c215dc1e3189d83cd8cd9ae0e4e227 +size 305 diff --git a/data/minecraft/structure/trial_chambers/decor/dead_bush_pot.nbt b/data/minecraft/structure/trial_chambers/decor/dead_bush_pot.nbt new file mode 100644 index 00000000..4dc43888 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/dead_bush_pot.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c77fc4b7e2785e6a5db392ae2410de9583919dbc8d13f4fc396808fb91a777c2 +size 287 diff --git a/data/minecraft/structure/trial_chambers/decor/empty_pot.nbt b/data/minecraft/structure/trial_chambers/decor/empty_pot.nbt new file mode 100644 index 00000000..60681b84 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/empty_pot.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c4157e1075081e7ae837b7e6e408a5ee6eaa2d31398f2766e817ea99f0c9ebb +size 284 diff --git a/data/minecraft/structure/trial_chambers/decor/flow_pot.nbt b/data/minecraft/structure/trial_chambers/decor/flow_pot.nbt new file mode 100644 index 00000000..f259154a --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/flow_pot.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:126b42da19845ff0fa23fe6f812f232ad4cb2666205133dea2ba51d812586cd2 +size 385 diff --git a/data/minecraft/structure/trial_chambers/decor/guster_pot.nbt b/data/minecraft/structure/trial_chambers/decor/guster_pot.nbt new file mode 100644 index 00000000..b62d4888 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/guster_pot.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d90f49590c798a080190603c8ed8bdf843894cc83c98300ea744951418a7d08 +size 383 diff --git a/data/minecraft/structure/trial_chambers/decor/scrape_pot.nbt b/data/minecraft/structure/trial_chambers/decor/scrape_pot.nbt new file mode 100644 index 00000000..847c3b5f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/scrape_pot.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6757e0001e3bbb59af7725609333a553f515433875409059a29ab9ccc53af9c3 +size 382 diff --git a/data/minecraft/structure/trial_chambers/decor/undecorated_pot.nbt b/data/minecraft/structure/trial_chambers/decor/undecorated_pot.nbt new file mode 100644 index 00000000..3a8235dd --- /dev/null +++ b/data/minecraft/structure/trial_chambers/decor/undecorated_pot.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f066cab1251bb9acf08fc717f1cc2aa6b6edaf7f8814604e2a5383fc88d883e7 +size 350 diff --git a/data/minecraft/structure/trial_chambers/dispensers/chamber.nbt b/data/minecraft/structure/trial_chambers/dispensers/chamber.nbt new file mode 100644 index 00000000..3946011d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/dispensers/chamber.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb7ac79cdfbb0de16e68084a0dfe917ad4f66e99c34ab5ca9ad8d8bba932d64f +size 383 diff --git a/data/minecraft/structure/trial_chambers/dispensers/floor_dispenser.nbt b/data/minecraft/structure/trial_chambers/dispensers/floor_dispenser.nbt new file mode 100644 index 00000000..b2fc00cd --- /dev/null +++ b/data/minecraft/structure/trial_chambers/dispensers/floor_dispenser.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61831b5be335f5d24627054321055511839347190dbe8ca40f15e59ef5296de2 +size 355 diff --git a/data/minecraft/structure/trial_chambers/dispensers/wall_dispenser.nbt b/data/minecraft/structure/trial_chambers/dispensers/wall_dispenser.nbt new file mode 100644 index 00000000..bfe3e7ea --- /dev/null +++ b/data/minecraft/structure/trial_chambers/dispensers/wall_dispenser.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5b633594aab1db266b797e01edaea6352fbd35a031ff3dd3e366be2934ed331 +size 411 diff --git a/data/minecraft/structure/trial_chambers/hallway/cache_1.nbt b/data/minecraft/structure/trial_chambers/hallway/cache_1.nbt new file mode 100644 index 00000000..4f54f433 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/cache_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d851ace422124d25bfd32b971b36dcea53249743783d1b26eac8d66589a7dae +size 2706 diff --git a/data/minecraft/structure/trial_chambers/hallway/corner_staircase.nbt b/data/minecraft/structure/trial_chambers/hallway/corner_staircase.nbt new file mode 100644 index 00000000..8f4c400d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/corner_staircase.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9cc5677ddace49e0ac573b3f05f55cc34df61e7fb79aeb3813bba7c2343c40a +size 1436 diff --git a/data/minecraft/structure/trial_chambers/hallway/corner_staircase_down.nbt b/data/minecraft/structure/trial_chambers/hallway/corner_staircase_down.nbt new file mode 100644 index 00000000..4e6fd243 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/corner_staircase_down.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aea926ae3cb6e5c938d0b8ab6ca60b97b4d1ef38a6aa1766221c3ba4498cd7e +size 1439 diff --git a/data/minecraft/structure/trial_chambers/hallway/corridor_connector_1.nbt b/data/minecraft/structure/trial_chambers/hallway/corridor_connector_1.nbt new file mode 100644 index 00000000..c69ae34c --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/corridor_connector_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f7aadb7fb499f10fc512642bccafba975e7561fd246b61e173da938038e180e +size 687 diff --git a/data/minecraft/structure/trial_chambers/hallway/left_corner.nbt b/data/minecraft/structure/trial_chambers/hallway/left_corner.nbt new file mode 100644 index 00000000..d01e7e4f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/left_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01271de6f1af015792d3061fa3b30dcf04e4422766939866b95ec1563096d243 +size 896 diff --git a/data/minecraft/structure/trial_chambers/hallway/long_straight_staircase.nbt b/data/minecraft/structure/trial_chambers/hallway/long_straight_staircase.nbt new file mode 100644 index 00000000..bb34ad83 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/long_straight_staircase.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23e66111cb651f3ec8ed9e5e51afaf428cc5641fd2c0256ccb8ffd042ccf5961 +size 2591 diff --git a/data/minecraft/structure/trial_chambers/hallway/long_straight_staircase_down.nbt b/data/minecraft/structure/trial_chambers/hallway/long_straight_staircase_down.nbt new file mode 100644 index 00000000..04a576b8 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/long_straight_staircase_down.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bb8a843e1f83b088f0966f386188dc4b584de4c2e89a723d15a879d876e732c +size 2591 diff --git a/data/minecraft/structure/trial_chambers/hallway/lower_hallway_connector.nbt b/data/minecraft/structure/trial_chambers/hallway/lower_hallway_connector.nbt new file mode 100644 index 00000000..9693ac53 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/lower_hallway_connector.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:620f32e60fc493e4a25e73554eb0b006f6bf75771e810d0b3b7af08d2a17d2ce +size 3183 diff --git a/data/minecraft/structure/trial_chambers/hallway/right_corner.nbt b/data/minecraft/structure/trial_chambers/hallway/right_corner.nbt new file mode 100644 index 00000000..d0c8e0ba --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/right_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f669e3464be044c6d116d23caad00e505e7f854ae6de5a8af428ce05e5902c6 +size 872 diff --git a/data/minecraft/structure/trial_chambers/hallway/rubble.nbt b/data/minecraft/structure/trial_chambers/hallway/rubble.nbt new file mode 100644 index 00000000..ba393a83 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/rubble.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8e3abb77b23b6d66291752732db9ae02bbc59bcbd48fe339f2e5b2844b6ea19 +size 933 diff --git a/data/minecraft/structure/trial_chambers/hallway/rubble_chamber.nbt b/data/minecraft/structure/trial_chambers/hallway/rubble_chamber.nbt new file mode 100644 index 00000000..79620891 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/rubble_chamber.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b46d2ecc3c7bf767da8dd2bdd909af527e92b794120d459fcdef56b74e3f3c5 +size 924 diff --git a/data/minecraft/structure/trial_chambers/hallway/rubble_chamber_thin.nbt b/data/minecraft/structure/trial_chambers/hallway/rubble_chamber_thin.nbt new file mode 100644 index 00000000..41d91500 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/rubble_chamber_thin.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffd05de3d868420a58acdf83fa5450d3b9a351924944c20bbe3fd45c172e3791 +size 469 diff --git a/data/minecraft/structure/trial_chambers/hallway/rubble_thin.nbt b/data/minecraft/structure/trial_chambers/hallway/rubble_thin.nbt new file mode 100644 index 00000000..41d91500 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/rubble_thin.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffd05de3d868420a58acdf83fa5450d3b9a351924944c20bbe3fd45c172e3791 +size 469 diff --git a/data/minecraft/structure/trial_chambers/hallway/straight.nbt b/data/minecraft/structure/trial_chambers/hallway/straight.nbt new file mode 100644 index 00000000..959aea3a --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/straight.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bba2f59fb52a208b5dc5911e882c238507b5155bfde9bd0f014c0e11fb2ed377 +size 930 diff --git a/data/minecraft/structure/trial_chambers/hallway/straight_staircase.nbt b/data/minecraft/structure/trial_chambers/hallway/straight_staircase.nbt new file mode 100644 index 00000000..9b4f9c12 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/straight_staircase.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c06df5fc8e96ea6a7f0bb7532fc427387b51b5a28f19aa15b76cdc9f3b0be51b +size 1177 diff --git a/data/minecraft/structure/trial_chambers/hallway/straight_staircase_down.nbt b/data/minecraft/structure/trial_chambers/hallway/straight_staircase_down.nbt new file mode 100644 index 00000000..78b38f92 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/straight_staircase_down.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccc9674ecbab2b7cce69ce89fcbd22bb2ff4eb0716be17d875226eefbd1e88c8 +size 1175 diff --git a/data/minecraft/structure/trial_chambers/hallway/upper_hallway_connector.nbt b/data/minecraft/structure/trial_chambers/hallway/upper_hallway_connector.nbt new file mode 100644 index 00000000..8ed4b88f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/hallway/upper_hallway_connector.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc3a72824ffe8ba2ff0a56d3bb13317526908eb363775a7c77c080601ef261ab +size 2698 diff --git a/data/minecraft/structure/trial_chambers/intersection/intersection_1.nbt b/data/minecraft/structure/trial_chambers/intersection/intersection_1.nbt new file mode 100644 index 00000000..cf8543d2 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/intersection/intersection_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:898d8c0e056bffb32da1087f187359747b3d31ccd95d8300a0919dcf437ffabc +size 29464 diff --git a/data/minecraft/structure/trial_chambers/intersection/intersection_2.nbt b/data/minecraft/structure/trial_chambers/intersection/intersection_2.nbt new file mode 100644 index 00000000..4714eb7f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/intersection/intersection_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9a695b541aa6340893726411e41b31c253ebfab33d8ecbe527e7aff61fd6683 +size 30384 diff --git a/data/minecraft/structure/trial_chambers/intersection/intersection_3.nbt b/data/minecraft/structure/trial_chambers/intersection/intersection_3.nbt new file mode 100644 index 00000000..f2ef9aaa --- /dev/null +++ b/data/minecraft/structure/trial_chambers/intersection/intersection_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11fa505c32584b1182a3cac9dfce8837d5c52ac22dc8db5715efd0ffb9cd1531 +size 49426 diff --git a/data/minecraft/structure/trial_chambers/reward/ominous_vault.nbt b/data/minecraft/structure/trial_chambers/reward/ominous_vault.nbt new file mode 100644 index 00000000..40826934 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/reward/ominous_vault.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3489817bc22b31d794fdb7198b4dedea94bb9e0cda96880077047e062ff9b129 +size 688 diff --git a/data/minecraft/structure/trial_chambers/reward/vault.nbt b/data/minecraft/structure/trial_chambers/reward/vault.nbt new file mode 100644 index 00000000..26c67535 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/reward/vault.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d946d8abec5ea5177ace67924c5b7a389fa1013a920c4a562f06981df8e5ab48 +size 502 diff --git a/data/minecraft/structure/trial_chambers/spawner/breeze/breeze.nbt b/data/minecraft/structure/trial_chambers/spawner/breeze/breeze.nbt new file mode 100644 index 00000000..6e694325 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/breeze/breeze.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c40c320c361a5bd744a11726e62641dfa9760ee633e3498e1e1be3d77a988ff +size 613 diff --git a/data/minecraft/structure/trial_chambers/spawner/connectors/breeze.nbt b/data/minecraft/structure/trial_chambers/spawner/connectors/breeze.nbt new file mode 100644 index 00000000..70184842 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/connectors/breeze.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d04cf1dae8d6d21e9da74ac4b55e53acfe80e82b8cba1150f40ddce703a18621 +size 325 diff --git a/data/minecraft/structure/trial_chambers/spawner/connectors/melee.nbt b/data/minecraft/structure/trial_chambers/spawner/connectors/melee.nbt new file mode 100644 index 00000000..2f435e8f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/connectors/melee.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da5a0796de48ffac7c646b38c3f505fe9a9e33b965d87983f8d40c6cd92b09d3 +size 325 diff --git a/data/minecraft/structure/trial_chambers/spawner/connectors/ranged.nbt b/data/minecraft/structure/trial_chambers/spawner/connectors/ranged.nbt new file mode 100644 index 00000000..c2a5daf0 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/connectors/ranged.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:935bb2c5a8e625853a7d9779db6e75c6dfa7ccb7d3abbadea0c391b034fcce65 +size 325 diff --git a/data/minecraft/structure/trial_chambers/spawner/connectors/slow_ranged.nbt b/data/minecraft/structure/trial_chambers/spawner/connectors/slow_ranged.nbt new file mode 100644 index 00000000..0451c5ab --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/connectors/slow_ranged.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b61e955802b1693e1b4b03cc75a5534e65ec95078bd07ed49ca761cfddf65aa8 +size 329 diff --git a/data/minecraft/structure/trial_chambers/spawner/connectors/small_melee.nbt b/data/minecraft/structure/trial_chambers/spawner/connectors/small_melee.nbt new file mode 100644 index 00000000..c8a5147e --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/connectors/small_melee.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dbd03ab7fbe6235608449e3e3fb139869b66e4d5f0302bf48811d13cec65f41 +size 328 diff --git a/data/minecraft/structure/trial_chambers/spawner/melee/husk.nbt b/data/minecraft/structure/trial_chambers/spawner/melee/husk.nbt new file mode 100644 index 00000000..771d6795 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/melee/husk.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54033754ff22d1150ba39980bf02da9e5d95caf51f57cb9caf286669d30f7979 +size 638 diff --git a/data/minecraft/structure/trial_chambers/spawner/melee/spider.nbt b/data/minecraft/structure/trial_chambers/spawner/melee/spider.nbt new file mode 100644 index 00000000..e078af0f --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/melee/spider.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97816c297fc09cb0282677af71682f0bdf047d703f07beff4f69c7dcfa9aca03 +size 613 diff --git a/data/minecraft/structure/trial_chambers/spawner/melee/zombie.nbt b/data/minecraft/structure/trial_chambers/spawner/melee/zombie.nbt new file mode 100644 index 00000000..9c1748b5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/melee/zombie.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cab73bc721410fbbe31fa6022a9b5da35c5f45f6a66804241bf8172fc218aaa8 +size 640 diff --git a/data/minecraft/structure/trial_chambers/spawner/ranged/poison_skeleton.nbt b/data/minecraft/structure/trial_chambers/spawner/ranged/poison_skeleton.nbt new file mode 100644 index 00000000..23bc1259 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/ranged/poison_skeleton.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c56554fc6e4fb9b0f6aaf5e2d3f8235fe7af9200126d38062282c71710229fa0 +size 681 diff --git a/data/minecraft/structure/trial_chambers/spawner/ranged/skeleton.nbt b/data/minecraft/structure/trial_chambers/spawner/ranged/skeleton.nbt new file mode 100644 index 00000000..12efc45d --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/ranged/skeleton.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2efff47d561c5c4911e29375ae5c05561383d83a0c538212ef2d1cecf64461f +size 645 diff --git a/data/minecraft/structure/trial_chambers/spawner/ranged/stray.nbt b/data/minecraft/structure/trial_chambers/spawner/ranged/stray.nbt new file mode 100644 index 00000000..645db6a5 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/ranged/stray.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fc8e524723d6ddf55ec9d5c5879757f54fedaccb2bb8904e4e92c1f2be89eae +size 638 diff --git a/data/minecraft/structure/trial_chambers/spawner/slow_ranged/poison_skeleton.nbt b/data/minecraft/structure/trial_chambers/spawner/slow_ranged/poison_skeleton.nbt new file mode 100644 index 00000000..1a33fd85 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/slow_ranged/poison_skeleton.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b42e053e9793d466cc5a1ef1ede6b80f33b4a85cb61cd1fe55cb2a0485713434 +size 684 diff --git a/data/minecraft/structure/trial_chambers/spawner/slow_ranged/skeleton.nbt b/data/minecraft/structure/trial_chambers/spawner/slow_ranged/skeleton.nbt new file mode 100644 index 00000000..423a13f6 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/slow_ranged/skeleton.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf52cb3c12f19f2d35cdc51226c031507a3afa7b72132feb0acd65c8c7d9f754 +size 648 diff --git a/data/minecraft/structure/trial_chambers/spawner/slow_ranged/stray.nbt b/data/minecraft/structure/trial_chambers/spawner/slow_ranged/stray.nbt new file mode 100644 index 00000000..c5c3fecb --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/slow_ranged/stray.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:684bc5099aeb55b403be1af890e3753dc41e8350b9a20bc0d99427af79823ba2 +size 642 diff --git a/data/minecraft/structure/trial_chambers/spawner/small_melee/baby_zombie.nbt b/data/minecraft/structure/trial_chambers/spawner/small_melee/baby_zombie.nbt new file mode 100644 index 00000000..314292f4 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/small_melee/baby_zombie.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34fab2d1b729ab02bef289c0ef1e9fc837b936e35e1d7e3c876a40ca52fd17cb +size 662 diff --git a/data/minecraft/structure/trial_chambers/spawner/small_melee/cave_spider.nbt b/data/minecraft/structure/trial_chambers/spawner/small_melee/cave_spider.nbt new file mode 100644 index 00000000..48b48d4c --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/small_melee/cave_spider.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f763628d33bcee59e9bff5faaf96767807dfd5cde74449a395ae796ce7812cf5 +size 658 diff --git a/data/minecraft/structure/trial_chambers/spawner/small_melee/silverfish.nbt b/data/minecraft/structure/trial_chambers/spawner/small_melee/silverfish.nbt new file mode 100644 index 00000000..07c46a1e --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/small_melee/silverfish.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4f7d5d26f30edcf5bfec61d5afddf6a1bf8ece05375118693e1371f78bd2eac +size 613 diff --git a/data/minecraft/structure/trial_chambers/spawner/small_melee/slime.nbt b/data/minecraft/structure/trial_chambers/spawner/small_melee/slime.nbt new file mode 100644 index 00000000..a52af1d0 --- /dev/null +++ b/data/minecraft/structure/trial_chambers/spawner/small_melee/slime.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8d2ca631091f544cca2ede7d50e4dd18c236ce4210b1c98c155f11c27689d28 +size 619 diff --git a/data/minecraft/structure/underwater_ruin/big_brick_1.nbt b/data/minecraft/structure/underwater_ruin/big_brick_1.nbt new file mode 100644 index 00000000..7fc23f53 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_brick_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:156eb9740e4bde8117487991baba3617bb5b53780004f35d6602e223ada1d62c +size 11111 diff --git a/data/minecraft/structure/underwater_ruin/big_brick_2.nbt b/data/minecraft/structure/underwater_ruin/big_brick_2.nbt new file mode 100644 index 00000000..ab8b5ff3 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_brick_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ff8e70b0e29b91a688ed462974e3d596a57a385e345cdcb867f5b9925a571a3 +size 11458 diff --git a/data/minecraft/structure/underwater_ruin/big_brick_3.nbt b/data/minecraft/structure/underwater_ruin/big_brick_3.nbt new file mode 100644 index 00000000..a9b315b3 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_brick_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f54c795ad9e540b67dceaa75c4089d119b3dd9711bbc6407e4ab67fd770105ef +size 11629 diff --git a/data/minecraft/structure/underwater_ruin/big_brick_8.nbt b/data/minecraft/structure/underwater_ruin/big_brick_8.nbt new file mode 100644 index 00000000..87b198ee --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_brick_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d7a02bae80e99916a2eed01f4dfa23ca20c080ed66af331b31884d7403873c1 +size 11011 diff --git a/data/minecraft/structure/underwater_ruin/big_cracked_1.nbt b/data/minecraft/structure/underwater_ruin/big_cracked_1.nbt new file mode 100644 index 00000000..1bca3fdf --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_cracked_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20a08eabf4625893e10056ffaf42d955e2e6918d33a8a0aacab60dcdd5573a39 +size 11094 diff --git a/data/minecraft/structure/underwater_ruin/big_cracked_2.nbt b/data/minecraft/structure/underwater_ruin/big_cracked_2.nbt new file mode 100644 index 00000000..415a7bad --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_cracked_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d6ce7e48eff4488ee85a8d5b6219df59a8649baa3ce96d891339d97f54b2b1c +size 11501 diff --git a/data/minecraft/structure/underwater_ruin/big_cracked_3.nbt b/data/minecraft/structure/underwater_ruin/big_cracked_3.nbt new file mode 100644 index 00000000..4875310d --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_cracked_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b8beb4d2a39d6328e3691dc398d095209a7d694961bd7e5057ceef7ba1c2822 +size 11618 diff --git a/data/minecraft/structure/underwater_ruin/big_cracked_8.nbt b/data/minecraft/structure/underwater_ruin/big_cracked_8.nbt new file mode 100644 index 00000000..3dea9461 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_cracked_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3317d63338dad2c1c3abbf8826c841b386f37b4fbb268330f3d5868b319bfde5 +size 11021 diff --git a/data/minecraft/structure/underwater_ruin/big_mossy_1.nbt b/data/minecraft/structure/underwater_ruin/big_mossy_1.nbt new file mode 100644 index 00000000..f4607c0c --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_mossy_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46270f76fde3adc5dfb2971880917367746595b400fc4cb933b23a251fd93147 +size 11093 diff --git a/data/minecraft/structure/underwater_ruin/big_mossy_2.nbt b/data/minecraft/structure/underwater_ruin/big_mossy_2.nbt new file mode 100644 index 00000000..b0931bd3 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_mossy_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a83df5d3133da5804fb9d70bd4ba00eb8c8f73fd8d40d34b92c3b9b95edc3bf +size 11501 diff --git a/data/minecraft/structure/underwater_ruin/big_mossy_3.nbt b/data/minecraft/structure/underwater_ruin/big_mossy_3.nbt new file mode 100644 index 00000000..3a488f73 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_mossy_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f52dfd0c1f3cf93ee3aeffe0db5459273418614563b612722b895de063505df9 +size 11629 diff --git a/data/minecraft/structure/underwater_ruin/big_mossy_8.nbt b/data/minecraft/structure/underwater_ruin/big_mossy_8.nbt new file mode 100644 index 00000000..aa7655fd --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_mossy_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a7de5d82f606e8cf721265929b3fab58cc7a0ceda2980dcc46b5f33dce983ae +size 11042 diff --git a/data/minecraft/structure/underwater_ruin/big_warm_4.nbt b/data/minecraft/structure/underwater_ruin/big_warm_4.nbt new file mode 100644 index 00000000..7bf83f83 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_warm_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76b549e439104a6080460ab097602588b8a28cb209be8b99aff4532bd434052e +size 11263 diff --git a/data/minecraft/structure/underwater_ruin/big_warm_5.nbt b/data/minecraft/structure/underwater_ruin/big_warm_5.nbt new file mode 100644 index 00000000..e042218f --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_warm_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d02acf7c22bb9844bfef110af7b29907b1e6a4d7389d4bd9809bab8b014cbae +size 11030 diff --git a/data/minecraft/structure/underwater_ruin/big_warm_6.nbt b/data/minecraft/structure/underwater_ruin/big_warm_6.nbt new file mode 100644 index 00000000..0237e151 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_warm_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e36279e46eba623250cd6a3ee2dfe46fa7103b87bca20a80e79d8e745a61917 +size 11103 diff --git a/data/minecraft/structure/underwater_ruin/big_warm_7.nbt b/data/minecraft/structure/underwater_ruin/big_warm_7.nbt new file mode 100644 index 00000000..509d6dae --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/big_warm_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e9aaab44dd6297dcaead6d3f888dd4b423a55086ba8822c7aa35114ae8dc4e1 +size 11137 diff --git a/data/minecraft/structure/underwater_ruin/brick_1.nbt b/data/minecraft/structure/underwater_ruin/brick_1.nbt new file mode 100644 index 00000000..94db3421 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3763314b671f923fe83f32844304db72222bdc4867fad25d37dc1fcb7ed33d7d +size 1267 diff --git a/data/minecraft/structure/underwater_ruin/brick_2.nbt b/data/minecraft/structure/underwater_ruin/brick_2.nbt new file mode 100644 index 00000000..0870b8cc --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45aba2f186289411622c1414a25a1a74caf7e93f1b1eaf97cfd82d1e73ec10c3 +size 1257 diff --git a/data/minecraft/structure/underwater_ruin/brick_3.nbt b/data/minecraft/structure/underwater_ruin/brick_3.nbt new file mode 100644 index 00000000..08b6c91e --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f72069a93219676df664f9523434b71d75b87b7a3d2bb1f217cf60a0890bfdf8 +size 1317 diff --git a/data/minecraft/structure/underwater_ruin/brick_4.nbt b/data/minecraft/structure/underwater_ruin/brick_4.nbt new file mode 100644 index 00000000..003b45c4 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:070ad2d3fd2d7c45094fcb6e6cfd97874d405b8397078d4a9f6a37648badc706 +size 1293 diff --git a/data/minecraft/structure/underwater_ruin/brick_5.nbt b/data/minecraft/structure/underwater_ruin/brick_5.nbt new file mode 100644 index 00000000..16eeb3d8 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cf72345e74a3136c27dfdd9a53cbe78572f82c4c8e27111acca92c7643d9d10 +size 1274 diff --git a/data/minecraft/structure/underwater_ruin/brick_6.nbt b/data/minecraft/structure/underwater_ruin/brick_6.nbt new file mode 100644 index 00000000..07053169 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7db6515336b83d95fe528cc205d6f575ab18c2044086f7a664c000702c0a9218 +size 1465 diff --git a/data/minecraft/structure/underwater_ruin/brick_7.nbt b/data/minecraft/structure/underwater_ruin/brick_7.nbt new file mode 100644 index 00000000..bc4c24b0 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e90e2f7b6950400c32a28ae320641be15212567f531e1f8e7f80da0ebc631f8a +size 1290 diff --git a/data/minecraft/structure/underwater_ruin/brick_8.nbt b/data/minecraft/structure/underwater_ruin/brick_8.nbt new file mode 100644 index 00000000..15b4664e --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/brick_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35275700587e59dfd3d59150d15b71deea518492e1fe5ff74021693976730306 +size 1303 diff --git a/data/minecraft/structure/underwater_ruin/cracked_1.nbt b/data/minecraft/structure/underwater_ruin/cracked_1.nbt new file mode 100644 index 00000000..4206a3c4 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6686b1a35c9be0797ece601a1d005eb8bfaecfef308e493edb8f2964c26b5acf +size 1263 diff --git a/data/minecraft/structure/underwater_ruin/cracked_2.nbt b/data/minecraft/structure/underwater_ruin/cracked_2.nbt new file mode 100644 index 00000000..3be70624 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55c570c21b6bb93a50b9427f0daf195b16447259d34654c5f69bc9097415da63 +size 1256 diff --git a/data/minecraft/structure/underwater_ruin/cracked_3.nbt b/data/minecraft/structure/underwater_ruin/cracked_3.nbt new file mode 100644 index 00000000..0e89343c --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e0c548ce4c60c653978d36aa346c51e87a053552aac9fc804e384bfcbac510a +size 1345 diff --git a/data/minecraft/structure/underwater_ruin/cracked_4.nbt b/data/minecraft/structure/underwater_ruin/cracked_4.nbt new file mode 100644 index 00000000..2dbff30b --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05834e2307e8605a254c0ec743b768a97202dfdea4d3f186b5dca23f26fbe79c +size 1254 diff --git a/data/minecraft/structure/underwater_ruin/cracked_5.nbt b/data/minecraft/structure/underwater_ruin/cracked_5.nbt new file mode 100644 index 00000000..5b713e42 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a596435e23678fb3c7896e9b9e05cd8b02faf1ec8a102e189fc867e4e0051381 +size 1279 diff --git a/data/minecraft/structure/underwater_ruin/cracked_6.nbt b/data/minecraft/structure/underwater_ruin/cracked_6.nbt new file mode 100644 index 00000000..9fb7dec0 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12180bc01dbaf065e4baddaa6fb8610239f0f8db7250bdb1e98861e7b49d63d7 +size 1406 diff --git a/data/minecraft/structure/underwater_ruin/cracked_7.nbt b/data/minecraft/structure/underwater_ruin/cracked_7.nbt new file mode 100644 index 00000000..58d60395 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7718e3abc7bf7596fe4b46f917a4a4909ac19d8141c12ab66699808daf69af1b +size 1312 diff --git a/data/minecraft/structure/underwater_ruin/cracked_8.nbt b/data/minecraft/structure/underwater_ruin/cracked_8.nbt new file mode 100644 index 00000000..7715b7e0 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/cracked_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4f34c0748596d932ecef2af370336579cdc2e8595351568e270974f8532c174 +size 1291 diff --git a/data/minecraft/structure/underwater_ruin/mossy_1.nbt b/data/minecraft/structure/underwater_ruin/mossy_1.nbt new file mode 100644 index 00000000..cf880d1d --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8d80b194908c424d477918ee3fe31e024a63845d321f2aa412acc062e7e3c24 +size 1276 diff --git a/data/minecraft/structure/underwater_ruin/mossy_2.nbt b/data/minecraft/structure/underwater_ruin/mossy_2.nbt new file mode 100644 index 00000000..fad8abb2 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe78aafd99fec705d613a3e1914b96c0345bb714b4b7cbb46fcc07c2cb30d51b +size 1231 diff --git a/data/minecraft/structure/underwater_ruin/mossy_3.nbt b/data/minecraft/structure/underwater_ruin/mossy_3.nbt new file mode 100644 index 00000000..fdae8596 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a46e2750f419948734e16742e358204adf2c236c0a10443f2fb75f82ffb52b6 +size 1320 diff --git a/data/minecraft/structure/underwater_ruin/mossy_4.nbt b/data/minecraft/structure/underwater_ruin/mossy_4.nbt new file mode 100644 index 00000000..514bc6f6 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1413956a0eec04689c974aecd5806e5a2c81293e07254b2f83b1a2a2e3d25a72 +size 1279 diff --git a/data/minecraft/structure/underwater_ruin/mossy_5.nbt b/data/minecraft/structure/underwater_ruin/mossy_5.nbt new file mode 100644 index 00000000..3306bcc3 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38a346a555aa50cf35ec43530693e45600297fa424dfe480591e1e4559c60e4d +size 1297 diff --git a/data/minecraft/structure/underwater_ruin/mossy_6.nbt b/data/minecraft/structure/underwater_ruin/mossy_6.nbt new file mode 100644 index 00000000..5bfd6a57 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:584d19961eb70a6aea9c095e8c60d582f8ac5f53d032464b64a3fe6be9403c58 +size 1449 diff --git a/data/minecraft/structure/underwater_ruin/mossy_7.nbt b/data/minecraft/structure/underwater_ruin/mossy_7.nbt new file mode 100644 index 00000000..0a3a7408 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f22543c92c0cc99a3ef1866efb32b5d30f6dafa07c958bd98c4cbb6908d4b93 +size 1306 diff --git a/data/minecraft/structure/underwater_ruin/mossy_8.nbt b/data/minecraft/structure/underwater_ruin/mossy_8.nbt new file mode 100644 index 00000000..e347bf5e --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/mossy_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca65a89da3535c80d5f9e523996e2eef773930941fb5f9e9ff3ace4999416b7b +size 1320 diff --git a/data/minecraft/structure/underwater_ruin/warm_1.nbt b/data/minecraft/structure/underwater_ruin/warm_1.nbt new file mode 100644 index 00000000..a18447c4 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4890875b444b697fafd7577ce7eda6fed89466e60a1093b60993bc1bdd2b27 +size 1265 diff --git a/data/minecraft/structure/underwater_ruin/warm_2.nbt b/data/minecraft/structure/underwater_ruin/warm_2.nbt new file mode 100644 index 00000000..a1ce8c1d --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac9d94d5112d972a85e2d83002444e33c6545b22f0d39431238bdcd0b9967aca +size 1296 diff --git a/data/minecraft/structure/underwater_ruin/warm_3.nbt b/data/minecraft/structure/underwater_ruin/warm_3.nbt new file mode 100644 index 00000000..2056a7d3 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44c07d0f5454755271ff24b7e54c12175aad59412c4e94ece67d6233fba62760 +size 1269 diff --git a/data/minecraft/structure/underwater_ruin/warm_4.nbt b/data/minecraft/structure/underwater_ruin/warm_4.nbt new file mode 100644 index 00000000..070f3248 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e06f1ee6b65fa2bde7505174bf67af970fbea560341b44babd1cd5a5c78d449f +size 1345 diff --git a/data/minecraft/structure/underwater_ruin/warm_5.nbt b/data/minecraft/structure/underwater_ruin/warm_5.nbt new file mode 100644 index 00000000..1c0e614c --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00e86868cbf1d2a83078136eb1f6164cfb9f353cc848d60e58c12efcdb6b0093 +size 1223 diff --git a/data/minecraft/structure/underwater_ruin/warm_6.nbt b/data/minecraft/structure/underwater_ruin/warm_6.nbt new file mode 100644 index 00000000..b1725617 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d614532b2a39ea1389176dab2252bece3d1e1704d508fa272702d69c40485674 +size 1268 diff --git a/data/minecraft/structure/underwater_ruin/warm_7.nbt b/data/minecraft/structure/underwater_ruin/warm_7.nbt new file mode 100644 index 00000000..29cb8520 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71cbc35df66902585c949eb868ac6dfbc9c104400fd1c99b765607a16f18cfa6 +size 1207 diff --git a/data/minecraft/structure/underwater_ruin/warm_8.nbt b/data/minecraft/structure/underwater_ruin/warm_8.nbt new file mode 100644 index 00000000..d1a73244 --- /dev/null +++ b/data/minecraft/structure/underwater_ruin/warm_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ea1fe23d7a1e46ecbb466981870f58728cd2748db4d01c3c75697d6215a1d6f +size 1336 diff --git a/data/minecraft/structure/village/common/animals/cat_black.nbt b/data/minecraft/structure/village/common/animals/cat_black.nbt new file mode 100644 index 00000000..ec421777 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_black.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce1c642a4a009ecf94fd2f0c93dfe7ea9cbc1b266ada6916fa2edbd82fde178e +size 928 diff --git a/data/minecraft/structure/village/common/animals/cat_british.nbt b/data/minecraft/structure/village/common/animals/cat_british.nbt new file mode 100644 index 00000000..60e83a2e --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_british.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:256c5bac85a6ac921257a8d7c39cb480cb0e23d2ad166ce803f473b430c428a7 +size 934 diff --git a/data/minecraft/structure/village/common/animals/cat_calico.nbt b/data/minecraft/structure/village/common/animals/cat_calico.nbt new file mode 100644 index 00000000..0c557d3a --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_calico.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf9ea82c019d9e83ac2c47108b689737a1b7a73bd1b11c9ed48744b7db90a273 +size 859 diff --git a/data/minecraft/structure/village/common/animals/cat_jellie.nbt b/data/minecraft/structure/village/common/animals/cat_jellie.nbt new file mode 100644 index 00000000..211175fa --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_jellie.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31ae6850c9c75d0626f3b8fc14027b3bc1906ab0d14201101a67250835aec847 +size 932 diff --git a/data/minecraft/structure/village/common/animals/cat_persian.nbt b/data/minecraft/structure/village/common/animals/cat_persian.nbt new file mode 100644 index 00000000..82803e6d --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_persian.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be7ee0101982cfc5374215e566d7282280ef5122cd351874310cd911e58c5271 +size 860 diff --git a/data/minecraft/structure/village/common/animals/cat_ragdoll.nbt b/data/minecraft/structure/village/common/animals/cat_ragdoll.nbt new file mode 100644 index 00000000..fe2ca4b5 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_ragdoll.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14d14c7039371b4f08a0360eb6b5611029fb6d577a3e532f53c70d1b7a4779bd +size 926 diff --git a/data/minecraft/structure/village/common/animals/cat_red.nbt b/data/minecraft/structure/village/common/animals/cat_red.nbt new file mode 100644 index 00000000..f57e0ce4 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_red.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9523300a7a0cf0611562771490f3a11429d1f72dec987a88dea6538da8aed00 +size 842 diff --git a/data/minecraft/structure/village/common/animals/cat_siamese.nbt b/data/minecraft/structure/village/common/animals/cat_siamese.nbt new file mode 100644 index 00000000..15a1f41b --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_siamese.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30ca3860e4c19669f380c5b5e01adb91112be60698c4cebd3cd94e3e391f0e9b +size 851 diff --git a/data/minecraft/structure/village/common/animals/cat_tabby.nbt b/data/minecraft/structure/village/common/animals/cat_tabby.nbt new file mode 100644 index 00000000..49c47492 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_tabby.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a9800b43db9ebc3a0811e03d43ab7183110c32f76e727bee2bd24e387161880 +size 923 diff --git a/data/minecraft/structure/village/common/animals/cat_white.nbt b/data/minecraft/structure/village/common/animals/cat_white.nbt new file mode 100644 index 00000000..a86283c6 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cat_white.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81f96e424ee2856a15a9d6e235af3a3ca7a39b839bdbfbedf44162d29fb3cbf2 +size 918 diff --git a/data/minecraft/structure/village/common/animals/cows_1.nbt b/data/minecraft/structure/village/common/animals/cows_1.nbt new file mode 100644 index 00000000..30ffa159 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/cows_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63d8be6cd462de280d66a7082295ef2c1ac7159c2cf08d5965f56d808ff1acb4 +size 964 diff --git a/data/minecraft/structure/village/common/animals/horses_1.nbt b/data/minecraft/structure/village/common/animals/horses_1.nbt new file mode 100644 index 00000000..3751df59 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/horses_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d798bc54c5147208a6e3bb4a5974ff93b53dfe1e5f91a345dac709c32a1b7b58 +size 927 diff --git a/data/minecraft/structure/village/common/animals/horses_2.nbt b/data/minecraft/structure/village/common/animals/horses_2.nbt new file mode 100644 index 00000000..a06f1aa0 --- /dev/null +++ b/data/minecraft/structure/village/common/animals/horses_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cfa146c915f1b394a380a065a967b6337abf8300c2926ee450811465707f979 +size 1043 diff --git a/data/minecraft/structure/village/common/animals/horses_3.nbt b/data/minecraft/structure/village/common/animals/horses_3.nbt new file mode 100644 index 00000000..5ade954c --- /dev/null +++ b/data/minecraft/structure/village/common/animals/horses_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58d6f05872a834dfb11ee200ec70581ce282499e383bed9c2fd3d6686c4f4e86 +size 1050 diff --git a/data/minecraft/structure/village/common/animals/horses_4.nbt b/data/minecraft/structure/village/common/animals/horses_4.nbt new file mode 100644 index 00000000..6066af2d --- /dev/null +++ b/data/minecraft/structure/village/common/animals/horses_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d2dc90a883ceae56a28bdee98f7e4e819961c32ca8f61e22e69d2dbe51e3434 +size 921 diff --git a/data/minecraft/structure/village/common/animals/horses_5.nbt b/data/minecraft/structure/village/common/animals/horses_5.nbt new file mode 100644 index 00000000..72a2dbff --- /dev/null +++ b/data/minecraft/structure/village/common/animals/horses_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab6eaec53d16b32089c6789aca1e1eb35adb4df2cdeee3a700581eff686ee630 +size 942 diff --git a/data/minecraft/structure/village/common/animals/pigs_1.nbt b/data/minecraft/structure/village/common/animals/pigs_1.nbt new file mode 100644 index 00000000..bca243ec --- /dev/null +++ b/data/minecraft/structure/village/common/animals/pigs_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d23107e72af2d0bf6f43dd8955df80e39af92fc0108d748f27e9455b2fe21c3 +size 973 diff --git a/data/minecraft/structure/village/common/animals/sheep_1.nbt b/data/minecraft/structure/village/common/animals/sheep_1.nbt new file mode 100644 index 00000000..6a0eb59e --- /dev/null +++ b/data/minecraft/structure/village/common/animals/sheep_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:939217712dd53f3f84b16767a9897d05a6ae0a713d80b184249159001bb22d26 +size 986 diff --git a/data/minecraft/structure/village/common/animals/sheep_2.nbt b/data/minecraft/structure/village/common/animals/sheep_2.nbt new file mode 100644 index 00000000..f8dd113a --- /dev/null +++ b/data/minecraft/structure/village/common/animals/sheep_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19b95821d3785c63aaea5ad6fc342be8444717103505817392b01096d47cf1d9 +size 985 diff --git a/data/minecraft/structure/village/common/iron_golem.nbt b/data/minecraft/structure/village/common/iron_golem.nbt new file mode 100644 index 00000000..e0a2b21b --- /dev/null +++ b/data/minecraft/structure/village/common/iron_golem.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e0c8c2fb1a5d7aa45e4918003cca74991f02ffa21284f341468d28d8db402fa +size 862 diff --git a/data/minecraft/structure/village/common/well_bottom.nbt b/data/minecraft/structure/village/common/well_bottom.nbt new file mode 100644 index 00000000..2686008c --- /dev/null +++ b/data/minecraft/structure/village/common/well_bottom.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1743e6f375fd082c9781897569bcceb70dbb711ec9b860e27ebf21f7dd91d0b +size 425 diff --git a/data/minecraft/structure/village/decays/grass_11x13.nbt b/data/minecraft/structure/village/decays/grass_11x13.nbt new file mode 100644 index 00000000..987be141 --- /dev/null +++ b/data/minecraft/structure/village/decays/grass_11x13.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c253451b9336cae7b7a5cc7673af01dd9eced03cbc7b9d21d239639a68875cf1 +size 556 diff --git a/data/minecraft/structure/village/decays/grass_16x16.nbt b/data/minecraft/structure/village/decays/grass_16x16.nbt new file mode 100644 index 00000000..82dc1305 --- /dev/null +++ b/data/minecraft/structure/village/decays/grass_16x16.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c6bdfa08d0de27218c72759157d3f72b75726b4f109ab4ea377cbc13af507b0 +size 872 diff --git a/data/minecraft/structure/village/decays/grass_9x9.nbt b/data/minecraft/structure/village/decays/grass_9x9.nbt new file mode 100644 index 00000000..37f032c9 --- /dev/null +++ b/data/minecraft/structure/village/decays/grass_9x9.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99a7ddf18fa908097833dcb02f92ab15afa80582a24d7ddc4a0923d135da730f +size 391 diff --git a/data/minecraft/structure/village/desert/camel_spawn.nbt b/data/minecraft/structure/village/desert/camel_spawn.nbt new file mode 100644 index 00000000..8d31fb1b --- /dev/null +++ b/data/minecraft/structure/village/desert/camel_spawn.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd44a868e22f90212ebaee100713b2c5435fcbeda98a7bff8536fa20014ec95b +size 281 diff --git a/data/minecraft/structure/village/desert/desert_lamp_1.nbt b/data/minecraft/structure/village/desert/desert_lamp_1.nbt new file mode 100644 index 00000000..9822e9cb --- /dev/null +++ b/data/minecraft/structure/village/desert/desert_lamp_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a205228ccce4dd3c6dc2a57f91be4c355b137bf17ead2c5ff3e916d694f9e07c +size 277 diff --git a/data/minecraft/structure/village/desert/houses/desert_animal_pen_1.nbt b/data/minecraft/structure/village/desert/houses/desert_animal_pen_1.nbt new file mode 100644 index 00000000..8f75ff8e --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_animal_pen_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d209c5f02424b74bb835ab88682ebc1a107b0b9fb3f221d8965795e93a85bb14 +size 1687 diff --git a/data/minecraft/structure/village/desert/houses/desert_animal_pen_2.nbt b/data/minecraft/structure/village/desert/houses/desert_animal_pen_2.nbt new file mode 100644 index 00000000..01726238 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_animal_pen_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:853b3fd9712d04ae04d22259c95873d682bb25c573f0792c8f5bca23de14c23f +size 1862 diff --git a/data/minecraft/structure/village/desert/houses/desert_armorer_1.nbt b/data/minecraft/structure/village/desert/houses/desert_armorer_1.nbt new file mode 100644 index 00000000..f8ea9196 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_armorer_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e02ba30ebbb09d0e50d12961da91cb529ff5fd58a23fefd011325480240cae7 +size 1744 diff --git a/data/minecraft/structure/village/desert/houses/desert_butcher_shop_1.nbt b/data/minecraft/structure/village/desert/houses/desert_butcher_shop_1.nbt new file mode 100644 index 00000000..8f205037 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_butcher_shop_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b338438065ce27c05cb4d00f294b58c2c2d9ccdd2c2bf6a9e2ba27b3bedfb43 +size 1777 diff --git a/data/minecraft/structure/village/desert/houses/desert_cartographer_house_1.nbt b/data/minecraft/structure/village/desert/houses/desert_cartographer_house_1.nbt new file mode 100644 index 00000000..97d1849f --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_cartographer_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5accd2bb98222425c0c9a1095c0701754b453f114e963ebe8def1aa7bc713962 +size 1674 diff --git a/data/minecraft/structure/village/desert/houses/desert_farm_1.nbt b/data/minecraft/structure/village/desert/houses/desert_farm_1.nbt new file mode 100644 index 00000000..095ad00b --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47d5e70524c19d0f7abb85ddd0bec31548589aad7e1127447ce4f2ca107e1ea4 +size 712 diff --git a/data/minecraft/structure/village/desert/houses/desert_farm_2.nbt b/data/minecraft/structure/village/desert/houses/desert_farm_2.nbt new file mode 100644 index 00000000..3cd92b11 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_farm_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4e7926cd68ec8f354eb05b1538b4664eadc1c307e6a3f122797c79de80b5e02 +size 885 diff --git a/data/minecraft/structure/village/desert/houses/desert_fisher_1.nbt b/data/minecraft/structure/village/desert/houses/desert_fisher_1.nbt new file mode 100644 index 00000000..21d8e666 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_fisher_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:637bfcc1b11d57642ebb470a096c5f6f1a629ba139f8be25702de6fcd8b17a15 +size 2283 diff --git a/data/minecraft/structure/village/desert/houses/desert_fletcher_house_1.nbt b/data/minecraft/structure/village/desert/houses/desert_fletcher_house_1.nbt new file mode 100644 index 00000000..99e491be --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_fletcher_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6ddbf3fcbf8c5cc839cdb4ab59327afce613e05e7eac7ae4027807e1ddb6200 +size 3093 diff --git a/data/minecraft/structure/village/desert/houses/desert_large_farm_1.nbt b/data/minecraft/structure/village/desert/houses/desert_large_farm_1.nbt new file mode 100644 index 00000000..13380234 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_large_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95707e99946ded972d02d7dbbf7f84b2a134a7a9a2481b585cf99eb40cd4b783 +size 1619 diff --git a/data/minecraft/structure/village/desert/houses/desert_library_1.nbt b/data/minecraft/structure/village/desert/houses/desert_library_1.nbt new file mode 100644 index 00000000..0d4ea070 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_library_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81cf4e52477619488c39c35b34990a4e469c3774dd972c5675805141bbd785f1 +size 1536 diff --git a/data/minecraft/structure/village/desert/houses/desert_mason_1.nbt b/data/minecraft/structure/village/desert/houses/desert_mason_1.nbt new file mode 100644 index 00000000..d2eb63e5 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_mason_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5702b84d392fe1848a0354424273cdddcddbb255fca4545f7bcabd0853635653 +size 1440 diff --git a/data/minecraft/structure/village/desert/houses/desert_medium_house_1.nbt b/data/minecraft/structure/village/desert/houses/desert_medium_house_1.nbt new file mode 100644 index 00000000..2283c4c2 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3311beb91757b94069307294cd1fa176bc559d918d4deb7c3e5482f017050d41 +size 1439 diff --git a/data/minecraft/structure/village/desert/houses/desert_medium_house_2.nbt b/data/minecraft/structure/village/desert/houses/desert_medium_house_2.nbt new file mode 100644 index 00000000..0f80f724 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f452f2a983acb8a09050dcc6c04c0562ab49ae8a19fdd3642fefa08a56b51e8 +size 2836 diff --git a/data/minecraft/structure/village/desert/houses/desert_shepherd_house_1.nbt b/data/minecraft/structure/village/desert/houses/desert_shepherd_house_1.nbt new file mode 100644 index 00000000..34307526 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_shepherd_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17303402a17835b6d173f20dcb64c9e694189a50dbfd1c0305b3c539cfa7e3d8 +size 1564 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_1.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_1.nbt new file mode 100644 index 00000000..5efbfba6 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f99975c26c69a886c5eba89a979d7a0cf9bae5e5900bfb4b71169c9f95d7d086 +size 1177 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_2.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_2.nbt new file mode 100644 index 00000000..b686415c --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:990b990197b828930d5dac5a14eb4736549590a625cd995e7fa69cbbff674e2f +size 1311 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_3.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_3.nbt new file mode 100644 index 00000000..b3ced975 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7de43a47f0c3dd12b163f346171d2e58b90bfd07b4f8e630cc42f872f452878 +size 1129 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_4.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_4.nbt new file mode 100644 index 00000000..1108f998 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d039f2025f941937493527ca8b60c09f2ae2edf4d8f1469d6c6ecaa6a00ca6b4 +size 1052 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_5.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_5.nbt new file mode 100644 index 00000000..84b4da15 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51bbde454dd75fc615666bd5cc03720b652498742868093cf00daf09b2d2ee69 +size 1105 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_6.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_6.nbt new file mode 100644 index 00000000..4f7147af --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:432f9b6208c2e795aa926c28732504c5824148fe8a7f31373f866b7261079230 +size 2291 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_7.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_7.nbt new file mode 100644 index 00000000..0e9b4c33 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84fcd8c558a927cf5ca193a59b8bb12d3f7ce217b89f68c88ba4612431c2ef86 +size 1597 diff --git a/data/minecraft/structure/village/desert/houses/desert_small_house_8.nbt b/data/minecraft/structure/village/desert/houses/desert_small_house_8.nbt new file mode 100644 index 00000000..9c498436 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e343442c2ad3016e43a279bc40bbe4dd5a81868b991a66ba9a2fd0572ef7822 +size 1023 diff --git a/data/minecraft/structure/village/desert/houses/desert_tannery_1.nbt b/data/minecraft/structure/village/desert/houses/desert_tannery_1.nbt new file mode 100644 index 00000000..7be08ce7 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_tannery_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21a6d2c6331ab9048812a78529126bcf04d5dfba76a4eb7a7f50f01601111f91 +size 1834 diff --git a/data/minecraft/structure/village/desert/houses/desert_temple_1.nbt b/data/minecraft/structure/village/desert/houses/desert_temple_1.nbt new file mode 100644 index 00000000..4190e3ba --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_temple_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c5919f9d59876895259fc7a31d57495020761c7d66e9edfd88ae452d0f22729 +size 2997 diff --git a/data/minecraft/structure/village/desert/houses/desert_temple_2.nbt b/data/minecraft/structure/village/desert/houses/desert_temple_2.nbt new file mode 100644 index 00000000..b9d223af --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_temple_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e63e3433eea9acd9b6310c69b0906dcf4eea50745644591aca763be646367620 +size 2879 diff --git a/data/minecraft/structure/village/desert/houses/desert_tool_smith_1.nbt b/data/minecraft/structure/village/desert/houses/desert_tool_smith_1.nbt new file mode 100644 index 00000000..8ddacf6d --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_tool_smith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7426f3ce56909f06aa03d240679ec3de4dbe897332dab3ca2fe30c374a2cf9d +size 2960 diff --git a/data/minecraft/structure/village/desert/houses/desert_weaponsmith_1.nbt b/data/minecraft/structure/village/desert/houses/desert_weaponsmith_1.nbt new file mode 100644 index 00000000..b6bc1e44 --- /dev/null +++ b/data/minecraft/structure/village/desert/houses/desert_weaponsmith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd36d169d2e60a74b1d7fe67b77e17cc5e5c28da9e3f3fadfe3e8e58297994b7 +size 2063 diff --git a/data/minecraft/structure/village/desert/streets/corner_01.nbt b/data/minecraft/structure/village/desert/streets/corner_01.nbt new file mode 100644 index 00000000..1b9a68b2 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35beaab576af0bd5615f5defb2042376e0d16c533fef94a794a2a4259745861d +size 747 diff --git a/data/minecraft/structure/village/desert/streets/corner_02.nbt b/data/minecraft/structure/village/desert/streets/corner_02.nbt new file mode 100644 index 00000000..28569ec1 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c54b4c7970d3b9636ca7b7d21db7ae675169f411e687355530fa51d9db5ca67f +size 467 diff --git a/data/minecraft/structure/village/desert/streets/crossroad_01.nbt b/data/minecraft/structure/village/desert/streets/crossroad_01.nbt new file mode 100644 index 00000000..213aa9c6 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4163177bc0fd45c35d30ecfb1a074a64a6ecf5931bb9ad8929abf8defffe22d4 +size 1270 diff --git a/data/minecraft/structure/village/desert/streets/crossroad_02.nbt b/data/minecraft/structure/village/desert/streets/crossroad_02.nbt new file mode 100644 index 00000000..bc51e2b9 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62ff4ece5bdef0d645fb1447d7296aeeadb70682cd9dc4c4732ed66a3d69b15c +size 780 diff --git a/data/minecraft/structure/village/desert/streets/crossroad_03.nbt b/data/minecraft/structure/village/desert/streets/crossroad_03.nbt new file mode 100644 index 00000000..4f71d98a --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5365526999e359ae3a67f02f0dc91ed2456c0a8d161286d346abfef29e8f5f13 +size 441 diff --git a/data/minecraft/structure/village/desert/streets/square_01.nbt b/data/minecraft/structure/village/desert/streets/square_01.nbt new file mode 100644 index 00000000..cb15ed45 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/square_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539c4c927d7b019230d26c2693cf098cdd53d705a08b1463003a4710fafe03e0 +size 1580 diff --git a/data/minecraft/structure/village/desert/streets/square_02.nbt b/data/minecraft/structure/village/desert/streets/square_02.nbt new file mode 100644 index 00000000..33e3aceb --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/square_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:483b5f538b980dcc2bae1f6c4f6873c79617cab400f6fe10e2657711dcc5298f +size 1309 diff --git a/data/minecraft/structure/village/desert/streets/straight_01.nbt b/data/minecraft/structure/village/desert/streets/straight_01.nbt new file mode 100644 index 00000000..c66741a9 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35da2a04c957e82da7e650c6bf0a47839d4d95866b12dbdc8506fc3430c03da1 +size 982 diff --git a/data/minecraft/structure/village/desert/streets/straight_02.nbt b/data/minecraft/structure/village/desert/streets/straight_02.nbt new file mode 100644 index 00000000..5c4b8cfb --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f54e776653e7d1a512efa9130524445980f7a48f7b7ae16845459c9a3df6ac5 +size 1228 diff --git a/data/minecraft/structure/village/desert/streets/straight_03.nbt b/data/minecraft/structure/village/desert/streets/straight_03.nbt new file mode 100644 index 00000000..26715cf0 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3451f7bc9932299feed868cac447fb354421f23537e0ae7a1f923ba89435c868 +size 320 diff --git a/data/minecraft/structure/village/desert/streets/turn_01.nbt b/data/minecraft/structure/village/desert/streets/turn_01.nbt new file mode 100644 index 00000000..e41ce194 --- /dev/null +++ b/data/minecraft/structure/village/desert/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cda38dace4693fb5170f4efb2f2d1be7b9a83e12f40ee4118a4ce47c723a3ab2 +size 399 diff --git a/data/minecraft/structure/village/desert/terminators/terminator_01.nbt b/data/minecraft/structure/village/desert/terminators/terminator_01.nbt new file mode 100644 index 00000000..53fe2ab7 --- /dev/null +++ b/data/minecraft/structure/village/desert/terminators/terminator_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e965f02e3b447035a6617aafbeb80aa7481bb4051d171fab48c376a188d412ca +size 291 diff --git a/data/minecraft/structure/village/desert/terminators/terminator_02.nbt b/data/minecraft/structure/village/desert/terminators/terminator_02.nbt new file mode 100644 index 00000000..e4d6439e --- /dev/null +++ b/data/minecraft/structure/village/desert/terminators/terminator_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7329acf0df2ffee243985a25aa09a765960abdacd057c34b3190db11b0b1ebf5 +size 370 diff --git a/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_1.nbt b/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_1.nbt new file mode 100644 index 00000000..cd7226ed --- /dev/null +++ b/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52050f2b855ed6692c4bd890c3df3d01124736729da035829eeac5ae5faf62ed +size 1013 diff --git a/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_2.nbt b/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_2.nbt new file mode 100644 index 00000000..65df908a --- /dev/null +++ b/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e03d146fd3b24d72a269b8209b4c7a43c690950718af40bcc5e86bf4a6e46fb +size 1832 diff --git a/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_3.nbt b/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_3.nbt new file mode 100644 index 00000000..9f1c7aa7 --- /dev/null +++ b/data/minecraft/structure/village/desert/town_centers/desert_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e6aea37657945bb15c8f204cc493c74a7fdd39cb8b271bc1af8e59dc95218ba +size 1896 diff --git a/data/minecraft/structure/village/desert/villagers/baby.nbt b/data/minecraft/structure/village/desert/villagers/baby.nbt new file mode 100644 index 00000000..73cf63de --- /dev/null +++ b/data/minecraft/structure/village/desert/villagers/baby.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dadd00da8300565daf2bd929630d6b86c18a93359384012c8d820a25d7cd43a +size 750 diff --git a/data/minecraft/structure/village/desert/villagers/nitwit.nbt b/data/minecraft/structure/village/desert/villagers/nitwit.nbt new file mode 100644 index 00000000..aabdca39 --- /dev/null +++ b/data/minecraft/structure/village/desert/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6252ceca78d5df5076f3f3a7dc8980d325edd12cfbfd0616b47f3408206b3b0a +size 750 diff --git a/data/minecraft/structure/village/desert/villagers/unemployed.nbt b/data/minecraft/structure/village/desert/villagers/unemployed.nbt new file mode 100644 index 00000000..e38c3ab0 --- /dev/null +++ b/data/minecraft/structure/village/desert/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d31e152bf63ceabd98c604ace96a8133389ba6f4e9fe3b0f1a135913142a5ac +size 749 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_medium_house_1.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_medium_house_1.nbt new file mode 100644 index 00000000..55bce4c8 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9302ddcbda343937293ce939cd33eb795b5baa79afe633bac762f1a17ab244f6 +size 1447 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_medium_house_2.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_medium_house_2.nbt new file mode 100644 index 00000000..3a2eac8c --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dcc84aadc363dc0c9b2067f61508281e45464d258b2270709272baaeb5c8e9a +size 2843 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_1.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_1.nbt new file mode 100644 index 00000000..b5b89a3f --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdfb2a66b2784334f9140f0136f4366f889e5ddd93d6bee8114b26ff50945340 +size 1184 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_2.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_2.nbt new file mode 100644 index 00000000..5309cc69 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:029c9e17f6707c7ffe3e9a22ed240bbf07ba3fe6d390e1f0ca0db38cd89d838e +size 1317 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_3.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_3.nbt new file mode 100644 index 00000000..2d919a75 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7948d7875f886d20c2b92a46a8eed8411eae397706c8ec9dc7f0b3c59943fe1c +size 1135 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_4.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_4.nbt new file mode 100644 index 00000000..c0e81fe8 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ad77a20c8209c365129330f07b9ec5df5be8926b991b676032131d882420b63 +size 1059 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_5.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_5.nbt new file mode 100644 index 00000000..7d402c7e --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb4a3405d6013b5d19d80994ae9779cd9f3b03e2e725703dd848dd3523d09fa5 +size 1111 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_6.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_6.nbt new file mode 100644 index 00000000..590bb21f --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7840ef0ce691eaf740416c9823cf26ed0193f9c74276b0ba25f345707a2a061a +size 1962 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_7.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_7.nbt new file mode 100644 index 00000000..c29de41c --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0ceb5ccff205b23d81bd7c472e4d2ce6e4c5af9df6141f81d530fbd4562e447 +size 1603 diff --git a/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_8.nbt b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_8.nbt new file mode 100644 index 00000000..af5f55bd --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/houses/desert_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32acb2931a4100e208d75f987990cfaabcae6fb8ab969df8992357294170fa4e +size 1029 diff --git a/data/minecraft/structure/village/desert/zombie/streets/corner_01.nbt b/data/minecraft/structure/village/desert/zombie/streets/corner_01.nbt new file mode 100644 index 00000000..85b1efff --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7340e5f42bfcd011527c249e521f736c2cede5dba1192bf483f4dfff5b04b95e +size 751 diff --git a/data/minecraft/structure/village/desert/zombie/streets/corner_02.nbt b/data/minecraft/structure/village/desert/zombie/streets/corner_02.nbt new file mode 100644 index 00000000..13c4e66b --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10238b3a18e8ca1692271d4066fed5b1da04ff5acc93c92827fec190842754b1 +size 470 diff --git a/data/minecraft/structure/village/desert/zombie/streets/crossroad_01.nbt b/data/minecraft/structure/village/desert/zombie/streets/crossroad_01.nbt new file mode 100644 index 00000000..2bf8e7e3 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfed31f134b9536028b1ebc191888b2ccfa68aea051857fcd2bc4e307085e439 +size 1276 diff --git a/data/minecraft/structure/village/desert/zombie/streets/crossroad_02.nbt b/data/minecraft/structure/village/desert/zombie/streets/crossroad_02.nbt new file mode 100644 index 00000000..10f92c13 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d51c68e4ce5d47c5e033918306610a62466146786e70972d668ff8674147a25d +size 785 diff --git a/data/minecraft/structure/village/desert/zombie/streets/crossroad_03.nbt b/data/minecraft/structure/village/desert/zombie/streets/crossroad_03.nbt new file mode 100644 index 00000000..5e27de89 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:192dddc5d9c33bd71e0fe3fab28b521af6cbac6ed788f30d266421bbb57c96c4 +size 447 diff --git a/data/minecraft/structure/village/desert/zombie/streets/square_01.nbt b/data/minecraft/structure/village/desert/zombie/streets/square_01.nbt new file mode 100644 index 00000000..ea05cca3 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/square_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c01990f52c72a7ab2a15c88aee8853e087408acb0569cf5b37c246bd537b5b9 +size 1584 diff --git a/data/minecraft/structure/village/desert/zombie/streets/square_02.nbt b/data/minecraft/structure/village/desert/zombie/streets/square_02.nbt new file mode 100644 index 00000000..faf2c721 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/square_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bd16ca0aad302a82afc289823c915f33c0b84bfbac24e21d4b88cc4896385ec +size 1313 diff --git a/data/minecraft/structure/village/desert/zombie/streets/straight_01.nbt b/data/minecraft/structure/village/desert/zombie/streets/straight_01.nbt new file mode 100644 index 00000000..e2ebd3d9 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4861f60415fab95c944bc2cd176292599e3b6e387273ab4ef48474e5691bce9e +size 987 diff --git a/data/minecraft/structure/village/desert/zombie/streets/straight_02.nbt b/data/minecraft/structure/village/desert/zombie/streets/straight_02.nbt new file mode 100644 index 00000000..3b3062ed --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0158dd35441116563e7516e0b36fd0bdefe5e8a719563b40f0cdee745c73f408 +size 1232 diff --git a/data/minecraft/structure/village/desert/zombie/streets/straight_03.nbt b/data/minecraft/structure/village/desert/zombie/streets/straight_03.nbt new file mode 100644 index 00000000..21d3e585 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:521866c2c8e87bca4ace1e7b5e0831d15ce655408d27620babf3ce80673d2cb7 +size 326 diff --git a/data/minecraft/structure/village/desert/zombie/streets/turn_01.nbt b/data/minecraft/structure/village/desert/zombie/streets/turn_01.nbt new file mode 100644 index 00000000..a5ff0bb9 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b12f55ddac37b34c9a5cc804f6ddeadd67fd998a276b2da69f12f83853f5f8da +size 403 diff --git a/data/minecraft/structure/village/desert/zombie/terminators/terminator_02.nbt b/data/minecraft/structure/village/desert/zombie/terminators/terminator_02.nbt new file mode 100644 index 00000000..0252ca7d --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/terminators/terminator_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:547f065de167ce38b0aeb00e79d1608b5630918b50e04baa3f3647f8512bd2ce +size 374 diff --git a/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_1.nbt b/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_1.nbt new file mode 100644 index 00000000..d97f488f --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61d775febe437ea6017aad2137aa59e688122d1afc1020a8dbbc82a461fd5240 +size 1126 diff --git a/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_2.nbt b/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_2.nbt new file mode 100644 index 00000000..defdafec --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:810db4e980cb2962cc2ca1449e38145116d0cfae93180a0083b5d069e9f9ca11 +size 2310 diff --git a/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_3.nbt b/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_3.nbt new file mode 100644 index 00000000..033202b8 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/town_centers/desert_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f10baa54761c967febe1cf8d7e9c0bfde03480311ecd58d4dfe01b4d45c99747 +size 4578 diff --git a/data/minecraft/structure/village/desert/zombie/villagers/nitwit.nbt b/data/minecraft/structure/village/desert/zombie/villagers/nitwit.nbt new file mode 100644 index 00000000..5e5f4e24 --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78427e1e584ae9ad6b4656c0675d5a3e5ba757e341019eb601f9a157d098e6c6 +size 755 diff --git a/data/minecraft/structure/village/desert/zombie/villagers/unemployed.nbt b/data/minecraft/structure/village/desert/zombie/villagers/unemployed.nbt new file mode 100644 index 00000000..bb50c31f --- /dev/null +++ b/data/minecraft/structure/village/desert/zombie/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f7e6d729ff893e79592e0453b19afb1947bf6e8a9eeb0e25306d0402eaf0b1d +size 754 diff --git a/data/minecraft/structure/village/plains/houses/plains_accessory_1.nbt b/data/minecraft/structure/village/plains/houses/plains_accessory_1.nbt new file mode 100644 index 00000000..dcce2e15 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_accessory_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:411706128ff0993c570ffd01d798af8d4308b36864541c530b1423464148ef22 +size 521 diff --git a/data/minecraft/structure/village/plains/houses/plains_animal_pen_1.nbt b/data/minecraft/structure/village/plains/houses/plains_animal_pen_1.nbt new file mode 100644 index 00000000..58be91d2 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_animal_pen_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95b4eff030d98a77366f5d28687f97c2401de94d21490ac82ea1f2daced2caa6 +size 723 diff --git a/data/minecraft/structure/village/plains/houses/plains_animal_pen_2.nbt b/data/minecraft/structure/village/plains/houses/plains_animal_pen_2.nbt new file mode 100644 index 00000000..766cde59 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_animal_pen_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:824da09301da85e115249a15ce0add6dab8753e9bd83fa24ef3b1e8c77c19dbc +size 1010 diff --git a/data/minecraft/structure/village/plains/houses/plains_animal_pen_3.nbt b/data/minecraft/structure/village/plains/houses/plains_animal_pen_3.nbt new file mode 100644 index 00000000..7531ad41 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_animal_pen_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:849e03318fbc19bbfe7508a54bc3f4c78f37941e16857139c5b2cb40018464d8 +size 1352 diff --git a/data/minecraft/structure/village/plains/houses/plains_armorer_house_1.nbt b/data/minecraft/structure/village/plains/houses/plains_armorer_house_1.nbt new file mode 100644 index 00000000..f8700ed8 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_armorer_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d860fea6a650f0babab0588ac6bc45651ce407e769b26204bde2c74f8575f10 +size 2609 diff --git a/data/minecraft/structure/village/plains/houses/plains_big_house_1.nbt b/data/minecraft/structure/village/plains/houses/plains_big_house_1.nbt new file mode 100644 index 00000000..f54ba1b1 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_big_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f606fd3d3b81f7edaf5b8de6535193c4fe6e9a009b75a6727523552d7faad3f +size 3261 diff --git a/data/minecraft/structure/village/plains/houses/plains_butcher_shop_1.nbt b/data/minecraft/structure/village/plains/houses/plains_butcher_shop_1.nbt new file mode 100644 index 00000000..f80ed80e --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_butcher_shop_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1f31b213117fe54ad062ea01b48c40ccf3ca7eb243c7d2cadadbb78b353095d +size 4163 diff --git a/data/minecraft/structure/village/plains/houses/plains_butcher_shop_2.nbt b/data/minecraft/structure/village/plains/houses/plains_butcher_shop_2.nbt new file mode 100644 index 00000000..30a51f04 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_butcher_shop_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dc7d583572334da74c5b4ce9dd94fff45fc1a16286515fd6fa771fbba385aaf +size 4557 diff --git a/data/minecraft/structure/village/plains/houses/plains_cartographer_1.nbt b/data/minecraft/structure/village/plains/houses/plains_cartographer_1.nbt new file mode 100644 index 00000000..c77a399b --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_cartographer_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:196c51b5abcf417f2ffcbce7eb96ad3451c031a644e8ad35a1e334190d1f4306 +size 2390 diff --git a/data/minecraft/structure/village/plains/houses/plains_fisher_cottage_1.nbt b/data/minecraft/structure/village/plains/houses/plains_fisher_cottage_1.nbt new file mode 100644 index 00000000..ea645625 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_fisher_cottage_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68ed4c4a21e441038b31d6bac5761983a5006c1fa0b501e99707845effb76bd5 +size 3524 diff --git a/data/minecraft/structure/village/plains/houses/plains_fletcher_house_1.nbt b/data/minecraft/structure/village/plains/houses/plains_fletcher_house_1.nbt new file mode 100644 index 00000000..625870a8 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_fletcher_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12e3190933fb34bc8eab18c78101ae8d3a3975efc2fd792bada0366c687e268c +size 2912 diff --git a/data/minecraft/structure/village/plains/houses/plains_large_farm_1.nbt b/data/minecraft/structure/village/plains/houses/plains_large_farm_1.nbt new file mode 100644 index 00000000..402fc0d5 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_large_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8a0808d8a2072dd9fdfa01cca9fa0d7c29705f5e7c039415371ce110ab8f8c4 +size 1155 diff --git a/data/minecraft/structure/village/plains/houses/plains_library_1.nbt b/data/minecraft/structure/village/plains/houses/plains_library_1.nbt new file mode 100644 index 00000000..6b1ac221 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_library_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5df61b5a12ad97ef3c8a9ceacbf6326af97867d2a1663933d02469498c215f3 +size 6513 diff --git a/data/minecraft/structure/village/plains/houses/plains_library_2.nbt b/data/minecraft/structure/village/plains/houses/plains_library_2.nbt new file mode 100644 index 00000000..11077aae --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_library_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7efa249faf1a8d9496709bfd639c0a10d5cc6c27c0cdb1a9f9a1a58989c53018 +size 2915 diff --git a/data/minecraft/structure/village/plains/houses/plains_masons_house_1.nbt b/data/minecraft/structure/village/plains/houses/plains_masons_house_1.nbt new file mode 100644 index 00000000..89bc4883 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_masons_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39f7af35cdff35376b64e7f94adf342f0657a7a4b8c86d9d8c9d834a9eb82fe0 +size 2294 diff --git a/data/minecraft/structure/village/plains/houses/plains_medium_house_1.nbt b/data/minecraft/structure/village/plains/houses/plains_medium_house_1.nbt new file mode 100644 index 00000000..f9bf872b --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0368702b9668e0307173ebda442bb66e75bd24bca5d417de5d6aa7d429b8ca7 +size 4239 diff --git a/data/minecraft/structure/village/plains/houses/plains_medium_house_2.nbt b/data/minecraft/structure/village/plains/houses/plains_medium_house_2.nbt new file mode 100644 index 00000000..4f338ed5 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:082e3e64163157aa03ebe073d67b53f5b3f43eb68a038a92562ad80010069c84 +size 2539 diff --git a/data/minecraft/structure/village/plains/houses/plains_meeting_point_4.nbt b/data/minecraft/structure/village/plains/houses/plains_meeting_point_4.nbt new file mode 100644 index 00000000..e09a97a4 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_meeting_point_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6744c9c80b39172884fd360b22d9f4decc23afa1eb3f37614ea13643cebfe1e4 +size 3903 diff --git a/data/minecraft/structure/village/plains/houses/plains_meeting_point_5.nbt b/data/minecraft/structure/village/plains/houses/plains_meeting_point_5.nbt new file mode 100644 index 00000000..f5b0da97 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_meeting_point_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14553b6684afa87c3ac6c4995f68a38d834ea6b92ab8254e963dd1cad472452a +size 2650 diff --git a/data/minecraft/structure/village/plains/houses/plains_shepherds_house_1.nbt b/data/minecraft/structure/village/plains/houses/plains_shepherds_house_1.nbt new file mode 100644 index 00000000..51f070ef --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_shepherds_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e25108cb11542f449556cc520f1f0fe6ee7cbdc8ffceb62144e040e8e0500b0 +size 2913 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_farm_1.nbt b/data/minecraft/structure/village/plains/houses/plains_small_farm_1.nbt new file mode 100644 index 00000000..b1b76d74 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7413ba52f6ee9a8e398450e12fe70fc6dfa351351a76c6c926e3d7d25700e3fe +size 771 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_1.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_1.nbt new file mode 100644 index 00000000..84cc4e11 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b81243ffc93fa65a644cb36c9b02ee2cb0a8bff5977242f71fc0c523f21c6a3 +size 1807 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_2.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_2.nbt new file mode 100644 index 00000000..33822dfc --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e495977fbbdb0360c2f020d83fe6205b12b466564ef093ae7ab64e1ff7b413e9 +size 1698 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_3.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_3.nbt new file mode 100644 index 00000000..e055cf95 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1cd7750649b8ae0788454a08bec414c373c920c2f21e97ca4f89eaa164cc673 +size 1800 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_4.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_4.nbt new file mode 100644 index 00000000..c5d70bb9 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65d20c9cbf05e6c86e17d2698df2a994ebec1632ae747fb78e2913cbacfd0877 +size 1723 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_5.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_5.nbt new file mode 100644 index 00000000..6d215c82 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ad1f54252673fe0f3d6c8fb86791f955229f38fae8512cb34ec2a9dba6bca46 +size 3488 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_6.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_6.nbt new file mode 100644 index 00000000..32254563 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:322a593b019b6d3da92f0c9d211bbbb70d9d06de993e44c7131943f09c8ec208 +size 1772 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_7.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_7.nbt new file mode 100644 index 00000000..a39d3542 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bb0a46fbddce98c8811b7f0a1d3d518a854c268fd9f6c034a4a866138f6d463 +size 2033 diff --git a/data/minecraft/structure/village/plains/houses/plains_small_house_8.nbt b/data/minecraft/structure/village/plains/houses/plains_small_house_8.nbt new file mode 100644 index 00000000..9634e0da --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49fb37527eff49e0c1c829ff02ca004a6d5f46381a71787d2416282e66eb1e19 +size 2681 diff --git a/data/minecraft/structure/village/plains/houses/plains_stable_1.nbt b/data/minecraft/structure/village/plains/houses/plains_stable_1.nbt new file mode 100644 index 00000000..8e31f9b8 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_stable_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b5bdc945d17ef47d4a1f0e5284c18c3a66379cc92f0837a795c7fc960bb8c51 +size 3776 diff --git a/data/minecraft/structure/village/plains/houses/plains_stable_2.nbt b/data/minecraft/structure/village/plains/houses/plains_stable_2.nbt new file mode 100644 index 00000000..4fb06e8e --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_stable_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d390993a7686aac9e68414d2faaededaee542786ef7668294b63a747c106959 +size 3069 diff --git a/data/minecraft/structure/village/plains/houses/plains_tannery_1.nbt b/data/minecraft/structure/village/plains/houses/plains_tannery_1.nbt new file mode 100644 index 00000000..2f661ee8 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_tannery_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8d17896b37ea9250181510b4cd9361cb2168a31acbe79db00e56c7a87bd806b +size 2500 diff --git a/data/minecraft/structure/village/plains/houses/plains_temple_3.nbt b/data/minecraft/structure/village/plains/houses/plains_temple_3.nbt new file mode 100644 index 00000000..b89f74a5 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_temple_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64a93805c1b809b8d47f225d25fa7c4f8892ea4ae261a12dd502bb4efbe05a68 +size 2489 diff --git a/data/minecraft/structure/village/plains/houses/plains_temple_4.nbt b/data/minecraft/structure/village/plains/houses/plains_temple_4.nbt new file mode 100644 index 00000000..0d849643 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_temple_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff6d8c8681eac32bd7f5c6f96383411a32feae6505f73a46069c124a4a5cc094 +size 3208 diff --git a/data/minecraft/structure/village/plains/houses/plains_tool_smith_1.nbt b/data/minecraft/structure/village/plains/houses/plains_tool_smith_1.nbt new file mode 100644 index 00000000..60450669 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_tool_smith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6dadec52ff122fcf414871b50ee5f08616002a14973c71c22ae21a6b46e411a +size 2672 diff --git a/data/minecraft/structure/village/plains/houses/plains_weaponsmith_1.nbt b/data/minecraft/structure/village/plains/houses/plains_weaponsmith_1.nbt new file mode 100644 index 00000000..0cbeb013 --- /dev/null +++ b/data/minecraft/structure/village/plains/houses/plains_weaponsmith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:393191017f580e96a3b979ba6dbdcc1f0bdba7dd7a0a10de5e77dc3df78931a1 +size 3339 diff --git a/data/minecraft/structure/village/plains/plains_lamp_1.nbt b/data/minecraft/structure/village/plains/plains_lamp_1.nbt new file mode 100644 index 00000000..dd882423 --- /dev/null +++ b/data/minecraft/structure/village/plains/plains_lamp_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e564c7b327a4e038156e9eca7c30c8106e3d0a18323f8f9817c53216a4e35ff +size 467 diff --git a/data/minecraft/structure/village/plains/streets/corner_01.nbt b/data/minecraft/structure/village/plains/streets/corner_01.nbt new file mode 100644 index 00000000..abcecf3a --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65c6fc5bdded5d7fc8bd7e526e609116e658103d8209b5a5fa23eb8779d1da53 +size 1180 diff --git a/data/minecraft/structure/village/plains/streets/corner_02.nbt b/data/minecraft/structure/village/plains/streets/corner_02.nbt new file mode 100644 index 00000000..6ad08198 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1edeaebdbd0121a3ded284f1f4bd84843dd87c0aa1c229b9b25b441d048240c +size 1107 diff --git a/data/minecraft/structure/village/plains/streets/corner_03.nbt b/data/minecraft/structure/village/plains/streets/corner_03.nbt new file mode 100644 index 00000000..69193961 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c617d72db59926fbdc3e91106ba2cc4019e024307546509fcf0cb7a2c5189892 +size 349 diff --git a/data/minecraft/structure/village/plains/streets/crossroad_01.nbt b/data/minecraft/structure/village/plains/streets/crossroad_01.nbt new file mode 100644 index 00000000..be3db3fe --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8953c13a0d73aebf55420d1ab0b657cdd960cec94c75d05fbe299c5e0dc039c2 +size 1213 diff --git a/data/minecraft/structure/village/plains/streets/crossroad_02.nbt b/data/minecraft/structure/village/plains/streets/crossroad_02.nbt new file mode 100644 index 00000000..22efb3d8 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8742afd673f34ba1b97b99b916c36406e1a0578b936ba27d1cb9cf6502f0e24d +size 1158 diff --git a/data/minecraft/structure/village/plains/streets/crossroad_03.nbt b/data/minecraft/structure/village/plains/streets/crossroad_03.nbt new file mode 100644 index 00000000..179bf5bc --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0445e9affc0eec94a5884ad51a006f3ca65a49484965198d69c53ace2c4d9bad +size 1202 diff --git a/data/minecraft/structure/village/plains/streets/crossroad_04.nbt b/data/minecraft/structure/village/plains/streets/crossroad_04.nbt new file mode 100644 index 00000000..95d1d73c --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa862f7d78cab2cea2a14072aaa97d03981247ef1fe13d7703246f26aa2cc8e0 +size 377 diff --git a/data/minecraft/structure/village/plains/streets/crossroad_05.nbt b/data/minecraft/structure/village/plains/streets/crossroad_05.nbt new file mode 100644 index 00000000..337fba89 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7cae18471ff319612992322e21f96e6c38fd00994d1d242d50de3c5d6e5703b +size 408 diff --git a/data/minecraft/structure/village/plains/streets/crossroad_06.nbt b/data/minecraft/structure/village/plains/streets/crossroad_06.nbt new file mode 100644 index 00000000..acfa9069 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c16de135bb6e3d46a92e417a2165b0bcc84e6d92ff28fdeb256b6031f4c6672 +size 469 diff --git a/data/minecraft/structure/village/plains/streets/straight_01.nbt b/data/minecraft/structure/village/plains/streets/straight_01.nbt new file mode 100644 index 00000000..e4154877 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39279700bf6eecd85ceb2ed1f50296c166d6d0027d07117225fd469be2112c30 +size 1130 diff --git a/data/minecraft/structure/village/plains/streets/straight_02.nbt b/data/minecraft/structure/village/plains/streets/straight_02.nbt new file mode 100644 index 00000000..d471c877 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60beaca62660043cf971f4a0b5549c7990ef56b76c6d88039ee330fa28fd1959 +size 1082 diff --git a/data/minecraft/structure/village/plains/streets/straight_03.nbt b/data/minecraft/structure/village/plains/streets/straight_03.nbt new file mode 100644 index 00000000..c71dec27 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a76c28273abfaa3fa096c9ecd338260a65b864fbfc2b31173436830f723355f2 +size 775 diff --git a/data/minecraft/structure/village/plains/streets/straight_04.nbt b/data/minecraft/structure/village/plains/streets/straight_04.nbt new file mode 100644 index 00000000..0a277758 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:610d8fc5ca28b8deadf654fb5566b4214e5bd9b70d5af7e7783c13273c067f98 +size 632 diff --git a/data/minecraft/structure/village/plains/streets/straight_05.nbt b/data/minecraft/structure/village/plains/streets/straight_05.nbt new file mode 100644 index 00000000..bf73ecb6 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/straight_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b275da4e63e103b0307cdf42860747539a6a254fd7806463393f7eadfe56f7af +size 1327 diff --git a/data/minecraft/structure/village/plains/streets/straight_06.nbt b/data/minecraft/structure/village/plains/streets/straight_06.nbt new file mode 100644 index 00000000..218a6b7c --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b1d0ca168dd42a0d11a6b5d14ed142fa62fd5dc6da6e845a042aea87644a1f1 +size 1701 diff --git a/data/minecraft/structure/village/plains/streets/turn_01.nbt b/data/minecraft/structure/village/plains/streets/turn_01.nbt new file mode 100644 index 00000000..8e09f9c6 --- /dev/null +++ b/data/minecraft/structure/village/plains/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:071dff4a0c7005ca83c46b235aaba74001fce06f5545191e7653d559e448c490 +size 788 diff --git a/data/minecraft/structure/village/plains/terminators/terminator_01.nbt b/data/minecraft/structure/village/plains/terminators/terminator_01.nbt new file mode 100644 index 00000000..bc8b00ec --- /dev/null +++ b/data/minecraft/structure/village/plains/terminators/terminator_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83a4a39318248a20a1fbbe709f8377ff03cb79d661fdd150c9427d15a7917e65 +size 282 diff --git a/data/minecraft/structure/village/plains/terminators/terminator_02.nbt b/data/minecraft/structure/village/plains/terminators/terminator_02.nbt new file mode 100644 index 00000000..f2f42cfc --- /dev/null +++ b/data/minecraft/structure/village/plains/terminators/terminator_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95628c917fd31b833172f3bada6dc885ff3c48b98442b9c3a607d9a749762735 +size 249 diff --git a/data/minecraft/structure/village/plains/terminators/terminator_03.nbt b/data/minecraft/structure/village/plains/terminators/terminator_03.nbt new file mode 100644 index 00000000..1d45b9ca --- /dev/null +++ b/data/minecraft/structure/village/plains/terminators/terminator_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8a55845998e8a6d64edc3747b85c63b2d0783af0a449e03f0bf4defa9b303ad +size 290 diff --git a/data/minecraft/structure/village/plains/terminators/terminator_04.nbt b/data/minecraft/structure/village/plains/terminators/terminator_04.nbt new file mode 100644 index 00000000..d7891ce1 --- /dev/null +++ b/data/minecraft/structure/village/plains/terminators/terminator_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bf511b31291ad653ded951a3f41ed9e90878dc350cec6c0bfdfac90bd62f823 +size 319 diff --git a/data/minecraft/structure/village/plains/town_centers/plains_fountain_01.nbt b/data/minecraft/structure/village/plains/town_centers/plains_fountain_01.nbt new file mode 100644 index 00000000..1f7b1921 --- /dev/null +++ b/data/minecraft/structure/village/plains/town_centers/plains_fountain_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b999c8517bd95cab9efe26c94f378af38693d5a0ef65edbfd346166f6b18b7bc +size 956 diff --git a/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_1.nbt b/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_1.nbt new file mode 100644 index 00000000..0e3e830b --- /dev/null +++ b/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb8a34c983fdfdc4736ba0fa56def51301a7a982eb367352155da33c0cae687 +size 1049 diff --git a/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_2.nbt b/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_2.nbt new file mode 100644 index 00000000..ed9f9418 --- /dev/null +++ b/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f908332b27d4ace965c6a5cf48f3d39e4bd46560c3d55500ae3feea63b508d35 +size 2538 diff --git a/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_3.nbt b/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_3.nbt new file mode 100644 index 00000000..a5933069 --- /dev/null +++ b/data/minecraft/structure/village/plains/town_centers/plains_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46e891f1bceb5908fbd0e212bf5e6f5f03a02931a9847b38291796a5c64aa03c +size 1584 diff --git a/data/minecraft/structure/village/plains/villagers/baby.nbt b/data/minecraft/structure/village/plains/villagers/baby.nbt new file mode 100644 index 00000000..4336fcc2 --- /dev/null +++ b/data/minecraft/structure/village/plains/villagers/baby.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53c1e3594bd22fd05fa5f939b6a235f77076963f7bb5c6dc5eb413b237564afd +size 749 diff --git a/data/minecraft/structure/village/plains/villagers/nitwit.nbt b/data/minecraft/structure/village/plains/villagers/nitwit.nbt new file mode 100644 index 00000000..f9ea85c7 --- /dev/null +++ b/data/minecraft/structure/village/plains/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c7d496e0a4b22d93211626dd01742a93aa7a922c6498f42476bb958e1902e56 +size 749 diff --git a/data/minecraft/structure/village/plains/villagers/unemployed.nbt b/data/minecraft/structure/village/plains/villagers/unemployed.nbt new file mode 100644 index 00000000..6389bab0 --- /dev/null +++ b/data/minecraft/structure/village/plains/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66b346caffa98caec6425b3f5529f3bc1802121f4c7d651320111fb186e5ffd1 +size 749 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_animal_pen_3.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_animal_pen_3.nbt new file mode 100644 index 00000000..f271f452 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_animal_pen_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58ae6d9bfb7605c153398b7ca1bc02b7e8a9360142d0afbf0ea2267f75436bc9 +size 1359 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_big_house_1.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_big_house_1.nbt new file mode 100644 index 00000000..7bd8e229 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_big_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a64d65dc265bb0706718cfa73b0f300cfd4c2febb5dcd626bb24f2c5bec0e301 +size 3269 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_butcher_shop_2.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_butcher_shop_2.nbt new file mode 100644 index 00000000..55a6e6a2 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_butcher_shop_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:751e1240c362b975b9ac48112544197e9c9496bb3e48dc231873c354c84fabb5 +size 4640 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_fletcher_house_1.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_fletcher_house_1.nbt new file mode 100644 index 00000000..faa6c0cc --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_fletcher_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c43afce4f2193c41d01736cb7db376ab644a003325d9710fb5b27fcb73060af2 +size 2903 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_medium_house_1.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_medium_house_1.nbt new file mode 100644 index 00000000..2b0e8679 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1acef7c35b75cdab6719ac9db9f8ce076068923415a14295fa0297eb70bb3eb +size 4246 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_medium_house_2.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_medium_house_2.nbt new file mode 100644 index 00000000..b11ea59e --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ab04a9fd602f38b5190de9a93202663602dbbf0e3040c643b92db039a09fee7 +size 2539 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_meeting_point_4.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_meeting_point_4.nbt new file mode 100644 index 00000000..98310c83 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_meeting_point_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80981c1cbe6be35dd245b8083b1feac05f005eba2c175dfa1a45cda6a98fc8a7 +size 3916 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_meeting_point_5.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_meeting_point_5.nbt new file mode 100644 index 00000000..95fd1dbc --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_meeting_point_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21af79339fc57a06ea0781356c36bebe7bdb2ed9fe29c19b981040a3bf16339a +size 2595 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_shepherds_house_1.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_shepherds_house_1.nbt new file mode 100644 index 00000000..36fd4506 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_shepherds_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5399ab4266466cce808266b594a6486452ab32701e66e556d5d0b0420f61eed4 +size 2922 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_1.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_1.nbt new file mode 100644 index 00000000..3d1d3f6c --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0499897ab37f730ceb0b720c0b17d5d29bb3e81cdcaab60a24651e59cf2ea7c1 +size 1807 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_2.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_2.nbt new file mode 100644 index 00000000..95164101 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc56a5e25c6f7da1b93726d8d43d3866d33948673bb69de4cad4bc215d53a3ae +size 1705 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_3.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_3.nbt new file mode 100644 index 00000000..aad5e2a3 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:336b5cf78a418f60af1964881b8883889d02bb866ef8e148cd31d53a047d0fda +size 1807 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_4.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_4.nbt new file mode 100644 index 00000000..824f1338 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97d9226ca53e9e2f2372a06baf52dec23ab4a784d78d5cbf3d7725b06c4b46af +size 1780 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_5.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_5.nbt new file mode 100644 index 00000000..882a1b8c --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4de2bcb31f8cec030690815aa425fe986d91b3907be330abf4b3801a9f868b91 +size 3492 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_6.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_6.nbt new file mode 100644 index 00000000..621bdcf0 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c8a86c33127079091b82559ed9ea0cc51d3c6108e80a705ea5d3d03c64b8ddf +size 1764 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_7.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_7.nbt new file mode 100644 index 00000000..429c8972 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40289c5f8f01a92dfdf6942727ac46aa07a21c51c249180b801f774bbe4e12d6 +size 2031 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_8.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_8.nbt new file mode 100644 index 00000000..42b8a26b --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d6e120f138a4c96d2891d008e69004d2a2792d2311650461b4d9be944ce18a2 +size 2688 diff --git a/data/minecraft/structure/village/plains/zombie/houses/plains_stable_1.nbt b/data/minecraft/structure/village/plains/zombie/houses/plains_stable_1.nbt new file mode 100644 index 00000000..4a807471 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/houses/plains_stable_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f751a690e65d46156ceac4ba5558fe9006ecac4059bd0e57f5ab60254e3d1c6 +size 3859 diff --git a/data/minecraft/structure/village/plains/zombie/streets/corner_01.nbt b/data/minecraft/structure/village/plains/zombie/streets/corner_01.nbt new file mode 100644 index 00000000..1159848f --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ccd0e8e34b984f5b5165b5c402c69cd3d8bec62a598ea040032daad0f1126c6 +size 1185 diff --git a/data/minecraft/structure/village/plains/zombie/streets/corner_02.nbt b/data/minecraft/structure/village/plains/zombie/streets/corner_02.nbt new file mode 100644 index 00000000..cbe00051 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3140da3af58321a65b0aeb1046f090c067d259ca9cf95c3470187064a9aa2de5 +size 1113 diff --git a/data/minecraft/structure/village/plains/zombie/streets/corner_03.nbt b/data/minecraft/structure/village/plains/zombie/streets/corner_03.nbt new file mode 100644 index 00000000..ab76e504 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2054e26d32cfba6790f3d1ad932620542c05f9f34d9ef632da3a6f058d5fc39 +size 354 diff --git a/data/minecraft/structure/village/plains/zombie/streets/crossroad_01.nbt b/data/minecraft/structure/village/plains/zombie/streets/crossroad_01.nbt new file mode 100644 index 00000000..001156e7 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9697aa04a4f0fb5200aa1b6b01fd2c72669669c3c669b8b6753dc79b80007d2 +size 1219 diff --git a/data/minecraft/structure/village/plains/zombie/streets/crossroad_02.nbt b/data/minecraft/structure/village/plains/zombie/streets/crossroad_02.nbt new file mode 100644 index 00000000..4e19ad49 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d054f692bf57a4f1bab758238634918c44ef982cab4b898573be84971838a6d +size 1163 diff --git a/data/minecraft/structure/village/plains/zombie/streets/crossroad_03.nbt b/data/minecraft/structure/village/plains/zombie/streets/crossroad_03.nbt new file mode 100644 index 00000000..59de277e --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d07a94dc66376aab7b4a95f5305b832f0e82ee2bf652377a0824875445bb69c7 +size 1206 diff --git a/data/minecraft/structure/village/plains/zombie/streets/crossroad_04.nbt b/data/minecraft/structure/village/plains/zombie/streets/crossroad_04.nbt new file mode 100644 index 00000000..f6cb9ca6 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10cd8c0b9eb5d883e4cfa1959c30568f4b2622b2d961c5c28e70c8b77c37c010 +size 381 diff --git a/data/minecraft/structure/village/plains/zombie/streets/crossroad_05.nbt b/data/minecraft/structure/village/plains/zombie/streets/crossroad_05.nbt new file mode 100644 index 00000000..37963d52 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a305983d044baeb091b5ad1f0c6309083e52b74f68c9f2e8cdf57cd15cbc333 +size 412 diff --git a/data/minecraft/structure/village/plains/zombie/streets/crossroad_06.nbt b/data/minecraft/structure/village/plains/zombie/streets/crossroad_06.nbt new file mode 100644 index 00000000..9778c5ed --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09c2dcda95ffbef6f3c3e6a0aa9ff23df9d215ff8de34c894f04123cbbe501ea +size 475 diff --git a/data/minecraft/structure/village/plains/zombie/streets/straight_01.nbt b/data/minecraft/structure/village/plains/zombie/streets/straight_01.nbt new file mode 100644 index 00000000..cb0636c5 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:625d142630fb8928a86bb3fbaae1a87ba857f524091a655b55d5ead66b70a4e3 +size 1135 diff --git a/data/minecraft/structure/village/plains/zombie/streets/straight_02.nbt b/data/minecraft/structure/village/plains/zombie/streets/straight_02.nbt new file mode 100644 index 00000000..6935ef2d --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:552c55df3d74ffaad75f6f0c3847ad24b363f36fef83e6aff6c366cd2a8b9e30 +size 1088 diff --git a/data/minecraft/structure/village/plains/zombie/streets/straight_03.nbt b/data/minecraft/structure/village/plains/zombie/streets/straight_03.nbt new file mode 100644 index 00000000..a36ddd9c --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dea192d61a829c51abb31605b8dd471a1a60c10f062f47c38ba11d00d1ad83fb +size 780 diff --git a/data/minecraft/structure/village/plains/zombie/streets/straight_04.nbt b/data/minecraft/structure/village/plains/zombie/streets/straight_04.nbt new file mode 100644 index 00000000..b8c93a9d --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a36998db00f94b5d3171f31ee60aed5cf8a0519720bf64134e54694c48e98a40 +size 637 diff --git a/data/minecraft/structure/village/plains/zombie/streets/straight_05.nbt b/data/minecraft/structure/village/plains/zombie/streets/straight_05.nbt new file mode 100644 index 00000000..773b92f3 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/straight_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3796fc6caafa659fe14ce1570679f189e17d53a4390dd923353c688e20b682a +size 1331 diff --git a/data/minecraft/structure/village/plains/zombie/streets/straight_06.nbt b/data/minecraft/structure/village/plains/zombie/streets/straight_06.nbt new file mode 100644 index 00000000..74f66633 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a9b3d3faf1158a2c910568235a71ef0eb579ddacfaad3e7e13e49c3c0a3f92c +size 1706 diff --git a/data/minecraft/structure/village/plains/zombie/streets/turn_01.nbt b/data/minecraft/structure/village/plains/zombie/streets/turn_01.nbt new file mode 100644 index 00000000..41fbe36d --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bf0b70fbf19ce6c35fa2b0c3434d53c540b2a31fbfc2ab1642d4400292b9d9b +size 792 diff --git a/data/minecraft/structure/village/plains/zombie/town_centers/plains_fountain_01.nbt b/data/minecraft/structure/village/plains/zombie/town_centers/plains_fountain_01.nbt new file mode 100644 index 00000000..8f42931b --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/town_centers/plains_fountain_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a31f3c3e7ef035a031d657c63e999a01ab53d768d8ca4d1cbb0deb547449ea2 +size 930 diff --git a/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_1.nbt b/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_1.nbt new file mode 100644 index 00000000..e97ac1f8 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca8fb5f86ae60e43344c51746742c295547d96a51af06f4a4c3b6ddf5b375e20 +size 991 diff --git a/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_2.nbt b/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_2.nbt new file mode 100644 index 00000000..dc81726a --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a28c3ebd3feb47a53dedc7c1a58f3fb796c2a420255c4e0dfe4b324079d67f2 +size 2481 diff --git a/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_3.nbt b/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_3.nbt new file mode 100644 index 00000000..4008835f --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/town_centers/plains_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa7542fb7aca2ca45a62346ff0e50888286cbe8715c99697bef5cd704e165fda +size 1525 diff --git a/data/minecraft/structure/village/plains/zombie/villagers/nitwit.nbt b/data/minecraft/structure/village/plains/zombie/villagers/nitwit.nbt new file mode 100644 index 00000000..13e5a8a8 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55e7fbe5c353a5342ee634c5b1e9d1fcb9f792a1c5d0625c5f8c0f35288c6e90 +size 754 diff --git a/data/minecraft/structure/village/plains/zombie/villagers/unemployed.nbt b/data/minecraft/structure/village/plains/zombie/villagers/unemployed.nbt new file mode 100644 index 00000000..2b1b6915 --- /dev/null +++ b/data/minecraft/structure/village/plains/zombie/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3532b170c4b5a1cd7b72343db92ba8e1290b7cc5478512595ed6c63a7cd08385 +size 755 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_1.nbt new file mode 100644 index 00000000..df6b8dda --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d2f0d010ae4983c17d90f2fb0aba22de212422b1a2c39f8e59bd682633fa0f7 +size 1858 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_2.nbt b/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_2.nbt new file mode 100644 index 00000000..401aeadb --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c2aa65e5ca18a02107a44af3cd17e41ffc20175c5fac2528fb89e9db1b8fa10 +size 3472 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_3.nbt b/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_3.nbt new file mode 100644 index 00000000..9ed7b99d --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_animal_pen_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63093b21fd982493bedd3651e5bd8eba7fb903f9024abc107720b2cd131c3961 +size 1657 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_armorer_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_armorer_1.nbt new file mode 100644 index 00000000..bb2d4b7b --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_armorer_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61fa2b36e7a13915fc852a4168218f0d7c73e11762f85729aa7826af67a17b45 +size 1703 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_butchers_shop_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_butchers_shop_1.nbt new file mode 100644 index 00000000..5859ad40 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_butchers_shop_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7eddcd351cd3a6adf01a6b3829f7a12663ed881ae746244b9ae24fd4ffcebb4 +size 3919 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_butchers_shop_2.nbt b/data/minecraft/structure/village/savanna/houses/savanna_butchers_shop_2.nbt new file mode 100644 index 00000000..682c0049 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_butchers_shop_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0aaede7c321116237a37f0d5d3b17558022046ce65751fdc15c2e28e40322af +size 2067 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_cartographer_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_cartographer_1.nbt new file mode 100644 index 00000000..7b2b1d88 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_cartographer_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:690f81b132161eaaebd80f6afc983139bbd69f38cd189e33dfc285fac7250b0c +size 2641 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_fisher_cottage_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_fisher_cottage_1.nbt new file mode 100644 index 00000000..7819df31 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_fisher_cottage_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a930405ce3ecf8dfff7b4a69107560fd7cfc94161a9a7c92ebbbd801df3a56ba +size 3177 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_fletcher_house_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_fletcher_house_1.nbt new file mode 100644 index 00000000..f9a17bb1 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_fletcher_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:559795e3c30032ba6e0cb5d48123b6edac30d74653eba25c2a60b926ad92b707 +size 3034 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_large_farm_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_large_farm_1.nbt new file mode 100644 index 00000000..cf93132e --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_large_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4760bbcf3acca433aaf8fc967a698f89f7289b31cccdd27e2881cb19950d4f3c +size 1243 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_large_farm_2.nbt b/data/minecraft/structure/village/savanna/houses/savanna_large_farm_2.nbt new file mode 100644 index 00000000..2b4261ec --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_large_farm_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c763b3299052af62b7dba24617d7c603b834285362cbe3f0bf99344392eff3d1 +size 2150 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_library_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_library_1.nbt new file mode 100644 index 00000000..90f0944e --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_library_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1409ea4862ea6f65fb2b4bb1d44f13adc3546f8cfd431abc17dc5d99846333f1 +size 2769 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_mason_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_mason_1.nbt new file mode 100644 index 00000000..5df0bd06 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_mason_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f371bff374f843a294994f1aa11bc5cc2616e20b4886fca9971ead306b3ef89 +size 2517 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_medium_house_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_medium_house_1.nbt new file mode 100644 index 00000000..4a32b710 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9c1f1d5ad80f09819cd1c92d499c155cccedcacca54261465a315d6d29310fd +size 3639 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_medium_house_2.nbt b/data/minecraft/structure/village/savanna/houses/savanna_medium_house_2.nbt new file mode 100644 index 00000000..d334d856 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de3fb164fd81cc242e2453661a91a40a7e42335006dfad671a3cfab22e8cfcdf +size 1857 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_shepherd_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_shepherd_1.nbt new file mode 100644 index 00000000..cd3215cd --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_shepherd_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0e2b00f5161310b7763bffce1a3a17f772458cfeca589be36f61714f02c7349 +size 6324 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_farm.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_farm.nbt new file mode 100644 index 00000000..d1376f58 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_farm.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da37095b70942f7db6a8829101e1410d5c8c6bdb27ef98ae863a346312a94a76 +size 1136 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_1.nbt new file mode 100644 index 00000000..7cc59325 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa9bfa22af1c69af254368a70a3f6391f2a3d7452f6a56378a020a2e60f5886e +size 1848 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_2.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_2.nbt new file mode 100644 index 00000000..4fa3cf04 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a23f16598e03f6848fe8a8429fc536c911a17d718942421c1f2d62d50cb7956 +size 1857 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_3.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_3.nbt new file mode 100644 index 00000000..89445621 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9fbb52869428841b71689d7ab5ecc87b77b79dfd1217481d3a4eed3d3d6f993 +size 1810 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_4.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_4.nbt new file mode 100644 index 00000000..cacc98a5 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a143e0fd1cac1bef2f969c7198f83acf076becd59a1567a2c08f3a16a1db43b +size 2703 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_5.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_5.nbt new file mode 100644 index 00000000..40103ef1 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8760c9799e2a9b374e6c435ce715fb300a532d2999e6635bb824fd20bfba6d6 +size 2372 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_6.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_6.nbt new file mode 100644 index 00000000..3012dec5 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecd79c53544caaed1f4173e39294d827f2599a8e4412f962f3a815baf64546e8 +size 1784 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_7.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_7.nbt new file mode 100644 index 00000000..444d50a4 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70017d19f897c7373fd3e452d6e098013f445238132b3ea6b72cbb6f33e57fe9 +size 1880 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_small_house_8.nbt b/data/minecraft/structure/village/savanna/houses/savanna_small_house_8.nbt new file mode 100644 index 00000000..ebfa0ebd --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf1931be785070c453fef803c9b5e7f457e33747e1ff220a67335e17b7459560 +size 1544 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_tannery_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_tannery_1.nbt new file mode 100644 index 00000000..f0058315 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_tannery_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a493d3e5a7939e009982cf85acf557bfe7a911c01da613ca62d8de1dc13d885 +size 2129 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_temple_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_temple_1.nbt new file mode 100644 index 00000000..16e90617 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_temple_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78b164cbdcd1aca715abbf923581e904c3cf57107e52dfbf420e2b041536ae0f +size 3627 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_temple_2.nbt b/data/minecraft/structure/village/savanna/houses/savanna_temple_2.nbt new file mode 100644 index 00000000..7c07b8bb --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_temple_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0ddf8c5eb56206a2e03fb4582243e33b1781957b90970bb6fb67b73eaf4d5a3 +size 2023 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_tool_smith_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_tool_smith_1.nbt new file mode 100644 index 00000000..9955b505 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_tool_smith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d99376a0dfaa4b4e5a3501b712ad2e8f752ec3c0998717182129c8e8c6eeb22 +size 2460 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_weaponsmith_1.nbt b/data/minecraft/structure/village/savanna/houses/savanna_weaponsmith_1.nbt new file mode 100644 index 00000000..ad31886a --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_weaponsmith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce9813383b957de4afb29cc8b39e670c8d1d874da38a44305b5e818552ea457a +size 2077 diff --git a/data/minecraft/structure/village/savanna/houses/savanna_weaponsmith_2.nbt b/data/minecraft/structure/village/savanna/houses/savanna_weaponsmith_2.nbt new file mode 100644 index 00000000..797e59d7 --- /dev/null +++ b/data/minecraft/structure/village/savanna/houses/savanna_weaponsmith_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5ed721c6a47a31dee943947f1b7fc0382114d94f855df81b6220fd886c66452 +size 2196 diff --git a/data/minecraft/structure/village/savanna/savanna_lamp_post_01.nbt b/data/minecraft/structure/village/savanna/savanna_lamp_post_01.nbt new file mode 100644 index 00000000..0a30d7c9 --- /dev/null +++ b/data/minecraft/structure/village/savanna/savanna_lamp_post_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13ed37abb3ec86ccbcbbae00ddd7c894f2e9182e62b1eb3618c83a810d6721f8 +size 281 diff --git a/data/minecraft/structure/village/savanna/streets/corner_01.nbt b/data/minecraft/structure/village/savanna/streets/corner_01.nbt new file mode 100644 index 00000000..c90f5c08 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a4035ee8d43c4319b7e7ed9c95c4030c5114ac38bb32dca6191deadce99f71d +size 1196 diff --git a/data/minecraft/structure/village/savanna/streets/corner_03.nbt b/data/minecraft/structure/village/savanna/streets/corner_03.nbt new file mode 100644 index 00000000..d1f8afd2 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b70f0c55fb538fdebeb83a35fc6a3c782eb4891d9481229e64b241a9e0aead2 +size 349 diff --git a/data/minecraft/structure/village/savanna/streets/crossroad_02.nbt b/data/minecraft/structure/village/savanna/streets/crossroad_02.nbt new file mode 100644 index 00000000..e8d01cde --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:630ad9731b7fce44cb449657a2ba76a25ed660683a1b36679a9538f03633fb74 +size 625 diff --git a/data/minecraft/structure/village/savanna/streets/crossroad_03.nbt b/data/minecraft/structure/village/savanna/streets/crossroad_03.nbt new file mode 100644 index 00000000..4c7f2bee --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad580c3a432b06a5926267b9bfffe2155ee69f0e6ec9f938a0c1335f246bb91f +size 1224 diff --git a/data/minecraft/structure/village/savanna/streets/crossroad_04.nbt b/data/minecraft/structure/village/savanna/streets/crossroad_04.nbt new file mode 100644 index 00000000..e5690fbe --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9607fa7b76602f7d3e39cf97a1d977b28b940c13a5c43c295183e4e1ac06eeff +size 378 diff --git a/data/minecraft/structure/village/savanna/streets/crossroad_05.nbt b/data/minecraft/structure/village/savanna/streets/crossroad_05.nbt new file mode 100644 index 00000000..c6f02a01 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68afa8583498ff9d5ced1627d4fab59e7705ecff3a1bb455d10f19b17cd0749a +size 409 diff --git a/data/minecraft/structure/village/savanna/streets/crossroad_06.nbt b/data/minecraft/structure/village/savanna/streets/crossroad_06.nbt new file mode 100644 index 00000000..b57c696e --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65ba0dbc1eee935a803c856a660d4e778a53c9a5a6e6f25e8e501e3282c4e129 +size 466 diff --git a/data/minecraft/structure/village/savanna/streets/crossroad_07.nbt b/data/minecraft/structure/village/savanna/streets/crossroad_07.nbt new file mode 100644 index 00000000..9e113f84 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/crossroad_07.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c07e05dfc534a16ee5a971b014cd442a5eda2c91c566ed5c495c7ee83e25ff54 +size 1379 diff --git a/data/minecraft/structure/village/savanna/streets/split_01.nbt b/data/minecraft/structure/village/savanna/streets/split_01.nbt new file mode 100644 index 00000000..8d334dda --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/split_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af8d49ec5d1d7ab4370f0ab5a7ff13c1ab68ebef15feee6c3ae41e5cec3c66a1 +size 523 diff --git a/data/minecraft/structure/village/savanna/streets/split_02.nbt b/data/minecraft/structure/village/savanna/streets/split_02.nbt new file mode 100644 index 00000000..c602d0dd --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/split_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d7ba02e5fa3445d13b285fe8efb84de99aec460e2adeb5148d26940cd1bda6 +size 734 diff --git a/data/minecraft/structure/village/savanna/streets/straight_02.nbt b/data/minecraft/structure/village/savanna/streets/straight_02.nbt new file mode 100644 index 00000000..a4e4c672 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9d9ec5c625975f77d6f7dbac1a0742ecc860a47cb4142a281edf53c9db4c7cb +size 1122 diff --git a/data/minecraft/structure/village/savanna/streets/straight_04.nbt b/data/minecraft/structure/village/savanna/streets/straight_04.nbt new file mode 100644 index 00000000..ef005c2b --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a68a7a4d301442ed6111b80c3c0f4845667985c30196291ea81be4c1bdd0cc1b +size 639 diff --git a/data/minecraft/structure/village/savanna/streets/straight_05.nbt b/data/minecraft/structure/village/savanna/streets/straight_05.nbt new file mode 100644 index 00000000..1d40b84d --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:409602f2139fd160f8a0bf4108a6fc1314c2bd64097648830381e48d54e74eb3 +size 1928 diff --git a/data/minecraft/structure/village/savanna/streets/straight_06.nbt b/data/minecraft/structure/village/savanna/streets/straight_06.nbt new file mode 100644 index 00000000..4284f7fa --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27897c533de7afe9ae241b40a3614f43f3111bbbbfb4e944f9beeae97c499658 +size 1086 diff --git a/data/minecraft/structure/village/savanna/streets/straight_08.nbt b/data/minecraft/structure/village/savanna/streets/straight_08.nbt new file mode 100644 index 00000000..9f884a46 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_08.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a76ff1d05d252af86fa0b34fa6d9efa4c458ab6bedb63cceb767eaa9f41fd66 +size 937 diff --git a/data/minecraft/structure/village/savanna/streets/straight_09.nbt b/data/minecraft/structure/village/savanna/streets/straight_09.nbt new file mode 100644 index 00000000..2d0891d4 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_09.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3f80cedbcb969f285c41d01011ec91517404063c9ebf044f7d50929bec4a413 +size 1520 diff --git a/data/minecraft/structure/village/savanna/streets/straight_10.nbt b/data/minecraft/structure/village/savanna/streets/straight_10.nbt new file mode 100644 index 00000000..abb3e1d3 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_10.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:545a53dc55ff0ac968a5d1759b3c250e8a724903101ac77a36952bdc69e4da99 +size 521 diff --git a/data/minecraft/structure/village/savanna/streets/straight_11.nbt b/data/minecraft/structure/village/savanna/streets/straight_11.nbt new file mode 100644 index 00000000..997b3c01 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/straight_11.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5393750239f17cc56bbafddcfcd814659d6eee29190fbbde97bf18c023e890bd +size 1559 diff --git a/data/minecraft/structure/village/savanna/streets/turn_01.nbt b/data/minecraft/structure/village/savanna/streets/turn_01.nbt new file mode 100644 index 00000000..7a06b667 --- /dev/null +++ b/data/minecraft/structure/village/savanna/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:709131c11803910a6e166507a6607d90dd91d2f4005fb5af032714f77eb23779 +size 1156 diff --git a/data/minecraft/structure/village/savanna/terminators/terminator_05.nbt b/data/minecraft/structure/village/savanna/terminators/terminator_05.nbt new file mode 100644 index 00000000..bdfe7cd3 --- /dev/null +++ b/data/minecraft/structure/village/savanna/terminators/terminator_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bcf39a1a43782ee5f688d26240a325dad37f6002f3eac2c00b0dfef63880cfb +size 1188 diff --git a/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_1.nbt b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_1.nbt new file mode 100644 index 00000000..715ac7c7 --- /dev/null +++ b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38fe378a87da4cdd16ae5eeea6d78879467cfff1b70e7d091f8219faca7434a2 +size 3284 diff --git a/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_2.nbt b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_2.nbt new file mode 100644 index 00000000..6725add3 --- /dev/null +++ b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b0c489527f4ed57887a26d184aee19c85f23f7bb489aeda20718ac3dfc4d637 +size 1116 diff --git a/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_3.nbt b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_3.nbt new file mode 100644 index 00000000..f7794fb4 --- /dev/null +++ b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2517e025f607fcee60868a9df1e64f08bef518c4816aefdd139256c4bba9cf19 +size 979 diff --git a/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_4.nbt b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_4.nbt new file mode 100644 index 00000000..37f6e6d2 --- /dev/null +++ b/data/minecraft/structure/village/savanna/town_centers/savanna_meeting_point_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:412b044abe04f46c5241a1988d405780fad873266f2a732197ae5c8ef9177e63 +size 1184 diff --git a/data/minecraft/structure/village/savanna/villagers/baby.nbt b/data/minecraft/structure/village/savanna/villagers/baby.nbt new file mode 100644 index 00000000..a8a269a5 --- /dev/null +++ b/data/minecraft/structure/village/savanna/villagers/baby.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41261f51b67496056ff978b01bdb2f36cfd8dcbb58351c98549440f343089015 +size 752 diff --git a/data/minecraft/structure/village/savanna/villagers/nitwit.nbt b/data/minecraft/structure/village/savanna/villagers/nitwit.nbt new file mode 100644 index 00000000..407c647c --- /dev/null +++ b/data/minecraft/structure/village/savanna/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bff45d66b72e2f85144748394ef2fb2e5f7867865073c2f77fc9ac08ec267824 +size 752 diff --git a/data/minecraft/structure/village/savanna/villagers/unemployed.nbt b/data/minecraft/structure/village/savanna/villagers/unemployed.nbt new file mode 100644 index 00000000..9efe9b1e --- /dev/null +++ b/data/minecraft/structure/village/savanna/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c91d2b38fd1c0a3d927247fa3a407a01b51d62cd637277d2c31ea66355a5b9a3 +size 750 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_animal_pen_2.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_animal_pen_2.nbt new file mode 100644 index 00000000..2157d396 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_animal_pen_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7bbd45cd738bb9299010991b6133cfddce4406821e91f7b5dfb05312baa6af7 +size 3480 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_animal_pen_3.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_animal_pen_3.nbt new file mode 100644 index 00000000..61b7c24a --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_animal_pen_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93b6e650fd25c70ae118e00b304e3fe29780f18b5eea7d2494def540c6a8fbad +size 1664 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_large_farm_2.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_large_farm_2.nbt new file mode 100644 index 00000000..b040955c --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_large_farm_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89091e3cb9aab6c21f2b691ab1438038bdc348e8874393aef773008551c29d92 +size 2159 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_medium_house_1.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_medium_house_1.nbt new file mode 100644 index 00000000..95d23943 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da7bec517aa1b2173cac6852de11de65c89400e0e409d14f61fec98cbac9a166 +size 3642 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_medium_house_2.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_medium_house_2.nbt new file mode 100644 index 00000000..5d8cb1bb --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e463424ada656a71c7321fd6ab3b7251387bf35e59b52c75faf544b775683b49 +size 1864 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_1.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_1.nbt new file mode 100644 index 00000000..a89945bd --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7428ed3cfa0c95826bb98bd9371855d27d6b746eb4a0a306278ff7b3d35e07f +size 1877 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_2.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_2.nbt new file mode 100644 index 00000000..63f2c7f1 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4033571908a20b9a198546c39b1e122f8fef1455022231904a4f2cc4fffad3b7 +size 1874 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_3.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_3.nbt new file mode 100644 index 00000000..8462858d --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa497155bd6eeaf04d4e540817522fcbd6b59a590b052e2fd32f4710350166b2 +size 1827 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_4.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_4.nbt new file mode 100644 index 00000000..12c29ea6 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56e9fb3509da96c94e940430118a26d90a8c8995f28f24e82597ffb36629de0f +size 2706 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_5.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_5.nbt new file mode 100644 index 00000000..d5a1ff91 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e62fbc62fd2c09d47c90718bb3cbd666e9e97272df8ee57d52b2e18c3340d812 +size 2392 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_6.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_6.nbt new file mode 100644 index 00000000..f88f1d81 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:339ed736fa56006bb4baefc1b21c69a9ca900d048977ac4d330053b02ec9293a +size 1790 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_7.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_7.nbt new file mode 100644 index 00000000..5df0df79 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e5ac40a716ad172b1a4eea506bca3339bab94bda12d006afe6183d241b4b889 +size 1907 diff --git a/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_8.nbt b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_8.nbt new file mode 100644 index 00000000..34f1fbca --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/houses/savanna_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1172ac8d74f1507fddb48a82292fbc737b5a409e26ca6fc038583aa316b1d90 +size 1549 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/corner_01.nbt b/data/minecraft/structure/village/savanna/zombie/streets/corner_01.nbt new file mode 100644 index 00000000..c1dea7e9 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a7e5ec506ca43d40e48a3a5449352d7c086e4684057f5db4ddb76d097f82bfb +size 1201 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/corner_03.nbt b/data/minecraft/structure/village/savanna/zombie/streets/corner_03.nbt new file mode 100644 index 00000000..acf8edc6 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c48ba169fe2ff8973a610f3bac8a504725604f5804bf16b3834d782b65da72b +size 355 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/crossroad_02.nbt b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_02.nbt new file mode 100644 index 00000000..18fca19e --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66dd431ee2c61fe531185085c0f36907028b2b7fb883c690cc30c8047caf54c5 +size 630 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/crossroad_03.nbt b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_03.nbt new file mode 100644 index 00000000..5cb803e4 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:660250c679e96390275abfa1cd272c83aa8d47e1535a0fbd6a86fc765c276b82 +size 1228 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/crossroad_04.nbt b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_04.nbt new file mode 100644 index 00000000..87c76e32 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:639603abb3cb6bcf93e8a2c4449c35066d4a611a501d8ba5dcda47c1c2a399d0 +size 382 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/crossroad_05.nbt b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_05.nbt new file mode 100644 index 00000000..897b503f --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c01d8f4812d3df5f595ddc8579b4fc21db2c03823dfb5f451774d0b5fe8b49c8 +size 413 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/crossroad_06.nbt b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_06.nbt new file mode 100644 index 00000000..05c1bc57 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a8cba8e1bb9a6db39210c21828a1c377542319666e6e893c51916e70926b629 +size 471 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/crossroad_07.nbt b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_07.nbt new file mode 100644 index 00000000..a5cb89d8 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/crossroad_07.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6002f2ae8f48231d32f89d4ac2cfd95fbd67eeab46e61d7b754c40626287e252 +size 1383 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/split_01.nbt b/data/minecraft/structure/village/savanna/zombie/streets/split_01.nbt new file mode 100644 index 00000000..4f1f2a1c --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/split_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bc9162c03ec81384b1c78e60e1c43b7952f45084c27cd163f2328f1c3e523a1 +size 528 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/split_02.nbt b/data/minecraft/structure/village/savanna/zombie/streets/split_02.nbt new file mode 100644 index 00000000..7dbb1cc7 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/split_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1615dec0ff82fdcb237e7b3f3d64e54b612c5a84d8a6720138ac5c50b52d3c00 +size 741 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_02.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_02.nbt new file mode 100644 index 00000000..46c9b290 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6051533647be0dca700e42c6b988223c19a373c937699876bf3950bb7ac3b805 +size 1128 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_04.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_04.nbt new file mode 100644 index 00000000..35756467 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ba7dd32243aaab3eb905c68a42e989a24dbab238d679616634d68a13b1e3194 +size 645 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_05.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_05.nbt new file mode 100644 index 00000000..86952a6b --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a83f24ac28ceb4305d5f285b3cf142b4c7f8b8b8b7a0f2ca807fb0df8589c9b +size 1935 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_06.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_06.nbt new file mode 100644 index 00000000..7ba4916b --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ade1f52119f199d1e018075efb68b83ca57254362c9200f5491f0e97099fa26a +size 1094 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_08.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_08.nbt new file mode 100644 index 00000000..44c07f78 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_08.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc1533d4441901a89a2add7534d9e25dee360bc4b131875b48670af01060b138 +size 942 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_09.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_09.nbt new file mode 100644 index 00000000..a7b4914d --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_09.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce9f8726e97fb911174665615b30f5ef52720d780cecae52f283c15284a8f299 +size 1525 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_10.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_10.nbt new file mode 100644 index 00000000..fa1b9a9a --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_10.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b8c59713eb657fb2241d1a9bbb9d234766b6d0e9db4f627cb4027136437157a +size 527 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/straight_11.nbt b/data/minecraft/structure/village/savanna/zombie/streets/straight_11.nbt new file mode 100644 index 00000000..60a9f758 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/straight_11.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e62696cf5a6cda7c2b75e1da40e745e69eda9d34a3227fe12a8edb8b7922080f +size 1566 diff --git a/data/minecraft/structure/village/savanna/zombie/streets/turn_01.nbt b/data/minecraft/structure/village/savanna/zombie/streets/turn_01.nbt new file mode 100644 index 00000000..f354ecba --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53b600669b384450de11708334c4581581a6a90dc9bec64e33acefa15ed43e8b +size 1164 diff --git a/data/minecraft/structure/village/savanna/zombie/terminators/terminator_05.nbt b/data/minecraft/structure/village/savanna/zombie/terminators/terminator_05.nbt new file mode 100644 index 00000000..85d57b45 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/terminators/terminator_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:667010e53f99d12d3701cc3244f13e1ae630060b2f88741d327e0cb2713bd727 +size 1190 diff --git a/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_1.nbt b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_1.nbt new file mode 100644 index 00000000..2bd91184 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:153672b5f786bef33f85277a25dd81302fa6a46db34855be8cb6cb1a4cc9cfe7 +size 3182 diff --git a/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_2.nbt b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_2.nbt new file mode 100644 index 00000000..3e554f0b --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9a9cd0c8c2f82d4f525a6b16bdc21893ce841ab9a0f90390f7a49cc83bbddbc +size 2710 diff --git a/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_3.nbt b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_3.nbt new file mode 100644 index 00000000..02aca015 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a23f24f054a5bfe01ecfc45f17d2662654aa72054b2d8b54a798a0bb0b5e089 +size 916 diff --git a/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_4.nbt b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_4.nbt new file mode 100644 index 00000000..3d7ac2c1 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/town_centers/savanna_meeting_point_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3621b17242913a9c7e218b043063f7e6f35f6f46bfa1a0c543ab549687259e8d +size 1144 diff --git a/data/minecraft/structure/village/savanna/zombie/villagers/nitwit.nbt b/data/minecraft/structure/village/savanna/zombie/villagers/nitwit.nbt new file mode 100644 index 00000000..88525e80 --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:015f3c71972002e8d2c227b11d09ce4c0f60ce14933bc6fae4b2ca89edf9f78e +size 758 diff --git a/data/minecraft/structure/village/savanna/zombie/villagers/unemployed.nbt b/data/minecraft/structure/village/savanna/zombie/villagers/unemployed.nbt new file mode 100644 index 00000000..254fe52f --- /dev/null +++ b/data/minecraft/structure/village/savanna/zombie/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:004e2004140b0475f862281a5437d8053754b88226c0f3a95a32c64e1514d22f +size 756 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_animal_pen_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_animal_pen_1.nbt new file mode 100644 index 00000000..fe9a002b --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_animal_pen_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc8162c238d796e8becf33d2eae808947a96d7621ece0d7f38c345e87c93dd7a +size 1618 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_animal_pen_2.nbt b/data/minecraft/structure/village/snowy/houses/snowy_animal_pen_2.nbt new file mode 100644 index 00000000..964d6e1c --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_animal_pen_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05de525dd2e7a0e1aa72e01ac705c0eff7deba7dfbe50b4388774aaa8c74326e +size 1259 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_armorer_house_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_armorer_house_1.nbt new file mode 100644 index 00000000..f67482e3 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_armorer_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9174dc4dc5e38877027986129f756932c320abcdb97866926d445dcdad1d4df6 +size 2169 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_armorer_house_2.nbt b/data/minecraft/structure/village/snowy/houses/snowy_armorer_house_2.nbt new file mode 100644 index 00000000..59a6f7b7 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_armorer_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9d9385b02f02c473c94e3810e7744e25ad8feb593aac11d6702abd3d60e1518 +size 2050 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_butchers_shop_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_butchers_shop_1.nbt new file mode 100644 index 00000000..59c47b7f --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_butchers_shop_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd9cd187d96c121717f284e20e2ae7ddec002169951a016e712d3720f9eec317 +size 2546 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_butchers_shop_2.nbt b/data/minecraft/structure/village/snowy/houses/snowy_butchers_shop_2.nbt new file mode 100644 index 00000000..0b9788ac --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_butchers_shop_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7af7d7cb53075babd8b1e294034b45fa623d64566ef410d8fb70f231fbc6c05 +size 1443 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_cartographer_house_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_cartographer_house_1.nbt new file mode 100644 index 00000000..be147b80 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_cartographer_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fabe9fdd9a57589404c3355f831df012875468c1cde9d02179f4910e970f43b7 +size 2359 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_farm_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_farm_1.nbt new file mode 100644 index 00000000..2510968a --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c4f8c4a3c534a09cdac0c2d5d4137ba0523be4503e31a5947a1266ee8c1a52c +size 1251 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_farm_2.nbt b/data/minecraft/structure/village/snowy/houses/snowy_farm_2.nbt new file mode 100644 index 00000000..3561e1ae --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_farm_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa3935fcd9069f406d1d7edcf3eda490b114aa792edd67092130d1b681f8d854 +size 1073 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_fisher_cottage.nbt b/data/minecraft/structure/village/snowy/houses/snowy_fisher_cottage.nbt new file mode 100644 index 00000000..5499ed0d --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_fisher_cottage.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0db8e77743a74f616f8887b5c4993ad3c3e21731eac820da1099664aea17cf5 +size 2235 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_fletcher_house_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_fletcher_house_1.nbt new file mode 100644 index 00000000..ffccbbe3 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_fletcher_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:821b10acf0ed79f909f8e9d42148e7af7045b15783d5623ac4d913bf562e96ac +size 2119 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_library_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_library_1.nbt new file mode 100644 index 00000000..1a9631c9 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_library_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:973fcaaf063444d04e70885c620ce6d9b9d43fad45e0f4bf3f31aef978297546 +size 3445 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_masons_house_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_masons_house_1.nbt new file mode 100644 index 00000000..220ce9e6 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_masons_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:859052b68ac759324579c13caeee85ed501499c0d882ba9cd5aa83dd22c82c6a +size 2977 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_masons_house_2.nbt b/data/minecraft/structure/village/snowy/houses/snowy_masons_house_2.nbt new file mode 100644 index 00000000..02c74250 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_masons_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6f009eff9e5822fdc1d8c4271d960e4415dbe1a45f171723c189a734fe9168e +size 3163 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_medium_house_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_medium_house_1.nbt new file mode 100644 index 00000000..f079017c --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7edff67dd49fd94c6e86701ff46b42320711f2a3f85dda5eff41e7e3e2108682 +size 1592 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_medium_house_2.nbt b/data/minecraft/structure/village/snowy/houses/snowy_medium_house_2.nbt new file mode 100644 index 00000000..e004f3ea --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97b52a8d94795786d9c64b178305547785ff1919fba3824e3164826fcd19f5de +size 3509 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_medium_house_3.nbt b/data/minecraft/structure/village/snowy/houses/snowy_medium_house_3.nbt new file mode 100644 index 00000000..9b926083 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_medium_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab22179236268d2aaae1831c4b86cd951e831aafe55fb9625d6e9592bc91f177 +size 1186 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_shepherds_house_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_shepherds_house_1.nbt new file mode 100644 index 00000000..a26a3dfc --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_shepherds_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaa8899cebe94e8564648224ea79c080bf35f7ff6fce332707285ac62da0938b +size 2165 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_1.nbt new file mode 100644 index 00000000..36ca7c08 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ac50121a1750554406e920d79221baca94c461c514baea38108cd21545da0bc +size 1315 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_2.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_2.nbt new file mode 100644 index 00000000..f7729903 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a06e96f38ae83436e2dc9ee822afe2f70673a328f81b51d96dbb9aeb61eda6e4 +size 2097 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_3.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_3.nbt new file mode 100644 index 00000000..9767c74d --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54508c4183cda61fd772d89c0cdd5b657d9d28cd6a429c819b44199d00677ff9 +size 1734 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_4.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_4.nbt new file mode 100644 index 00000000..3dddd8e4 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdae2b061fd54884a427b7e41f2b959246f981035f3e89c8825ad8fd4c607558 +size 1583 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_5.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_5.nbt new file mode 100644 index 00000000..a6fc92eb --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f56b7af7f379cf24c77cd0d59248de81ca63802a03bf40aa822cc235ef2cd494 +size 1138 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_6.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_6.nbt new file mode 100644 index 00000000..1cc03699 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29b823eddad8f7bf1f7878afa00c2e3db6c6c9a78fcbd563406ee9240a387e53 +size 2195 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_7.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_7.nbt new file mode 100644 index 00000000..7b2f94ec --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b82b215a03f99e9e5398230d946995a4c7e2d9a395b01a616c46eae1bafdb2d8 +size 1616 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_small_house_8.nbt b/data/minecraft/structure/village/snowy/houses/snowy_small_house_8.nbt new file mode 100644 index 00000000..46d1dfb1 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a19ed091f59636399f8598da7eaa5474bce527ab38fb5da4d44c6fb67bc9560b +size 1018 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_tannery_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_tannery_1.nbt new file mode 100644 index 00000000..8c0f6e7c --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_tannery_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65c9666fe07c16858f24c455026652a7eb72383ebc938df7bdf584c316cbe485 +size 2954 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_temple_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_temple_1.nbt new file mode 100644 index 00000000..f22ca23b --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_temple_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d496e505997013934881d5a3c427823658ca686f3499c30a897f7e0312de28f3 +size 3571 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_tool_smith_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_tool_smith_1.nbt new file mode 100644 index 00000000..388206e6 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_tool_smith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91f32d5d778958e1c4ae2dd45280f4ae29e1c0b7d688050d9cd87e98581acb5c +size 1913 diff --git a/data/minecraft/structure/village/snowy/houses/snowy_weapon_smith_1.nbt b/data/minecraft/structure/village/snowy/houses/snowy_weapon_smith_1.nbt new file mode 100644 index 00000000..dafe4b86 --- /dev/null +++ b/data/minecraft/structure/village/snowy/houses/snowy_weapon_smith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7a2196beffcd772a6fb2cabafd0ff39bee3baea8842177b10c17d6ec3067a10 +size 2754 diff --git a/data/minecraft/structure/village/snowy/snowy_lamp_post_01.nbt b/data/minecraft/structure/village/snowy/snowy_lamp_post_01.nbt new file mode 100644 index 00000000..ce1b2c84 --- /dev/null +++ b/data/minecraft/structure/village/snowy/snowy_lamp_post_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99b4a3c0dfba2af45d11d32fd1d105c2949370edf9852d8b65594db7f5449b5b +size 377 diff --git a/data/minecraft/structure/village/snowy/snowy_lamp_post_02.nbt b/data/minecraft/structure/village/snowy/snowy_lamp_post_02.nbt new file mode 100644 index 00000000..debf4a86 --- /dev/null +++ b/data/minecraft/structure/village/snowy/snowy_lamp_post_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f4dd91c051ffe787a8b414090c341f87a8c4427d1c2d9b36fc93c9cc44e2f4d +size 354 diff --git a/data/minecraft/structure/village/snowy/snowy_lamp_post_03.nbt b/data/minecraft/structure/village/snowy/snowy_lamp_post_03.nbt new file mode 100644 index 00000000..7b00d085 --- /dev/null +++ b/data/minecraft/structure/village/snowy/snowy_lamp_post_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5d8837ba6df0d03d50051dfe1dd503089c5d31094c943a57aab2070ca150627 +size 501 diff --git a/data/minecraft/structure/village/snowy/streets/corner_01.nbt b/data/minecraft/structure/village/snowy/streets/corner_01.nbt new file mode 100644 index 00000000..7e59a426 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00969e44fb279c7bdc63cf1b6705f1773ea2fad39344221d1f72e27c5935bf41 +size 1096 diff --git a/data/minecraft/structure/village/snowy/streets/corner_02.nbt b/data/minecraft/structure/village/snowy/streets/corner_02.nbt new file mode 100644 index 00000000..c138fd3d --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:073c21732e11e5826d7528dc4829574cb0e88712a38f1d7614bed3676724401e +size 1806 diff --git a/data/minecraft/structure/village/snowy/streets/corner_03.nbt b/data/minecraft/structure/village/snowy/streets/corner_03.nbt new file mode 100644 index 00000000..197caff0 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a3b4c1b85279bfc1e6b420683c6210548d5df4993daf11781dc8ec9544bb17b +size 393 diff --git a/data/minecraft/structure/village/snowy/streets/crossroad_01.nbt b/data/minecraft/structure/village/snowy/streets/crossroad_01.nbt new file mode 100644 index 00000000..ec612d05 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ffdf8c623ebb56b02efc27ef039f0ec0b0ade297c9789cfa6c12055c3500913 +size 1918 diff --git a/data/minecraft/structure/village/snowy/streets/crossroad_02.nbt b/data/minecraft/structure/village/snowy/streets/crossroad_02.nbt new file mode 100644 index 00000000..4b759a60 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e427b67568c12c09738d58b641eb5fbba0a72bcb4493f5b50b433ae102c3366a +size 1956 diff --git a/data/minecraft/structure/village/snowy/streets/crossroad_03.nbt b/data/minecraft/structure/village/snowy/streets/crossroad_03.nbt new file mode 100644 index 00000000..1ade625d --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b2583310bd6d9ad9a6d85e1b98ce2b07da54ed32f2c3909795ecdb652195749 +size 2022 diff --git a/data/minecraft/structure/village/snowy/streets/crossroad_04.nbt b/data/minecraft/structure/village/snowy/streets/crossroad_04.nbt new file mode 100644 index 00000000..f616a7db --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31882b3d0777c21339ad61ac268de31231fcfb5482454697b03a2c6503b784c2 +size 429 diff --git a/data/minecraft/structure/village/snowy/streets/crossroad_05.nbt b/data/minecraft/structure/village/snowy/streets/crossroad_05.nbt new file mode 100644 index 00000000..413c9e34 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b62afd2496bc379daf63cc40eed60ebe0f7d19759cb62ebe06a61df736923cdb +size 471 diff --git a/data/minecraft/structure/village/snowy/streets/crossroad_06.nbt b/data/minecraft/structure/village/snowy/streets/crossroad_06.nbt new file mode 100644 index 00000000..3d015392 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6b50e4bef31502745ae61c7a38916fd03b3ee37ed55b69a551fad0e5136cffe +size 527 diff --git a/data/minecraft/structure/village/snowy/streets/square_01.nbt b/data/minecraft/structure/village/snowy/streets/square_01.nbt new file mode 100644 index 00000000..12d43306 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/square_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1180cdb279d5fea67226609c8eef230c67bfd2dc65dc854759b0bdac8b6972b +size 1508 diff --git a/data/minecraft/structure/village/snowy/streets/straight_01.nbt b/data/minecraft/structure/village/snowy/streets/straight_01.nbt new file mode 100644 index 00000000..035ca001 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffd1fae4b08b9f7764ead70f43eb8be5e7c9738a3df35d006e984fb045eed8a4 +size 1850 diff --git a/data/minecraft/structure/village/snowy/streets/straight_02.nbt b/data/minecraft/structure/village/snowy/streets/straight_02.nbt new file mode 100644 index 00000000..7d590e2e --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9180493c57a94c2a518e48ae19fa25d860eb7499dc1ab7d9af427e6025bf6a20 +size 1772 diff --git a/data/minecraft/structure/village/snowy/streets/straight_03.nbt b/data/minecraft/structure/village/snowy/streets/straight_03.nbt new file mode 100644 index 00000000..71526297 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b93c4aeb881ad5af1711449e40b2fed717a90a652af9617ffd3a4e76d7dfd088 +size 1217 diff --git a/data/minecraft/structure/village/snowy/streets/straight_04.nbt b/data/minecraft/structure/village/snowy/streets/straight_04.nbt new file mode 100644 index 00000000..7027b44a --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7825491c22a04876184b52094491c933c91c445bd06b78ef808ae156d17abc72 +size 707 diff --git a/data/minecraft/structure/village/snowy/streets/straight_06.nbt b/data/minecraft/structure/village/snowy/streets/straight_06.nbt new file mode 100644 index 00000000..a36dc6d8 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eed5f4247fc65a34bce2d74c328c8a0a02fb88b086ac8b7782b7e2265a0468fe +size 2617 diff --git a/data/minecraft/structure/village/snowy/streets/straight_08.nbt b/data/minecraft/structure/village/snowy/streets/straight_08.nbt new file mode 100644 index 00000000..3a09d694 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/straight_08.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:612c98cf6f8e741b671c59a29dbfd607019a6443c33a8954657cdf3c8270408e +size 1940 diff --git a/data/minecraft/structure/village/snowy/streets/turn_01.nbt b/data/minecraft/structure/village/snowy/streets/turn_01.nbt new file mode 100644 index 00000000..8d431a85 --- /dev/null +++ b/data/minecraft/structure/village/snowy/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbf12e1d4b8350fac7890c3b2c640aa8d2850a7d52c57a61a63a6d033879aafe +size 1232 diff --git a/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_1.nbt b/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_1.nbt new file mode 100644 index 00000000..631d086b --- /dev/null +++ b/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce8333e28c7ea69272cefeccaa07ed06bcee5f8d0d8db539f353ecbcdfb7097b +size 2732 diff --git a/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_2.nbt b/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_2.nbt new file mode 100644 index 00000000..94f710c4 --- /dev/null +++ b/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:457eda3c506e3290224f798bd62bf3ddbfde1372fca5cc39c6dc7d09d19ee22a +size 1034 diff --git a/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_3.nbt b/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_3.nbt new file mode 100644 index 00000000..7fcdcf11 --- /dev/null +++ b/data/minecraft/structure/village/snowy/town_centers/snowy_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:689acd74685d149c277751e074bb360af9212e9837dcefd4e79d711c1e50ffc0 +size 849 diff --git a/data/minecraft/structure/village/snowy/villagers/baby.nbt b/data/minecraft/structure/village/snowy/villagers/baby.nbt new file mode 100644 index 00000000..1e7a5e5a --- /dev/null +++ b/data/minecraft/structure/village/snowy/villagers/baby.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f658cbde896e832ff463ade1986aaa46392144857e4bdaa9d66926eb65f5e22f +size 748 diff --git a/data/minecraft/structure/village/snowy/villagers/nitwit.nbt b/data/minecraft/structure/village/snowy/villagers/nitwit.nbt new file mode 100644 index 00000000..a091204c --- /dev/null +++ b/data/minecraft/structure/village/snowy/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbc027548b06292979fce65dbdca3e6466a940a0009f83351c58afe956f0999a +size 749 diff --git a/data/minecraft/structure/village/snowy/villagers/unemployed.nbt b/data/minecraft/structure/village/snowy/villagers/unemployed.nbt new file mode 100644 index 00000000..c3ba61ab --- /dev/null +++ b/data/minecraft/structure/village/snowy/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fb33cdd42343034840f7aa13abc43bc84ab9b7f4650fe7a577bcf0636c06254 +size 746 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_1.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_1.nbt new file mode 100644 index 00000000..f894e3d8 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36c8c07183f7110c5b61394b4241de90a244145b49e3aacd3822878bdbc1140a +size 1598 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_2.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_2.nbt new file mode 100644 index 00000000..709f60c8 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3263e79a993ade1c14b72f81e0c6678867f82c0e91d4a6429239b43ed9b6f226 +size 3557 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_3.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_3.nbt new file mode 100644 index 00000000..22e6c384 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_medium_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3a2160ae0a9261662a443a86266e8bb2a5d9ae4d66873e6151997778139e9f0 +size 1192 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_1.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_1.nbt new file mode 100644 index 00000000..769585bd --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:367d8de27204ff4b31faa99fa91ec7cebbcd5f8b93d0e529fb9566cae8ff7c25 +size 1321 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_2.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_2.nbt new file mode 100644 index 00000000..5b020c21 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b2ff07a33d0e72684c4c5285173550dcc9256b6840744b57fd938184290c0c0 +size 2119 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_3.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_3.nbt new file mode 100644 index 00000000..98620ee0 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:623ce250d2ea08609f56f81565be08961f1846ebf4c324d739fd0c903cfcac47 +size 1793 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_4.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_4.nbt new file mode 100644 index 00000000..2ea68ff5 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01f0e8283773bfdabed061c5e126e14f08a936bd08f8f6708a83b8db70cd83ad +size 1590 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_5.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_5.nbt new file mode 100644 index 00000000..95bdee7e --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ee3b819b96c4a4541530a6f944cafb312af7d0114accd038ee84a56f79d8237 +size 1146 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_6.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_6.nbt new file mode 100644 index 00000000..5a54b776 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdcfd0fe01be65edca2a941b7714faaeae4285bbbe13a8c81a3f7011b927cd6b +size 2203 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_7.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_7.nbt new file mode 100644 index 00000000..136a8e34 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ede458a8a21e4e0786b5fc4500877ba129e5be81cf85ad2d50d34ac1cace38f +size 1623 diff --git a/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_8.nbt b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_8.nbt new file mode 100644 index 00000000..32120426 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/houses/snowy_small_house_8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:485a424f607f70a234059ed1a90cbdaa6511e9a171cbdad5651649996ca908c2 +size 857 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/corner_01.nbt b/data/minecraft/structure/village/snowy/zombie/streets/corner_01.nbt new file mode 100644 index 00000000..366d2a5e --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fc4402b0877127515f843b849872bc2fb370d82e279b9eb40cd36d0535f545b +size 1105 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/corner_02.nbt b/data/minecraft/structure/village/snowy/zombie/streets/corner_02.nbt new file mode 100644 index 00000000..aa550f02 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8782f1228773e9620ff1d523c882f14e5d34da8a1047bee8be8ffb85d693dcc2 +size 1813 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/corner_03.nbt b/data/minecraft/structure/village/snowy/zombie/streets/corner_03.nbt new file mode 100644 index 00000000..9cc3294a --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:867e8fdbef2ea60b404e279537d30b1f34e0a4829d5d7d9d8c31d6067a9f53e4 +size 398 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/crossroad_01.nbt b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_01.nbt new file mode 100644 index 00000000..22c0c2e9 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63096b0c9b52b3eff60f124f969bce9ab5ff86f3e1f322ba25dcfa2b2351c87d +size 1923 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/crossroad_02.nbt b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_02.nbt new file mode 100644 index 00000000..7b268405 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf8f8ad1781177ea6c5427b364b08059059ad20f6d2900ab8d40c23dacc5db2d +size 1960 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/crossroad_03.nbt b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_03.nbt new file mode 100644 index 00000000..6c726304 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdaf5f9886a8a59856340310ee0f89ef900ee63ec8a043eac9cf14af3d30c23f +size 2027 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/crossroad_04.nbt b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_04.nbt new file mode 100644 index 00000000..2b01855f --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81b81ee81185fc08052bbfb48724b1c629f2a1fea95501a8562687a94d71a57b +size 434 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/crossroad_05.nbt b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_05.nbt new file mode 100644 index 00000000..d2cae4a5 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6408b56fa759b452f5e2e2caf72496d3150c395d44705095a87439f1cd9223b +size 476 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/crossroad_06.nbt b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_06.nbt new file mode 100644 index 00000000..90154cf5 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffa9dceff918a85a750cb07803e5bb8f103edefebf4bb74cce10485d728f03f6 +size 530 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/square_01.nbt b/data/minecraft/structure/village/snowy/zombie/streets/square_01.nbt new file mode 100644 index 00000000..4f50dc18 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/square_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b40f81c186ed512c67523152af191b9cc861c4cf4139970e0c573656c371cebb +size 1514 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/straight_01.nbt b/data/minecraft/structure/village/snowy/zombie/streets/straight_01.nbt new file mode 100644 index 00000000..bcd65c72 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92ccc76970cd8ec874b868baa5510a9790dc7677cc6a179ea12b8ca994b245f4 +size 1854 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/straight_02.nbt b/data/minecraft/structure/village/snowy/zombie/streets/straight_02.nbt new file mode 100644 index 00000000..82810109 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f36df1c6c77d9a8999e2799f318082ea1cf57726653548b3bd6ea3cc326c9161 +size 1779 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/straight_03.nbt b/data/minecraft/structure/village/snowy/zombie/streets/straight_03.nbt new file mode 100644 index 00000000..1235d678 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72a4edf20c1ab4cb748bf18da7cf855458731105dc373874a90c95983e06afdf +size 1222 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/straight_04.nbt b/data/minecraft/structure/village/snowy/zombie/streets/straight_04.nbt new file mode 100644 index 00000000..a682a250 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d918590f0af897fb66f1064946ee2327ebd43321444c43e008463fba839420b2 +size 717 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/straight_06.nbt b/data/minecraft/structure/village/snowy/zombie/streets/straight_06.nbt new file mode 100644 index 00000000..0ea4e2d1 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10184839906fd2f6d3b9012d75a1e503f50768bc8a9f153e14856523d340f7f4 +size 2621 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/straight_08.nbt b/data/minecraft/structure/village/snowy/zombie/streets/straight_08.nbt new file mode 100644 index 00000000..2b996fab --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/straight_08.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a77382622af450eb1dbcaf726e35e131a95984e1543288f44adcb70f60739193 +size 1945 diff --git a/data/minecraft/structure/village/snowy/zombie/streets/turn_01.nbt b/data/minecraft/structure/village/snowy/zombie/streets/turn_01.nbt new file mode 100644 index 00000000..b646fd26 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14e51a5be4dd8d0e1087c6a8355bcd633089cf726712bc1851c05f3485313a58 +size 1236 diff --git a/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_1.nbt b/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_1.nbt new file mode 100644 index 00000000..12ab6286 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51fc1af34f16373cc88c3a6658077f29af727161e839a546bbe797076c1d0583 +size 2692 diff --git a/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_2.nbt b/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_2.nbt new file mode 100644 index 00000000..fb307242 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3f935dead2625ca86d3bee0b4d03af5300c16d9c6696f9b5b5e2f8060264ef0 +size 989 diff --git a/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_3.nbt b/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_3.nbt new file mode 100644 index 00000000..6a28c20a --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/town_centers/snowy_meeting_point_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:669e8cd02ee36ee0ceccdba1746176017e6bc8bb937df91eab9eeb06684015e2 +size 815 diff --git a/data/minecraft/structure/village/snowy/zombie/villagers/nitwit.nbt b/data/minecraft/structure/village/snowy/zombie/villagers/nitwit.nbt new file mode 100644 index 00000000..0aff9235 --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67ef838ae7c6603f386bd0a64c0d2c636d8ff9fc18fe443372d22ccbd5c85714 +size 755 diff --git a/data/minecraft/structure/village/snowy/zombie/villagers/unemployed.nbt b/data/minecraft/structure/village/snowy/zombie/villagers/unemployed.nbt new file mode 100644 index 00000000..7bbd907f --- /dev/null +++ b/data/minecraft/structure/village/snowy/zombie/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f806875a6af5ed9facdf030387bfd4178c1b4d43de047f1999f2e2087424cc89 +size 752 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_animal_pen_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_animal_pen_1.nbt new file mode 100644 index 00000000..e156f528 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_animal_pen_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb0fbc489e327523024a7227f3b10f6835509e78270ac701a2f27e676233f51b +size 2088 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_armorer_2.nbt b/data/minecraft/structure/village/taiga/houses/taiga_armorer_2.nbt new file mode 100644 index 00000000..bb8d8623 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_armorer_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ec832f801f06fdd804cfab4bda99ea4ea2ce2968f94ba07a84ef69f7997992a +size 2531 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_armorer_house_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_armorer_house_1.nbt new file mode 100644 index 00000000..fc171c1a --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_armorer_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7400f08a1f41c8b36c6194c37e63627732295cbcffa76184301cece4a9f9ff7 +size 2055 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_butcher_shop_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_butcher_shop_1.nbt new file mode 100644 index 00000000..e9363044 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_butcher_shop_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edfcadd7306e265f13e5a5a1a828c8b8eee9eaeb1fe48e0bc374658e6d3ef159 +size 3277 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_cartographer_house_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_cartographer_house_1.nbt new file mode 100644 index 00000000..d2635caf --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_cartographer_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59661ea9f1f89c053eb751aec4b08523b62ff7dac4e35f2aa04913ef3f2e8242 +size 2603 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_fisher_cottage_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_fisher_cottage_1.nbt new file mode 100644 index 00000000..2a8f320f --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_fisher_cottage_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec0bb08577e26bc1419ff0a1657cb82daca557f6e187d054738e6635ee794802 +size 3652 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_fletcher_house_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_fletcher_house_1.nbt new file mode 100644 index 00000000..3252667d --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_fletcher_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:615e01179c181497381d70e119aa069bf995d52cd5f91fe5ed6d6b261f0199e9 +size 2765 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_large_farm_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_large_farm_1.nbt new file mode 100644 index 00000000..6b989965 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_large_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbdb49d30d339339eb8f9a9fb479304e5283fc00c638039c2ef208dcbacbb111 +size 2211 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_large_farm_2.nbt b/data/minecraft/structure/village/taiga/houses/taiga_large_farm_2.nbt new file mode 100644 index 00000000..1e7e19b6 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_large_farm_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22c5a7b4961995b06f48ff71ebda30b8697821425ca6cf73d82496331481cbe3 +size 1598 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_library_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_library_1.nbt new file mode 100644 index 00000000..aeaa20ae --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_library_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dcb93dd7bc70de09f418b2554db5c99e87a4e7ee93ade2f6bdbe8b14ef960ca +size 3446 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_masons_house_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_masons_house_1.nbt new file mode 100644 index 00000000..1cee31f4 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_masons_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:676f930415617dbaf5b82ca85d036bd331e0746e3b96be968b8a7368334cb9c9 +size 2189 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_medium_house_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_1.nbt new file mode 100644 index 00000000..c098e0ec --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8bf69e8766c65491031e9c0388235c69791e7f6abcee4486b2deac4490e172f +size 2834 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_medium_house_2.nbt b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_2.nbt new file mode 100644 index 00000000..8b2a7224 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36413eacaa63cba7fb201d1806f55771830ddaeea5857a609c4c20c6692af899 +size 2608 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_medium_house_3.nbt b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_3.nbt new file mode 100644 index 00000000..7f847b23 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffb9ce01ef8f1c54270a37b75c943cf5713efa252b6984264953184e03239fcd +size 3064 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_medium_house_4.nbt b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_4.nbt new file mode 100644 index 00000000..c4b2d414 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_medium_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b2ce0e2ea01e78da45a10d38caa49321f8ede9c46f0ce536958f849359518ac +size 2751 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_shepherds_house_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_shepherds_house_1.nbt new file mode 100644 index 00000000..b46521d7 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_shepherds_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98676a9972696daa3f810759d213d2283881c00c4feb5b24f6dca4eff4187279 +size 3015 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_small_farm_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_small_farm_1.nbt new file mode 100644 index 00000000..8a9fafc6 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_small_farm_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb138b660df5c8dcfdda545a05e8f75c170da10851c6fe35f21f6a9b8ef9ec5f +size 1256 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_small_house_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_small_house_1.nbt new file mode 100644 index 00000000..2a92925c --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f9bfa522df8f723fbc9fee70c0be1ff4f0fc8bb46dce8246a719d1d72150ad9 +size 2383 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_small_house_2.nbt b/data/minecraft/structure/village/taiga/houses/taiga_small_house_2.nbt new file mode 100644 index 00000000..6f10e04e --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e7f1250ae4004f79b30ed4829234aa2da801dad53cee157e0cacc4601686edf +size 1774 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_small_house_3.nbt b/data/minecraft/structure/village/taiga/houses/taiga_small_house_3.nbt new file mode 100644 index 00000000..eb519617 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cd4e260a0bd83fefbc4ea69de8eda888bfbccb27aaed34c54c3f5483c59ab5d +size 1869 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_small_house_4.nbt b/data/minecraft/structure/village/taiga/houses/taiga_small_house_4.nbt new file mode 100644 index 00000000..31d3eaaf --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:102b7a47dd5ae5169415cac205560ae6d3480a26516d7e1d308f582e3a72fdd4 +size 1606 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_small_house_5.nbt b/data/minecraft/structure/village/taiga/houses/taiga_small_house_5.nbt new file mode 100644 index 00000000..db48f703 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0340898a9cbdb3b57d68e246a4a1fadd3c416e584d45863e08cb0d46e32af944 +size 2039 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_tannery_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_tannery_1.nbt new file mode 100644 index 00000000..fdd1020e --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_tannery_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:848d9c513369e184f2dbe9fe6a51b6551717e3a302f70c5e2160a3d6db474748 +size 2154 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_temple_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_temple_1.nbt new file mode 100644 index 00000000..a4a13cf8 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_temple_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ad6ef6eeb6564147bcd27353080c105598ef547394f2e817d00fc8b753f9f9c +size 6642 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_tool_smith_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_tool_smith_1.nbt new file mode 100644 index 00000000..f62034f2 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_tool_smith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84ef9fa550e5c0df5b0177119f5db76a3d10ad2933e6075fe5327863f3a05084 +size 2163 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_weaponsmith_1.nbt b/data/minecraft/structure/village/taiga/houses/taiga_weaponsmith_1.nbt new file mode 100644 index 00000000..b0b6d144 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_weaponsmith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32ee3790b183209d251227286ed31cab8ab60fc0dd0b4e96f09031d254d573c7 +size 2075 diff --git a/data/minecraft/structure/village/taiga/houses/taiga_weaponsmith_2.nbt b/data/minecraft/structure/village/taiga/houses/taiga_weaponsmith_2.nbt new file mode 100644 index 00000000..5957f8a2 --- /dev/null +++ b/data/minecraft/structure/village/taiga/houses/taiga_weaponsmith_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2450f0c023084c6dc21cabe61d1d2f200dc63c53e95d05e49712e93b963b7938 +size 1186 diff --git a/data/minecraft/structure/village/taiga/streets/corner_01.nbt b/data/minecraft/structure/village/taiga/streets/corner_01.nbt new file mode 100644 index 00000000..197b5d95 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7644bd8a9403b2fff543c985f0d11022ad93794c68ec41301e531d9a3d9795cd +size 1180 diff --git a/data/minecraft/structure/village/taiga/streets/corner_02.nbt b/data/minecraft/structure/village/taiga/streets/corner_02.nbt new file mode 100644 index 00000000..4b54594c --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7776a3ffddb0a1bb84ca150b735d2e67e9dbe7072acce9d0b7f883ee30077c8 +size 1182 diff --git a/data/minecraft/structure/village/taiga/streets/corner_03.nbt b/data/minecraft/structure/village/taiga/streets/corner_03.nbt new file mode 100644 index 00000000..2c2394b1 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfbc9775bdde07cd36aa1b78349c5d2ece6fe904cc559bc0f5d76e29c7274038 +size 348 diff --git a/data/minecraft/structure/village/taiga/streets/crossroad_01.nbt b/data/minecraft/structure/village/taiga/streets/crossroad_01.nbt new file mode 100644 index 00000000..c607d69d --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfa1c1492a50dcf3f96736f43dbf4974e124cead89410a655669aaa724aa6e3c +size 1212 diff --git a/data/minecraft/structure/village/taiga/streets/crossroad_02.nbt b/data/minecraft/structure/village/taiga/streets/crossroad_02.nbt new file mode 100644 index 00000000..984d7183 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a78f44bc4b9bcd38e2e66350942a92dd885eb5caee3fdc4db0772370a2d0e65 +size 1158 diff --git a/data/minecraft/structure/village/taiga/streets/crossroad_03.nbt b/data/minecraft/structure/village/taiga/streets/crossroad_03.nbt new file mode 100644 index 00000000..fb994bad --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9e3d2c4176482985d5edc28b8e7d1169e0cfe5850a899639efb60ede45c6c2c +size 1200 diff --git a/data/minecraft/structure/village/taiga/streets/crossroad_04.nbt b/data/minecraft/structure/village/taiga/streets/crossroad_04.nbt new file mode 100644 index 00000000..c688f20f --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b125ebc510dd4cae4afb14dc99f79f00014fd83f60fa2b9b95d093ccabde793 +size 435 diff --git a/data/minecraft/structure/village/taiga/streets/crossroad_05.nbt b/data/minecraft/structure/village/taiga/streets/crossroad_05.nbt new file mode 100644 index 00000000..7242f9cd --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b18985a8612ff0acf324aa9206141fed0a79d01770c0df7929cc3c54e646b4a9 +size 407 diff --git a/data/minecraft/structure/village/taiga/streets/crossroad_06.nbt b/data/minecraft/structure/village/taiga/streets/crossroad_06.nbt new file mode 100644 index 00000000..835cfb20 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77c9b6598f2de5b18e8886fbeb6d83b9948d0e5f36131a63609ca698124ed8ed +size 468 diff --git a/data/minecraft/structure/village/taiga/streets/straight_01.nbt b/data/minecraft/structure/village/taiga/streets/straight_01.nbt new file mode 100644 index 00000000..6bcc7bc8 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:419003cad83c9e0b2c41cf34f1c6904dfb18cc78758de029cf4dab356163a5af +size 1129 diff --git a/data/minecraft/structure/village/taiga/streets/straight_02.nbt b/data/minecraft/structure/village/taiga/streets/straight_02.nbt new file mode 100644 index 00000000..9d152df5 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1596670ea12fc175890514e999ab8e84c8492b0849bf8bedb9019bfd29be1c47 +size 1144 diff --git a/data/minecraft/structure/village/taiga/streets/straight_03.nbt b/data/minecraft/structure/village/taiga/streets/straight_03.nbt new file mode 100644 index 00000000..4961dbd2 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11b41abfbb7dfbe6ce6492084b350bf6e91db33bb66a719b4e244f642940ad3c +size 774 diff --git a/data/minecraft/structure/village/taiga/streets/straight_04.nbt b/data/minecraft/structure/village/taiga/streets/straight_04.nbt new file mode 100644 index 00000000..6d8cf1df --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3c6697579c818324f18ac74c36199341eede34f6c19bced7b0e83987e23153f +size 684 diff --git a/data/minecraft/structure/village/taiga/streets/straight_05.nbt b/data/minecraft/structure/village/taiga/streets/straight_05.nbt new file mode 100644 index 00000000..60fe21e2 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/straight_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7d349e8067126df65a22e91f211f0cca63fe00fb93b7d13a21009b784116798 +size 1388 diff --git a/data/minecraft/structure/village/taiga/streets/straight_06.nbt b/data/minecraft/structure/village/taiga/streets/straight_06.nbt new file mode 100644 index 00000000..829fc21d --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:549592e25dc0a05ec3a297549874585d75247d08006b3499da75d6fe440ee3c8 +size 1700 diff --git a/data/minecraft/structure/village/taiga/streets/turn_01.nbt b/data/minecraft/structure/village/taiga/streets/turn_01.nbt new file mode 100644 index 00000000..24944159 --- /dev/null +++ b/data/minecraft/structure/village/taiga/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38fb4e8846fe7b8c6846d25d16f59bc6d978bbb2269b927f84f3b030e4563699 +size 788 diff --git a/data/minecraft/structure/village/taiga/taiga_decoration_1.nbt b/data/minecraft/structure/village/taiga/taiga_decoration_1.nbt new file mode 100644 index 00000000..f5094847 --- /dev/null +++ b/data/minecraft/structure/village/taiga/taiga_decoration_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22d2e0c3b607a966657c003609c095e74bb6bc983af741c6f6be4a1666a2adfd +size 420 diff --git a/data/minecraft/structure/village/taiga/taiga_decoration_2.nbt b/data/minecraft/structure/village/taiga/taiga_decoration_2.nbt new file mode 100644 index 00000000..35a5ec9f --- /dev/null +++ b/data/minecraft/structure/village/taiga/taiga_decoration_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a158653891f113d2ea755c5419343fe8e09b8b379258d112d791c37781cdef70 +size 366 diff --git a/data/minecraft/structure/village/taiga/taiga_decoration_3.nbt b/data/minecraft/structure/village/taiga/taiga_decoration_3.nbt new file mode 100644 index 00000000..6f43fe63 --- /dev/null +++ b/data/minecraft/structure/village/taiga/taiga_decoration_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:585d26cb41c209bf9aec1f74c2b19dc10df3876d6a511d08f3cf896d933459c6 +size 351 diff --git a/data/minecraft/structure/village/taiga/taiga_decoration_4.nbt b/data/minecraft/structure/village/taiga/taiga_decoration_4.nbt new file mode 100644 index 00000000..ba9e193f --- /dev/null +++ b/data/minecraft/structure/village/taiga/taiga_decoration_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d37e97e55cae1db113d4bba7bd81f24bf8d4fcf4cfb7f7adbfce41344dae40a5 +size 321 diff --git a/data/minecraft/structure/village/taiga/taiga_decoration_5.nbt b/data/minecraft/structure/village/taiga/taiga_decoration_5.nbt new file mode 100644 index 00000000..b8442a5d --- /dev/null +++ b/data/minecraft/structure/village/taiga/taiga_decoration_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21c8d46a4f4eec02a1c8b1ab72129fec096d9269e8dbd6b64adba86554b37f95 +size 248 diff --git a/data/minecraft/structure/village/taiga/taiga_decoration_6.nbt b/data/minecraft/structure/village/taiga/taiga_decoration_6.nbt new file mode 100644 index 00000000..0c5d5b50 --- /dev/null +++ b/data/minecraft/structure/village/taiga/taiga_decoration_6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:478d897388fa7438245fc4e4d88fc2c87d7067ba0c2e8bc5f7561b51673e104f +size 469 diff --git a/data/minecraft/structure/village/taiga/taiga_lamp_post_1.nbt b/data/minecraft/structure/village/taiga/taiga_lamp_post_1.nbt new file mode 100644 index 00000000..9c7d13a0 --- /dev/null +++ b/data/minecraft/structure/village/taiga/taiga_lamp_post_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd24591bb5c66d8ef3c6c83f02b61f73427ac970c3918a40eb79ea68a3685fff +size 250 diff --git a/data/minecraft/structure/village/taiga/town_centers/taiga_meeting_point_1.nbt b/data/minecraft/structure/village/taiga/town_centers/taiga_meeting_point_1.nbt new file mode 100644 index 00000000..a777ab02 --- /dev/null +++ b/data/minecraft/structure/village/taiga/town_centers/taiga_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66e8f0b45b6e5f0f786cce1ea92eae92c4f3c651b624b5c2e34d26aa92690892 +size 3944 diff --git a/data/minecraft/structure/village/taiga/town_centers/taiga_meeting_point_2.nbt b/data/minecraft/structure/village/taiga/town_centers/taiga_meeting_point_2.nbt new file mode 100644 index 00000000..822a771d --- /dev/null +++ b/data/minecraft/structure/village/taiga/town_centers/taiga_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65727f96af4c9d0348bc3f8158b8bc94f3b34be8b6d3f09daa03b29cf6beb1b9 +size 2269 diff --git a/data/minecraft/structure/village/taiga/villagers/baby.nbt b/data/minecraft/structure/village/taiga/villagers/baby.nbt new file mode 100644 index 00000000..8daf7541 --- /dev/null +++ b/data/minecraft/structure/village/taiga/villagers/baby.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:071bad58fb289b9b3d361e55aa1504c290ac34569a97ff00e730dea6685c4c8f +size 749 diff --git a/data/minecraft/structure/village/taiga/villagers/nitwit.nbt b/data/minecraft/structure/village/taiga/villagers/nitwit.nbt new file mode 100644 index 00000000..07afac26 --- /dev/null +++ b/data/minecraft/structure/village/taiga/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5a7e442e9c35389e2ee3ea02a35ef49622b52c44ac518aaf16e584dde88acd2 +size 749 diff --git a/data/minecraft/structure/village/taiga/villagers/unemployed.nbt b/data/minecraft/structure/village/taiga/villagers/unemployed.nbt new file mode 100644 index 00000000..9d5848d4 --- /dev/null +++ b/data/minecraft/structure/village/taiga/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dcc371a6906cb511809401a1b30ec9a3bbcac0f287cad1d2eba480854b68654 +size 748 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_cartographer_house_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_cartographer_house_1.nbt new file mode 100644 index 00000000..2ebd5710 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_cartographer_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89997e44fd148da1020708136ed3edb32b181d0811a5128dc78d79d4a37fa437 +size 2611 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_fisher_cottage_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_fisher_cottage_1.nbt new file mode 100644 index 00000000..4c151624 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_fisher_cottage_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:764751e77a3c269f6710e11d48d113bd17d0cc40010192a70d48a12cd7fb6657 +size 3664 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_large_farm_2.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_large_farm_2.nbt new file mode 100644 index 00000000..595287da --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_large_farm_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b9bffeb1bf52bb4ca0c7db76d755a91ae8554f2293079df6c321f6155ad627b +size 1604 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_library_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_library_1.nbt new file mode 100644 index 00000000..293df5d4 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_library_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14bc92a7f67942b046ec915c69f8902792085f96dbd86833243d9a4dbe00aff3 +size 3457 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_1.nbt new file mode 100644 index 00000000..73ba8550 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e35ab2ae3733de7f9b4d8b737c00319246100d00aedda320bcd7c6201cdc77b6 +size 2786 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_2.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_2.nbt new file mode 100644 index 00000000..ea666003 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01e588d6eff429a51d76cb8b06c276d22146f11dfc3b01c0fe398ddd4ffa957d +size 2604 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_3.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_3.nbt new file mode 100644 index 00000000..64dd1616 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09d8879f6525155e948e6c999d2df6982af5c8bfdbfa3c1ed64e22ed11e43ced +size 3068 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_4.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_4.nbt new file mode 100644 index 00000000..6497bfbd --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_medium_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:450d3576082890f316596d42b0c994ff37cb19f9459cdd9d5754629f887a6536 +size 2689 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_shepherds_house_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_shepherds_house_1.nbt new file mode 100644 index 00000000..5fd63129 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_shepherds_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e11fdfe55a34c2f1b4e8f90ef1ab1129782920d4d4af202720bf59a6d61462f +size 3039 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_1.nbt new file mode 100644 index 00000000..98d4532c --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:621ca13a13e6e78bb002e136974361432716ef948d6c57905fc10271fd03b5f5 +size 2390 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_2.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_2.nbt new file mode 100644 index 00000000..92a1e835 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d83e620283d61100b0236764010f6e9b31e4e23541858f58f5269bb3470c646 +size 1794 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_3.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_3.nbt new file mode 100644 index 00000000..980c3d5c --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:397d1299d4f0e286cf958ee5e4ae98c619fd295bd4f41af9722db91751ec5d41 +size 1885 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_4.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_4.nbt new file mode 100644 index 00000000..ca6f04a7 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8d155ca53c6bb79e6a8a5cc21b54563aadf4ee5f5d76a53c9d0dd50b52b76ff +size 1612 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_5.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_5.nbt new file mode 100644 index 00000000..269c456f --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_small_house_5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22531aaad6b1539fecc2388d628f7e28a036db8259a3483249b189de57421491 +size 2046 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_temple_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_temple_1.nbt new file mode 100644 index 00000000..a4a13cf8 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_temple_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ad6ef6eeb6564147bcd27353080c105598ef547394f2e817d00fc8b753f9f9c +size 6642 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_tool_smith_1.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_tool_smith_1.nbt new file mode 100644 index 00000000..9d35d013 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_tool_smith_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2fbeff93befe6cbe24cb71b31c06cd7a24e1d0c0d3fc18c51ea8944081bbeb1 +size 2173 diff --git a/data/minecraft/structure/village/taiga/zombie/houses/taiga_weaponsmith_2.nbt b/data/minecraft/structure/village/taiga/zombie/houses/taiga_weaponsmith_2.nbt new file mode 100644 index 00000000..47deb02d --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/houses/taiga_weaponsmith_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10a080fccd3458863c8a4f1438cb042909096d1d9a28fe19681c4d475a784159 +size 1192 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/corner_01.nbt b/data/minecraft/structure/village/taiga/zombie/streets/corner_01.nbt new file mode 100644 index 00000000..8be7a39f --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/corner_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95bcae8cbcc63f865b182d776e0e9070f5454b5beebb31851810b86e4fe20cb8 +size 1184 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/corner_02.nbt b/data/minecraft/structure/village/taiga/zombie/streets/corner_02.nbt new file mode 100644 index 00000000..ae6b1293 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/corner_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08f3af97002b77cd4632874e88b9030d5c8b6d438c472661ca1d2c3d68c9b8a8 +size 1188 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/corner_03.nbt b/data/minecraft/structure/village/taiga/zombie/streets/corner_03.nbt new file mode 100644 index 00000000..0d99241d --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/corner_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1427f35a71666985a03799a79ad9a87b036c3b915914dffc961cdc0a8b34709b +size 353 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/crossroad_01.nbt b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_01.nbt new file mode 100644 index 00000000..8e3eee0c --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a5eed880f3a62cce0ecf0617a22937b0c91248dfe72da29eefbd625acdd7754 +size 1217 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/crossroad_02.nbt b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_02.nbt new file mode 100644 index 00000000..35f69d99 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af96f44e6ecb9715008c1bfe94327ca27599a321846269d26c7b63913ae54321 +size 1162 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/crossroad_03.nbt b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_03.nbt new file mode 100644 index 00000000..c564449c --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:043595fc6a005108adaf077860da5f570cb75a30d76f4cf0ba39e7f0ff9cb293 +size 1205 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/crossroad_04.nbt b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_04.nbt new file mode 100644 index 00000000..30616667 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32ed7c0d638a85e8fea2589398eb1e06b89ee2af9663e36b957097ce37c75255 +size 443 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/crossroad_05.nbt b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_05.nbt new file mode 100644 index 00000000..ca4e592e --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:507b4944513d66f45e668571df94174bcfac56f94feb3cd7539e843a868ee944 +size 412 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/crossroad_06.nbt b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_06.nbt new file mode 100644 index 00000000..81027b0e --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/crossroad_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d40a65f70c527b7fde2d42dbc282f75fd5c6120793d73f713bec237338a0e0ef +size 474 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/straight_01.nbt b/data/minecraft/structure/village/taiga/zombie/streets/straight_01.nbt new file mode 100644 index 00000000..cab235f2 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/straight_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96bab60798d0ed3a8e4e8385d89331420af2660d70c6e029c49f6efdfa76f1fa +size 1133 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/straight_02.nbt b/data/minecraft/structure/village/taiga/zombie/streets/straight_02.nbt new file mode 100644 index 00000000..0e2e55c2 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/straight_02.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a31e2c0c03d2f1445ea691fefb7a2d289446db18c03d673da5bfe94df5f8a60 +size 1149 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/straight_03.nbt b/data/minecraft/structure/village/taiga/zombie/streets/straight_03.nbt new file mode 100644 index 00000000..42fcd19b --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/straight_03.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf4cdb329562a85e87d30cbf21e06732d98036ae89fe5b979ebe3511239c9c5 +size 779 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/straight_04.nbt b/data/minecraft/structure/village/taiga/zombie/streets/straight_04.nbt new file mode 100644 index 00000000..0e05556e --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/straight_04.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aac4aba3c19d915427d2332122963e156bccce5862309585f6e55bdfde5a5963 +size 690 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/straight_05.nbt b/data/minecraft/structure/village/taiga/zombie/streets/straight_05.nbt new file mode 100644 index 00000000..09752b0e --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/straight_05.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91c5872d925d96751c3a1472d6af82232a4e764298c066714e8ee1f1592a1b78 +size 1393 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/straight_06.nbt b/data/minecraft/structure/village/taiga/zombie/streets/straight_06.nbt new file mode 100644 index 00000000..225811e5 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/straight_06.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec3bbb2b0accfcca54778a0d1ead85e156fbaeac464e25cfb2a5dec4ad53cf61 +size 1705 diff --git a/data/minecraft/structure/village/taiga/zombie/streets/turn_01.nbt b/data/minecraft/structure/village/taiga/zombie/streets/turn_01.nbt new file mode 100644 index 00000000..c14e2fa8 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/streets/turn_01.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14b7b4fb59f5dae970bb80567a923e06c337b0268cdae8476ba61f169644f18a +size 791 diff --git a/data/minecraft/structure/village/taiga/zombie/town_centers/taiga_meeting_point_1.nbt b/data/minecraft/structure/village/taiga/zombie/town_centers/taiga_meeting_point_1.nbt new file mode 100644 index 00000000..13fe4716 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/town_centers/taiga_meeting_point_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:281b3119a098e8bd6dd3d1b6a0a2035b2f8e5dabdf035a45c196ce4c895c6b7c +size 1847 diff --git a/data/minecraft/structure/village/taiga/zombie/town_centers/taiga_meeting_point_2.nbt b/data/minecraft/structure/village/taiga/zombie/town_centers/taiga_meeting_point_2.nbt new file mode 100644 index 00000000..3df5f32e --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/town_centers/taiga_meeting_point_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcee089351a8412cfbcaa2bb2ec49ab2912148d0777bd13be66f9cbba748613d +size 2255 diff --git a/data/minecraft/structure/village/taiga/zombie/villagers/nitwit.nbt b/data/minecraft/structure/village/taiga/zombie/villagers/nitwit.nbt new file mode 100644 index 00000000..cd0a924b --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/villagers/nitwit.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:573ce539f96abd747e1de0e4f0a49eb3e0284cc68739bab1b312ff7a415067d5 +size 755 diff --git a/data/minecraft/structure/village/taiga/zombie/villagers/unemployed.nbt b/data/minecraft/structure/village/taiga/zombie/villagers/unemployed.nbt new file mode 100644 index 00000000..0cb50c22 --- /dev/null +++ b/data/minecraft/structure/village/taiga/zombie/villagers/unemployed.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3486d8369277470f90352a62e7e4f2426d9c086d135a518caed3291f7226a33c +size 753 diff --git a/data/minecraft/structure/woodland_mansion/1x1_a1.nbt b/data/minecraft/structure/woodland_mansion/1x1_a1.nbt new file mode 100644 index 00000000..d65394c8 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_a1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:181d39a4a447ec21486d8e947076e4c7959c38fff42e420d1ac0ff2ebd9b015b +size 1431 diff --git a/data/minecraft/structure/woodland_mansion/1x1_a2.nbt b/data/minecraft/structure/woodland_mansion/1x1_a2.nbt new file mode 100644 index 00000000..16d12542 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_a2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f72699a28cd6283280c1b2fac7167adc276842350eaed2d4bc1bdf1a6e1a45d +size 1526 diff --git a/data/minecraft/structure/woodland_mansion/1x1_a3.nbt b/data/minecraft/structure/woodland_mansion/1x1_a3.nbt new file mode 100644 index 00000000..740baa4d --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_a3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:686b0f1e605533925a46d1e798f3a253b89abcd02c7a7a3ec384e449f367c4c8 +size 1414 diff --git a/data/minecraft/structure/woodland_mansion/1x1_a4.nbt b/data/minecraft/structure/woodland_mansion/1x1_a4.nbt new file mode 100644 index 00000000..4ba15279 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_a4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9597a6a8128b523a0d41c6a75f601118991406b09276ebde1542989dfd35dc97 +size 1681 diff --git a/data/minecraft/structure/woodland_mansion/1x1_a5.nbt b/data/minecraft/structure/woodland_mansion/1x1_a5.nbt new file mode 100644 index 00000000..98787f0d --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_a5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a123b050670f1e43916d6d6f61afb4e8083624768b1b4d8488a4e7001cc3f6cb +size 1489 diff --git a/data/minecraft/structure/woodland_mansion/1x1_as1.nbt b/data/minecraft/structure/woodland_mansion/1x1_as1.nbt new file mode 100644 index 00000000..719c8559 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_as1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:381ca61a90ea92c3e3b3c7552a46f9a924a85104bbafdfaefa8c6ea9046ec07a +size 1483 diff --git a/data/minecraft/structure/woodland_mansion/1x1_as2.nbt b/data/minecraft/structure/woodland_mansion/1x1_as2.nbt new file mode 100644 index 00000000..4f01ad41 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_as2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdadf63ed2c755b0f906d9d94f3f9d4937cd6ba5ca5a7547ebf331aae93199c6 +size 1454 diff --git a/data/minecraft/structure/woodland_mansion/1x1_as3.nbt b/data/minecraft/structure/woodland_mansion/1x1_as3.nbt new file mode 100644 index 00000000..4f24f486 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_as3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:219b80dc7ada7560ebfddfb622a075317105c1bcf4db04e7cee492e2f27679cc +size 1210 diff --git a/data/minecraft/structure/woodland_mansion/1x1_as4.nbt b/data/minecraft/structure/woodland_mansion/1x1_as4.nbt new file mode 100644 index 00000000..28d0b344 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_as4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eda5341f48146bb5be97b9ef7a8dc6d71cae5fa9263de2e654e68456b5f46566 +size 1210 diff --git a/data/minecraft/structure/woodland_mansion/1x1_b1.nbt b/data/minecraft/structure/woodland_mansion/1x1_b1.nbt new file mode 100644 index 00000000..e4587bae --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_b1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f07c26f15da1504ad7a0b904755ed6f5560ac37b281b2a2409e42c220743f94b +size 1924 diff --git a/data/minecraft/structure/woodland_mansion/1x1_b2.nbt b/data/minecraft/structure/woodland_mansion/1x1_b2.nbt new file mode 100644 index 00000000..92aa7628 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_b2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7445f76205e00df98811be2e1aaf9dcf7e95b3b3947808492052fede2f5b91c +size 1863 diff --git a/data/minecraft/structure/woodland_mansion/1x1_b3.nbt b/data/minecraft/structure/woodland_mansion/1x1_b3.nbt new file mode 100644 index 00000000..b2f61c45 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_b3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0795671f720a016d406d0b34444638bd641216973c09faef0b505480a5b519c4 +size 1802 diff --git a/data/minecraft/structure/woodland_mansion/1x1_b4.nbt b/data/minecraft/structure/woodland_mansion/1x1_b4.nbt new file mode 100644 index 00000000..f76e5cda --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_b4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a4566ac45ba456a8ed78f531b70a10d4162a6e292994738dbe6aad4a723c335 +size 1829 diff --git a/data/minecraft/structure/woodland_mansion/1x1_b5.nbt b/data/minecraft/structure/woodland_mansion/1x1_b5.nbt new file mode 100644 index 00000000..d1ee2849 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x1_b5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c66645c46e38928a4c40bdc197228d3c3d13f69ccd5bf22e1f523abc279a476d +size 1920 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a1.nbt b/data/minecraft/structure/woodland_mansion/1x2_a1.nbt new file mode 100644 index 00000000..e834a371 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5585e982882b014b9396b1465e3e8d9efa339b1e8bffb85ae06780fee6ef46d7 +size 2934 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a2.nbt b/data/minecraft/structure/woodland_mansion/1x2_a2.nbt new file mode 100644 index 00000000..97a93244 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61fa11d527c56cf4ca4366aa245df62f98513cbffa3322c2113bb0f546279c48 +size 2827 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a3.nbt b/data/minecraft/structure/woodland_mansion/1x2_a3.nbt new file mode 100644 index 00000000..1b93a05d --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb0bed0cccac0a98e48b672ef1fdaa2a9078698b79ef16387fb8cad83431a928 +size 2948 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a4.nbt b/data/minecraft/structure/woodland_mansion/1x2_a4.nbt new file mode 100644 index 00000000..ed7afb8b --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50a47220b2861304fb320d7a8c2dc604b29e9b0291d591c1580acdc381129834 +size 2895 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a5.nbt b/data/minecraft/structure/woodland_mansion/1x2_a5.nbt new file mode 100644 index 00000000..af5bce82 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b45d904fc2e2307629ba4d8017d0aad125ccef3005a8c2256e90a5dee1b7471 +size 2569 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a6.nbt b/data/minecraft/structure/woodland_mansion/1x2_a6.nbt new file mode 100644 index 00000000..672fe62b --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a6.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:268cbce423b2f8c389e4630f16490b45ef3690788326e176f7f555cf2a2beade +size 2813 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a7.nbt b/data/minecraft/structure/woodland_mansion/1x2_a7.nbt new file mode 100644 index 00000000..b27b241f --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a7.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2ea269f33af5569ffbfba515836586821a638a352b1d1a951a71b7ead628db3 +size 2946 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a8.nbt b/data/minecraft/structure/woodland_mansion/1x2_a8.nbt new file mode 100644 index 00000000..48d10618 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a8.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47a253a5e094b95c4901699c183cd30200dc329fb3c9980f3619d188ae2ad587 +size 3188 diff --git a/data/minecraft/structure/woodland_mansion/1x2_a9.nbt b/data/minecraft/structure/woodland_mansion/1x2_a9.nbt new file mode 100644 index 00000000..22ecce1d --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_a9.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81fe773b1dff8c80c3f60f357f281cd30463ef4e2f830eb12468fc8dea018aa0 +size 3093 diff --git a/data/minecraft/structure/woodland_mansion/1x2_b1.nbt b/data/minecraft/structure/woodland_mansion/1x2_b1.nbt new file mode 100644 index 00000000..cf7fe881 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_b1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47eee2007c80d8072f3d1627d52d754b8bd52e32d8e7d82c7a530e6c5f07e7d4 +size 3276 diff --git a/data/minecraft/structure/woodland_mansion/1x2_b2.nbt b/data/minecraft/structure/woodland_mansion/1x2_b2.nbt new file mode 100644 index 00000000..3ea63337 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_b2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7e2d8f612d7b3c51d0489568ceba9f9a7c287b64456c0d1f8354c39de4c64b1 +size 3133 diff --git a/data/minecraft/structure/woodland_mansion/1x2_b3.nbt b/data/minecraft/structure/woodland_mansion/1x2_b3.nbt new file mode 100644 index 00000000..e823a9ef --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_b3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8528b2a00e683506ed625076f91da34037ace329d9839f00b7c59795687510fd +size 2791 diff --git a/data/minecraft/structure/woodland_mansion/1x2_b4.nbt b/data/minecraft/structure/woodland_mansion/1x2_b4.nbt new file mode 100644 index 00000000..2be684ee --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_b4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d0a92775593ac096a0b631167b406168ab6beb40f1088d54933c35b84cb6e87 +size 2962 diff --git a/data/minecraft/structure/woodland_mansion/1x2_b5.nbt b/data/minecraft/structure/woodland_mansion/1x2_b5.nbt new file mode 100644 index 00000000..51d81f77 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_b5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b885be131a4f2e47e4b34b96e037df0869fb4a157b155cd0afff5b22bf732a07 +size 2406 diff --git a/data/minecraft/structure/woodland_mansion/1x2_c1.nbt b/data/minecraft/structure/woodland_mansion/1x2_c1.nbt new file mode 100644 index 00000000..a38fb3d3 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_c1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b62354b4a3835c119e1ab7a57f31db7d88e38d87bba5b9ade06f1b10466b69a9 +size 3546 diff --git a/data/minecraft/structure/woodland_mansion/1x2_c2.nbt b/data/minecraft/structure/woodland_mansion/1x2_c2.nbt new file mode 100644 index 00000000..64837bcc --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_c2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eca716a45ff2fa53ff4b38cd1f87a0809fd3d26ef803979f12da88ce7f89ab2 +size 3346 diff --git a/data/minecraft/structure/woodland_mansion/1x2_c3.nbt b/data/minecraft/structure/woodland_mansion/1x2_c3.nbt new file mode 100644 index 00000000..e9e26c92 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_c3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1378e083c5d83f85d611749359fcf99c28fc91a9010a13b1a21fc709f1add4e +size 3614 diff --git a/data/minecraft/structure/woodland_mansion/1x2_c4.nbt b/data/minecraft/structure/woodland_mansion/1x2_c4.nbt new file mode 100644 index 00000000..9f9e296e --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_c4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d1f6c811714f88af9d7eddfc2e5b2a59e11f7d1a8b8e1a2ec482bf4b18f2c60 +size 3618 diff --git a/data/minecraft/structure/woodland_mansion/1x2_c_stairs.nbt b/data/minecraft/structure/woodland_mansion/1x2_c_stairs.nbt new file mode 100644 index 00000000..e8a48cb8 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_c_stairs.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d02b2e76337940284e81a56ec0dc8f0f81aaacc8601f77081c1f19f023ca3ed +size 6729 diff --git a/data/minecraft/structure/woodland_mansion/1x2_d1.nbt b/data/minecraft/structure/woodland_mansion/1x2_d1.nbt new file mode 100644 index 00000000..8bca96c4 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_d1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c1f9e82acea1d0fc695ede7ddd69b9bf1e1ddc03ed237e160148d3c711badb4 +size 3732 diff --git a/data/minecraft/structure/woodland_mansion/1x2_d2.nbt b/data/minecraft/structure/woodland_mansion/1x2_d2.nbt new file mode 100644 index 00000000..80a33476 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_d2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b772e3331ab9f6c30d3f6ed10bb5ae0316bb8e7081d60a4b864f57b77033a68 +size 3904 diff --git a/data/minecraft/structure/woodland_mansion/1x2_d3.nbt b/data/minecraft/structure/woodland_mansion/1x2_d3.nbt new file mode 100644 index 00000000..bb31f81e --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_d3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a6cd023a34b1ad5cb99017d5c77b5b40a5d313cf46e6acb6508846f5e11e810 +size 3842 diff --git a/data/minecraft/structure/woodland_mansion/1x2_d4.nbt b/data/minecraft/structure/woodland_mansion/1x2_d4.nbt new file mode 100644 index 00000000..e0e6ac0f --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_d4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1858d06878081ec0a18964d59312cf988d97a9fc457d9f8503061fb1e9c4f20a +size 3407 diff --git a/data/minecraft/structure/woodland_mansion/1x2_d5.nbt b/data/minecraft/structure/woodland_mansion/1x2_d5.nbt new file mode 100644 index 00000000..83eedfd8 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_d5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a4a5fd6549030e1df1d6bf04abe0044714bc6948a108ba407091e14af817d06 +size 3371 diff --git a/data/minecraft/structure/woodland_mansion/1x2_d_stairs.nbt b/data/minecraft/structure/woodland_mansion/1x2_d_stairs.nbt new file mode 100644 index 00000000..e9bfd3d7 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_d_stairs.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6429638d959a39f6caa92cee638ed913920e56a3ee51d8fbfd6332d8df046713 +size 6624 diff --git a/data/minecraft/structure/woodland_mansion/1x2_s1.nbt b/data/minecraft/structure/woodland_mansion/1x2_s1.nbt new file mode 100644 index 00000000..b7b462c1 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_s1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b862f2da0c6b906b8d691a8601097f9e833658f9a4dfa1ceb0e8f3978d122a0 +size 2685 diff --git a/data/minecraft/structure/woodland_mansion/1x2_s2.nbt b/data/minecraft/structure/woodland_mansion/1x2_s2.nbt new file mode 100644 index 00000000..fd7f8473 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_s2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa07df1cfedeff103d3f0f33277c05676f5e568f5ef85e19fce79ec28ab90463 +size 2729 diff --git a/data/minecraft/structure/woodland_mansion/1x2_se1.nbt b/data/minecraft/structure/woodland_mansion/1x2_se1.nbt new file mode 100644 index 00000000..d4c40272 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/1x2_se1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d23d8d738639544d0dc167b31b53adfd2ac254db7f2d634c953c8f5af3fabce3 +size 3881 diff --git a/data/minecraft/structure/woodland_mansion/2x2_a1.nbt b/data/minecraft/structure/woodland_mansion/2x2_a1.nbt new file mode 100644 index 00000000..98af0a26 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_a1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:633ec4afc71873a1c05bd02419371fe8001aa4dfae930f7ed93de01bc496eaa6 +size 6287 diff --git a/data/minecraft/structure/woodland_mansion/2x2_a2.nbt b/data/minecraft/structure/woodland_mansion/2x2_a2.nbt new file mode 100644 index 00000000..bb2e1d2a --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_a2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9102d0f9281d632346e2493ce86e90959e9b103adddc556883b5a2696bea7583 +size 5632 diff --git a/data/minecraft/structure/woodland_mansion/2x2_a3.nbt b/data/minecraft/structure/woodland_mansion/2x2_a3.nbt new file mode 100644 index 00000000..7e2b345b --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_a3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a801881381be173a04cdc4639505eb9f21364e6c508a4ff46abbb9903eb2e23 +size 5212 diff --git a/data/minecraft/structure/woodland_mansion/2x2_a4.nbt b/data/minecraft/structure/woodland_mansion/2x2_a4.nbt new file mode 100644 index 00000000..42187e83 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_a4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b130d0d8f80fc9e5d1ea089b12014ffff3e9e236159ea7213d795c196f1af8fa +size 5407 diff --git a/data/minecraft/structure/woodland_mansion/2x2_b1.nbt b/data/minecraft/structure/woodland_mansion/2x2_b1.nbt new file mode 100644 index 00000000..956bf621 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_b1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d81f888d71b859617fa2ec1af418a855e4f13731c7af3edb51dbb8dbb44bfdf4 +size 7312 diff --git a/data/minecraft/structure/woodland_mansion/2x2_b2.nbt b/data/minecraft/structure/woodland_mansion/2x2_b2.nbt new file mode 100644 index 00000000..46901d3d --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_b2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90f9371c1f4660255161d2590d681863fb5b2eb38e57a352eb0cc41e5bb4a39f +size 7298 diff --git a/data/minecraft/structure/woodland_mansion/2x2_b3.nbt b/data/minecraft/structure/woodland_mansion/2x2_b3.nbt new file mode 100644 index 00000000..4498344d --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_b3.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d0aaa7b76488a28b91277333909415a0811ee4c14ef862294197a060012042d +size 7103 diff --git a/data/minecraft/structure/woodland_mansion/2x2_b4.nbt b/data/minecraft/structure/woodland_mansion/2x2_b4.nbt new file mode 100644 index 00000000..b8742c9f --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_b4.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f9cbadd0b6ae3331a7f4be7b0deb72e97981838d4cce9f85b0c76bac62361b +size 7240 diff --git a/data/minecraft/structure/woodland_mansion/2x2_b5.nbt b/data/minecraft/structure/woodland_mansion/2x2_b5.nbt new file mode 100644 index 00000000..8d3288ab --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_b5.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66aa9d58f12314ee3240d9d50a9f81efd35f9e4eea03f7b75401d694bc32f636 +size 7542 diff --git a/data/minecraft/structure/woodland_mansion/2x2_s1.nbt b/data/minecraft/structure/woodland_mansion/2x2_s1.nbt new file mode 100644 index 00000000..c38a1dd8 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/2x2_s1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc94a5981350a79e370478c2bcd754918457c31826596c56ad0b4efd0bb262f1 +size 6792 diff --git a/data/minecraft/structure/woodland_mansion/carpet_east.nbt b/data/minecraft/structure/woodland_mansion/carpet_east.nbt new file mode 100644 index 00000000..107b7cd1 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/carpet_east.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:030cf23bf0ff5de8a15a59e1b8cffe7aec4761ae28ff91edacfb3d3c885375bd +size 177 diff --git a/data/minecraft/structure/woodland_mansion/carpet_north.nbt b/data/minecraft/structure/woodland_mansion/carpet_north.nbt new file mode 100644 index 00000000..35f3e04a --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/carpet_north.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6d3d1d4b9b0dac8290ea98e75891a7751abee1744beefb3e58894053c8781ed +size 176 diff --git a/data/minecraft/structure/woodland_mansion/carpet_south_1.nbt b/data/minecraft/structure/woodland_mansion/carpet_south_1.nbt new file mode 100644 index 00000000..b066c668 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/carpet_south_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a42d1c3cf5be606ad9014068a8c8d33883f85e271518cd6df1b4095c03fc6aab +size 718 diff --git a/data/minecraft/structure/woodland_mansion/carpet_south_2.nbt b/data/minecraft/structure/woodland_mansion/carpet_south_2.nbt new file mode 100644 index 00000000..3505636c --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/carpet_south_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ee4efe78bc43bbae5cba75092895d329e1873cc2c4ad11ef4dfa2351054c1ba +size 927 diff --git a/data/minecraft/structure/woodland_mansion/carpet_west_1.nbt b/data/minecraft/structure/woodland_mansion/carpet_west_1.nbt new file mode 100644 index 00000000..a3a73ef0 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/carpet_west_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:619073c729cced0ca06bf95e556e93f79705e114b10cc6dce9bfd96c51dae6cd +size 791 diff --git a/data/minecraft/structure/woodland_mansion/carpet_west_2.nbt b/data/minecraft/structure/woodland_mansion/carpet_west_2.nbt new file mode 100644 index 00000000..88cfa22b --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/carpet_west_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1c7f1429713e981546f64f9244afe4b20d02da3fd70fbbf2452443d0e3e52ec +size 1018 diff --git a/data/minecraft/structure/woodland_mansion/corridor_floor.nbt b/data/minecraft/structure/woodland_mansion/corridor_floor.nbt new file mode 100644 index 00000000..ab1f06c3 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/corridor_floor.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb89cb4b7379760d1046f3edc93e05cf1872a01bb153de6aaba8cca50e0fa1ae +size 1169 diff --git a/data/minecraft/structure/woodland_mansion/entrance.nbt b/data/minecraft/structure/woodland_mansion/entrance.nbt new file mode 100644 index 00000000..e2d60d48 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/entrance.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:761cc945f1dddce4b4a269fab788d05ed46e4de833743e6f49c75db844f68254 +size 18252 diff --git a/data/minecraft/structure/woodland_mansion/indoors_door_1.nbt b/data/minecraft/structure/woodland_mansion/indoors_door_1.nbt new file mode 100644 index 00000000..d1d7eac9 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/indoors_door_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22cef53f7b5e9bad12983f045fbdc774b184be26e39a09db756accfd42e3d5d5 +size 407 diff --git a/data/minecraft/structure/woodland_mansion/indoors_door_2.nbt b/data/minecraft/structure/woodland_mansion/indoors_door_2.nbt new file mode 100644 index 00000000..a1c74e5b --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/indoors_door_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7400b42f7f4006a607ed39b2b79e917fe822e4f112e51f6678462568d29635c +size 502 diff --git a/data/minecraft/structure/woodland_mansion/indoors_wall_1.nbt b/data/minecraft/structure/woodland_mansion/indoors_wall_1.nbt new file mode 100644 index 00000000..bb5aa0e9 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/indoors_wall_1.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:007bf75cc3a3fb4dda0237692dff022bea598bdca81d62436371e28fddc5d194 +size 363 diff --git a/data/minecraft/structure/woodland_mansion/indoors_wall_2.nbt b/data/minecraft/structure/woodland_mansion/indoors_wall_2.nbt new file mode 100644 index 00000000..a82dca1a --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/indoors_wall_2.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40ae34678323e0e47d0bec668f158b05cbedab4d972b01a1243124c5cbae26a9 +size 440 diff --git a/data/minecraft/structure/woodland_mansion/roof.nbt b/data/minecraft/structure/woodland_mansion/roof.nbt new file mode 100644 index 00000000..6129ac9e --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/roof.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4536a8584d35124c3ee01509febdc21b0f8625a184870f234d89702e1ce5ea4 +size 330 diff --git a/data/minecraft/structure/woodland_mansion/roof_corner.nbt b/data/minecraft/structure/woodland_mansion/roof_corner.nbt new file mode 100644 index 00000000..58b8e0e6 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/roof_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c23c8ba774bd7bfe5a9b26035e0312a42bb486c335a2236e674bf4b64dbe08b +size 447 diff --git a/data/minecraft/structure/woodland_mansion/roof_front.nbt b/data/minecraft/structure/woodland_mansion/roof_front.nbt new file mode 100644 index 00000000..e2ca5258 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/roof_front.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44be601e6cc5da953b1df90bc211de23fecee06bce1c3622a322d8068ca1229e +size 633 diff --git a/data/minecraft/structure/woodland_mansion/roof_inner_corner.nbt b/data/minecraft/structure/woodland_mansion/roof_inner_corner.nbt new file mode 100644 index 00000000..f59eaa27 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/roof_inner_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3b6b92876a737ec251c710ebd0b9c86bb8371e7428bd343185720949f426599 +size 443 diff --git a/data/minecraft/structure/woodland_mansion/small_wall.nbt b/data/minecraft/structure/woodland_mansion/small_wall.nbt new file mode 100644 index 00000000..26f80f7f --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/small_wall.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae829869eee59855421fce87611f9bd1f46a0fe7802db597f67ddfcac46a2b48 +size 509 diff --git a/data/minecraft/structure/woodland_mansion/small_wall_corner.nbt b/data/minecraft/structure/woodland_mansion/small_wall_corner.nbt new file mode 100644 index 00000000..7b2cab4e --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/small_wall_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7336091e2796b1d29766aef0a01986c4806fb31aa7eaf85f86c079c4cb3f22e7 +size 259 diff --git a/data/minecraft/structure/woodland_mansion/wall_corner.nbt b/data/minecraft/structure/woodland_mansion/wall_corner.nbt new file mode 100644 index 00000000..565d28f0 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/wall_corner.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:397db5d27b367a0a26c13f08c8545a698650a56d96ab832e25804763ea698a09 +size 306 diff --git a/data/minecraft/structure/woodland_mansion/wall_flat.nbt b/data/minecraft/structure/woodland_mansion/wall_flat.nbt new file mode 100644 index 00000000..abc935db --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/wall_flat.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1394bf614ce1738c16cc096ce7cf39ca9494c13897fd91f0f64506df329ceb1 +size 724 diff --git a/data/minecraft/structure/woodland_mansion/wall_window.nbt b/data/minecraft/structure/woodland_mansion/wall_window.nbt new file mode 100644 index 00000000..c9bd6680 --- /dev/null +++ b/data/minecraft/structure/woodland_mansion/wall_window.nbt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:036bc2bcf6a7687f300503af5e4101547d89d9c22065cc9484a6c5030de92a18 +size 828 diff --git a/data/minecraft/tags/banner_pattern/no_item_required.json b/data/minecraft/tags/banner_pattern/no_item_required.json new file mode 100644 index 00000000..3cc5a9f2 --- /dev/null +++ b/data/minecraft/tags/banner_pattern/no_item_required.json @@ -0,0 +1,38 @@ +{ + "values": [ + "minecraft:square_bottom_left", + "minecraft:square_bottom_right", + "minecraft:square_top_left", + "minecraft:square_top_right", + "minecraft:stripe_bottom", + "minecraft:stripe_top", + "minecraft:stripe_left", + "minecraft:stripe_right", + "minecraft:stripe_center", + "minecraft:stripe_middle", + "minecraft:stripe_downright", + "minecraft:stripe_downleft", + "minecraft:small_stripes", + "minecraft:cross", + "minecraft:straight_cross", + "minecraft:triangle_bottom", + "minecraft:triangle_top", + "minecraft:triangles_bottom", + "minecraft:triangles_top", + "minecraft:diagonal_left", + "minecraft:diagonal_up_right", + "minecraft:diagonal_up_left", + "minecraft:diagonal_right", + "minecraft:circle", + "minecraft:rhombus", + "minecraft:half_vertical", + "minecraft:half_horizontal", + "minecraft:half_vertical_right", + "minecraft:half_horizontal_bottom", + "minecraft:border", + "minecraft:curly_border", + "minecraft:gradient", + "minecraft:gradient_up", + "minecraft:bricks" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/creeper.json b/data/minecraft/tags/banner_pattern/pattern_item/creeper.json new file mode 100644 index 00000000..8304eb7c --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/creeper.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:creeper" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/flow.json b/data/minecraft/tags/banner_pattern/pattern_item/flow.json new file mode 100644 index 00000000..7cd2d38f --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/flow.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:flow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/flower.json b/data/minecraft/tags/banner_pattern/pattern_item/flower.json new file mode 100644 index 00000000..ed022242 --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/flower.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:flower" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/globe.json b/data/minecraft/tags/banner_pattern/pattern_item/globe.json new file mode 100644 index 00000000..1bb567b0 --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/globe.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:globe" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/guster.json b/data/minecraft/tags/banner_pattern/pattern_item/guster.json new file mode 100644 index 00000000..1935cc99 --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/guster.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:guster" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/mojang.json b/data/minecraft/tags/banner_pattern/pattern_item/mojang.json new file mode 100644 index 00000000..ffb0bb60 --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/mojang.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mojang" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/piglin.json b/data/minecraft/tags/banner_pattern/pattern_item/piglin.json new file mode 100644 index 00000000..d4d1b921 --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/piglin.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:piglin" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/banner_pattern/pattern_item/skull.json b/data/minecraft/tags/banner_pattern/pattern_item/skull.json new file mode 100644 index 00000000..9a3125fa --- /dev/null +++ b/data/minecraft/tags/banner_pattern/pattern_item/skull.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:skull" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/acacia_logs.json b/data/minecraft/tags/block/acacia_logs.json new file mode 100644 index 00000000..84a0bc4c --- /dev/null +++ b/data/minecraft/tags/block/acacia_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/air.json b/data/minecraft/tags/block/air.json new file mode 100644 index 00000000..fb634b59 --- /dev/null +++ b/data/minecraft/tags/block/air.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:air", + "minecraft:void_air", + "minecraft:cave_air" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/all_hanging_signs.json b/data/minecraft/tags/block/all_hanging_signs.json new file mode 100644 index 00000000..c77b75c2 --- /dev/null +++ b/data/minecraft/tags/block/all_hanging_signs.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:ceiling_hanging_signs", + "#minecraft:wall_hanging_signs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/all_signs.json b/data/minecraft/tags/block/all_signs.json new file mode 100644 index 00000000..d7987ebb --- /dev/null +++ b/data/minecraft/tags/block/all_signs.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:signs", + "#minecraft:all_hanging_signs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/ancient_city_replaceable.json b/data/minecraft/tags/block/ancient_city_replaceable.json new file mode 100644 index 00000000..23e7a6e9 --- /dev/null +++ b/data/minecraft/tags/block/ancient_city_replaceable.json @@ -0,0 +1,16 @@ +{ + "values": [ + "minecraft:deepslate", + "minecraft:deepslate_bricks", + "minecraft:deepslate_tiles", + "minecraft:deepslate_brick_slab", + "minecraft:deepslate_tile_slab", + "minecraft:deepslate_brick_stairs", + "minecraft:deepslate_tile_wall", + "minecraft:deepslate_brick_wall", + "minecraft:cobbled_deepslate", + "minecraft:cracked_deepslate_bricks", + "minecraft:cracked_deepslate_tiles", + "minecraft:gray_wool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/animals_spawnable_on.json b/data/minecraft/tags/block/animals_spawnable_on.json new file mode 100644 index 00000000..ce2108c7 --- /dev/null +++ b/data/minecraft/tags/block/animals_spawnable_on.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:grass_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/anvil.json b/data/minecraft/tags/block/anvil.json new file mode 100644 index 00000000..84ef65a7 --- /dev/null +++ b/data/minecraft/tags/block/anvil.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/armadillo_spawnable_on.json b/data/minecraft/tags/block/armadillo_spawnable_on.json new file mode 100644 index 00000000..10d73ff7 --- /dev/null +++ b/data/minecraft/tags/block/armadillo_spawnable_on.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:animals_spawnable_on", + "#minecraft:badlands_terracotta", + "minecraft:red_sand", + "minecraft:coarse_dirt" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/axolotls_spawnable_on.json b/data/minecraft/tags/block/axolotls_spawnable_on.json new file mode 100644 index 00000000..957a556d --- /dev/null +++ b/data/minecraft/tags/block/axolotls_spawnable_on.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:clay" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/azalea_grows_on.json b/data/minecraft/tags/block/azalea_grows_on.json new file mode 100644 index 00000000..0fe47462 --- /dev/null +++ b/data/minecraft/tags/block/azalea_grows_on.json @@ -0,0 +1,9 @@ +{ + "values": [ + "#minecraft:dirt", + "#minecraft:sand", + "#minecraft:terracotta", + "minecraft:snow_block", + "minecraft:powder_snow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/azalea_root_replaceable.json b/data/minecraft/tags/block/azalea_root_replaceable.json new file mode 100644 index 00000000..65e13ea6 --- /dev/null +++ b/data/minecraft/tags/block/azalea_root_replaceable.json @@ -0,0 +1,13 @@ +{ + "values": [ + "#minecraft:base_stone_overworld", + "#minecraft:dirt", + "#minecraft:terracotta", + "minecraft:red_sand", + "minecraft:clay", + "minecraft:gravel", + "minecraft:sand", + "minecraft:snow_block", + "minecraft:powder_snow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/badlands_terracotta.json b/data/minecraft/tags/block/badlands_terracotta.json new file mode 100644 index 00000000..095749c2 --- /dev/null +++ b/data/minecraft/tags/block/badlands_terracotta.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:terracotta", + "minecraft:white_terracotta", + "minecraft:yellow_terracotta", + "minecraft:orange_terracotta", + "minecraft:red_terracotta", + "minecraft:brown_terracotta", + "minecraft:light_gray_terracotta" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/bamboo_blocks.json b/data/minecraft/tags/block/bamboo_blocks.json new file mode 100644 index 00000000..347c0af8 --- /dev/null +++ b/data/minecraft/tags/block/bamboo_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:bamboo_block", + "minecraft:stripped_bamboo_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/bamboo_plantable_on.json b/data/minecraft/tags/block/bamboo_plantable_on.json new file mode 100644 index 00000000..8a0540c4 --- /dev/null +++ b/data/minecraft/tags/block/bamboo_plantable_on.json @@ -0,0 +1,10 @@ +{ + "values": [ + "#minecraft:sand", + "#minecraft:dirt", + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:gravel", + "minecraft:suspicious_gravel" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/banners.json b/data/minecraft/tags/block/banners.json new file mode 100644 index 00000000..6cab5e09 --- /dev/null +++ b/data/minecraft/tags/block/banners.json @@ -0,0 +1,36 @@ +{ + "values": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/base_stone_nether.json b/data/minecraft/tags/block/base_stone_nether.json new file mode 100644 index 00000000..082e785c --- /dev/null +++ b/data/minecraft/tags/block/base_stone_nether.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:netherrack", + "minecraft:basalt", + "minecraft:blackstone" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/base_stone_overworld.json b/data/minecraft/tags/block/base_stone_overworld.json new file mode 100644 index 00000000..dfa496a2 --- /dev/null +++ b/data/minecraft/tags/block/base_stone_overworld.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:tuff", + "minecraft:deepslate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/beacon_base_blocks.json b/data/minecraft/tags/block/beacon_base_blocks.json new file mode 100644 index 00000000..a44cd4a8 --- /dev/null +++ b/data/minecraft/tags/block/beacon_base_blocks.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:netherite_block", + "minecraft:emerald_block", + "minecraft:diamond_block", + "minecraft:gold_block", + "minecraft:iron_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/beds.json b/data/minecraft/tags/block/beds.json new file mode 100644 index 00000000..77c22422 --- /dev/null +++ b/data/minecraft/tags/block/beds.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/bee_growables.json b/data/minecraft/tags/block/bee_growables.json new file mode 100644 index 00000000..50f6d615 --- /dev/null +++ b/data/minecraft/tags/block/bee_growables.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:crops", + "minecraft:sweet_berry_bush", + "minecraft:cave_vines", + "minecraft:cave_vines_plant" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/beehives.json b/data/minecraft/tags/block/beehives.json new file mode 100644 index 00000000..434e455b --- /dev/null +++ b/data/minecraft/tags/block/beehives.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:bee_nest", + "minecraft:beehive" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/big_dripleaf_placeable.json b/data/minecraft/tags/block/big_dripleaf_placeable.json new file mode 100644 index 00000000..5ef3d369 --- /dev/null +++ b/data/minecraft/tags/block/big_dripleaf_placeable.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:small_dripleaf_placeable", + "#minecraft:dirt", + "minecraft:farmland" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/birch_logs.json b/data/minecraft/tags/block/birch_logs.json new file mode 100644 index 00000000..9203a57b --- /dev/null +++ b/data/minecraft/tags/block/birch_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/blocks_wind_charge_explosions.json b/data/minecraft/tags/block/blocks_wind_charge_explosions.json new file mode 100644 index 00000000..934e8279 --- /dev/null +++ b/data/minecraft/tags/block/blocks_wind_charge_explosions.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:barrier", + "minecraft:bedrock" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/buttons.json b/data/minecraft/tags/block/buttons.json new file mode 100644 index 00000000..3400bf38 --- /dev/null +++ b/data/minecraft/tags/block/buttons.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:wooden_buttons", + "#minecraft:stone_buttons" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/camel_sand_step_sound_blocks.json b/data/minecraft/tags/block/camel_sand_step_sound_blocks.json new file mode 100644 index 00000000..8e2b714d --- /dev/null +++ b/data/minecraft/tags/block/camel_sand_step_sound_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:sand", + "#minecraft:concrete_powder" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/campfires.json b/data/minecraft/tags/block/campfires.json new file mode 100644 index 00000000..30f946d1 --- /dev/null +++ b/data/minecraft/tags/block/campfires.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:campfire", + "minecraft:soul_campfire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/candle_cakes.json b/data/minecraft/tags/block/candle_cakes.json new file mode 100644 index 00000000..f7d0a93f --- /dev/null +++ b/data/minecraft/tags/block/candle_cakes.json @@ -0,0 +1,21 @@ +{ + "values": [ + "minecraft:candle_cake", + "minecraft:white_candle_cake", + "minecraft:orange_candle_cake", + "minecraft:magenta_candle_cake", + "minecraft:light_blue_candle_cake", + "minecraft:yellow_candle_cake", + "minecraft:lime_candle_cake", + "minecraft:pink_candle_cake", + "minecraft:gray_candle_cake", + "minecraft:light_gray_candle_cake", + "minecraft:cyan_candle_cake", + "minecraft:purple_candle_cake", + "minecraft:blue_candle_cake", + "minecraft:brown_candle_cake", + "minecraft:green_candle_cake", + "minecraft:red_candle_cake", + "minecraft:black_candle_cake" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/candles.json b/data/minecraft/tags/block/candles.json new file mode 100644 index 00000000..a7b2b62f --- /dev/null +++ b/data/minecraft/tags/block/candles.json @@ -0,0 +1,21 @@ +{ + "values": [ + "minecraft:candle", + "minecraft:white_candle", + "minecraft:orange_candle", + "minecraft:magenta_candle", + "minecraft:light_blue_candle", + "minecraft:yellow_candle", + "minecraft:lime_candle", + "minecraft:pink_candle", + "minecraft:gray_candle", + "minecraft:light_gray_candle", + "minecraft:cyan_candle", + "minecraft:purple_candle", + "minecraft:blue_candle", + "minecraft:brown_candle", + "minecraft:green_candle", + "minecraft:red_candle", + "minecraft:black_candle" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/cauldrons.json b/data/minecraft/tags/block/cauldrons.json new file mode 100644 index 00000000..d527a7b7 --- /dev/null +++ b/data/minecraft/tags/block/cauldrons.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:cauldron", + "minecraft:water_cauldron", + "minecraft:lava_cauldron", + "minecraft:powder_snow_cauldron" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/cave_vines.json b/data/minecraft/tags/block/cave_vines.json new file mode 100644 index 00000000..806b27cf --- /dev/null +++ b/data/minecraft/tags/block/cave_vines.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:cave_vines_plant", + "minecraft:cave_vines" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/ceiling_hanging_signs.json b/data/minecraft/tags/block/ceiling_hanging_signs.json new file mode 100644 index 00000000..4ca06dad --- /dev/null +++ b/data/minecraft/tags/block/ceiling_hanging_signs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_hanging_sign", + "minecraft:spruce_hanging_sign", + "minecraft:birch_hanging_sign", + "minecraft:acacia_hanging_sign", + "minecraft:cherry_hanging_sign", + "minecraft:jungle_hanging_sign", + "minecraft:dark_oak_hanging_sign", + "minecraft:crimson_hanging_sign", + "minecraft:warped_hanging_sign", + "minecraft:mangrove_hanging_sign", + "minecraft:bamboo_hanging_sign" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/cherry_logs.json b/data/minecraft/tags/block/cherry_logs.json new file mode 100644 index 00000000..4295e055 --- /dev/null +++ b/data/minecraft/tags/block/cherry_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:cherry_log", + "minecraft:cherry_wood", + "minecraft:stripped_cherry_log", + "minecraft:stripped_cherry_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/climbable.json b/data/minecraft/tags/block/climbable.json new file mode 100644 index 00000000..de2e0a70 --- /dev/null +++ b/data/minecraft/tags/block/climbable.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ladder", + "minecraft:vine", + "minecraft:scaffolding", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:cave_vines", + "minecraft:cave_vines_plant" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/coal_ores.json b/data/minecraft/tags/block/coal_ores.json new file mode 100644 index 00000000..aaa76288 --- /dev/null +++ b/data/minecraft/tags/block/coal_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:coal_ore", + "minecraft:deepslate_coal_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/combination_step_sound_blocks.json b/data/minecraft/tags/block/combination_step_sound_blocks.json new file mode 100644 index 00000000..ba45e6cf --- /dev/null +++ b/data/minecraft/tags/block/combination_step_sound_blocks.json @@ -0,0 +1,10 @@ +{ + "values": [ + "#minecraft:wool_carpets", + "minecraft:moss_carpet", + "minecraft:snow", + "minecraft:nether_sprouts", + "minecraft:warped_roots", + "minecraft:crimson_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/completes_find_tree_tutorial.json b/data/minecraft/tags/block/completes_find_tree_tutorial.json new file mode 100644 index 00000000..74701c2e --- /dev/null +++ b/data/minecraft/tags/block/completes_find_tree_tutorial.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:logs", + "#minecraft:leaves", + "#minecraft:wart_blocks" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/concrete_powder.json b/data/minecraft/tags/block/concrete_powder.json new file mode 100644 index 00000000..57a09c9b --- /dev/null +++ b/data/minecraft/tags/block/concrete_powder.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_concrete_powder", + "minecraft:orange_concrete_powder", + "minecraft:magenta_concrete_powder", + "minecraft:light_blue_concrete_powder", + "minecraft:yellow_concrete_powder", + "minecraft:lime_concrete_powder", + "minecraft:pink_concrete_powder", + "minecraft:gray_concrete_powder", + "minecraft:light_gray_concrete_powder", + "minecraft:cyan_concrete_powder", + "minecraft:purple_concrete_powder", + "minecraft:blue_concrete_powder", + "minecraft:brown_concrete_powder", + "minecraft:green_concrete_powder", + "minecraft:red_concrete_powder", + "minecraft:black_concrete_powder" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/convertable_to_mud.json b/data/minecraft/tags/block/convertable_to_mud.json new file mode 100644 index 00000000..9b5e54ac --- /dev/null +++ b/data/minecraft/tags/block/convertable_to_mud.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:rooted_dirt" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/copper_ores.json b/data/minecraft/tags/block/copper_ores.json new file mode 100644 index 00000000..5d76012e --- /dev/null +++ b/data/minecraft/tags/block/copper_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:copper_ore", + "minecraft:deepslate_copper_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/coral_blocks.json b/data/minecraft/tags/block/coral_blocks.json new file mode 100644 index 00000000..70f4b9e3 --- /dev/null +++ b/data/minecraft/tags/block/coral_blocks.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/coral_plants.json b/data/minecraft/tags/block/coral_plants.json new file mode 100644 index 00000000..78700681 --- /dev/null +++ b/data/minecraft/tags/block/coral_plants.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/corals.json b/data/minecraft/tags/block/corals.json new file mode 100644 index 00000000..c38a95a7 --- /dev/null +++ b/data/minecraft/tags/block/corals.json @@ -0,0 +1,10 @@ +{ + "values": [ + "#minecraft:coral_plants", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/crimson_stems.json b/data/minecraft/tags/block/crimson_stems.json new file mode 100644 index 00000000..f78c7a3c --- /dev/null +++ b/data/minecraft/tags/block/crimson_stems.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/crops.json b/data/minecraft/tags/block/crops.json new file mode 100644 index 00000000..b808e769 --- /dev/null +++ b/data/minecraft/tags/block/crops.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:wheat", + "minecraft:melon_stem", + "minecraft:pumpkin_stem", + "minecraft:torchflower_crop", + "minecraft:pitcher_crop" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/crystal_sound_blocks.json b/data/minecraft/tags/block/crystal_sound_blocks.json new file mode 100644 index 00000000..cb3685b6 --- /dev/null +++ b/data/minecraft/tags/block/crystal_sound_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:amethyst_block", + "minecraft:budding_amethyst" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/dampens_vibrations.json b/data/minecraft/tags/block/dampens_vibrations.json new file mode 100644 index 00000000..89eab86d --- /dev/null +++ b/data/minecraft/tags/block/dampens_vibrations.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:wool", + "#minecraft:wool_carpets" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/dark_oak_logs.json b/data/minecraft/tags/block/dark_oak_logs.json new file mode 100644 index 00000000..f7f5a28e --- /dev/null +++ b/data/minecraft/tags/block/dark_oak_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/dead_bush_may_place_on.json b/data/minecraft/tags/block/dead_bush_may_place_on.json new file mode 100644 index 00000000..56f44e1f --- /dev/null +++ b/data/minecraft/tags/block/dead_bush_may_place_on.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:sand", + "#minecraft:terracotta", + "#minecraft:dirt" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/deepslate_ore_replaceables.json b/data/minecraft/tags/block/deepslate_ore_replaceables.json new file mode 100644 index 00000000..4c51c376 --- /dev/null +++ b/data/minecraft/tags/block/deepslate_ore_replaceables.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:deepslate", + "minecraft:tuff" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/diamond_ores.json b/data/minecraft/tags/block/diamond_ores.json new file mode 100644 index 00000000..cfa6e09c --- /dev/null +++ b/data/minecraft/tags/block/diamond_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:diamond_ore", + "minecraft:deepslate_diamond_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/dirt.json b/data/minecraft/tags/block/dirt.json new file mode 100644 index 00000000..a75db4a0 --- /dev/null +++ b/data/minecraft/tags/block/dirt.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium", + "minecraft:rooted_dirt", + "minecraft:moss_block", + "minecraft:mud", + "minecraft:muddy_mangrove_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/does_not_block_hoppers.json b/data/minecraft/tags/block/does_not_block_hoppers.json new file mode 100644 index 00000000..919ecdad --- /dev/null +++ b/data/minecraft/tags/block/does_not_block_hoppers.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:beehives" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/doors.json b/data/minecraft/tags/block/doors.json new file mode 100644 index 00000000..9ca24fcf --- /dev/null +++ b/data/minecraft/tags/block/doors.json @@ -0,0 +1,14 @@ +{ + "values": [ + "#minecraft:wooden_doors", + "minecraft:copper_door", + "minecraft:exposed_copper_door", + "minecraft:weathered_copper_door", + "minecraft:oxidized_copper_door", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:waxed_oxidized_copper_door", + "minecraft:iron_door" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/dragon_immune.json b/data/minecraft/tags/block/dragon_immune.json new file mode 100644 index 00000000..fe9dfc5e --- /dev/null +++ b/data/minecraft/tags/block/dragon_immune.json @@ -0,0 +1,21 @@ +{ + "values": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:crying_obsidian", + "minecraft:end_stone", + "minecraft:iron_bars", + "minecraft:respawn_anchor", + "minecraft:reinforced_deepslate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/dragon_transparent.json b/data/minecraft/tags/block/dragon_transparent.json new file mode 100644 index 00000000..394ae3ba --- /dev/null +++ b/data/minecraft/tags/block/dragon_transparent.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:light", + "#minecraft:fire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/dripstone_replaceable_blocks.json b/data/minecraft/tags/block/dripstone_replaceable_blocks.json new file mode 100644 index 00000000..511ad97c --- /dev/null +++ b/data/minecraft/tags/block/dripstone_replaceable_blocks.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:base_stone_overworld" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/emerald_ores.json b/data/minecraft/tags/block/emerald_ores.json new file mode 100644 index 00000000..063d8e62 --- /dev/null +++ b/data/minecraft/tags/block/emerald_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:emerald_ore", + "minecraft:deepslate_emerald_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/enchantment_power_provider.json b/data/minecraft/tags/block/enchantment_power_provider.json new file mode 100644 index 00000000..c09b2185 --- /dev/null +++ b/data/minecraft/tags/block/enchantment_power_provider.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:bookshelf" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/enchantment_power_transmitter.json b/data/minecraft/tags/block/enchantment_power_transmitter.json new file mode 100644 index 00000000..f64881ba --- /dev/null +++ b/data/minecraft/tags/block/enchantment_power_transmitter.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:replaceable" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/enderman_holdable.json b/data/minecraft/tags/block/enderman_holdable.json new file mode 100644 index 00000000..28a83e79 --- /dev/null +++ b/data/minecraft/tags/block/enderman_holdable.json @@ -0,0 +1,23 @@ +{ + "values": [ + "#minecraft:small_flowers", + "#minecraft:dirt", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:crimson_fungus", + "minecraft:crimson_nylium", + "minecraft:crimson_roots", + "minecraft:warped_fungus", + "minecraft:warped_nylium", + "minecraft:warped_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/fall_damage_resetting.json b/data/minecraft/tags/block/fall_damage_resetting.json new file mode 100644 index 00000000..21b20b23 --- /dev/null +++ b/data/minecraft/tags/block/fall_damage_resetting.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:climbable", + "minecraft:sweet_berry_bush", + "minecraft:cobweb" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/features_cannot_replace.json b/data/minecraft/tags/block/features_cannot_replace.json new file mode 100644 index 00000000..e4378752 --- /dev/null +++ b/data/minecraft/tags/block/features_cannot_replace.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:bedrock", + "minecraft:spawner", + "minecraft:chest", + "minecraft:end_portal_frame", + "minecraft:reinforced_deepslate", + "minecraft:trial_spawner", + "minecraft:vault" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/fence_gates.json b/data/minecraft/tags/block/fence_gates.json new file mode 100644 index 00000000..2a8d2924 --- /dev/null +++ b/data/minecraft/tags/block/fence_gates.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:warped_fence_gate", + "minecraft:mangrove_fence_gate", + "minecraft:bamboo_fence_gate", + "minecraft:cherry_fence_gate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/fences.json b/data/minecraft/tags/block/fences.json new file mode 100644 index 00000000..045fa7d4 --- /dev/null +++ b/data/minecraft/tags/block/fences.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:wooden_fences", + "minecraft:nether_brick_fence" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/fire.json b/data/minecraft/tags/block/fire.json new file mode 100644 index 00000000..fb8f0fb8 --- /dev/null +++ b/data/minecraft/tags/block/fire.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:fire", + "minecraft:soul_fire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/flower_pots.json b/data/minecraft/tags/block/flower_pots.json new file mode 100644 index 00000000..a1e7c896 --- /dev/null +++ b/data/minecraft/tags/block/flower_pots.json @@ -0,0 +1,39 @@ +{ + "values": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_wither_rose", + "minecraft:potted_bamboo", + "minecraft:potted_crimson_fungus", + "minecraft:potted_warped_fungus", + "minecraft:potted_crimson_roots", + "minecraft:potted_warped_roots", + "minecraft:potted_azalea_bush", + "minecraft:potted_flowering_azalea_bush", + "minecraft:potted_mangrove_propagule", + "minecraft:potted_cherry_sapling", + "minecraft:potted_torchflower" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/flowers.json b/data/minecraft/tags/block/flowers.json new file mode 100644 index 00000000..9e10a4de --- /dev/null +++ b/data/minecraft/tags/block/flowers.json @@ -0,0 +1,13 @@ +{ + "values": [ + "#minecraft:small_flowers", + "#minecraft:tall_flowers", + "minecraft:flowering_azalea_leaves", + "minecraft:flowering_azalea", + "minecraft:mangrove_propagule", + "minecraft:cherry_leaves", + "minecraft:pink_petals", + "minecraft:chorus_flower", + "minecraft:spore_blossom" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/foxes_spawnable_on.json b/data/minecraft/tags/block/foxes_spawnable_on.json new file mode 100644 index 00000000..cffc85c1 --- /dev/null +++ b/data/minecraft/tags/block/foxes_spawnable_on.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:grass_block", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:podzol", + "minecraft:coarse_dirt" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/frog_prefer_jump_to.json b/data/minecraft/tags/block/frog_prefer_jump_to.json new file mode 100644 index 00000000..213cbab2 --- /dev/null +++ b/data/minecraft/tags/block/frog_prefer_jump_to.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:lily_pad", + "minecraft:big_dripleaf" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/frogs_spawnable_on.json b/data/minecraft/tags/block/frogs_spawnable_on.json new file mode 100644 index 00000000..2499843d --- /dev/null +++ b/data/minecraft/tags/block/frogs_spawnable_on.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:grass_block", + "minecraft:mud", + "minecraft:mangrove_roots", + "minecraft:muddy_mangrove_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/geode_invalid_blocks.json b/data/minecraft/tags/block/geode_invalid_blocks.json new file mode 100644 index 00000000..3ffe7ace --- /dev/null +++ b/data/minecraft/tags/block/geode_invalid_blocks.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:bedrock", + "minecraft:water", + "minecraft:lava", + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/goats_spawnable_on.json b/data/minecraft/tags/block/goats_spawnable_on.json new file mode 100644 index 00000000..8376d7ce --- /dev/null +++ b/data/minecraft/tags/block/goats_spawnable_on.json @@ -0,0 +1,10 @@ +{ + "values": [ + "#minecraft:animals_spawnable_on", + "minecraft:stone", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:packed_ice", + "minecraft:gravel" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/gold_ores.json b/data/minecraft/tags/block/gold_ores.json new file mode 100644 index 00000000..279f354d --- /dev/null +++ b/data/minecraft/tags/block/gold_ores.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:gold_ore", + "minecraft:nether_gold_ore", + "minecraft:deepslate_gold_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/guarded_by_piglins.json b/data/minecraft/tags/block/guarded_by_piglins.json new file mode 100644 index 00000000..48330ae6 --- /dev/null +++ b/data/minecraft/tags/block/guarded_by_piglins.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:gold_block", + "minecraft:barrel", + "minecraft:chest", + "minecraft:ender_chest", + "minecraft:gilded_blackstone", + "minecraft:trapped_chest", + "minecraft:raw_gold_block", + "#minecraft:shulker_boxes", + "#minecraft:gold_ores" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/hoglin_repellents.json b/data/minecraft/tags/block/hoglin_repellents.json new file mode 100644 index 00000000..25bbcb54 --- /dev/null +++ b/data/minecraft/tags/block/hoglin_repellents.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:warped_fungus", + "minecraft:potted_warped_fungus", + "minecraft:nether_portal", + "minecraft:respawn_anchor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/ice.json b/data/minecraft/tags/block/ice.json new file mode 100644 index 00000000..71c9326f --- /dev/null +++ b/data/minecraft/tags/block/ice.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/impermeable.json b/data/minecraft/tags/block/impermeable.json new file mode 100644 index 00000000..a35cb86d --- /dev/null +++ b/data/minecraft/tags/block/impermeable.json @@ -0,0 +1,22 @@ +{ + "values": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass", + "minecraft:tinted_glass" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/incorrect_for_diamond_tool.json b/data/minecraft/tags/block/incorrect_for_diamond_tool.json new file mode 100644 index 00000000..f72d209d --- /dev/null +++ b/data/minecraft/tags/block/incorrect_for_diamond_tool.json @@ -0,0 +1,3 @@ +{ + "values": [] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/incorrect_for_gold_tool.json b/data/minecraft/tags/block/incorrect_for_gold_tool.json new file mode 100644 index 00000000..3cecdc74 --- /dev/null +++ b/data/minecraft/tags/block/incorrect_for_gold_tool.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:needs_diamond_tool", + "#minecraft:needs_iron_tool", + "#minecraft:needs_stone_tool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/incorrect_for_iron_tool.json b/data/minecraft/tags/block/incorrect_for_iron_tool.json new file mode 100644 index 00000000..094771ef --- /dev/null +++ b/data/minecraft/tags/block/incorrect_for_iron_tool.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:needs_diamond_tool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/incorrect_for_netherite_tool.json b/data/minecraft/tags/block/incorrect_for_netherite_tool.json new file mode 100644 index 00000000..f72d209d --- /dev/null +++ b/data/minecraft/tags/block/incorrect_for_netherite_tool.json @@ -0,0 +1,3 @@ +{ + "values": [] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/incorrect_for_stone_tool.json b/data/minecraft/tags/block/incorrect_for_stone_tool.json new file mode 100644 index 00000000..1f5e3de8 --- /dev/null +++ b/data/minecraft/tags/block/incorrect_for_stone_tool.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:needs_diamond_tool", + "#minecraft:needs_iron_tool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/incorrect_for_wooden_tool.json b/data/minecraft/tags/block/incorrect_for_wooden_tool.json new file mode 100644 index 00000000..3cecdc74 --- /dev/null +++ b/data/minecraft/tags/block/incorrect_for_wooden_tool.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:needs_diamond_tool", + "#minecraft:needs_iron_tool", + "#minecraft:needs_stone_tool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/infiniburn_end.json b/data/minecraft/tags/block/infiniburn_end.json new file mode 100644 index 00000000..10ebb05e --- /dev/null +++ b/data/minecraft/tags/block/infiniburn_end.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:infiniburn_overworld", + "minecraft:bedrock" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/infiniburn_nether.json b/data/minecraft/tags/block/infiniburn_nether.json new file mode 100644 index 00000000..ba389733 --- /dev/null +++ b/data/minecraft/tags/block/infiniburn_nether.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:infiniburn_overworld" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/infiniburn_overworld.json b/data/minecraft/tags/block/infiniburn_overworld.json new file mode 100644 index 00000000..d6c76a1f --- /dev/null +++ b/data/minecraft/tags/block/infiniburn_overworld.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:netherrack", + "minecraft:magma_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/inside_step_sound_blocks.json b/data/minecraft/tags/block/inside_step_sound_blocks.json new file mode 100644 index 00000000..bd63a6c1 --- /dev/null +++ b/data/minecraft/tags/block/inside_step_sound_blocks.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:powder_snow", + "minecraft:sculk_vein", + "minecraft:glow_lichen", + "minecraft:lily_pad", + "minecraft:small_amethyst_bud", + "minecraft:pink_petals" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/invalid_spawn_inside.json b/data/minecraft/tags/block/invalid_spawn_inside.json new file mode 100644 index 00000000..82f8056b --- /dev/null +++ b/data/minecraft/tags/block/invalid_spawn_inside.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:end_portal", + "minecraft:end_gateway" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/iron_ores.json b/data/minecraft/tags/block/iron_ores.json new file mode 100644 index 00000000..0566d8ab --- /dev/null +++ b/data/minecraft/tags/block/iron_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:iron_ore", + "minecraft:deepslate_iron_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/jungle_logs.json b/data/minecraft/tags/block/jungle_logs.json new file mode 100644 index 00000000..437efbff --- /dev/null +++ b/data/minecraft/tags/block/jungle_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/lapis_ores.json b/data/minecraft/tags/block/lapis_ores.json new file mode 100644 index 00000000..a041526e --- /dev/null +++ b/data/minecraft/tags/block/lapis_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:lapis_ore", + "minecraft:deepslate_lapis_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/lava_pool_stone_cannot_replace.json b/data/minecraft/tags/block/lava_pool_stone_cannot_replace.json new file mode 100644 index 00000000..e2526493 --- /dev/null +++ b/data/minecraft/tags/block/lava_pool_stone_cannot_replace.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:features_cannot_replace", + "#minecraft:leaves", + "#minecraft:logs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/leaves.json b/data/minecraft/tags/block/leaves.json new file mode 100644 index 00000000..6815479c --- /dev/null +++ b/data/minecraft/tags/block/leaves.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves", + "minecraft:azalea_leaves", + "minecraft:flowering_azalea_leaves", + "minecraft:mangrove_leaves", + "minecraft:cherry_leaves" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/logs.json b/data/minecraft/tags/block/logs.json new file mode 100644 index 00000000..234e4fee --- /dev/null +++ b/data/minecraft/tags/block/logs.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:logs_that_burn", + "#minecraft:crimson_stems", + "#minecraft:warped_stems" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/logs_that_burn.json b/data/minecraft/tags/block/logs_that_burn.json new file mode 100644 index 00000000..3b2590c9 --- /dev/null +++ b/data/minecraft/tags/block/logs_that_burn.json @@ -0,0 +1,12 @@ +{ + "values": [ + "#minecraft:dark_oak_logs", + "#minecraft:oak_logs", + "#minecraft:acacia_logs", + "#minecraft:birch_logs", + "#minecraft:jungle_logs", + "#minecraft:spruce_logs", + "#minecraft:mangrove_logs", + "#minecraft:cherry_logs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/lush_ground_replaceable.json b/data/minecraft/tags/block/lush_ground_replaceable.json new file mode 100644 index 00000000..8230f62b --- /dev/null +++ b/data/minecraft/tags/block/lush_ground_replaceable.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:moss_replaceable", + "minecraft:clay", + "minecraft:gravel", + "minecraft:sand" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/maintains_farmland.json b/data/minecraft/tags/block/maintains_farmland.json new file mode 100644 index 00000000..6b1511c6 --- /dev/null +++ b/data/minecraft/tags/block/maintains_farmland.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:pumpkin_stem", + "minecraft:attached_pumpkin_stem", + "minecraft:melon_stem", + "minecraft:attached_melon_stem", + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:torchflower_crop", + "minecraft:torchflower", + "minecraft:pitcher_crop", + "minecraft:wheat" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mangrove_logs.json b/data/minecraft/tags/block/mangrove_logs.json new file mode 100644 index 00000000..d69fadff --- /dev/null +++ b/data/minecraft/tags/block/mangrove_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mangrove_logs_can_grow_through.json b/data/minecraft/tags/block/mangrove_logs_can_grow_through.json new file mode 100644 index 00000000..ab323766 --- /dev/null +++ b/data/minecraft/tags/block/mangrove_logs_can_grow_through.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:mud", + "minecraft:muddy_mangrove_roots", + "minecraft:mangrove_roots", + "minecraft:mangrove_leaves", + "minecraft:mangrove_log", + "minecraft:mangrove_propagule", + "minecraft:moss_carpet", + "minecraft:vine" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mangrove_roots_can_grow_through.json b/data/minecraft/tags/block/mangrove_roots_can_grow_through.json new file mode 100644 index 00000000..07eb0f3e --- /dev/null +++ b/data/minecraft/tags/block/mangrove_roots_can_grow_through.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:mud", + "minecraft:muddy_mangrove_roots", + "minecraft:mangrove_roots", + "minecraft:moss_carpet", + "minecraft:vine", + "minecraft:mangrove_propagule", + "minecraft:snow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mineable/axe.json b/data/minecraft/tags/block/mineable/axe.json new file mode 100644 index 00000000..a5e87dde --- /dev/null +++ b/data/minecraft/tags/block/mineable/axe.json @@ -0,0 +1,90 @@ +{ + "values": [ + "minecraft:note_block", + "minecraft:attached_melon_stem", + "minecraft:attached_pumpkin_stem", + "minecraft:azalea", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:bee_nest", + "minecraft:beehive", + "minecraft:beetroots", + "minecraft:big_dripleaf_stem", + "minecraft:big_dripleaf", + "minecraft:bookshelf", + "minecraft:brown_mushroom_block", + "minecraft:brown_mushroom", + "minecraft:campfire", + "minecraft:carrots", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cave_vines_plant", + "minecraft:cave_vines", + "minecraft:chest", + "minecraft:chorus_flower", + "minecraft:chorus_plant", + "minecraft:cocoa", + "minecraft:composter", + "minecraft:crafting_table", + "minecraft:crimson_fungus", + "minecraft:daylight_detector", + "minecraft:dead_bush", + "minecraft:fern", + "minecraft:fletching_table", + "minecraft:glow_lichen", + "minecraft:short_grass", + "minecraft:hanging_roots", + "minecraft:jack_o_lantern", + "minecraft:jukebox", + "minecraft:ladder", + "minecraft:large_fern", + "minecraft:lectern", + "minecraft:lily_pad", + "minecraft:loom", + "minecraft:melon_stem", + "minecraft:melon", + "minecraft:mushroom_stem", + "minecraft:nether_wart", + "minecraft:potatoes", + "minecraft:pumpkin_stem", + "minecraft:pumpkin", + "minecraft:red_mushroom_block", + "minecraft:red_mushroom", + "minecraft:scaffolding", + "minecraft:small_dripleaf", + "minecraft:smithing_table", + "minecraft:soul_campfire", + "minecraft:spore_blossom", + "minecraft:sugar_cane", + "minecraft:sweet_berry_bush", + "minecraft:tall_grass", + "minecraft:trapped_chest", + "minecraft:twisting_vines_plant", + "minecraft:twisting_vines", + "minecraft:vine", + "minecraft:warped_fungus", + "minecraft:weeping_vines_plant", + "minecraft:weeping_vines", + "minecraft:wheat", + "#minecraft:banners", + "#minecraft:fence_gates", + "#minecraft:logs", + "#minecraft:planks", + "#minecraft:saplings", + "#minecraft:signs", + "#minecraft:wooden_buttons", + "#minecraft:wooden_doors", + "#minecraft:wooden_fences", + "#minecraft:wooden_pressure_plates", + "#minecraft:wooden_slabs", + "#minecraft:wooden_stairs", + "#minecraft:wooden_trapdoors", + "minecraft:mangrove_roots", + "#minecraft:all_hanging_signs", + "minecraft:bamboo_mosaic", + "minecraft:bamboo_mosaic_slab", + "minecraft:bamboo_mosaic_stairs", + "#minecraft:bamboo_blocks", + "minecraft:chiseled_bookshelf" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mineable/hoe.json b/data/minecraft/tags/block/mineable/hoe.json new file mode 100644 index 00000000..d692b729 --- /dev/null +++ b/data/minecraft/tags/block/mineable/hoe.json @@ -0,0 +1,31 @@ +{ + "values": [ + "minecraft:nether_wart_block", + "minecraft:warped_wart_block", + "minecraft:hay_block", + "minecraft:dried_kelp_block", + "minecraft:target", + "minecraft:shroomlight", + "minecraft:sponge", + "minecraft:wet_sponge", + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves", + "minecraft:azalea_leaves", + "minecraft:flowering_azalea_leaves", + "minecraft:mangrove_leaves", + "minecraft:sculk_sensor", + "minecraft:calibrated_sculk_sensor", + "minecraft:moss_block", + "minecraft:moss_carpet", + "minecraft:sculk", + "minecraft:sculk_catalyst", + "minecraft:sculk_vein", + "minecraft:sculk_shrieker", + "minecraft:pink_petals", + "minecraft:cherry_leaves" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mineable/pickaxe.json b/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 00000000..0cdbf154 --- /dev/null +++ b/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,388 @@ +{ + "values": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:polished_granite", + "minecraft:diorite", + "minecraft:polished_diorite", + "minecraft:andesite", + "minecraft:polished_andesite", + "minecraft:cobblestone", + "minecraft:gold_ore", + "minecraft:deepslate_gold_ore", + "minecraft:iron_ore", + "minecraft:deepslate_iron_ore", + "minecraft:coal_ore", + "minecraft:deepslate_coal_ore", + "minecraft:nether_gold_ore", + "minecraft:lapis_ore", + "minecraft:deepslate_lapis_ore", + "minecraft:lapis_block", + "minecraft:dispenser", + "minecraft:sandstone", + "minecraft:chiseled_sandstone", + "minecraft:cut_sandstone", + "minecraft:gold_block", + "minecraft:iron_block", + "minecraft:bricks", + "minecraft:mossy_cobblestone", + "minecraft:obsidian", + "minecraft:spawner", + "minecraft:diamond_ore", + "minecraft:deepslate_diamond_ore", + "minecraft:diamond_block", + "minecraft:furnace", + "minecraft:cobblestone_stairs", + "minecraft:stone_pressure_plate", + "minecraft:iron_door", + "minecraft:redstone_ore", + "minecraft:deepslate_redstone_ore", + "minecraft:netherrack", + "minecraft:basalt", + "minecraft:polished_basalt", + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks", + "minecraft:iron_bars", + "minecraft:chain", + "minecraft:brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:nether_bricks", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_stairs", + "minecraft:enchanting_table", + "minecraft:brewing_stand", + "minecraft:end_stone", + "minecraft:sandstone_stairs", + "minecraft:emerald_ore", + "minecraft:deepslate_emerald_ore", + "minecraft:ender_chest", + "minecraft:emerald_block", + "minecraft:light_weighted_pressure_plate", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:redstone_block", + "minecraft:nether_quartz_ore", + "minecraft:hopper", + "minecraft:quartz_block", + "minecraft:chiseled_quartz_block", + "minecraft:quartz_pillar", + "minecraft:quartz_stairs", + "minecraft:dropper", + "minecraft:white_terracotta", + "minecraft:orange_terracotta", + "minecraft:magenta_terracotta", + "minecraft:light_blue_terracotta", + "minecraft:yellow_terracotta", + "minecraft:lime_terracotta", + "minecraft:pink_terracotta", + "minecraft:gray_terracotta", + "minecraft:light_gray_terracotta", + "minecraft:cyan_terracotta", + "minecraft:purple_terracotta", + "minecraft:blue_terracotta", + "minecraft:brown_terracotta", + "minecraft:green_terracotta", + "minecraft:red_terracotta", + "minecraft:black_terracotta", + "minecraft:iron_trapdoor", + "minecraft:prismarine", + "minecraft:prismarine_bricks", + "minecraft:dark_prismarine", + "minecraft:prismarine_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:terracotta", + "minecraft:coal_block", + "minecraft:red_sandstone", + "minecraft:chiseled_red_sandstone", + "minecraft:cut_red_sandstone", + "minecraft:red_sandstone_stairs", + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:sandstone_slab", + "minecraft:cut_sandstone_slab", + "minecraft:petrified_oak_slab", + "minecraft:cobblestone_slab", + "minecraft:brick_slab", + "minecraft:stone_brick_slab", + "minecraft:nether_brick_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:purpur_slab", + "minecraft:smooth_stone", + "minecraft:smooth_sandstone", + "minecraft:smooth_quartz", + "minecraft:smooth_red_sandstone", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_stairs", + "minecraft:end_stone_bricks", + "minecraft:magma_block", + "minecraft:red_nether_bricks", + "minecraft:bone_block", + "minecraft:observer", + "minecraft:white_glazed_terracotta", + "minecraft:orange_glazed_terracotta", + "minecraft:magenta_glazed_terracotta", + "minecraft:light_blue_glazed_terracotta", + "minecraft:yellow_glazed_terracotta", + "minecraft:lime_glazed_terracotta", + "minecraft:pink_glazed_terracotta", + "minecraft:gray_glazed_terracotta", + "minecraft:light_gray_glazed_terracotta", + "minecraft:cyan_glazed_terracotta", + "minecraft:purple_glazed_terracotta", + "minecraft:blue_glazed_terracotta", + "minecraft:brown_glazed_terracotta", + "minecraft:green_glazed_terracotta", + "minecraft:red_glazed_terracotta", + "minecraft:black_glazed_terracotta", + "minecraft:white_concrete", + "minecraft:orange_concrete", + "minecraft:magenta_concrete", + "minecraft:light_blue_concrete", + "minecraft:yellow_concrete", + "minecraft:lime_concrete", + "minecraft:pink_concrete", + "minecraft:gray_concrete", + "minecraft:light_gray_concrete", + "minecraft:cyan_concrete", + "minecraft:purple_concrete", + "minecraft:blue_concrete", + "minecraft:brown_concrete", + "minecraft:green_concrete", + "minecraft:red_concrete", + "minecraft:black_concrete", + "minecraft:dead_tube_coral_block", + "minecraft:dead_brain_coral_block", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_fire_coral_block", + "minecraft:dead_horn_coral_block", + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block", + "minecraft:dead_tube_coral", + "minecraft:dead_brain_coral", + "minecraft:dead_bubble_coral", + "minecraft:dead_fire_coral", + "minecraft:dead_horn_coral", + "minecraft:dead_tube_coral_fan", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral_wall_fan", + "minecraft:dead_brain_coral_wall_fan", + "minecraft:dead_bubble_coral_wall_fan", + "minecraft:dead_fire_coral_wall_fan", + "minecraft:dead_horn_coral_wall_fan", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:smoker", + "minecraft:blast_furnace", + "minecraft:grindstone", + "minecraft:stonecutter", + "minecraft:bell", + "minecraft:lantern", + "minecraft:soul_lantern", + "minecraft:warped_nylium", + "minecraft:crimson_nylium", + "minecraft:netherite_block", + "minecraft:ancient_debris", + "minecraft:crying_obsidian", + "minecraft:respawn_anchor", + "minecraft:lodestone", + "minecraft:blackstone", + "minecraft:blackstone_stairs", + "minecraft:blackstone_slab", + "minecraft:polished_blackstone", + "minecraft:polished_blackstone_bricks", + "minecraft:cracked_polished_blackstone_bricks", + "minecraft:chiseled_polished_blackstone", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:gilded_blackstone", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_blackstone_slab", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:chiseled_nether_bricks", + "minecraft:cracked_nether_bricks", + "minecraft:quartz_bricks", + "minecraft:tuff", + "minecraft:calcite", + "minecraft:oxidized_copper", + "minecraft:weathered_copper", + "minecraft:exposed_copper", + "minecraft:copper_block", + "minecraft:copper_ore", + "minecraft:deepslate_copper_ore", + "minecraft:oxidized_cut_copper", + "minecraft:weathered_cut_copper", + "minecraft:exposed_cut_copper", + "minecraft:cut_copper", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:weathered_cut_copper_stairs", + "minecraft:exposed_cut_copper_stairs", + "minecraft:cut_copper_stairs", + "minecraft:oxidized_cut_copper_slab", + "minecraft:weathered_cut_copper_slab", + "minecraft:exposed_cut_copper_slab", + "minecraft:cut_copper_slab", + "minecraft:waxed_copper_block", + "minecraft:waxed_weathered_copper", + "minecraft:waxed_exposed_copper", + "minecraft:waxed_oxidized_copper", + "minecraft:waxed_oxidized_cut_copper", + "minecraft:waxed_weathered_cut_copper", + "minecraft:waxed_exposed_cut_copper", + "minecraft:waxed_cut_copper", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_cut_copper_slab", + "minecraft:lightning_rod", + "minecraft:pointed_dripstone", + "minecraft:dripstone_block", + "minecraft:deepslate", + "minecraft:cobbled_deepslate", + "minecraft:cobbled_deepslate_stairs", + "minecraft:cobbled_deepslate_slab", + "minecraft:polished_deepslate", + "minecraft:polished_deepslate_stairs", + "minecraft:polished_deepslate_slab", + "minecraft:deepslate_tiles", + "minecraft:deepslate_tile_stairs", + "minecraft:deepslate_tile_slab", + "minecraft:deepslate_bricks", + "minecraft:deepslate_brick_stairs", + "minecraft:deepslate_brick_slab", + "minecraft:chiseled_deepslate", + "minecraft:cracked_deepslate_bricks", + "minecraft:cracked_deepslate_tiles", + "minecraft:smooth_basalt", + "minecraft:raw_iron_block", + "minecraft:raw_copper_block", + "minecraft:raw_gold_block", + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:piston", + "minecraft:sticky_piston", + "minecraft:piston_head", + "minecraft:amethyst_cluster", + "minecraft:small_amethyst_bud", + "minecraft:medium_amethyst_bud", + "minecraft:large_amethyst_bud", + "minecraft:amethyst_block", + "minecraft:budding_amethyst", + "minecraft:infested_cobblestone", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_deepslate", + "minecraft:infested_stone", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone_bricks", + "#minecraft:stone_buttons", + "#minecraft:walls", + "#minecraft:shulker_boxes", + "#minecraft:anvil", + "#minecraft:cauldrons", + "#minecraft:rails", + "minecraft:conduit", + "minecraft:mud_bricks", + "minecraft:mud_brick_stairs", + "minecraft:mud_brick_slab", + "minecraft:packed_mud", + "minecraft:crafter", + "minecraft:tuff_slab", + "minecraft:tuff_stairs", + "minecraft:tuff_wall", + "minecraft:chiseled_tuff", + "minecraft:polished_tuff", + "minecraft:polished_tuff_slab", + "minecraft:polished_tuff_stairs", + "minecraft:polished_tuff_wall", + "minecraft:tuff_bricks", + "minecraft:tuff_brick_slab", + "minecraft:tuff_brick_stairs", + "minecraft:tuff_brick_wall", + "minecraft:chiseled_tuff_bricks", + "minecraft:chiseled_copper", + "minecraft:exposed_chiseled_copper", + "minecraft:weathered_chiseled_copper", + "minecraft:oxidized_chiseled_copper", + "minecraft:waxed_chiseled_copper", + "minecraft:waxed_exposed_chiseled_copper", + "minecraft:waxed_weathered_chiseled_copper", + "minecraft:waxed_oxidized_chiseled_copper", + "minecraft:copper_grate", + "minecraft:exposed_copper_grate", + "minecraft:weathered_copper_grate", + "minecraft:oxidized_copper_grate", + "minecraft:waxed_copper_grate", + "minecraft:waxed_exposed_copper_grate", + "minecraft:waxed_weathered_copper_grate", + "minecraft:waxed_oxidized_copper_grate", + "minecraft:copper_bulb", + "minecraft:exposed_copper_bulb", + "minecraft:weathered_copper_bulb", + "minecraft:oxidized_copper_bulb", + "minecraft:waxed_copper_bulb", + "minecraft:waxed_exposed_copper_bulb", + "minecraft:waxed_weathered_copper_bulb", + "minecraft:waxed_oxidized_copper_bulb", + "minecraft:copper_door", + "minecraft:exposed_copper_door", + "minecraft:weathered_copper_door", + "minecraft:oxidized_copper_door", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:waxed_oxidized_copper_door", + "minecraft:copper_trapdoor", + "minecraft:exposed_copper_trapdoor", + "minecraft:weathered_copper_trapdoor", + "minecraft:oxidized_copper_trapdoor", + "minecraft:waxed_copper_trapdoor", + "minecraft:waxed_exposed_copper_trapdoor", + "minecraft:waxed_weathered_copper_trapdoor", + "minecraft:waxed_oxidized_copper_trapdoor", + "minecraft:heavy_core" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mineable/shovel.json b/data/minecraft/tags/block/mineable/shovel.json new file mode 100644 index 00000000..2660e223 --- /dev/null +++ b/data/minecraft/tags/block/mineable/shovel.json @@ -0,0 +1,25 @@ +{ + "values": [ + "minecraft:clay", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:farmland", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:mycelium", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:snow_block", + "minecraft:snow", + "minecraft:soul_sand", + "minecraft:dirt_path", + "minecraft:soul_soil", + "minecraft:rooted_dirt", + "minecraft:muddy_mangrove_roots", + "minecraft:mud", + "minecraft:suspicious_sand", + "minecraft:suspicious_gravel", + "#minecraft:concrete_powder" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mob_interactable_doors.json b/data/minecraft/tags/block/mob_interactable_doors.json new file mode 100644 index 00000000..fe5c57d3 --- /dev/null +++ b/data/minecraft/tags/block/mob_interactable_doors.json @@ -0,0 +1,13 @@ +{ + "values": [ + "#minecraft:wooden_doors", + "minecraft:copper_door", + "minecraft:exposed_copper_door", + "minecraft:weathered_copper_door", + "minecraft:oxidized_copper_door", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:waxed_oxidized_copper_door" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mooshrooms_spawnable_on.json b/data/minecraft/tags/block/mooshrooms_spawnable_on.json new file mode 100644 index 00000000..a5e4042d --- /dev/null +++ b/data/minecraft/tags/block/mooshrooms_spawnable_on.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mycelium" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/moss_replaceable.json b/data/minecraft/tags/block/moss_replaceable.json new file mode 100644 index 00000000..dd51f42e --- /dev/null +++ b/data/minecraft/tags/block/moss_replaceable.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:base_stone_overworld", + "#minecraft:cave_vines", + "#minecraft:dirt" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/mushroom_grow_block.json b/data/minecraft/tags/block/mushroom_grow_block.json new file mode 100644 index 00000000..a65b470b --- /dev/null +++ b/data/minecraft/tags/block/mushroom_grow_block.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:crimson_nylium", + "minecraft:warped_nylium" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/needs_diamond_tool.json b/data/minecraft/tags/block/needs_diamond_tool.json new file mode 100644 index 00000000..f3c60ba6 --- /dev/null +++ b/data/minecraft/tags/block/needs_diamond_tool.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:obsidian", + "minecraft:crying_obsidian", + "minecraft:netherite_block", + "minecraft:respawn_anchor", + "minecraft:ancient_debris" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/needs_iron_tool.json b/data/minecraft/tags/block/needs_iron_tool.json new file mode 100644 index 00000000..7a21ba46 --- /dev/null +++ b/data/minecraft/tags/block/needs_iron_tool.json @@ -0,0 +1,16 @@ +{ + "values": [ + "minecraft:diamond_block", + "minecraft:diamond_ore", + "minecraft:deepslate_diamond_ore", + "minecraft:emerald_ore", + "minecraft:deepslate_emerald_ore", + "minecraft:emerald_block", + "minecraft:gold_block", + "minecraft:raw_gold_block", + "minecraft:gold_ore", + "minecraft:deepslate_gold_ore", + "minecraft:redstone_ore", + "minecraft:deepslate_redstone_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/needs_stone_tool.json b/data/minecraft/tags/block/needs_stone_tool.json new file mode 100644 index 00000000..52ac1ec3 --- /dev/null +++ b/data/minecraft/tags/block/needs_stone_tool.json @@ -0,0 +1,88 @@ +{ + "values": [ + "minecraft:iron_block", + "minecraft:raw_iron_block", + "minecraft:iron_ore", + "minecraft:deepslate_iron_ore", + "minecraft:lapis_block", + "minecraft:lapis_ore", + "minecraft:deepslate_lapis_ore", + "minecraft:copper_block", + "minecraft:raw_copper_block", + "minecraft:copper_ore", + "minecraft:deepslate_copper_ore", + "minecraft:cut_copper_slab", + "minecraft:cut_copper_stairs", + "minecraft:cut_copper", + "minecraft:weathered_copper", + "minecraft:weathered_cut_copper_slab", + "minecraft:weathered_cut_copper_stairs", + "minecraft:weathered_cut_copper", + "minecraft:oxidized_copper", + "minecraft:oxidized_cut_copper_slab", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:oxidized_cut_copper", + "minecraft:exposed_copper", + "minecraft:exposed_cut_copper_slab", + "minecraft:exposed_cut_copper_stairs", + "minecraft:exposed_cut_copper", + "minecraft:waxed_copper_block", + "minecraft:waxed_cut_copper_slab", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_cut_copper", + "minecraft:waxed_weathered_copper", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:waxed_weathered_cut_copper", + "minecraft:waxed_exposed_copper", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_exposed_cut_copper", + "minecraft:waxed_oxidized_copper", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_oxidized_cut_copper", + "minecraft:lightning_rod", + "minecraft:crafter", + "minecraft:chiseled_copper", + "minecraft:exposed_chiseled_copper", + "minecraft:weathered_chiseled_copper", + "minecraft:oxidized_chiseled_copper", + "minecraft:waxed_chiseled_copper", + "minecraft:waxed_exposed_chiseled_copper", + "minecraft:waxed_weathered_chiseled_copper", + "minecraft:waxed_oxidized_chiseled_copper", + "minecraft:copper_grate", + "minecraft:exposed_copper_grate", + "minecraft:weathered_copper_grate", + "minecraft:oxidized_copper_grate", + "minecraft:waxed_copper_grate", + "minecraft:waxed_exposed_copper_grate", + "minecraft:waxed_weathered_copper_grate", + "minecraft:waxed_oxidized_copper_grate", + "minecraft:copper_bulb", + "minecraft:exposed_copper_bulb", + "minecraft:weathered_copper_bulb", + "minecraft:oxidized_copper_bulb", + "minecraft:waxed_copper_bulb", + "minecraft:waxed_exposed_copper_bulb", + "minecraft:waxed_weathered_copper_bulb", + "minecraft:waxed_oxidized_copper_bulb", + "minecraft:copper_trapdoor", + "minecraft:exposed_copper_trapdoor", + "minecraft:weathered_copper_trapdoor", + "minecraft:oxidized_copper_trapdoor", + "minecraft:waxed_copper_trapdoor", + "minecraft:waxed_exposed_copper_trapdoor", + "minecraft:waxed_weathered_copper_trapdoor", + "minecraft:waxed_oxidized_copper_trapdoor", + "minecraft:copper_door", + "minecraft:exposed_copper_door", + "minecraft:weathered_copper_door", + "minecraft:oxidized_copper_door", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:waxed_oxidized_copper_door" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/nether_carver_replaceables.json b/data/minecraft/tags/block/nether_carver_replaceables.json new file mode 100644 index 00000000..84aa7a20 --- /dev/null +++ b/data/minecraft/tags/block/nether_carver_replaceables.json @@ -0,0 +1,11 @@ +{ + "values": [ + "#minecraft:base_stone_overworld", + "#minecraft:base_stone_nether", + "#minecraft:dirt", + "#minecraft:nylium", + "#minecraft:wart_blocks", + "minecraft:soul_sand", + "minecraft:soul_soil" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/nylium.json b/data/minecraft/tags/block/nylium.json new file mode 100644 index 00000000..7fbae3ce --- /dev/null +++ b/data/minecraft/tags/block/nylium.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:crimson_nylium", + "minecraft:warped_nylium" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/oak_logs.json b/data/minecraft/tags/block/oak_logs.json new file mode 100644 index 00000000..d4bae2a2 --- /dev/null +++ b/data/minecraft/tags/block/oak_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/occludes_vibration_signals.json b/data/minecraft/tags/block/occludes_vibration_signals.json new file mode 100644 index 00000000..495a1df4 --- /dev/null +++ b/data/minecraft/tags/block/occludes_vibration_signals.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:wool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/overworld_carver_replaceables.json b/data/minecraft/tags/block/overworld_carver_replaceables.json new file mode 100644 index 00000000..60bfd842 --- /dev/null +++ b/data/minecraft/tags/block/overworld_carver_replaceables.json @@ -0,0 +1,20 @@ +{ + "values": [ + "#minecraft:base_stone_overworld", + "#minecraft:dirt", + "#minecraft:sand", + "#minecraft:terracotta", + "#minecraft:iron_ores", + "#minecraft:copper_ores", + "minecraft:water", + "minecraft:gravel", + "minecraft:suspicious_gravel", + "minecraft:sandstone", + "minecraft:red_sandstone", + "minecraft:calcite", + "minecraft:snow", + "minecraft:packed_ice", + "minecraft:raw_iron_block", + "minecraft:raw_copper_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/overworld_natural_logs.json b/data/minecraft/tags/block/overworld_natural_logs.json new file mode 100644 index 00000000..b3f1520d --- /dev/null +++ b/data/minecraft/tags/block/overworld_natural_logs.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:acacia_log", + "minecraft:birch_log", + "minecraft:oak_log", + "minecraft:jungle_log", + "minecraft:spruce_log", + "minecraft:dark_oak_log", + "minecraft:mangrove_log", + "minecraft:cherry_log" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/parrots_spawnable_on.json b/data/minecraft/tags/block/parrots_spawnable_on.json new file mode 100644 index 00000000..aaa88e4e --- /dev/null +++ b/data/minecraft/tags/block/parrots_spawnable_on.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:grass_block", + "minecraft:air", + "#minecraft:leaves", + "#minecraft:logs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/piglin_repellents.json b/data/minecraft/tags/block/piglin_repellents.json new file mode 100644 index 00000000..73820539 --- /dev/null +++ b/data/minecraft/tags/block/piglin_repellents.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:soul_fire", + "minecraft:soul_torch", + "minecraft:soul_lantern", + "minecraft:soul_wall_torch", + "minecraft:soul_campfire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/planks.json b/data/minecraft/tags/block/planks.json new file mode 100644 index 00000000..a8ff5bb5 --- /dev/null +++ b/data/minecraft/tags/block/planks.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks", + "minecraft:crimson_planks", + "minecraft:warped_planks", + "minecraft:mangrove_planks", + "minecraft:bamboo_planks", + "minecraft:cherry_planks" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/polar_bears_spawnable_on_alternate.json b/data/minecraft/tags/block/polar_bears_spawnable_on_alternate.json new file mode 100644 index 00000000..d08f7cca --- /dev/null +++ b/data/minecraft/tags/block/polar_bears_spawnable_on_alternate.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:ice" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/portals.json b/data/minecraft/tags/block/portals.json new file mode 100644 index 00000000..bb47430c --- /dev/null +++ b/data/minecraft/tags/block/portals.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:nether_portal", + "minecraft:end_portal", + "minecraft:end_gateway" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/pressure_plates.json b/data/minecraft/tags/block/pressure_plates.json new file mode 100644 index 00000000..dbcd3df0 --- /dev/null +++ b/data/minecraft/tags/block/pressure_plates.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:light_weighted_pressure_plate", + "minecraft:heavy_weighted_pressure_plate", + "#minecraft:wooden_pressure_plates", + "#minecraft:stone_pressure_plates" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/prevent_mob_spawning_inside.json b/data/minecraft/tags/block/prevent_mob_spawning_inside.json new file mode 100644 index 00000000..69f0511d --- /dev/null +++ b/data/minecraft/tags/block/prevent_mob_spawning_inside.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:rails" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/rabbits_spawnable_on.json b/data/minecraft/tags/block/rabbits_spawnable_on.json new file mode 100644 index 00000000..4618ed4d --- /dev/null +++ b/data/minecraft/tags/block/rabbits_spawnable_on.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:grass_block", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:sand" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/rails.json b/data/minecraft/tags/block/rails.json new file mode 100644 index 00000000..ba7e2c11 --- /dev/null +++ b/data/minecraft/tags/block/rails.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/redstone_ores.json b/data/minecraft/tags/block/redstone_ores.json new file mode 100644 index 00000000..2fd184de --- /dev/null +++ b/data/minecraft/tags/block/redstone_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:redstone_ore", + "minecraft:deepslate_redstone_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/replaceable.json b/data/minecraft/tags/block/replaceable.json new file mode 100644 index 00000000..d4e6df2e --- /dev/null +++ b/data/minecraft/tags/block/replaceable.json @@ -0,0 +1,28 @@ +{ + "values": [ + "minecraft:air", + "minecraft:water", + "minecraft:lava", + "minecraft:short_grass", + "minecraft:fern", + "minecraft:dead_bush", + "minecraft:seagrass", + "minecraft:tall_seagrass", + "minecraft:fire", + "minecraft:soul_fire", + "minecraft:snow", + "minecraft:vine", + "minecraft:glow_lichen", + "minecraft:light", + "minecraft:tall_grass", + "minecraft:large_fern", + "minecraft:structure_void", + "minecraft:void_air", + "minecraft:cave_air", + "minecraft:bubble_column", + "minecraft:warped_roots", + "minecraft:nether_sprouts", + "minecraft:crimson_roots", + "minecraft:hanging_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/replaceable_by_trees.json b/data/minecraft/tags/block/replaceable_by_trees.json new file mode 100644 index 00000000..9e7856bf --- /dev/null +++ b/data/minecraft/tags/block/replaceable_by_trees.json @@ -0,0 +1,24 @@ +{ + "values": [ + "#minecraft:leaves", + "minecraft:short_grass", + "minecraft:fern", + "minecraft:dead_bush", + "minecraft:vine", + "minecraft:glow_lichen", + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:rose_bush", + "minecraft:peony", + "minecraft:tall_grass", + "minecraft:large_fern", + "minecraft:hanging_roots", + "minecraft:pitcher_plant", + "minecraft:water", + "minecraft:seagrass", + "minecraft:tall_seagrass", + "minecraft:warped_roots", + "minecraft:nether_sprouts", + "minecraft:crimson_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/sand.json b/data/minecraft/tags/block/sand.json new file mode 100644 index 00000000..669a6508 --- /dev/null +++ b/data/minecraft/tags/block/sand.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:sand", + "minecraft:red_sand", + "minecraft:suspicious_sand", + "minecraft:suspicious_sand" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/saplings.json b/data/minecraft/tags/block/saplings.json new file mode 100644 index 00000000..cebde163 --- /dev/null +++ b/data/minecraft/tags/block/saplings.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling", + "minecraft:azalea", + "minecraft:flowering_azalea", + "minecraft:mangrove_propagule", + "minecraft:cherry_sapling" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/sculk_replaceable.json b/data/minecraft/tags/block/sculk_replaceable.json new file mode 100644 index 00000000..003d3343 --- /dev/null +++ b/data/minecraft/tags/block/sculk_replaceable.json @@ -0,0 +1,21 @@ +{ + "values": [ + "#minecraft:base_stone_overworld", + "#minecraft:dirt", + "#minecraft:terracotta", + "#minecraft:nylium", + "#minecraft:base_stone_nether", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:soul_sand", + "minecraft:soul_soil", + "minecraft:calcite", + "minecraft:smooth_basalt", + "minecraft:clay", + "minecraft:dripstone_block", + "minecraft:end_stone", + "minecraft:red_sandstone", + "minecraft:sandstone" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/sculk_replaceable_world_gen.json b/data/minecraft/tags/block/sculk_replaceable_world_gen.json new file mode 100644 index 00000000..d1ee2653 --- /dev/null +++ b/data/minecraft/tags/block/sculk_replaceable_world_gen.json @@ -0,0 +1,11 @@ +{ + "values": [ + "#minecraft:sculk_replaceable", + "minecraft:deepslate_bricks", + "minecraft:deepslate_tiles", + "minecraft:cobbled_deepslate", + "minecraft:cracked_deepslate_bricks", + "minecraft:cracked_deepslate_tiles", + "minecraft:polished_deepslate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/shulker_boxes.json b/data/minecraft/tags/block/shulker_boxes.json new file mode 100644 index 00000000..525e33e9 --- /dev/null +++ b/data/minecraft/tags/block/shulker_boxes.json @@ -0,0 +1,21 @@ +{ + "values": [ + "minecraft:shulker_box", + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/signs.json b/data/minecraft/tags/block/signs.json new file mode 100644 index 00000000..78c89c18 --- /dev/null +++ b/data/minecraft/tags/block/signs.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:standing_signs", + "#minecraft:wall_signs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/slabs.json b/data/minecraft/tags/block/slabs.json new file mode 100644 index 00000000..0f3f5aea --- /dev/null +++ b/data/minecraft/tags/block/slabs.json @@ -0,0 +1,54 @@ +{ + "values": [ + "#minecraft:wooden_slabs", + "minecraft:bamboo_mosaic_slab", + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:blackstone_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:cobbled_deepslate_slab", + "minecraft:polished_deepslate_slab", + "minecraft:deepslate_tile_slab", + "minecraft:deepslate_brick_slab", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_cut_copper_slab", + "minecraft:oxidized_cut_copper_slab", + "minecraft:weathered_cut_copper_slab", + "minecraft:exposed_cut_copper_slab", + "minecraft:cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:mud_brick_slab", + "minecraft:tuff_slab", + "minecraft:polished_tuff_slab", + "minecraft:tuff_brick_slab" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/small_dripleaf_placeable.json b/data/minecraft/tags/block/small_dripleaf_placeable.json new file mode 100644 index 00000000..57fb0315 --- /dev/null +++ b/data/minecraft/tags/block/small_dripleaf_placeable.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:clay", + "minecraft:moss_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/small_flowers.json b/data/minecraft/tags/block/small_flowers.json new file mode 100644 index 00000000..2477625f --- /dev/null +++ b/data/minecraft/tags/block/small_flowers.json @@ -0,0 +1,18 @@ +{ + "values": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose", + "minecraft:torchflower" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/smelts_to_glass.json b/data/minecraft/tags/block/smelts_to_glass.json new file mode 100644 index 00000000..3d8220ec --- /dev/null +++ b/data/minecraft/tags/block/smelts_to_glass.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:sand", + "minecraft:red_sand" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/snaps_goat_horn.json b/data/minecraft/tags/block/snaps_goat_horn.json new file mode 100644 index 00000000..910be36c --- /dev/null +++ b/data/minecraft/tags/block/snaps_goat_horn.json @@ -0,0 +1,11 @@ +{ + "values": [ + "#minecraft:overworld_natural_logs", + "minecraft:stone", + "minecraft:packed_ice", + "minecraft:iron_ore", + "minecraft:coal_ore", + "minecraft:copper_ore", + "minecraft:emerald_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/sniffer_diggable_block.json b/data/minecraft/tags/block/sniffer_diggable_block.json new file mode 100644 index 00000000..2aead93a --- /dev/null +++ b/data/minecraft/tags/block/sniffer_diggable_block.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:rooted_dirt", + "minecraft:moss_block", + "minecraft:mud", + "minecraft:muddy_mangrove_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/sniffer_egg_hatch_boost.json b/data/minecraft/tags/block/sniffer_egg_hatch_boost.json new file mode 100644 index 00000000..a7ff8e19 --- /dev/null +++ b/data/minecraft/tags/block/sniffer_egg_hatch_boost.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:moss_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/snow.json b/data/minecraft/tags/block/snow.json new file mode 100644 index 00000000..498129db --- /dev/null +++ b/data/minecraft/tags/block/snow.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:snow", + "minecraft:snow_block", + "minecraft:powder_snow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/snow_layer_can_survive_on.json b/data/minecraft/tags/block/snow_layer_can_survive_on.json new file mode 100644 index 00000000..a06843ad --- /dev/null +++ b/data/minecraft/tags/block/snow_layer_can_survive_on.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:honey_block", + "minecraft:soul_sand", + "minecraft:mud" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/snow_layer_cannot_survive_on.json b/data/minecraft/tags/block/snow_layer_cannot_survive_on.json new file mode 100644 index 00000000..3c125afc --- /dev/null +++ b/data/minecraft/tags/block/snow_layer_cannot_survive_on.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:barrier" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/soul_fire_base_blocks.json b/data/minecraft/tags/block/soul_fire_base_blocks.json new file mode 100644 index 00000000..e8aa4afd --- /dev/null +++ b/data/minecraft/tags/block/soul_fire_base_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/soul_speed_blocks.json b/data/minecraft/tags/block/soul_speed_blocks.json new file mode 100644 index 00000000..e8aa4afd --- /dev/null +++ b/data/minecraft/tags/block/soul_speed_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/spruce_logs.json b/data/minecraft/tags/block/spruce_logs.json new file mode 100644 index 00000000..a8008420 --- /dev/null +++ b/data/minecraft/tags/block/spruce_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/stairs.json b/data/minecraft/tags/block/stairs.json new file mode 100644 index 00000000..eb67a9fe --- /dev/null +++ b/data/minecraft/tags/block/stairs.json @@ -0,0 +1,50 @@ +{ + "values": [ + "#minecraft:wooden_stairs", + "minecraft:bamboo_mosaic_stairs", + "minecraft:cobblestone_stairs", + "minecraft:sandstone_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs", + "minecraft:blackstone_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:cobbled_deepslate_stairs", + "minecraft:polished_deepslate_stairs", + "minecraft:deepslate_tile_stairs", + "minecraft:deepslate_brick_stairs", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:weathered_cut_copper_stairs", + "minecraft:exposed_cut_copper_stairs", + "minecraft:cut_copper_stairs", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:mud_brick_stairs", + "minecraft:tuff_stairs", + "minecraft:polished_tuff_stairs", + "minecraft:tuff_brick_stairs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/standing_signs.json b/data/minecraft/tags/block/standing_signs.json new file mode 100644 index 00000000..7b4ddb48 --- /dev/null +++ b/data/minecraft/tags/block/standing_signs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:crimson_sign", + "minecraft:warped_sign", + "minecraft:mangrove_sign", + "minecraft:bamboo_sign", + "minecraft:cherry_sign" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/stone_bricks.json b/data/minecraft/tags/block/stone_bricks.json new file mode 100644 index 00000000..973064b9 --- /dev/null +++ b/data/minecraft/tags/block/stone_bricks.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/stone_buttons.json b/data/minecraft/tags/block/stone_buttons.json new file mode 100644 index 00000000..decb592a --- /dev/null +++ b/data/minecraft/tags/block/stone_buttons.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:stone_button", + "minecraft:polished_blackstone_button" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/stone_ore_replaceables.json b/data/minecraft/tags/block/stone_ore_replaceables.json new file mode 100644 index 00000000..0269200f --- /dev/null +++ b/data/minecraft/tags/block/stone_ore_replaceables.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/stone_pressure_plates.json b/data/minecraft/tags/block/stone_pressure_plates.json new file mode 100644 index 00000000..ca6a4e95 --- /dev/null +++ b/data/minecraft/tags/block/stone_pressure_plates.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:stone_pressure_plate", + "minecraft:polished_blackstone_pressure_plate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/strider_warm_blocks.json b/data/minecraft/tags/block/strider_warm_blocks.json new file mode 100644 index 00000000..27562834 --- /dev/null +++ b/data/minecraft/tags/block/strider_warm_blocks.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:lava" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/sword_efficient.json b/data/minecraft/tags/block/sword_efficient.json new file mode 100644 index 00000000..57670bed --- /dev/null +++ b/data/minecraft/tags/block/sword_efficient.json @@ -0,0 +1,54 @@ +{ + "values": [ + "#minecraft:leaves", + "#minecraft:saplings", + "#minecraft:small_flowers", + "#minecraft:crops", + "minecraft:short_grass", + "minecraft:fern", + "minecraft:dead_bush", + "minecraft:vine", + "minecraft:glow_lichen", + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:rose_bush", + "minecraft:peony", + "minecraft:tall_grass", + "minecraft:large_fern", + "minecraft:hanging_roots", + "minecraft:pitcher_plant", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:sugar_cane", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:jack_o_lantern", + "minecraft:melon", + "minecraft:attached_pumpkin_stem", + "minecraft:attached_melon_stem", + "minecraft:lily_pad", + "minecraft:cocoa", + "minecraft:pitcher_crop", + "minecraft:sweet_berry_bush", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:spore_blossom", + "minecraft:moss_carpet", + "minecraft:pink_petals", + "minecraft:big_dripleaf", + "minecraft:big_dripleaf_stem", + "minecraft:small_dripleaf", + "minecraft:nether_wart", + "minecraft:warped_fungus", + "minecraft:warped_roots", + "minecraft:nether_sprouts", + "minecraft:crimson_fungus", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:crimson_roots", + "minecraft:chorus_plant", + "minecraft:chorus_flower" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/tall_flowers.json b/data/minecraft/tags/block/tall_flowers.json new file mode 100644 index 00000000..144eb89e --- /dev/null +++ b/data/minecraft/tags/block/tall_flowers.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush", + "minecraft:pitcher_plant" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/terracotta.json b/data/minecraft/tags/block/terracotta.json new file mode 100644 index 00000000..27aac67a --- /dev/null +++ b/data/minecraft/tags/block/terracotta.json @@ -0,0 +1,21 @@ +{ + "values": [ + "minecraft:terracotta", + "minecraft:white_terracotta", + "minecraft:orange_terracotta", + "minecraft:magenta_terracotta", + "minecraft:light_blue_terracotta", + "minecraft:yellow_terracotta", + "minecraft:lime_terracotta", + "minecraft:pink_terracotta", + "minecraft:gray_terracotta", + "minecraft:light_gray_terracotta", + "minecraft:cyan_terracotta", + "minecraft:purple_terracotta", + "minecraft:blue_terracotta", + "minecraft:brown_terracotta", + "minecraft:green_terracotta", + "minecraft:red_terracotta", + "minecraft:black_terracotta" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/trail_ruins_replaceable.json b/data/minecraft/tags/block/trail_ruins_replaceable.json new file mode 100644 index 00000000..f6968bff --- /dev/null +++ b/data/minecraft/tags/block/trail_ruins_replaceable.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:gravel" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/trapdoors.json b/data/minecraft/tags/block/trapdoors.json new file mode 100644 index 00000000..269e4b8c --- /dev/null +++ b/data/minecraft/tags/block/trapdoors.json @@ -0,0 +1,14 @@ +{ + "values": [ + "#minecraft:wooden_trapdoors", + "minecraft:iron_trapdoor", + "minecraft:copper_trapdoor", + "minecraft:exposed_copper_trapdoor", + "minecraft:weathered_copper_trapdoor", + "minecraft:oxidized_copper_trapdoor", + "minecraft:waxed_copper_trapdoor", + "minecraft:waxed_exposed_copper_trapdoor", + "minecraft:waxed_weathered_copper_trapdoor", + "minecraft:waxed_oxidized_copper_trapdoor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/underwater_bonemeals.json b/data/minecraft/tags/block/underwater_bonemeals.json new file mode 100644 index 00000000..9115b1b1 --- /dev/null +++ b/data/minecraft/tags/block/underwater_bonemeals.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:seagrass", + "#minecraft:corals", + "#minecraft:wall_corals" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/unstable_bottom_center.json b/data/minecraft/tags/block/unstable_bottom_center.json new file mode 100644 index 00000000..4a5113ef --- /dev/null +++ b/data/minecraft/tags/block/unstable_bottom_center.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:fence_gates" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/valid_spawn.json b/data/minecraft/tags/block/valid_spawn.json new file mode 100644 index 00000000..00f8571e --- /dev/null +++ b/data/minecraft/tags/block/valid_spawn.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:grass_block", + "minecraft:podzol" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/vibration_resonators.json b/data/minecraft/tags/block/vibration_resonators.json new file mode 100644 index 00000000..7f66725a --- /dev/null +++ b/data/minecraft/tags/block/vibration_resonators.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:amethyst_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wall_corals.json b/data/minecraft/tags/block/wall_corals.json new file mode 100644 index 00000000..632d46ac --- /dev/null +++ b/data/minecraft/tags/block/wall_corals.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wall_hanging_signs.json b/data/minecraft/tags/block/wall_hanging_signs.json new file mode 100644 index 00000000..b1ebe41f --- /dev/null +++ b/data/minecraft/tags/block/wall_hanging_signs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_wall_hanging_sign", + "minecraft:spruce_wall_hanging_sign", + "minecraft:birch_wall_hanging_sign", + "minecraft:acacia_wall_hanging_sign", + "minecraft:cherry_wall_hanging_sign", + "minecraft:jungle_wall_hanging_sign", + "minecraft:dark_oak_wall_hanging_sign", + "minecraft:crimson_wall_hanging_sign", + "minecraft:warped_wall_hanging_sign", + "minecraft:mangrove_wall_hanging_sign", + "minecraft:bamboo_wall_hanging_sign" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wall_post_override.json b/data/minecraft/tags/block/wall_post_override.json new file mode 100644 index 00000000..0595e842 --- /dev/null +++ b/data/minecraft/tags/block/wall_post_override.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:torch", + "minecraft:soul_torch", + "minecraft:redstone_torch", + "minecraft:tripwire", + "#minecraft:signs", + "#minecraft:banners", + "#minecraft:pressure_plates" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wall_signs.json b/data/minecraft/tags/block/wall_signs.json new file mode 100644 index 00000000..bf1d1f6f --- /dev/null +++ b/data/minecraft/tags/block/wall_signs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:crimson_wall_sign", + "minecraft:warped_wall_sign", + "minecraft:mangrove_wall_sign", + "minecraft:bamboo_wall_sign", + "minecraft:cherry_wall_sign" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/walls.json b/data/minecraft/tags/block/walls.json new file mode 100644 index 00000000..b4d42842 --- /dev/null +++ b/data/minecraft/tags/block/walls.json @@ -0,0 +1,29 @@ +{ + "values": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall", + "minecraft:blackstone_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall", + "minecraft:cobbled_deepslate_wall", + "minecraft:polished_deepslate_wall", + "minecraft:deepslate_tile_wall", + "minecraft:deepslate_brick_wall", + "minecraft:mud_brick_wall", + "minecraft:tuff_wall", + "minecraft:polished_tuff_wall", + "minecraft:tuff_brick_wall" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/warped_stems.json b/data/minecraft/tags/block/warped_stems.json new file mode 100644 index 00000000..4da63869 --- /dev/null +++ b/data/minecraft/tags/block/warped_stems.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wart_blocks.json b/data/minecraft/tags/block/wart_blocks.json new file mode 100644 index 00000000..bab2679f --- /dev/null +++ b/data/minecraft/tags/block/wart_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:nether_wart_block", + "minecraft:warped_wart_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wither_immune.json b/data/minecraft/tags/block/wither_immune.json new file mode 100644 index 00000000..c926979e --- /dev/null +++ b/data/minecraft/tags/block/wither_immune.json @@ -0,0 +1,17 @@ +{ + "values": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:light", + "minecraft:reinforced_deepslate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wither_summon_base_blocks.json b/data/minecraft/tags/block/wither_summon_base_blocks.json new file mode 100644 index 00000000..e8aa4afd --- /dev/null +++ b/data/minecraft/tags/block/wither_summon_base_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wolves_spawnable_on.json b/data/minecraft/tags/block/wolves_spawnable_on.json new file mode 100644 index 00000000..8a9f41e0 --- /dev/null +++ b/data/minecraft/tags/block/wolves_spawnable_on.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:grass_block", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:coarse_dirt", + "minecraft:podzol" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wooden_buttons.json b/data/minecraft/tags/block/wooden_buttons.json new file mode 100644 index 00000000..fe5e0572 --- /dev/null +++ b/data/minecraft/tags/block/wooden_buttons.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button", + "minecraft:crimson_button", + "minecraft:warped_button", + "minecraft:mangrove_button", + "minecraft:bamboo_button", + "minecraft:cherry_button" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wooden_doors.json b/data/minecraft/tags/block/wooden_doors.json new file mode 100644 index 00000000..5c9de920 --- /dev/null +++ b/data/minecraft/tags/block/wooden_doors.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door", + "minecraft:crimson_door", + "minecraft:warped_door", + "minecraft:mangrove_door", + "minecraft:bamboo_door", + "minecraft:cherry_door" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wooden_fences.json b/data/minecraft/tags/block/wooden_fences.json new file mode 100644 index 00000000..cecdd724 --- /dev/null +++ b/data/minecraft/tags/block/wooden_fences.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence", + "minecraft:crimson_fence", + "minecraft:warped_fence", + "minecraft:mangrove_fence", + "minecraft:bamboo_fence", + "minecraft:cherry_fence" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wooden_pressure_plates.json b/data/minecraft/tags/block/wooden_pressure_plates.json new file mode 100644 index 00000000..79558b92 --- /dev/null +++ b/data/minecraft/tags/block/wooden_pressure_plates.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate", + "minecraft:mangrove_pressure_plate", + "minecraft:bamboo_pressure_plate", + "minecraft:cherry_pressure_plate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wooden_slabs.json b/data/minecraft/tags/block/wooden_slabs.json new file mode 100644 index 00000000..be1fba2b --- /dev/null +++ b/data/minecraft/tags/block/wooden_slabs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab", + "minecraft:crimson_slab", + "minecraft:warped_slab", + "minecraft:mangrove_slab", + "minecraft:bamboo_slab", + "minecraft:cherry_slab" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wooden_stairs.json b/data/minecraft/tags/block/wooden_stairs.json new file mode 100644 index 00000000..7561537f --- /dev/null +++ b/data/minecraft/tags/block/wooden_stairs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs", + "minecraft:crimson_stairs", + "minecraft:warped_stairs", + "minecraft:mangrove_stairs", + "minecraft:bamboo_stairs", + "minecraft:cherry_stairs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wooden_trapdoors.json b/data/minecraft/tags/block/wooden_trapdoors.json new file mode 100644 index 00000000..8e93dc6d --- /dev/null +++ b/data/minecraft/tags/block/wooden_trapdoors.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor", + "minecraft:mangrove_trapdoor", + "minecraft:bamboo_trapdoor", + "minecraft:cherry_trapdoor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wool.json b/data/minecraft/tags/block/wool.json new file mode 100644 index 00000000..bb52fac8 --- /dev/null +++ b/data/minecraft/tags/block/wool.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/block/wool_carpets.json b/data/minecraft/tags/block/wool_carpets.json new file mode 100644 index 00000000..4dec4650 --- /dev/null +++ b/data/minecraft/tags/block/wool_carpets.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/cat_variant/default_spawns.json b/data/minecraft/tags/cat_variant/default_spawns.json new file mode 100644 index 00000000..dc6f9e88 --- /dev/null +++ b/data/minecraft/tags/cat_variant/default_spawns.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:tabby", + "minecraft:black", + "minecraft:red", + "minecraft:siamese", + "minecraft:british_shorthair", + "minecraft:calico", + "minecraft:persian", + "minecraft:ragdoll", + "minecraft:white", + "minecraft:jellie" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/cat_variant/full_moon_spawns.json b/data/minecraft/tags/cat_variant/full_moon_spawns.json new file mode 100644 index 00000000..039963f9 --- /dev/null +++ b/data/minecraft/tags/cat_variant/full_moon_spawns.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:default_spawns", + "minecraft:all_black" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/always_hurts_ender_dragons.json b/data/minecraft/tags/damage_type/always_hurts_ender_dragons.json new file mode 100644 index 00000000..7f5fbcd5 --- /dev/null +++ b/data/minecraft/tags/damage_type/always_hurts_ender_dragons.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_explosion" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/always_kills_armor_stands.json b/data/minecraft/tags/damage_type/always_kills_armor_stands.json new file mode 100644 index 00000000..0e167fe2 --- /dev/null +++ b/data/minecraft/tags/damage_type/always_kills_armor_stands.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:arrow", + "minecraft:trident", + "minecraft:fireball", + "minecraft:wither_skull", + "minecraft:wind_charge" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/always_most_significant_fall.json b/data/minecraft/tags/damage_type/always_most_significant_fall.json new file mode 100644 index 00000000..ae490d1c --- /dev/null +++ b/data/minecraft/tags/damage_type/always_most_significant_fall.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:out_of_world" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/always_triggers_silverfish.json b/data/minecraft/tags/damage_type/always_triggers_silverfish.json new file mode 100644 index 00000000..9a9e29eb --- /dev/null +++ b/data/minecraft/tags/damage_type/always_triggers_silverfish.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:magic" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/avoids_guardian_thorns.json b/data/minecraft/tags/damage_type/avoids_guardian_thorns.json new file mode 100644 index 00000000..bc4634b9 --- /dev/null +++ b/data/minecraft/tags/damage_type/avoids_guardian_thorns.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:magic", + "minecraft:thorns", + "#minecraft:is_explosion" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/burn_from_stepping.json b/data/minecraft/tags/damage_type/burn_from_stepping.json new file mode 100644 index 00000000..3cebb3f2 --- /dev/null +++ b/data/minecraft/tags/damage_type/burn_from_stepping.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:campfire", + "minecraft:hot_floor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/burns_armor_stands.json b/data/minecraft/tags/damage_type/burns_armor_stands.json new file mode 100644 index 00000000..ce817e3f --- /dev/null +++ b/data/minecraft/tags/damage_type/burns_armor_stands.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:on_fire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/bypasses_armor.json b/data/minecraft/tags/damage_type/bypasses_armor.json new file mode 100644 index 00000000..6803d2b3 --- /dev/null +++ b/data/minecraft/tags/damage_type/bypasses_armor.json @@ -0,0 +1,22 @@ +{ + "values": [ + "minecraft:on_fire", + "minecraft:in_wall", + "minecraft:cramming", + "minecraft:drown", + "minecraft:fly_into_wall", + "minecraft:generic", + "minecraft:wither", + "minecraft:dragon_breath", + "minecraft:starve", + "minecraft:fall", + "minecraft:freeze", + "minecraft:stalagmite", + "minecraft:magic", + "minecraft:indirect_magic", + "minecraft:out_of_world", + "minecraft:generic_kill", + "minecraft:sonic_boom", + "minecraft:outside_border" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/bypasses_effects.json b/data/minecraft/tags/damage_type/bypasses_effects.json new file mode 100644 index 00000000..01571fc6 --- /dev/null +++ b/data/minecraft/tags/damage_type/bypasses_effects.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:starve" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/bypasses_enchantments.json b/data/minecraft/tags/damage_type/bypasses_enchantments.json new file mode 100644 index 00000000..65ae4189 --- /dev/null +++ b/data/minecraft/tags/damage_type/bypasses_enchantments.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:sonic_boom" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/bypasses_invulnerability.json b/data/minecraft/tags/damage_type/bypasses_invulnerability.json new file mode 100644 index 00000000..f1930d3f --- /dev/null +++ b/data/minecraft/tags/damage_type/bypasses_invulnerability.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:out_of_world", + "minecraft:generic_kill" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/bypasses_resistance.json b/data/minecraft/tags/damage_type/bypasses_resistance.json new file mode 100644 index 00000000..f1930d3f --- /dev/null +++ b/data/minecraft/tags/damage_type/bypasses_resistance.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:out_of_world", + "minecraft:generic_kill" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/bypasses_shield.json b/data/minecraft/tags/damage_type/bypasses_shield.json new file mode 100644 index 00000000..a12ed3cf --- /dev/null +++ b/data/minecraft/tags/damage_type/bypasses_shield.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:bypasses_armor", + "minecraft:falling_anvil", + "minecraft:falling_stalactite" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/bypasses_wolf_armor.json b/data/minecraft/tags/damage_type/bypasses_wolf_armor.json new file mode 100644 index 00000000..7c434bd4 --- /dev/null +++ b/data/minecraft/tags/damage_type/bypasses_wolf_armor.json @@ -0,0 +1,16 @@ +{ + "values": [ + "#minecraft:bypasses_invulnerability", + "minecraft:cramming", + "minecraft:drown", + "minecraft:dry_out", + "minecraft:freeze", + "minecraft:in_wall", + "minecraft:indirect_magic", + "minecraft:magic", + "minecraft:outside_border", + "minecraft:starve", + "minecraft:thorns", + "minecraft:wither" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/can_break_armor_stand.json b/data/minecraft/tags/damage_type/can_break_armor_stand.json new file mode 100644 index 00000000..2bc997da --- /dev/null +++ b/data/minecraft/tags/damage_type/can_break_armor_stand.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:player_attack", + "minecraft:player_explosion" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/damages_helmet.json b/data/minecraft/tags/damage_type/damages_helmet.json new file mode 100644 index 00000000..a0eaa65a --- /dev/null +++ b/data/minecraft/tags/damage_type/damages_helmet.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:falling_anvil", + "minecraft:falling_block", + "minecraft:falling_stalactite" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/ignites_armor_stands.json b/data/minecraft/tags/damage_type/ignites_armor_stands.json new file mode 100644 index 00000000..4e026f96 --- /dev/null +++ b/data/minecraft/tags/damage_type/ignites_armor_stands.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:in_fire", + "minecraft:campfire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_drowning.json b/data/minecraft/tags/damage_type/is_drowning.json new file mode 100644 index 00000000..e4852112 --- /dev/null +++ b/data/minecraft/tags/damage_type/is_drowning.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:drown" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_explosion.json b/data/minecraft/tags/damage_type/is_explosion.json new file mode 100644 index 00000000..c9f43370 --- /dev/null +++ b/data/minecraft/tags/damage_type/is_explosion.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:fireworks", + "minecraft:explosion", + "minecraft:player_explosion", + "minecraft:bad_respawn_point" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_fall.json b/data/minecraft/tags/damage_type/is_fall.json new file mode 100644 index 00000000..bc462617 --- /dev/null +++ b/data/minecraft/tags/damage_type/is_fall.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:fall", + "minecraft:stalagmite" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_fire.json b/data/minecraft/tags/damage_type/is_fire.json new file mode 100644 index 00000000..3333f2d1 --- /dev/null +++ b/data/minecraft/tags/damage_type/is_fire.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:in_fire", + "minecraft:campfire", + "minecraft:on_fire", + "minecraft:lava", + "minecraft:hot_floor", + "minecraft:unattributed_fireball", + "minecraft:fireball" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_freezing.json b/data/minecraft/tags/damage_type/is_freezing.json new file mode 100644 index 00000000..98b43893 --- /dev/null +++ b/data/minecraft/tags/damage_type/is_freezing.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:freeze" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_lightning.json b/data/minecraft/tags/damage_type/is_lightning.json new file mode 100644 index 00000000..e6164d1b --- /dev/null +++ b/data/minecraft/tags/damage_type/is_lightning.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:lightning_bolt" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_player_attack.json b/data/minecraft/tags/damage_type/is_player_attack.json new file mode 100644 index 00000000..5531338d --- /dev/null +++ b/data/minecraft/tags/damage_type/is_player_attack.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:player_attack" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/is_projectile.json b/data/minecraft/tags/damage_type/is_projectile.json new file mode 100644 index 00000000..632a4277 --- /dev/null +++ b/data/minecraft/tags/damage_type/is_projectile.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:arrow", + "minecraft:trident", + "minecraft:mob_projectile", + "minecraft:unattributed_fireball", + "minecraft:fireball", + "minecraft:wither_skull", + "minecraft:thrown", + "minecraft:wind_charge" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/no_anger.json b/data/minecraft/tags/damage_type/no_anger.json new file mode 100644 index 00000000..d1ccae62 --- /dev/null +++ b/data/minecraft/tags/damage_type/no_anger.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mob_attack_no_aggro" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/no_impact.json b/data/minecraft/tags/damage_type/no_impact.json new file mode 100644 index 00000000..e4852112 --- /dev/null +++ b/data/minecraft/tags/damage_type/no_impact.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:drown" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/no_knockback.json b/data/minecraft/tags/damage_type/no_knockback.json new file mode 100644 index 00000000..383180f6 --- /dev/null +++ b/data/minecraft/tags/damage_type/no_knockback.json @@ -0,0 +1,31 @@ +{ + "values": [ + "minecraft:explosion", + "minecraft:player_explosion", + "minecraft:bad_respawn_point", + "minecraft:in_fire", + "minecraft:lightning_bolt", + "minecraft:on_fire", + "minecraft:lava", + "minecraft:hot_floor", + "minecraft:in_wall", + "minecraft:cramming", + "minecraft:drown", + "minecraft:starve", + "minecraft:cactus", + "minecraft:fall", + "minecraft:fly_into_wall", + "minecraft:out_of_world", + "minecraft:generic", + "minecraft:magic", + "minecraft:wither", + "minecraft:dragon_breath", + "minecraft:dry_out", + "minecraft:sweet_berry_bush", + "minecraft:freeze", + "minecraft:stalagmite", + "minecraft:outside_border", + "minecraft:generic_kill", + "minecraft:campfire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/panic_causes.json b/data/minecraft/tags/damage_type/panic_causes.json new file mode 100644 index 00000000..bb9c5934 --- /dev/null +++ b/data/minecraft/tags/damage_type/panic_causes.json @@ -0,0 +1,24 @@ +{ + "values": [ + "#minecraft:panic_environmental_causes", + "minecraft:arrow", + "minecraft:dragon_breath", + "minecraft:explosion", + "minecraft:fireball", + "minecraft:fireworks", + "minecraft:indirect_magic", + "minecraft:magic", + "minecraft:mob_attack", + "minecraft:mob_projectile", + "minecraft:player_attack", + "minecraft:player_explosion", + "minecraft:sonic_boom", + "minecraft:sting", + "minecraft:thrown", + "minecraft:trident", + "minecraft:unattributed_fireball", + "minecraft:wind_charge", + "minecraft:wither", + "minecraft:wither_skull" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/panic_environmental_causes.json b/data/minecraft/tags/damage_type/panic_environmental_causes.json new file mode 100644 index 00000000..fb872111 --- /dev/null +++ b/data/minecraft/tags/damage_type/panic_environmental_causes.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:cactus", + "minecraft:freeze", + "minecraft:hot_floor", + "minecraft:in_fire", + "minecraft:lava", + "minecraft:lightning_bolt", + "minecraft:on_fire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/witch_resistant_to.json b/data/minecraft/tags/damage_type/witch_resistant_to.json new file mode 100644 index 00000000..726ffa30 --- /dev/null +++ b/data/minecraft/tags/damage_type/witch_resistant_to.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:magic", + "minecraft:indirect_magic", + "minecraft:sonic_boom", + "minecraft:thorns" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/damage_type/wither_immune_to.json b/data/minecraft/tags/damage_type/wither_immune_to.json new file mode 100644 index 00000000..e4852112 --- /dev/null +++ b/data/minecraft/tags/damage_type/wither_immune_to.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:drown" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/curse.json b/data/minecraft/tags/enchantment/curse.json new file mode 100644 index 00000000..0c7d6110 --- /dev/null +++ b/data/minecraft/tags/enchantment/curse.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:binding_curse", + "minecraft:vanishing_curse" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/double_trade_price.json b/data/minecraft/tags/enchantment/double_trade_price.json new file mode 100644 index 00000000..0e924c6f --- /dev/null +++ b/data/minecraft/tags/enchantment/double_trade_price.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:treasure" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/exclusive_set/armor.json b/data/minecraft/tags/enchantment/exclusive_set/armor.json new file mode 100644 index 00000000..965552f0 --- /dev/null +++ b/data/minecraft/tags/enchantment/exclusive_set/armor.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:protection", + "minecraft:blast_protection", + "minecraft:fire_protection", + "minecraft:projectile_protection" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/exclusive_set/boots.json b/data/minecraft/tags/enchantment/exclusive_set/boots.json new file mode 100644 index 00000000..837664e5 --- /dev/null +++ b/data/minecraft/tags/enchantment/exclusive_set/boots.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:frost_walker", + "minecraft:depth_strider" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/exclusive_set/bow.json b/data/minecraft/tags/enchantment/exclusive_set/bow.json new file mode 100644 index 00000000..ad527369 --- /dev/null +++ b/data/minecraft/tags/enchantment/exclusive_set/bow.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:infinity", + "minecraft:mending" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/exclusive_set/crossbow.json b/data/minecraft/tags/enchantment/exclusive_set/crossbow.json new file mode 100644 index 00000000..d7437404 --- /dev/null +++ b/data/minecraft/tags/enchantment/exclusive_set/crossbow.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:multishot", + "minecraft:piercing" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/exclusive_set/damage.json b/data/minecraft/tags/enchantment/exclusive_set/damage.json new file mode 100644 index 00000000..e95a3193 --- /dev/null +++ b/data/minecraft/tags/enchantment/exclusive_set/damage.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:sharpness", + "minecraft:smite", + "minecraft:bane_of_arthropods", + "minecraft:impaling", + "minecraft:density", + "minecraft:breach" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/exclusive_set/mining.json b/data/minecraft/tags/enchantment/exclusive_set/mining.json new file mode 100644 index 00000000..8413d0bc --- /dev/null +++ b/data/minecraft/tags/enchantment/exclusive_set/mining.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:fortune", + "minecraft:silk_touch" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/exclusive_set/riptide.json b/data/minecraft/tags/enchantment/exclusive_set/riptide.json new file mode 100644 index 00000000..c11a2f9f --- /dev/null +++ b/data/minecraft/tags/enchantment/exclusive_set/riptide.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:loyalty", + "minecraft:channeling" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/in_enchanting_table.json b/data/minecraft/tags/enchantment/in_enchanting_table.json new file mode 100644 index 00000000..39656740 --- /dev/null +++ b/data/minecraft/tags/enchantment/in_enchanting_table.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:non_treasure" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/non_treasure.json b/data/minecraft/tags/enchantment/non_treasure.json new file mode 100644 index 00000000..b7f3b00a --- /dev/null +++ b/data/minecraft/tags/enchantment/non_treasure.json @@ -0,0 +1,39 @@ +{ + "values": [ + "minecraft:protection", + "minecraft:fire_protection", + "minecraft:feather_falling", + "minecraft:blast_protection", + "minecraft:projectile_protection", + "minecraft:respiration", + "minecraft:aqua_affinity", + "minecraft:thorns", + "minecraft:depth_strider", + "minecraft:sharpness", + "minecraft:smite", + "minecraft:bane_of_arthropods", + "minecraft:knockback", + "minecraft:fire_aspect", + "minecraft:looting", + "minecraft:sweeping_edge", + "minecraft:efficiency", + "minecraft:silk_touch", + "minecraft:unbreaking", + "minecraft:fortune", + "minecraft:power", + "minecraft:punch", + "minecraft:flame", + "minecraft:infinity", + "minecraft:luck_of_the_sea", + "minecraft:lure", + "minecraft:loyalty", + "minecraft:impaling", + "minecraft:riptide", + "minecraft:channeling", + "minecraft:multishot", + "minecraft:quick_charge", + "minecraft:piercing", + "minecraft:density", + "minecraft:breach" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/on_mob_spawn_equipment.json b/data/minecraft/tags/enchantment/on_mob_spawn_equipment.json new file mode 100644 index 00000000..39656740 --- /dev/null +++ b/data/minecraft/tags/enchantment/on_mob_spawn_equipment.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:non_treasure" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/on_random_loot.json b/data/minecraft/tags/enchantment/on_random_loot.json new file mode 100644 index 00000000..e20b0084 --- /dev/null +++ b/data/minecraft/tags/enchantment/on_random_loot.json @@ -0,0 +1,9 @@ +{ + "values": [ + "#minecraft:non_treasure", + "minecraft:binding_curse", + "minecraft:vanishing_curse", + "minecraft:frost_walker", + "minecraft:mending" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/on_traded_equipment.json b/data/minecraft/tags/enchantment/on_traded_equipment.json new file mode 100644 index 00000000..39656740 --- /dev/null +++ b/data/minecraft/tags/enchantment/on_traded_equipment.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:non_treasure" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/prevents_bee_spawns_when_mining.json b/data/minecraft/tags/enchantment/prevents_bee_spawns_when_mining.json new file mode 100644 index 00000000..9fe019a9 --- /dev/null +++ b/data/minecraft/tags/enchantment/prevents_bee_spawns_when_mining.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:silk_touch" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/prevents_decorated_pot_shattering.json b/data/minecraft/tags/enchantment/prevents_decorated_pot_shattering.json new file mode 100644 index 00000000..9fe019a9 --- /dev/null +++ b/data/minecraft/tags/enchantment/prevents_decorated_pot_shattering.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:silk_touch" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/prevents_ice_melting.json b/data/minecraft/tags/enchantment/prevents_ice_melting.json new file mode 100644 index 00000000..9fe019a9 --- /dev/null +++ b/data/minecraft/tags/enchantment/prevents_ice_melting.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:silk_touch" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/prevents_infested_spawns.json b/data/minecraft/tags/enchantment/prevents_infested_spawns.json new file mode 100644 index 00000000..9fe019a9 --- /dev/null +++ b/data/minecraft/tags/enchantment/prevents_infested_spawns.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:silk_touch" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/smelts_loot.json b/data/minecraft/tags/enchantment/smelts_loot.json new file mode 100644 index 00000000..bc4d7821 --- /dev/null +++ b/data/minecraft/tags/enchantment/smelts_loot.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:fire_aspect" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/tooltip_order.json b/data/minecraft/tags/enchantment/tooltip_order.json new file mode 100644 index 00000000..b91533b9 --- /dev/null +++ b/data/minecraft/tags/enchantment/tooltip_order.json @@ -0,0 +1,46 @@ +{ + "values": [ + "minecraft:binding_curse", + "minecraft:vanishing_curse", + "minecraft:riptide", + "minecraft:channeling", + "minecraft:wind_burst", + "minecraft:frost_walker", + "minecraft:sharpness", + "minecraft:smite", + "minecraft:bane_of_arthropods", + "minecraft:impaling", + "minecraft:power", + "minecraft:density", + "minecraft:breach", + "minecraft:piercing", + "minecraft:sweeping_edge", + "minecraft:multishot", + "minecraft:fire_aspect", + "minecraft:flame", + "minecraft:knockback", + "minecraft:punch", + "minecraft:protection", + "minecraft:blast_protection", + "minecraft:fire_protection", + "minecraft:projectile_protection", + "minecraft:feather_falling", + "minecraft:fortune", + "minecraft:looting", + "minecraft:silk_touch", + "minecraft:luck_of_the_sea", + "minecraft:efficiency", + "minecraft:quick_charge", + "minecraft:lure", + "minecraft:respiration", + "minecraft:aqua_affinity", + "minecraft:soul_speed", + "minecraft:swift_sneak", + "minecraft:depth_strider", + "minecraft:thorns", + "minecraft:loyalty", + "minecraft:unbreaking", + "minecraft:infinity", + "minecraft:mending" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/tradeable.json b/data/minecraft/tags/enchantment/tradeable.json new file mode 100644 index 00000000..e20b0084 --- /dev/null +++ b/data/minecraft/tags/enchantment/tradeable.json @@ -0,0 +1,9 @@ +{ + "values": [ + "#minecraft:non_treasure", + "minecraft:binding_curse", + "minecraft:vanishing_curse", + "minecraft:frost_walker", + "minecraft:mending" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/enchantment/treasure.json b/data/minecraft/tags/enchantment/treasure.json new file mode 100644 index 00000000..a2712dd7 --- /dev/null +++ b/data/minecraft/tags/enchantment/treasure.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:binding_curse", + "minecraft:vanishing_curse", + "minecraft:swift_sneak", + "minecraft:soul_speed", + "minecraft:frost_walker", + "minecraft:mending", + "minecraft:wind_burst" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/aquatic.json b/data/minecraft/tags/entity_type/aquatic.json new file mode 100644 index 00000000..00c80678 --- /dev/null +++ b/data/minecraft/tags/entity_type/aquatic.json @@ -0,0 +1,16 @@ +{ + "values": [ + "minecraft:turtle", + "minecraft:axolotl", + "minecraft:guardian", + "minecraft:elder_guardian", + "minecraft:cod", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:tropical_fish", + "minecraft:dolphin", + "minecraft:squid", + "minecraft:glow_squid", + "minecraft:tadpole" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/arrows.json b/data/minecraft/tags/entity_type/arrows.json new file mode 100644 index 00000000..8421d31d --- /dev/null +++ b/data/minecraft/tags/entity_type/arrows.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:arrow", + "minecraft:spectral_arrow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/arthropod.json b/data/minecraft/tags/entity_type/arthropod.json new file mode 100644 index 00000000..4d51ee2a --- /dev/null +++ b/data/minecraft/tags/entity_type/arthropod.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:bee", + "minecraft:endermite", + "minecraft:silverfish", + "minecraft:spider", + "minecraft:cave_spider" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/axolotl_always_hostiles.json b/data/minecraft/tags/entity_type/axolotl_always_hostiles.json new file mode 100644 index 00000000..811f076e --- /dev/null +++ b/data/minecraft/tags/entity_type/axolotl_always_hostiles.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:drowned", + "minecraft:guardian", + "minecraft:elder_guardian" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/axolotl_hunt_targets.json b/data/minecraft/tags/entity_type/axolotl_hunt_targets.json new file mode 100644 index 00000000..531dcb81 --- /dev/null +++ b/data/minecraft/tags/entity_type/axolotl_hunt_targets.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:tropical_fish", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:cod", + "minecraft:squid", + "minecraft:glow_squid", + "minecraft:tadpole" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/beehive_inhabitors.json b/data/minecraft/tags/entity_type/beehive_inhabitors.json new file mode 100644 index 00000000..a5a951b0 --- /dev/null +++ b/data/minecraft/tags/entity_type/beehive_inhabitors.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:bee" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/can_breathe_under_water.json b/data/minecraft/tags/entity_type/can_breathe_under_water.json new file mode 100644 index 00000000..77fe9140 --- /dev/null +++ b/data/minecraft/tags/entity_type/can_breathe_under_water.json @@ -0,0 +1,18 @@ +{ + "values": [ + "#minecraft:undead", + "minecraft:axolotl", + "minecraft:frog", + "minecraft:guardian", + "minecraft:elder_guardian", + "minecraft:turtle", + "minecraft:glow_squid", + "minecraft:cod", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:squid", + "minecraft:tropical_fish", + "minecraft:tadpole", + "minecraft:armor_stand" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/can_turn_in_boats.json b/data/minecraft/tags/entity_type/can_turn_in_boats.json new file mode 100644 index 00000000..21945c27 --- /dev/null +++ b/data/minecraft/tags/entity_type/can_turn_in_boats.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:breeze" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/deflects_projectiles.json b/data/minecraft/tags/entity_type/deflects_projectiles.json new file mode 100644 index 00000000..21945c27 --- /dev/null +++ b/data/minecraft/tags/entity_type/deflects_projectiles.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:breeze" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/dismounts_underwater.json b/data/minecraft/tags/entity_type/dismounts_underwater.json new file mode 100644 index 00000000..ee9b1e25 --- /dev/null +++ b/data/minecraft/tags/entity_type/dismounts_underwater.json @@ -0,0 +1,16 @@ +{ + "values": [ + "minecraft:camel", + "minecraft:chicken", + "minecraft:donkey", + "minecraft:horse", + "minecraft:llama", + "minecraft:mule", + "minecraft:pig", + "minecraft:ravager", + "minecraft:spider", + "minecraft:strider", + "minecraft:trader_llama", + "minecraft:zombie_horse" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/fall_damage_immune.json b/data/minecraft/tags/entity_type/fall_damage_immune.json new file mode 100644 index 00000000..6ccfba3a --- /dev/null +++ b/data/minecraft/tags/entity_type/fall_damage_immune.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:iron_golem", + "minecraft:snow_golem", + "minecraft:shulker", + "minecraft:allay", + "minecraft:bat", + "minecraft:bee", + "minecraft:blaze", + "minecraft:cat", + "minecraft:chicken", + "minecraft:ghast", + "minecraft:phantom", + "minecraft:magma_cube", + "minecraft:ocelot", + "minecraft:parrot", + "minecraft:wither", + "minecraft:breeze" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/freeze_hurts_extra_types.json b/data/minecraft/tags/entity_type/freeze_hurts_extra_types.json new file mode 100644 index 00000000..e4cdb51e --- /dev/null +++ b/data/minecraft/tags/entity_type/freeze_hurts_extra_types.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:strider", + "minecraft:blaze", + "minecraft:magma_cube" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/freeze_immune_entity_types.json b/data/minecraft/tags/entity_type/freeze_immune_entity_types.json new file mode 100644 index 00000000..e1063a63 --- /dev/null +++ b/data/minecraft/tags/entity_type/freeze_immune_entity_types.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:stray", + "minecraft:polar_bear", + "minecraft:snow_golem", + "minecraft:wither" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/frog_food.json b/data/minecraft/tags/entity_type/frog_food.json new file mode 100644 index 00000000..858f48c8 --- /dev/null +++ b/data/minecraft/tags/entity_type/frog_food.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:slime", + "minecraft:magma_cube" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/ignores_poison_and_regen.json b/data/minecraft/tags/entity_type/ignores_poison_and_regen.json new file mode 100644 index 00000000..b77400e2 --- /dev/null +++ b/data/minecraft/tags/entity_type/ignores_poison_and_regen.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:undead" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/illager.json b/data/minecraft/tags/entity_type/illager.json new file mode 100644 index 00000000..437d9528 --- /dev/null +++ b/data/minecraft/tags/entity_type/illager.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:evoker", + "minecraft:illusioner", + "minecraft:pillager", + "minecraft:vindicator" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/illager_friends.json b/data/minecraft/tags/entity_type/illager_friends.json new file mode 100644 index 00000000..0f27c0ba --- /dev/null +++ b/data/minecraft/tags/entity_type/illager_friends.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:illager" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/immune_to_infested.json b/data/minecraft/tags/entity_type/immune_to_infested.json new file mode 100644 index 00000000..06dc7c0a --- /dev/null +++ b/data/minecraft/tags/entity_type/immune_to_infested.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:silverfish" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/immune_to_oozing.json b/data/minecraft/tags/entity_type/immune_to_oozing.json new file mode 100644 index 00000000..90c32b4a --- /dev/null +++ b/data/minecraft/tags/entity_type/immune_to_oozing.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:slime" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/impact_projectiles.json b/data/minecraft/tags/entity_type/impact_projectiles.json new file mode 100644 index 00000000..2d4eb4e0 --- /dev/null +++ b/data/minecraft/tags/entity_type/impact_projectiles.json @@ -0,0 +1,15 @@ +{ + "values": [ + "#minecraft:arrows", + "minecraft:firework_rocket", + "minecraft:snowball", + "minecraft:fireball", + "minecraft:small_fireball", + "minecraft:egg", + "minecraft:trident", + "minecraft:dragon_fireball", + "minecraft:wither_skull", + "minecraft:wind_charge", + "minecraft:breeze_wind_charge" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/inverted_healing_and_harm.json b/data/minecraft/tags/entity_type/inverted_healing_and_harm.json new file mode 100644 index 00000000..b77400e2 --- /dev/null +++ b/data/minecraft/tags/entity_type/inverted_healing_and_harm.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:undead" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/no_anger_from_wind_charge.json b/data/minecraft/tags/entity_type/no_anger_from_wind_charge.json new file mode 100644 index 00000000..7cc30fb7 --- /dev/null +++ b/data/minecraft/tags/entity_type/no_anger_from_wind_charge.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:breeze", + "minecraft:skeleton", + "minecraft:bogged", + "minecraft:stray", + "minecraft:zombie", + "minecraft:husk", + "minecraft:spider", + "minecraft:cave_spider", + "minecraft:slime" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/non_controlling_rider.json b/data/minecraft/tags/entity_type/non_controlling_rider.json new file mode 100644 index 00000000..858f48c8 --- /dev/null +++ b/data/minecraft/tags/entity_type/non_controlling_rider.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:slime", + "minecraft:magma_cube" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/not_scary_for_pufferfish.json b/data/minecraft/tags/entity_type/not_scary_for_pufferfish.json new file mode 100644 index 00000000..07cad20b --- /dev/null +++ b/data/minecraft/tags/entity_type/not_scary_for_pufferfish.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:turtle", + "minecraft:guardian", + "minecraft:elder_guardian", + "minecraft:cod", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:tropical_fish", + "minecraft:dolphin", + "minecraft:squid", + "minecraft:glow_squid", + "minecraft:tadpole" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/powder_snow_walkable_mobs.json b/data/minecraft/tags/entity_type/powder_snow_walkable_mobs.json new file mode 100644 index 00000000..e8db267a --- /dev/null +++ b/data/minecraft/tags/entity_type/powder_snow_walkable_mobs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:rabbit", + "minecraft:endermite", + "minecraft:silverfish", + "minecraft:fox" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/raiders.json b/data/minecraft/tags/entity_type/raiders.json new file mode 100644 index 00000000..9548830a --- /dev/null +++ b/data/minecraft/tags/entity_type/raiders.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:evoker", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:illusioner", + "minecraft:witch" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/redirectable_projectile.json b/data/minecraft/tags/entity_type/redirectable_projectile.json new file mode 100644 index 00000000..5fb9fd44 --- /dev/null +++ b/data/minecraft/tags/entity_type/redirectable_projectile.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:fireball", + "minecraft:wind_charge", + "minecraft:breeze_wind_charge" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/sensitive_to_bane_of_arthropods.json b/data/minecraft/tags/entity_type/sensitive_to_bane_of_arthropods.json new file mode 100644 index 00000000..e3570962 --- /dev/null +++ b/data/minecraft/tags/entity_type/sensitive_to_bane_of_arthropods.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:arthropod" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/sensitive_to_impaling.json b/data/minecraft/tags/entity_type/sensitive_to_impaling.json new file mode 100644 index 00000000..203a8af2 --- /dev/null +++ b/data/minecraft/tags/entity_type/sensitive_to_impaling.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:aquatic" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/sensitive_to_smite.json b/data/minecraft/tags/entity_type/sensitive_to_smite.json new file mode 100644 index 00000000..b77400e2 --- /dev/null +++ b/data/minecraft/tags/entity_type/sensitive_to_smite.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:undead" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/skeletons.json b/data/minecraft/tags/entity_type/skeletons.json new file mode 100644 index 00000000..26fc7d7b --- /dev/null +++ b/data/minecraft/tags/entity_type/skeletons.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton", + "minecraft:skeleton_horse", + "minecraft:bogged" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/undead.json b/data/minecraft/tags/entity_type/undead.json new file mode 100644 index 00000000..f00edb98 --- /dev/null +++ b/data/minecraft/tags/entity_type/undead.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:skeletons", + "#minecraft:zombies", + "minecraft:wither", + "minecraft:phantom" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/wither_friends.json b/data/minecraft/tags/entity_type/wither_friends.json new file mode 100644 index 00000000..b77400e2 --- /dev/null +++ b/data/minecraft/tags/entity_type/wither_friends.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:undead" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/entity_type/zombies.json b/data/minecraft/tags/entity_type/zombies.json new file mode 100644 index 00000000..411a77ba --- /dev/null +++ b/data/minecraft/tags/entity_type/zombies.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:zombie_horse", + "minecraft:zombie", + "minecraft:zombie_villager", + "minecraft:zombified_piglin", + "minecraft:zoglin", + "minecraft:drowned", + "minecraft:husk" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/fluid/lava.json b/data/minecraft/tags/fluid/lava.json new file mode 100644 index 00000000..c4953e87 --- /dev/null +++ b/data/minecraft/tags/fluid/lava.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:lava", + "minecraft:flowing_lava" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/fluid/water.json b/data/minecraft/tags/fluid/water.json new file mode 100644 index 00000000..dbfbaa80 --- /dev/null +++ b/data/minecraft/tags/fluid/water.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:water", + "minecraft:flowing_water" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/game_event/allay_can_listen.json b/data/minecraft/tags/game_event/allay_can_listen.json new file mode 100644 index 00000000..916088c7 --- /dev/null +++ b/data/minecraft/tags/game_event/allay_can_listen.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:note_block_play" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/game_event/ignore_vibrations_sneaking.json b/data/minecraft/tags/game_event/ignore_vibrations_sneaking.json new file mode 100644 index 00000000..6bf4071d --- /dev/null +++ b/data/minecraft/tags/game_event/ignore_vibrations_sneaking.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:hit_ground", + "minecraft:projectile_shoot", + "minecraft:step", + "minecraft:swim", + "minecraft:item_interact_start", + "minecraft:item_interact_finish" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/game_event/shrieker_can_listen.json b/data/minecraft/tags/game_event/shrieker_can_listen.json new file mode 100644 index 00000000..a5cddd84 --- /dev/null +++ b/data/minecraft/tags/game_event/shrieker_can_listen.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:sculk_sensor_tendrils_clicking" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/game_event/vibrations.json b/data/minecraft/tags/game_event/vibrations.json new file mode 100644 index 00000000..da6da8aa --- /dev/null +++ b/data/minecraft/tags/game_event/vibrations.json @@ -0,0 +1,59 @@ +{ + "values": [ + "minecraft:block_attach", + "minecraft:block_change", + "minecraft:block_close", + "minecraft:block_destroy", + "minecraft:block_detach", + "minecraft:block_open", + "minecraft:block_place", + "minecraft:block_activate", + "minecraft:block_deactivate", + "minecraft:container_close", + "minecraft:container_open", + "minecraft:drink", + "minecraft:eat", + "minecraft:elytra_glide", + "minecraft:entity_damage", + "minecraft:entity_die", + "minecraft:entity_dismount", + "minecraft:entity_interact", + "minecraft:entity_mount", + "minecraft:entity_place", + "minecraft:entity_action", + "minecraft:equip", + "minecraft:explode", + "minecraft:fluid_pickup", + "minecraft:fluid_place", + "minecraft:hit_ground", + "minecraft:instrument_play", + "minecraft:item_interact_finish", + "minecraft:lightning_strike", + "minecraft:note_block_play", + "minecraft:prime_fuse", + "minecraft:projectile_land", + "minecraft:projectile_shoot", + "minecraft:shear", + "minecraft:splash", + "minecraft:step", + "minecraft:swim", + "minecraft:teleport", + "minecraft:unequip", + "minecraft:resonate_1", + "minecraft:resonate_2", + "minecraft:resonate_3", + "minecraft:resonate_4", + "minecraft:resonate_5", + "minecraft:resonate_6", + "minecraft:resonate_7", + "minecraft:resonate_8", + "minecraft:resonate_9", + "minecraft:resonate_10", + "minecraft:resonate_11", + "minecraft:resonate_12", + "minecraft:resonate_13", + "minecraft:resonate_14", + "minecraft:resonate_15", + "minecraft:flap" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/game_event/warden_can_listen.json b/data/minecraft/tags/game_event/warden_can_listen.json new file mode 100644 index 00000000..42e59573 --- /dev/null +++ b/data/minecraft/tags/game_event/warden_can_listen.json @@ -0,0 +1,60 @@ +{ + "values": [ + "minecraft:block_attach", + "minecraft:block_change", + "minecraft:block_close", + "minecraft:block_destroy", + "minecraft:block_detach", + "minecraft:block_open", + "minecraft:block_place", + "minecraft:block_activate", + "minecraft:block_deactivate", + "minecraft:container_close", + "minecraft:container_open", + "minecraft:drink", + "minecraft:eat", + "minecraft:elytra_glide", + "minecraft:entity_damage", + "minecraft:entity_die", + "minecraft:entity_dismount", + "minecraft:entity_interact", + "minecraft:entity_mount", + "minecraft:entity_place", + "minecraft:entity_action", + "minecraft:equip", + "minecraft:explode", + "minecraft:fluid_pickup", + "minecraft:fluid_place", + "minecraft:hit_ground", + "minecraft:instrument_play", + "minecraft:item_interact_finish", + "minecraft:lightning_strike", + "minecraft:note_block_play", + "minecraft:prime_fuse", + "minecraft:projectile_land", + "minecraft:projectile_shoot", + "minecraft:shear", + "minecraft:splash", + "minecraft:step", + "minecraft:swim", + "minecraft:teleport", + "minecraft:unequip", + "minecraft:resonate_1", + "minecraft:resonate_2", + "minecraft:resonate_3", + "minecraft:resonate_4", + "minecraft:resonate_5", + "minecraft:resonate_6", + "minecraft:resonate_7", + "minecraft:resonate_8", + "minecraft:resonate_9", + "minecraft:resonate_10", + "minecraft:resonate_11", + "minecraft:resonate_12", + "minecraft:resonate_13", + "minecraft:resonate_14", + "minecraft:resonate_15", + "minecraft:shriek", + "#minecraft:shrieker_can_listen" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/instrument/goat_horns.json b/data/minecraft/tags/instrument/goat_horns.json new file mode 100644 index 00000000..c0f7ced1 --- /dev/null +++ b/data/minecraft/tags/instrument/goat_horns.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:regular_goat_horns", + "#minecraft:screaming_goat_horns" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/instrument/regular_goat_horns.json b/data/minecraft/tags/instrument/regular_goat_horns.json new file mode 100644 index 00000000..0386d95e --- /dev/null +++ b/data/minecraft/tags/instrument/regular_goat_horns.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:ponder_goat_horn", + "minecraft:sing_goat_horn", + "minecraft:seek_goat_horn", + "minecraft:feel_goat_horn" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/instrument/screaming_goat_horns.json b/data/minecraft/tags/instrument/screaming_goat_horns.json new file mode 100644 index 00000000..e7befb9e --- /dev/null +++ b/data/minecraft/tags/instrument/screaming_goat_horns.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:admire_goat_horn", + "minecraft:call_goat_horn", + "minecraft:yearn_goat_horn", + "minecraft:dream_goat_horn" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/acacia_logs.json b/data/minecraft/tags/item/acacia_logs.json new file mode 100644 index 00000000..84a0bc4c --- /dev/null +++ b/data/minecraft/tags/item/acacia_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/anvil.json b/data/minecraft/tags/item/anvil.json new file mode 100644 index 00000000..84ef65a7 --- /dev/null +++ b/data/minecraft/tags/item/anvil.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/armadillo_food.json b/data/minecraft/tags/item/armadillo_food.json new file mode 100644 index 00000000..fb33a5ca --- /dev/null +++ b/data/minecraft/tags/item/armadillo_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:spider_eye" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/arrows.json b/data/minecraft/tags/item/arrows.json new file mode 100644 index 00000000..4ebac713 --- /dev/null +++ b/data/minecraft/tags/item/arrows.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:arrow", + "minecraft:tipped_arrow", + "minecraft:spectral_arrow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/axes.json b/data/minecraft/tags/item/axes.json new file mode 100644 index 00000000..9508023b --- /dev/null +++ b/data/minecraft/tags/item/axes.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:diamond_axe", + "minecraft:stone_axe", + "minecraft:golden_axe", + "minecraft:netherite_axe", + "minecraft:wooden_axe", + "minecraft:iron_axe" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/axolotl_food.json b/data/minecraft/tags/item/axolotl_food.json new file mode 100644 index 00000000..62859aa6 --- /dev/null +++ b/data/minecraft/tags/item/axolotl_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:tropical_fish_bucket" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/bamboo_blocks.json b/data/minecraft/tags/item/bamboo_blocks.json new file mode 100644 index 00000000..347c0af8 --- /dev/null +++ b/data/minecraft/tags/item/bamboo_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:bamboo_block", + "minecraft:stripped_bamboo_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/banners.json b/data/minecraft/tags/item/banners.json new file mode 100644 index 00000000..e2efe3d8 --- /dev/null +++ b/data/minecraft/tags/item/banners.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/beacon_payment_items.json b/data/minecraft/tags/item/beacon_payment_items.json new file mode 100644 index 00000000..802967c9 --- /dev/null +++ b/data/minecraft/tags/item/beacon_payment_items.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:netherite_ingot", + "minecraft:emerald", + "minecraft:diamond", + "minecraft:gold_ingot", + "minecraft:iron_ingot" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/beds.json b/data/minecraft/tags/item/beds.json new file mode 100644 index 00000000..77c22422 --- /dev/null +++ b/data/minecraft/tags/item/beds.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/bee_food.json b/data/minecraft/tags/item/bee_food.json new file mode 100644 index 00000000..42a09c21 --- /dev/null +++ b/data/minecraft/tags/item/bee_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:flowers" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/birch_logs.json b/data/minecraft/tags/item/birch_logs.json new file mode 100644 index 00000000..9203a57b --- /dev/null +++ b/data/minecraft/tags/item/birch_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/boats.json b/data/minecraft/tags/item/boats.json new file mode 100644 index 00000000..4949f62a --- /dev/null +++ b/data/minecraft/tags/item/boats.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat", + "minecraft:mangrove_boat", + "minecraft:bamboo_raft", + "minecraft:cherry_boat", + "#minecraft:chest_boats" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/bookshelf_books.json b/data/minecraft/tags/item/bookshelf_books.json new file mode 100644 index 00000000..66dc5510 --- /dev/null +++ b/data/minecraft/tags/item/bookshelf_books.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:book", + "minecraft:written_book", + "minecraft:enchanted_book", + "minecraft:writable_book", + "minecraft:knowledge_book" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/breaks_decorated_pots.json b/data/minecraft/tags/item/breaks_decorated_pots.json new file mode 100644 index 00000000..9b99abb3 --- /dev/null +++ b/data/minecraft/tags/item/breaks_decorated_pots.json @@ -0,0 +1,11 @@ +{ + "values": [ + "#minecraft:swords", + "#minecraft:axes", + "#minecraft:pickaxes", + "#minecraft:shovels", + "#minecraft:hoes", + "minecraft:trident", + "minecraft:mace" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/buttons.json b/data/minecraft/tags/item/buttons.json new file mode 100644 index 00000000..3400bf38 --- /dev/null +++ b/data/minecraft/tags/item/buttons.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:wooden_buttons", + "#minecraft:stone_buttons" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/camel_food.json b/data/minecraft/tags/item/camel_food.json new file mode 100644 index 00000000..2624ccf2 --- /dev/null +++ b/data/minecraft/tags/item/camel_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:cactus" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/candles.json b/data/minecraft/tags/item/candles.json new file mode 100644 index 00000000..a7b2b62f --- /dev/null +++ b/data/minecraft/tags/item/candles.json @@ -0,0 +1,21 @@ +{ + "values": [ + "minecraft:candle", + "minecraft:white_candle", + "minecraft:orange_candle", + "minecraft:magenta_candle", + "minecraft:light_blue_candle", + "minecraft:yellow_candle", + "minecraft:lime_candle", + "minecraft:pink_candle", + "minecraft:gray_candle", + "minecraft:light_gray_candle", + "minecraft:cyan_candle", + "minecraft:purple_candle", + "minecraft:blue_candle", + "minecraft:brown_candle", + "minecraft:green_candle", + "minecraft:red_candle", + "minecraft:black_candle" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/cat_food.json b/data/minecraft/tags/item/cat_food.json new file mode 100644 index 00000000..7869b407 --- /dev/null +++ b/data/minecraft/tags/item/cat_food.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:cod", + "minecraft:salmon" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/cherry_logs.json b/data/minecraft/tags/item/cherry_logs.json new file mode 100644 index 00000000..4295e055 --- /dev/null +++ b/data/minecraft/tags/item/cherry_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:cherry_log", + "minecraft:cherry_wood", + "minecraft:stripped_cherry_log", + "minecraft:stripped_cherry_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/chest_armor.json b/data/minecraft/tags/item/chest_armor.json new file mode 100644 index 00000000..24a65802 --- /dev/null +++ b/data/minecraft/tags/item/chest_armor.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:leather_chestplate", + "minecraft:chainmail_chestplate", + "minecraft:golden_chestplate", + "minecraft:iron_chestplate", + "minecraft:diamond_chestplate", + "minecraft:netherite_chestplate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/chest_boats.json b/data/minecraft/tags/item/chest_boats.json new file mode 100644 index 00000000..26cb2e34 --- /dev/null +++ b/data/minecraft/tags/item/chest_boats.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:oak_chest_boat", + "minecraft:spruce_chest_boat", + "minecraft:birch_chest_boat", + "minecraft:jungle_chest_boat", + "minecraft:acacia_chest_boat", + "minecraft:dark_oak_chest_boat", + "minecraft:mangrove_chest_boat", + "minecraft:bamboo_chest_raft", + "minecraft:cherry_chest_boat" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/chicken_food.json b/data/minecraft/tags/item/chicken_food.json new file mode 100644 index 00000000..295a67c8 --- /dev/null +++ b/data/minecraft/tags/item/chicken_food.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:wheat_seeds", + "minecraft:melon_seeds", + "minecraft:pumpkin_seeds", + "minecraft:beetroot_seeds", + "minecraft:torchflower_seeds", + "minecraft:pitcher_pod" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/cluster_max_harvestables.json b/data/minecraft/tags/item/cluster_max_harvestables.json new file mode 100644 index 00000000..87b16f45 --- /dev/null +++ b/data/minecraft/tags/item/cluster_max_harvestables.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:diamond_pickaxe", + "minecraft:golden_pickaxe", + "minecraft:iron_pickaxe", + "minecraft:netherite_pickaxe", + "minecraft:stone_pickaxe", + "minecraft:wooden_pickaxe" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/coal_ores.json b/data/minecraft/tags/item/coal_ores.json new file mode 100644 index 00000000..aaa76288 --- /dev/null +++ b/data/minecraft/tags/item/coal_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:coal_ore", + "minecraft:deepslate_coal_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/coals.json b/data/minecraft/tags/item/coals.json new file mode 100644 index 00000000..43868c8e --- /dev/null +++ b/data/minecraft/tags/item/coals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:coal", + "minecraft:charcoal" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/compasses.json b/data/minecraft/tags/item/compasses.json new file mode 100644 index 00000000..e0f422fc --- /dev/null +++ b/data/minecraft/tags/item/compasses.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:compass", + "minecraft:recovery_compass" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/completes_find_tree_tutorial.json b/data/minecraft/tags/item/completes_find_tree_tutorial.json new file mode 100644 index 00000000..74701c2e --- /dev/null +++ b/data/minecraft/tags/item/completes_find_tree_tutorial.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:logs", + "#minecraft:leaves", + "#minecraft:wart_blocks" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/copper_ores.json b/data/minecraft/tags/item/copper_ores.json new file mode 100644 index 00000000..5d76012e --- /dev/null +++ b/data/minecraft/tags/item/copper_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:copper_ore", + "minecraft:deepslate_copper_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/cow_food.json b/data/minecraft/tags/item/cow_food.json new file mode 100644 index 00000000..498cb445 --- /dev/null +++ b/data/minecraft/tags/item/cow_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:wheat" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/creeper_drop_music_discs.json b/data/minecraft/tags/item/creeper_drop_music_discs.json new file mode 100644 index 00000000..d79c2be5 --- /dev/null +++ b/data/minecraft/tags/item/creeper_drop_music_discs.json @@ -0,0 +1,16 @@ +{ + "values": [ + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/creeper_igniters.json b/data/minecraft/tags/item/creeper_igniters.json new file mode 100644 index 00000000..d30efcd3 --- /dev/null +++ b/data/minecraft/tags/item/creeper_igniters.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:flint_and_steel", + "minecraft:fire_charge" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/crimson_stems.json b/data/minecraft/tags/item/crimson_stems.json new file mode 100644 index 00000000..f78c7a3c --- /dev/null +++ b/data/minecraft/tags/item/crimson_stems.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/dampens_vibrations.json b/data/minecraft/tags/item/dampens_vibrations.json new file mode 100644 index 00000000..89eab86d --- /dev/null +++ b/data/minecraft/tags/item/dampens_vibrations.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:wool", + "#minecraft:wool_carpets" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/dark_oak_logs.json b/data/minecraft/tags/item/dark_oak_logs.json new file mode 100644 index 00000000..f7f5a28e --- /dev/null +++ b/data/minecraft/tags/item/dark_oak_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/decorated_pot_ingredients.json b/data/minecraft/tags/item/decorated_pot_ingredients.json new file mode 100644 index 00000000..98e5e880 --- /dev/null +++ b/data/minecraft/tags/item/decorated_pot_ingredients.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:brick", + "#minecraft:decorated_pot_sherds" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/decorated_pot_sherds.json b/data/minecraft/tags/item/decorated_pot_sherds.json new file mode 100644 index 00000000..0ef9aa8d --- /dev/null +++ b/data/minecraft/tags/item/decorated_pot_sherds.json @@ -0,0 +1,27 @@ +{ + "values": [ + "minecraft:angler_pottery_sherd", + "minecraft:archer_pottery_sherd", + "minecraft:arms_up_pottery_sherd", + "minecraft:blade_pottery_sherd", + "minecraft:brewer_pottery_sherd", + "minecraft:burn_pottery_sherd", + "minecraft:danger_pottery_sherd", + "minecraft:explorer_pottery_sherd", + "minecraft:friend_pottery_sherd", + "minecraft:heart_pottery_sherd", + "minecraft:heartbreak_pottery_sherd", + "minecraft:howl_pottery_sherd", + "minecraft:miner_pottery_sherd", + "minecraft:mourner_pottery_sherd", + "minecraft:plenty_pottery_sherd", + "minecraft:prize_pottery_sherd", + "minecraft:sheaf_pottery_sherd", + "minecraft:shelter_pottery_sherd", + "minecraft:skull_pottery_sherd", + "minecraft:snort_pottery_sherd", + "minecraft:flow_pottery_sherd", + "minecraft:guster_pottery_sherd", + "minecraft:scrape_pottery_sherd" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/diamond_ores.json b/data/minecraft/tags/item/diamond_ores.json new file mode 100644 index 00000000..cfa6e09c --- /dev/null +++ b/data/minecraft/tags/item/diamond_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:diamond_ore", + "minecraft:deepslate_diamond_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/dirt.json b/data/minecraft/tags/item/dirt.json new file mode 100644 index 00000000..a75db4a0 --- /dev/null +++ b/data/minecraft/tags/item/dirt.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium", + "minecraft:rooted_dirt", + "minecraft:moss_block", + "minecraft:mud", + "minecraft:muddy_mangrove_roots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/doors.json b/data/minecraft/tags/item/doors.json new file mode 100644 index 00000000..9ca24fcf --- /dev/null +++ b/data/minecraft/tags/item/doors.json @@ -0,0 +1,14 @@ +{ + "values": [ + "#minecraft:wooden_doors", + "minecraft:copper_door", + "minecraft:exposed_copper_door", + "minecraft:weathered_copper_door", + "minecraft:oxidized_copper_door", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:waxed_oxidized_copper_door", + "minecraft:iron_door" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/dyeable.json b/data/minecraft/tags/item/dyeable.json new file mode 100644 index 00000000..e70da38d --- /dev/null +++ b/data/minecraft/tags/item/dyeable.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:leather_helmet", + "minecraft:leather_chestplate", + "minecraft:leather_leggings", + "minecraft:leather_boots", + "minecraft:leather_horse_armor", + "minecraft:wolf_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/emerald_ores.json b/data/minecraft/tags/item/emerald_ores.json new file mode 100644 index 00000000..063d8e62 --- /dev/null +++ b/data/minecraft/tags/item/emerald_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:emerald_ore", + "minecraft:deepslate_emerald_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/armor.json b/data/minecraft/tags/item/enchantable/armor.json new file mode 100644 index 00000000..00405056 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/armor.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:enchantable/foot_armor", + "#minecraft:enchantable/leg_armor", + "#minecraft:enchantable/chest_armor", + "#minecraft:enchantable/head_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/bow.json b/data/minecraft/tags/item/enchantable/bow.json new file mode 100644 index 00000000..a1c8a443 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/bow.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:bow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/chest_armor.json b/data/minecraft/tags/item/enchantable/chest_armor.json new file mode 100644 index 00000000..913ce1bd --- /dev/null +++ b/data/minecraft/tags/item/enchantable/chest_armor.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:chest_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/crossbow.json b/data/minecraft/tags/item/enchantable/crossbow.json new file mode 100644 index 00000000..848f97bc --- /dev/null +++ b/data/minecraft/tags/item/enchantable/crossbow.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:crossbow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/durability.json b/data/minecraft/tags/item/enchantable/durability.json new file mode 100644 index 00000000..a27eb2fc --- /dev/null +++ b/data/minecraft/tags/item/enchantable/durability.json @@ -0,0 +1,25 @@ +{ + "values": [ + "#minecraft:foot_armor", + "#minecraft:leg_armor", + "#minecraft:chest_armor", + "#minecraft:head_armor", + "minecraft:elytra", + "minecraft:shield", + "#minecraft:swords", + "#minecraft:axes", + "#minecraft:pickaxes", + "#minecraft:shovels", + "#minecraft:hoes", + "minecraft:bow", + "minecraft:crossbow", + "minecraft:trident", + "minecraft:flint_and_steel", + "minecraft:shears", + "minecraft:brush", + "minecraft:fishing_rod", + "minecraft:carrot_on_a_stick", + "minecraft:warped_fungus_on_a_stick", + "minecraft:mace" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/equippable.json b/data/minecraft/tags/item/enchantable/equippable.json new file mode 100644 index 00000000..653c557b --- /dev/null +++ b/data/minecraft/tags/item/enchantable/equippable.json @@ -0,0 +1,11 @@ +{ + "values": [ + "#minecraft:foot_armor", + "#minecraft:leg_armor", + "#minecraft:chest_armor", + "#minecraft:head_armor", + "minecraft:elytra", + "#minecraft:skulls", + "minecraft:carved_pumpkin" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/fire_aspect.json b/data/minecraft/tags/item/enchantable/fire_aspect.json new file mode 100644 index 00000000..71534263 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/fire_aspect.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:enchantable/sword", + "minecraft:mace" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/fishing.json b/data/minecraft/tags/item/enchantable/fishing.json new file mode 100644 index 00000000..e97941e9 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/fishing.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:fishing_rod" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/foot_armor.json b/data/minecraft/tags/item/enchantable/foot_armor.json new file mode 100644 index 00000000..9dc9d4ca --- /dev/null +++ b/data/minecraft/tags/item/enchantable/foot_armor.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:foot_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/head_armor.json b/data/minecraft/tags/item/enchantable/head_armor.json new file mode 100644 index 00000000..027283b3 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/head_armor.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:head_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/leg_armor.json b/data/minecraft/tags/item/enchantable/leg_armor.json new file mode 100644 index 00000000..af44f45c --- /dev/null +++ b/data/minecraft/tags/item/enchantable/leg_armor.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:leg_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/mace.json b/data/minecraft/tags/item/enchantable/mace.json new file mode 100644 index 00000000..c149f0e5 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/mace.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mace" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/mining.json b/data/minecraft/tags/item/enchantable/mining.json new file mode 100644 index 00000000..a2cc0e4a --- /dev/null +++ b/data/minecraft/tags/item/enchantable/mining.json @@ -0,0 +1,9 @@ +{ + "values": [ + "#minecraft:axes", + "#minecraft:pickaxes", + "#minecraft:shovels", + "#minecraft:hoes", + "minecraft:shears" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/mining_loot.json b/data/minecraft/tags/item/enchantable/mining_loot.json new file mode 100644 index 00000000..753a5b3d --- /dev/null +++ b/data/minecraft/tags/item/enchantable/mining_loot.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:axes", + "#minecraft:pickaxes", + "#minecraft:shovels", + "#minecraft:hoes" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/sharp_weapon.json b/data/minecraft/tags/item/enchantable/sharp_weapon.json new file mode 100644 index 00000000..5c3bf338 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/sharp_weapon.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:swords", + "#minecraft:axes" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/sword.json b/data/minecraft/tags/item/enchantable/sword.json new file mode 100644 index 00000000..66370891 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/sword.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:swords" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/trident.json b/data/minecraft/tags/item/enchantable/trident.json new file mode 100644 index 00000000..7a2c450b --- /dev/null +++ b/data/minecraft/tags/item/enchantable/trident.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:trident" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/vanishing.json b/data/minecraft/tags/item/enchantable/vanishing.json new file mode 100644 index 00000000..dae3ff80 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/vanishing.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:enchantable/durability", + "minecraft:compass", + "minecraft:carved_pumpkin", + "#minecraft:skulls" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/enchantable/weapon.json b/data/minecraft/tags/item/enchantable/weapon.json new file mode 100644 index 00000000..4cda09f5 --- /dev/null +++ b/data/minecraft/tags/item/enchantable/weapon.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:enchantable/sharp_weapon", + "minecraft:mace" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/fence_gates.json b/data/minecraft/tags/item/fence_gates.json new file mode 100644 index 00000000..2a8d2924 --- /dev/null +++ b/data/minecraft/tags/item/fence_gates.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:warped_fence_gate", + "minecraft:mangrove_fence_gate", + "minecraft:bamboo_fence_gate", + "minecraft:cherry_fence_gate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/fences.json b/data/minecraft/tags/item/fences.json new file mode 100644 index 00000000..045fa7d4 --- /dev/null +++ b/data/minecraft/tags/item/fences.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:wooden_fences", + "minecraft:nether_brick_fence" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/fishes.json b/data/minecraft/tags/item/fishes.json new file mode 100644 index 00000000..434e9372 --- /dev/null +++ b/data/minecraft/tags/item/fishes.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/flowers.json b/data/minecraft/tags/item/flowers.json new file mode 100644 index 00000000..9e10a4de --- /dev/null +++ b/data/minecraft/tags/item/flowers.json @@ -0,0 +1,13 @@ +{ + "values": [ + "#minecraft:small_flowers", + "#minecraft:tall_flowers", + "minecraft:flowering_azalea_leaves", + "minecraft:flowering_azalea", + "minecraft:mangrove_propagule", + "minecraft:cherry_leaves", + "minecraft:pink_petals", + "minecraft:chorus_flower", + "minecraft:spore_blossom" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/foot_armor.json b/data/minecraft/tags/item/foot_armor.json new file mode 100644 index 00000000..c5099cff --- /dev/null +++ b/data/minecraft/tags/item/foot_armor.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:leather_boots", + "minecraft:chainmail_boots", + "minecraft:golden_boots", + "minecraft:iron_boots", + "minecraft:diamond_boots", + "minecraft:netherite_boots" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/fox_food.json b/data/minecraft/tags/item/fox_food.json new file mode 100644 index 00000000..500bd943 --- /dev/null +++ b/data/minecraft/tags/item/fox_food.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:sweet_berries", + "minecraft:glow_berries" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/freeze_immune_wearables.json b/data/minecraft/tags/item/freeze_immune_wearables.json new file mode 100644 index 00000000..1e8a642d --- /dev/null +++ b/data/minecraft/tags/item/freeze_immune_wearables.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:leather_boots", + "minecraft:leather_leggings", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/frog_food.json b/data/minecraft/tags/item/frog_food.json new file mode 100644 index 00000000..533c25d9 --- /dev/null +++ b/data/minecraft/tags/item/frog_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:slime_ball" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/goat_food.json b/data/minecraft/tags/item/goat_food.json new file mode 100644 index 00000000..498cb445 --- /dev/null +++ b/data/minecraft/tags/item/goat_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:wheat" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/gold_ores.json b/data/minecraft/tags/item/gold_ores.json new file mode 100644 index 00000000..279f354d --- /dev/null +++ b/data/minecraft/tags/item/gold_ores.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:gold_ore", + "minecraft:nether_gold_ore", + "minecraft:deepslate_gold_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/hanging_signs.json b/data/minecraft/tags/item/hanging_signs.json new file mode 100644 index 00000000..4ca06dad --- /dev/null +++ b/data/minecraft/tags/item/hanging_signs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_hanging_sign", + "minecraft:spruce_hanging_sign", + "minecraft:birch_hanging_sign", + "minecraft:acacia_hanging_sign", + "minecraft:cherry_hanging_sign", + "minecraft:jungle_hanging_sign", + "minecraft:dark_oak_hanging_sign", + "minecraft:crimson_hanging_sign", + "minecraft:warped_hanging_sign", + "minecraft:mangrove_hanging_sign", + "minecraft:bamboo_hanging_sign" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/head_armor.json b/data/minecraft/tags/item/head_armor.json new file mode 100644 index 00000000..6b32ea92 --- /dev/null +++ b/data/minecraft/tags/item/head_armor.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:leather_helmet", + "minecraft:chainmail_helmet", + "minecraft:golden_helmet", + "minecraft:iron_helmet", + "minecraft:diamond_helmet", + "minecraft:netherite_helmet", + "minecraft:turtle_helmet" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/hoes.json b/data/minecraft/tags/item/hoes.json new file mode 100644 index 00000000..4b49189c --- /dev/null +++ b/data/minecraft/tags/item/hoes.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:diamond_hoe", + "minecraft:stone_hoe", + "minecraft:golden_hoe", + "minecraft:netherite_hoe", + "minecraft:wooden_hoe", + "minecraft:iron_hoe" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/hoglin_food.json b/data/minecraft/tags/item/hoglin_food.json new file mode 100644 index 00000000..cca7408f --- /dev/null +++ b/data/minecraft/tags/item/hoglin_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:crimson_fungus" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/horse_food.json b/data/minecraft/tags/item/horse_food.json new file mode 100644 index 00000000..d348d107 --- /dev/null +++ b/data/minecraft/tags/item/horse_food.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:wheat", + "minecraft:sugar", + "minecraft:hay_block", + "minecraft:apple", + "minecraft:golden_carrot", + "minecraft:golden_apple", + "minecraft:enchanted_golden_apple" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/horse_tempt_items.json b/data/minecraft/tags/item/horse_tempt_items.json new file mode 100644 index 00000000..9e7e81d4 --- /dev/null +++ b/data/minecraft/tags/item/horse_tempt_items.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:golden_carrot", + "minecraft:golden_apple", + "minecraft:enchanted_golden_apple" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/ignored_by_piglin_babies.json b/data/minecraft/tags/item/ignored_by_piglin_babies.json new file mode 100644 index 00000000..71b797d3 --- /dev/null +++ b/data/minecraft/tags/item/ignored_by_piglin_babies.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:leather" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/iron_ores.json b/data/minecraft/tags/item/iron_ores.json new file mode 100644 index 00000000..0566d8ab --- /dev/null +++ b/data/minecraft/tags/item/iron_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:iron_ore", + "minecraft:deepslate_iron_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/jungle_logs.json b/data/minecraft/tags/item/jungle_logs.json new file mode 100644 index 00000000..437efbff --- /dev/null +++ b/data/minecraft/tags/item/jungle_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/lapis_ores.json b/data/minecraft/tags/item/lapis_ores.json new file mode 100644 index 00000000..a041526e --- /dev/null +++ b/data/minecraft/tags/item/lapis_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:lapis_ore", + "minecraft:deepslate_lapis_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/leaves.json b/data/minecraft/tags/item/leaves.json new file mode 100644 index 00000000..6815479c --- /dev/null +++ b/data/minecraft/tags/item/leaves.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves", + "minecraft:azalea_leaves", + "minecraft:flowering_azalea_leaves", + "minecraft:mangrove_leaves", + "minecraft:cherry_leaves" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/lectern_books.json b/data/minecraft/tags/item/lectern_books.json new file mode 100644 index 00000000..d34a332a --- /dev/null +++ b/data/minecraft/tags/item/lectern_books.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:written_book", + "minecraft:writable_book" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/leg_armor.json b/data/minecraft/tags/item/leg_armor.json new file mode 100644 index 00000000..897cae41 --- /dev/null +++ b/data/minecraft/tags/item/leg_armor.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:leather_leggings", + "minecraft:chainmail_leggings", + "minecraft:golden_leggings", + "minecraft:iron_leggings", + "minecraft:diamond_leggings", + "minecraft:netherite_leggings" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/llama_food.json b/data/minecraft/tags/item/llama_food.json new file mode 100644 index 00000000..a80c6075 --- /dev/null +++ b/data/minecraft/tags/item/llama_food.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:wheat", + "minecraft:hay_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/llama_tempt_items.json b/data/minecraft/tags/item/llama_tempt_items.json new file mode 100644 index 00000000..ea92d03c --- /dev/null +++ b/data/minecraft/tags/item/llama_tempt_items.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:hay_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/logs.json b/data/minecraft/tags/item/logs.json new file mode 100644 index 00000000..234e4fee --- /dev/null +++ b/data/minecraft/tags/item/logs.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:logs_that_burn", + "#minecraft:crimson_stems", + "#minecraft:warped_stems" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/logs_that_burn.json b/data/minecraft/tags/item/logs_that_burn.json new file mode 100644 index 00000000..3b2590c9 --- /dev/null +++ b/data/minecraft/tags/item/logs_that_burn.json @@ -0,0 +1,12 @@ +{ + "values": [ + "#minecraft:dark_oak_logs", + "#minecraft:oak_logs", + "#minecraft:acacia_logs", + "#minecraft:birch_logs", + "#minecraft:jungle_logs", + "#minecraft:spruce_logs", + "#minecraft:mangrove_logs", + "#minecraft:cherry_logs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/mangrove_logs.json b/data/minecraft/tags/item/mangrove_logs.json new file mode 100644 index 00000000..d69fadff --- /dev/null +++ b/data/minecraft/tags/item/mangrove_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/meat.json b/data/minecraft/tags/item/meat.json new file mode 100644 index 00000000..df339943 --- /dev/null +++ b/data/minecraft/tags/item/meat.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:beef", + "minecraft:chicken", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:mutton", + "minecraft:porkchop", + "minecraft:rabbit", + "minecraft:rotten_flesh" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/non_flammable_wood.json b/data/minecraft/tags/item/non_flammable_wood.json new file mode 100644 index 00000000..540eb23a --- /dev/null +++ b/data/minecraft/tags/item/non_flammable_wood.json @@ -0,0 +1,34 @@ +{ + "values": [ + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:warped_planks", + "minecraft:crimson_slab", + "minecraft:warped_slab", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate", + "minecraft:crimson_fence", + "minecraft:warped_fence", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor", + "minecraft:crimson_fence_gate", + "minecraft:warped_fence_gate", + "minecraft:crimson_stairs", + "minecraft:warped_stairs", + "minecraft:crimson_button", + "minecraft:warped_button", + "minecraft:crimson_door", + "minecraft:warped_door", + "minecraft:crimson_sign", + "minecraft:warped_sign", + "minecraft:warped_hanging_sign", + "minecraft:crimson_hanging_sign" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/noteblock_top_instruments.json b/data/minecraft/tags/item/noteblock_top_instruments.json new file mode 100644 index 00000000..b32f59c6 --- /dev/null +++ b/data/minecraft/tags/item/noteblock_top_instruments.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:zombie_head", + "minecraft:skeleton_skull", + "minecraft:creeper_head", + "minecraft:dragon_head", + "minecraft:wither_skeleton_skull", + "minecraft:piglin_head", + "minecraft:player_head" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/oak_logs.json b/data/minecraft/tags/item/oak_logs.json new file mode 100644 index 00000000..d4bae2a2 --- /dev/null +++ b/data/minecraft/tags/item/oak_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/ocelot_food.json b/data/minecraft/tags/item/ocelot_food.json new file mode 100644 index 00000000..7869b407 --- /dev/null +++ b/data/minecraft/tags/item/ocelot_food.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:cod", + "minecraft:salmon" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/panda_food.json b/data/minecraft/tags/item/panda_food.json new file mode 100644 index 00000000..acf1b10b --- /dev/null +++ b/data/minecraft/tags/item/panda_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:bamboo" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/parrot_food.json b/data/minecraft/tags/item/parrot_food.json new file mode 100644 index 00000000..295a67c8 --- /dev/null +++ b/data/minecraft/tags/item/parrot_food.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:wheat_seeds", + "minecraft:melon_seeds", + "minecraft:pumpkin_seeds", + "minecraft:beetroot_seeds", + "minecraft:torchflower_seeds", + "minecraft:pitcher_pod" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/parrot_poisonous_food.json b/data/minecraft/tags/item/parrot_poisonous_food.json new file mode 100644 index 00000000..a7c0dc91 --- /dev/null +++ b/data/minecraft/tags/item/parrot_poisonous_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:cookie" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/pickaxes.json b/data/minecraft/tags/item/pickaxes.json new file mode 100644 index 00000000..dc0cec7d --- /dev/null +++ b/data/minecraft/tags/item/pickaxes.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:diamond_pickaxe", + "minecraft:stone_pickaxe", + "minecraft:golden_pickaxe", + "minecraft:netherite_pickaxe", + "minecraft:wooden_pickaxe", + "minecraft:iron_pickaxe" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/pig_food.json b/data/minecraft/tags/item/pig_food.json new file mode 100644 index 00000000..204b4abb --- /dev/null +++ b/data/minecraft/tags/item/pig_food.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:carrot", + "minecraft:potato", + "minecraft:beetroot" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/piglin_food.json b/data/minecraft/tags/item/piglin_food.json new file mode 100644 index 00000000..0dde9b43 --- /dev/null +++ b/data/minecraft/tags/item/piglin_food.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:porkchop", + "minecraft:cooked_porkchop" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/piglin_loved.json b/data/minecraft/tags/item/piglin_loved.json new file mode 100644 index 00000000..ebde2f0b --- /dev/null +++ b/data/minecraft/tags/item/piglin_loved.json @@ -0,0 +1,27 @@ +{ + "values": [ + "#minecraft:gold_ores", + "minecraft:gold_block", + "minecraft:gilded_blackstone", + "minecraft:light_weighted_pressure_plate", + "minecraft:gold_ingot", + "minecraft:bell", + "minecraft:clock", + "minecraft:golden_carrot", + "minecraft:glistering_melon_slice", + "minecraft:golden_apple", + "minecraft:enchanted_golden_apple", + "minecraft:golden_helmet", + "minecraft:golden_chestplate", + "minecraft:golden_leggings", + "minecraft:golden_boots", + "minecraft:golden_horse_armor", + "minecraft:golden_sword", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_axe", + "minecraft:golden_hoe", + "minecraft:raw_gold", + "minecraft:raw_gold_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/piglin_repellents.json b/data/minecraft/tags/item/piglin_repellents.json new file mode 100644 index 00000000..1538a80c --- /dev/null +++ b/data/minecraft/tags/item/piglin_repellents.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:soul_torch", + "minecraft:soul_lantern", + "minecraft:soul_campfire" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/planks.json b/data/minecraft/tags/item/planks.json new file mode 100644 index 00000000..a8ff5bb5 --- /dev/null +++ b/data/minecraft/tags/item/planks.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks", + "minecraft:crimson_planks", + "minecraft:warped_planks", + "minecraft:mangrove_planks", + "minecraft:bamboo_planks", + "minecraft:cherry_planks" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/rabbit_food.json b/data/minecraft/tags/item/rabbit_food.json new file mode 100644 index 00000000..a67d5321 --- /dev/null +++ b/data/minecraft/tags/item/rabbit_food.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:carrot", + "minecraft:golden_carrot", + "minecraft:dandelion" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/rails.json b/data/minecraft/tags/item/rails.json new file mode 100644 index 00000000..ba7e2c11 --- /dev/null +++ b/data/minecraft/tags/item/rails.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/redstone_ores.json b/data/minecraft/tags/item/redstone_ores.json new file mode 100644 index 00000000..2fd184de --- /dev/null +++ b/data/minecraft/tags/item/redstone_ores.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:redstone_ore", + "minecraft:deepslate_redstone_ore" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/sand.json b/data/minecraft/tags/item/sand.json new file mode 100644 index 00000000..669a6508 --- /dev/null +++ b/data/minecraft/tags/item/sand.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:sand", + "minecraft:red_sand", + "minecraft:suspicious_sand", + "minecraft:suspicious_sand" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/saplings.json b/data/minecraft/tags/item/saplings.json new file mode 100644 index 00000000..cebde163 --- /dev/null +++ b/data/minecraft/tags/item/saplings.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling", + "minecraft:azalea", + "minecraft:flowering_azalea", + "minecraft:mangrove_propagule", + "minecraft:cherry_sapling" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/sheep_food.json b/data/minecraft/tags/item/sheep_food.json new file mode 100644 index 00000000..498cb445 --- /dev/null +++ b/data/minecraft/tags/item/sheep_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:wheat" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/shovels.json b/data/minecraft/tags/item/shovels.json new file mode 100644 index 00000000..ecad3da0 --- /dev/null +++ b/data/minecraft/tags/item/shovels.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:diamond_shovel", + "minecraft:stone_shovel", + "minecraft:golden_shovel", + "minecraft:netherite_shovel", + "minecraft:wooden_shovel", + "minecraft:iron_shovel" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/signs.json b/data/minecraft/tags/item/signs.json new file mode 100644 index 00000000..7b4ddb48 --- /dev/null +++ b/data/minecraft/tags/item/signs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:crimson_sign", + "minecraft:warped_sign", + "minecraft:mangrove_sign", + "minecraft:bamboo_sign", + "minecraft:cherry_sign" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/skulls.json b/data/minecraft/tags/item/skulls.json new file mode 100644 index 00000000..1e76c2e2 --- /dev/null +++ b/data/minecraft/tags/item/skulls.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:player_head", + "minecraft:creeper_head", + "minecraft:zombie_head", + "minecraft:skeleton_skull", + "minecraft:wither_skeleton_skull", + "minecraft:dragon_head", + "minecraft:piglin_head" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/slabs.json b/data/minecraft/tags/item/slabs.json new file mode 100644 index 00000000..0f3f5aea --- /dev/null +++ b/data/minecraft/tags/item/slabs.json @@ -0,0 +1,54 @@ +{ + "values": [ + "#minecraft:wooden_slabs", + "minecraft:bamboo_mosaic_slab", + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:blackstone_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:cobbled_deepslate_slab", + "minecraft:polished_deepslate_slab", + "minecraft:deepslate_tile_slab", + "minecraft:deepslate_brick_slab", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_cut_copper_slab", + "minecraft:oxidized_cut_copper_slab", + "minecraft:weathered_cut_copper_slab", + "minecraft:exposed_cut_copper_slab", + "minecraft:cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:mud_brick_slab", + "minecraft:tuff_slab", + "minecraft:polished_tuff_slab", + "minecraft:tuff_brick_slab" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/small_flowers.json b/data/minecraft/tags/item/small_flowers.json new file mode 100644 index 00000000..2477625f --- /dev/null +++ b/data/minecraft/tags/item/small_flowers.json @@ -0,0 +1,18 @@ +{ + "values": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose", + "minecraft:torchflower" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/smelts_to_glass.json b/data/minecraft/tags/item/smelts_to_glass.json new file mode 100644 index 00000000..3d8220ec --- /dev/null +++ b/data/minecraft/tags/item/smelts_to_glass.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:sand", + "minecraft:red_sand" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/sniffer_food.json b/data/minecraft/tags/item/sniffer_food.json new file mode 100644 index 00000000..e02282a3 --- /dev/null +++ b/data/minecraft/tags/item/sniffer_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:torchflower_seeds" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/soul_fire_base_blocks.json b/data/minecraft/tags/item/soul_fire_base_blocks.json new file mode 100644 index 00000000..e8aa4afd --- /dev/null +++ b/data/minecraft/tags/item/soul_fire_base_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/spruce_logs.json b/data/minecraft/tags/item/spruce_logs.json new file mode 100644 index 00000000..a8008420 --- /dev/null +++ b/data/minecraft/tags/item/spruce_logs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/stairs.json b/data/minecraft/tags/item/stairs.json new file mode 100644 index 00000000..eb67a9fe --- /dev/null +++ b/data/minecraft/tags/item/stairs.json @@ -0,0 +1,50 @@ +{ + "values": [ + "#minecraft:wooden_stairs", + "minecraft:bamboo_mosaic_stairs", + "minecraft:cobblestone_stairs", + "minecraft:sandstone_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs", + "minecraft:blackstone_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:cobbled_deepslate_stairs", + "minecraft:polished_deepslate_stairs", + "minecraft:deepslate_tile_stairs", + "minecraft:deepslate_brick_stairs", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:weathered_cut_copper_stairs", + "minecraft:exposed_cut_copper_stairs", + "minecraft:cut_copper_stairs", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:mud_brick_stairs", + "minecraft:tuff_stairs", + "minecraft:polished_tuff_stairs", + "minecraft:tuff_brick_stairs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/stone_bricks.json b/data/minecraft/tags/item/stone_bricks.json new file mode 100644 index 00000000..973064b9 --- /dev/null +++ b/data/minecraft/tags/item/stone_bricks.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/stone_buttons.json b/data/minecraft/tags/item/stone_buttons.json new file mode 100644 index 00000000..decb592a --- /dev/null +++ b/data/minecraft/tags/item/stone_buttons.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:stone_button", + "minecraft:polished_blackstone_button" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/stone_crafting_materials.json b/data/minecraft/tags/item/stone_crafting_materials.json new file mode 100644 index 00000000..e579c141 --- /dev/null +++ b/data/minecraft/tags/item/stone_crafting_materials.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:cobblestone", + "minecraft:blackstone", + "minecraft:cobbled_deepslate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/stone_tool_materials.json b/data/minecraft/tags/item/stone_tool_materials.json new file mode 100644 index 00000000..e579c141 --- /dev/null +++ b/data/minecraft/tags/item/stone_tool_materials.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:cobblestone", + "minecraft:blackstone", + "minecraft:cobbled_deepslate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/strider_food.json b/data/minecraft/tags/item/strider_food.json new file mode 100644 index 00000000..af616fbe --- /dev/null +++ b/data/minecraft/tags/item/strider_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:warped_fungus" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/strider_tempt_items.json b/data/minecraft/tags/item/strider_tempt_items.json new file mode 100644 index 00000000..f9c93495 --- /dev/null +++ b/data/minecraft/tags/item/strider_tempt_items.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:strider_food", + "minecraft:warped_fungus_on_a_stick" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/swords.json b/data/minecraft/tags/item/swords.json new file mode 100644 index 00000000..5402ffb0 --- /dev/null +++ b/data/minecraft/tags/item/swords.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:diamond_sword", + "minecraft:stone_sword", + "minecraft:golden_sword", + "minecraft:netherite_sword", + "minecraft:wooden_sword", + "minecraft:iron_sword" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/tall_flowers.json b/data/minecraft/tags/item/tall_flowers.json new file mode 100644 index 00000000..144eb89e --- /dev/null +++ b/data/minecraft/tags/item/tall_flowers.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush", + "minecraft:pitcher_plant" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/terracotta.json b/data/minecraft/tags/item/terracotta.json new file mode 100644 index 00000000..27aac67a --- /dev/null +++ b/data/minecraft/tags/item/terracotta.json @@ -0,0 +1,21 @@ +{ + "values": [ + "minecraft:terracotta", + "minecraft:white_terracotta", + "minecraft:orange_terracotta", + "minecraft:magenta_terracotta", + "minecraft:light_blue_terracotta", + "minecraft:yellow_terracotta", + "minecraft:lime_terracotta", + "minecraft:pink_terracotta", + "minecraft:gray_terracotta", + "minecraft:light_gray_terracotta", + "minecraft:cyan_terracotta", + "minecraft:purple_terracotta", + "minecraft:blue_terracotta", + "minecraft:brown_terracotta", + "minecraft:green_terracotta", + "minecraft:red_terracotta", + "minecraft:black_terracotta" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/trapdoors.json b/data/minecraft/tags/item/trapdoors.json new file mode 100644 index 00000000..269e4b8c --- /dev/null +++ b/data/minecraft/tags/item/trapdoors.json @@ -0,0 +1,14 @@ +{ + "values": [ + "#minecraft:wooden_trapdoors", + "minecraft:iron_trapdoor", + "minecraft:copper_trapdoor", + "minecraft:exposed_copper_trapdoor", + "minecraft:weathered_copper_trapdoor", + "minecraft:oxidized_copper_trapdoor", + "minecraft:waxed_copper_trapdoor", + "minecraft:waxed_exposed_copper_trapdoor", + "minecraft:waxed_weathered_copper_trapdoor", + "minecraft:waxed_oxidized_copper_trapdoor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/trim_materials.json b/data/minecraft/tags/item/trim_materials.json new file mode 100644 index 00000000..d105d4f0 --- /dev/null +++ b/data/minecraft/tags/item/trim_materials.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:iron_ingot", + "minecraft:copper_ingot", + "minecraft:gold_ingot", + "minecraft:lapis_lazuli", + "minecraft:emerald", + "minecraft:diamond", + "minecraft:netherite_ingot", + "minecraft:redstone", + "minecraft:quartz", + "minecraft:amethyst_shard" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/trim_templates.json b/data/minecraft/tags/item/trim_templates.json new file mode 100644 index 00000000..360be130 --- /dev/null +++ b/data/minecraft/tags/item/trim_templates.json @@ -0,0 +1,22 @@ +{ + "values": [ + "minecraft:ward_armor_trim_smithing_template", + "minecraft:spire_armor_trim_smithing_template", + "minecraft:coast_armor_trim_smithing_template", + "minecraft:eye_armor_trim_smithing_template", + "minecraft:dune_armor_trim_smithing_template", + "minecraft:wild_armor_trim_smithing_template", + "minecraft:rib_armor_trim_smithing_template", + "minecraft:tide_armor_trim_smithing_template", + "minecraft:sentry_armor_trim_smithing_template", + "minecraft:vex_armor_trim_smithing_template", + "minecraft:snout_armor_trim_smithing_template", + "minecraft:wayfinder_armor_trim_smithing_template", + "minecraft:shaper_armor_trim_smithing_template", + "minecraft:silence_armor_trim_smithing_template", + "minecraft:raiser_armor_trim_smithing_template", + "minecraft:host_armor_trim_smithing_template", + "minecraft:flow_armor_trim_smithing_template", + "minecraft:bolt_armor_trim_smithing_template" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/trimmable_armor.json b/data/minecraft/tags/item/trimmable_armor.json new file mode 100644 index 00000000..00a23523 --- /dev/null +++ b/data/minecraft/tags/item/trimmable_armor.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:foot_armor", + "#minecraft:leg_armor", + "#minecraft:chest_armor", + "#minecraft:head_armor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/turtle_food.json b/data/minecraft/tags/item/turtle_food.json new file mode 100644 index 00000000..92433f72 --- /dev/null +++ b/data/minecraft/tags/item/turtle_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:seagrass" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/villager_plantable_seeds.json b/data/minecraft/tags/item/villager_plantable_seeds.json new file mode 100644 index 00000000..00a0c227 --- /dev/null +++ b/data/minecraft/tags/item/villager_plantable_seeds.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:wheat_seeds", + "minecraft:potato", + "minecraft:carrot", + "minecraft:beetroot_seeds", + "minecraft:torchflower_seeds", + "minecraft:pitcher_pod" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/walls.json b/data/minecraft/tags/item/walls.json new file mode 100644 index 00000000..b4d42842 --- /dev/null +++ b/data/minecraft/tags/item/walls.json @@ -0,0 +1,29 @@ +{ + "values": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall", + "minecraft:blackstone_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall", + "minecraft:cobbled_deepslate_wall", + "minecraft:polished_deepslate_wall", + "minecraft:deepslate_tile_wall", + "minecraft:deepslate_brick_wall", + "minecraft:mud_brick_wall", + "minecraft:tuff_wall", + "minecraft:polished_tuff_wall", + "minecraft:tuff_brick_wall" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/warped_stems.json b/data/minecraft/tags/item/warped_stems.json new file mode 100644 index 00000000..4da63869 --- /dev/null +++ b/data/minecraft/tags/item/warped_stems.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wart_blocks.json b/data/minecraft/tags/item/wart_blocks.json new file mode 100644 index 00000000..bab2679f --- /dev/null +++ b/data/minecraft/tags/item/wart_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:nether_wart_block", + "minecraft:warped_wart_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wolf_food.json b/data/minecraft/tags/item/wolf_food.json new file mode 100644 index 00000000..072676b6 --- /dev/null +++ b/data/minecraft/tags/item/wolf_food.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:meat" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wooden_buttons.json b/data/minecraft/tags/item/wooden_buttons.json new file mode 100644 index 00000000..fe5e0572 --- /dev/null +++ b/data/minecraft/tags/item/wooden_buttons.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button", + "minecraft:crimson_button", + "minecraft:warped_button", + "minecraft:mangrove_button", + "minecraft:bamboo_button", + "minecraft:cherry_button" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wooden_doors.json b/data/minecraft/tags/item/wooden_doors.json new file mode 100644 index 00000000..5c9de920 --- /dev/null +++ b/data/minecraft/tags/item/wooden_doors.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door", + "minecraft:crimson_door", + "minecraft:warped_door", + "minecraft:mangrove_door", + "minecraft:bamboo_door", + "minecraft:cherry_door" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wooden_fences.json b/data/minecraft/tags/item/wooden_fences.json new file mode 100644 index 00000000..cecdd724 --- /dev/null +++ b/data/minecraft/tags/item/wooden_fences.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence", + "minecraft:crimson_fence", + "minecraft:warped_fence", + "minecraft:mangrove_fence", + "minecraft:bamboo_fence", + "minecraft:cherry_fence" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wooden_pressure_plates.json b/data/minecraft/tags/item/wooden_pressure_plates.json new file mode 100644 index 00000000..79558b92 --- /dev/null +++ b/data/minecraft/tags/item/wooden_pressure_plates.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate", + "minecraft:mangrove_pressure_plate", + "minecraft:bamboo_pressure_plate", + "minecraft:cherry_pressure_plate" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wooden_slabs.json b/data/minecraft/tags/item/wooden_slabs.json new file mode 100644 index 00000000..be1fba2b --- /dev/null +++ b/data/minecraft/tags/item/wooden_slabs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab", + "minecraft:crimson_slab", + "minecraft:warped_slab", + "minecraft:mangrove_slab", + "minecraft:bamboo_slab", + "minecraft:cherry_slab" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wooden_stairs.json b/data/minecraft/tags/item/wooden_stairs.json new file mode 100644 index 00000000..7561537f --- /dev/null +++ b/data/minecraft/tags/item/wooden_stairs.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs", + "minecraft:crimson_stairs", + "minecraft:warped_stairs", + "minecraft:mangrove_stairs", + "minecraft:bamboo_stairs", + "minecraft:cherry_stairs" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wooden_trapdoors.json b/data/minecraft/tags/item/wooden_trapdoors.json new file mode 100644 index 00000000..8e93dc6d --- /dev/null +++ b/data/minecraft/tags/item/wooden_trapdoors.json @@ -0,0 +1,15 @@ +{ + "values": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor", + "minecraft:mangrove_trapdoor", + "minecraft:bamboo_trapdoor", + "minecraft:cherry_trapdoor" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wool.json b/data/minecraft/tags/item/wool.json new file mode 100644 index 00000000..bb52fac8 --- /dev/null +++ b/data/minecraft/tags/item/wool.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/item/wool_carpets.json b/data/minecraft/tags/item/wool_carpets.json new file mode 100644 index 00000000..4dec4650 --- /dev/null +++ b/data/minecraft/tags/item/wool_carpets.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/painting_variant/placeable.json b/data/minecraft/tags/painting_variant/placeable.json new file mode 100644 index 00000000..79664889 --- /dev/null +++ b/data/minecraft/tags/painting_variant/placeable.json @@ -0,0 +1,50 @@ +{ + "values": [ + "minecraft:kebab", + "minecraft:aztec", + "minecraft:alban", + "minecraft:aztec2", + "minecraft:bomb", + "minecraft:plant", + "minecraft:wasteland", + "minecraft:pool", + "minecraft:courbet", + "minecraft:sea", + "minecraft:sunset", + "minecraft:creebet", + "minecraft:wanderer", + "minecraft:graham", + "minecraft:match", + "minecraft:bust", + "minecraft:stage", + "minecraft:void", + "minecraft:skull_and_roses", + "minecraft:wither", + "minecraft:fighters", + "minecraft:pointer", + "minecraft:pigscene", + "minecraft:burning_skull", + "minecraft:skeleton", + "minecraft:donkey_kong", + "minecraft:baroque", + "minecraft:humble", + "minecraft:meditative", + "minecraft:prairie_ride", + "minecraft:unpacked", + "minecraft:backyard", + "minecraft:bouquet", + "minecraft:cavebird", + "minecraft:changing", + "minecraft:cotan", + "minecraft:endboss", + "minecraft:fern", + "minecraft:finding", + "minecraft:lowmist", + "minecraft:orb", + "minecraft:owlemons", + "minecraft:passage", + "minecraft:pond", + "minecraft:sunflowers", + "minecraft:tides" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json b/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json new file mode 100644 index 00000000..3f0ecb64 --- /dev/null +++ b/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json @@ -0,0 +1,17 @@ +{ + "values": [ + "minecraft:armorer", + "minecraft:butcher", + "minecraft:cartographer", + "minecraft:cleric", + "minecraft:farmer", + "minecraft:fisherman", + "minecraft:fletcher", + "minecraft:leatherworker", + "minecraft:librarian", + "minecraft:mason", + "minecraft:shepherd", + "minecraft:toolsmith", + "minecraft:weaponsmith" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/point_of_interest_type/bee_home.json b/data/minecraft/tags/point_of_interest_type/bee_home.json new file mode 100644 index 00000000..4c023d0f --- /dev/null +++ b/data/minecraft/tags/point_of_interest_type/bee_home.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:beehive", + "minecraft:bee_nest" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/point_of_interest_type/village.json b/data/minecraft/tags/point_of_interest_type/village.json new file mode 100644 index 00000000..92e93e8f --- /dev/null +++ b/data/minecraft/tags/point_of_interest_type/village.json @@ -0,0 +1,7 @@ +{ + "values": [ + "#minecraft:acquirable_job_site", + "minecraft:home", + "minecraft:meeting" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/allows_surface_slime_spawns.json b/data/minecraft/tags/worldgen/biome/allows_surface_slime_spawns.json new file mode 100644 index 00000000..0f5eb22e --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/allows_surface_slime_spawns.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/allows_tropical_fish_spawns_at_any_height.json b/data/minecraft/tags/worldgen/biome/allows_tropical_fish_spawns_at_any_height.json new file mode 100644 index 00000000..14035f0a --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/allows_tropical_fish_spawns_at_any_height.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:lush_caves" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_closer_water_fog.json b/data/minecraft/tags/worldgen/biome/has_closer_water_fog.json new file mode 100644 index 00000000..0f5eb22e --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_closer_water_fog.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ancient_city.json b/data/minecraft/tags/worldgen/biome/has_structure/ancient_city.json new file mode 100644 index 00000000..896ce431 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ancient_city.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:deep_dark" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/bastion_remnant.json b/data/minecraft/tags/worldgen/biome/has_structure/bastion_remnant.json new file mode 100644 index 00000000..35f76302 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/bastion_remnant.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:crimson_forest", + "minecraft:nether_wastes", + "minecraft:soul_sand_valley", + "minecraft:warped_forest" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/buried_treasure.json b/data/minecraft/tags/worldgen/biome/has_structure/buried_treasure.json new file mode 100644 index 00000000..b15673e3 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/buried_treasure.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_beach" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/desert_pyramid.json b/data/minecraft/tags/worldgen/biome/has_structure/desert_pyramid.json new file mode 100644 index 00000000..f1a8ccb6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/desert_pyramid.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:desert" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/end_city.json b/data/minecraft/tags/worldgen/biome/has_structure/end_city.json new file mode 100644 index 00000000..b7e75588 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/end_city.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:end_highlands", + "minecraft:end_midlands" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/igloo.json b/data/minecraft/tags/worldgen/biome/has_structure/igloo.json new file mode 100644 index 00000000..71ee6f11 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/igloo.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:snowy_taiga", + "minecraft:snowy_plains", + "minecraft:snowy_slopes" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/jungle_temple.json b/data/minecraft/tags/worldgen/biome/has_structure/jungle_temple.json new file mode 100644 index 00000000..cdde1cc9 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/jungle_temple.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:bamboo_jungle", + "minecraft:jungle" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/mineshaft.json b/data/minecraft/tags/worldgen/biome/has_structure/mineshaft.json new file mode 100644 index 00000000..a211c8c8 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/mineshaft.json @@ -0,0 +1,26 @@ +{ + "values": [ + "#minecraft:is_ocean", + "#minecraft:is_river", + "#minecraft:is_beach", + "#minecraft:is_mountain", + "#minecraft:is_hill", + "#minecraft:is_taiga", + "#minecraft:is_jungle", + "#minecraft:is_forest", + "minecraft:stony_shore", + "minecraft:mushroom_fields", + "minecraft:ice_spikes", + "minecraft:windswept_savanna", + "minecraft:desert", + "minecraft:savanna", + "minecraft:snowy_plains", + "minecraft:plains", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:mangrove_swamp", + "minecraft:savanna_plateau", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/mineshaft_mesa.json b/data/minecraft/tags/worldgen/biome/has_structure/mineshaft_mesa.json new file mode 100644 index 00000000..161fcc28 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/mineshaft_mesa.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_badlands" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/nether_fortress.json b/data/minecraft/tags/worldgen/biome/has_structure/nether_fortress.json new file mode 100644 index 00000000..f7e672b8 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/nether_fortress.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_nether" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/nether_fossil.json b/data/minecraft/tags/worldgen/biome/has_structure/nether_fossil.json new file mode 100644 index 00000000..220ffbbb --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/nether_fossil.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:soul_sand_valley" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ocean_monument.json b/data/minecraft/tags/worldgen/biome/has_structure/ocean_monument.json new file mode 100644 index 00000000..0fef9dd3 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ocean_monument.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_deep_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ocean_ruin_cold.json b/data/minecraft/tags/worldgen/biome/has_structure/ocean_ruin_cold.json new file mode 100644 index 00000000..87f9e020 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ocean_ruin_cold.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:frozen_ocean", + "minecraft:cold_ocean", + "minecraft:ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_cold_ocean", + "minecraft:deep_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ocean_ruin_warm.json b/data/minecraft/tags/worldgen/biome/has_structure/ocean_ruin_warm.json new file mode 100644 index 00000000..7e0e114b --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ocean_ruin_warm.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:lukewarm_ocean", + "minecraft:warm_ocean", + "minecraft:deep_lukewarm_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/pillager_outpost.json b/data/minecraft/tags/worldgen/biome/has_structure/pillager_outpost.json new file mode 100644 index 00000000..966dca19 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/pillager_outpost.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:desert", + "minecraft:plains", + "minecraft:savanna", + "minecraft:snowy_plains", + "minecraft:taiga", + "#minecraft:is_mountain", + "minecraft:grove" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_desert.json b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_desert.json new file mode 100644 index 00000000..f1a8ccb6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_desert.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:desert" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_jungle.json b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_jungle.json new file mode 100644 index 00000000..c1d3c371 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_jungle.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_jungle" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_mountain.json b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_mountain.json new file mode 100644 index 00000000..5863945e --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_mountain.json @@ -0,0 +1,10 @@ +{ + "values": [ + "#minecraft:is_badlands", + "#minecraft:is_hill", + "minecraft:savanna_plateau", + "minecraft:windswept_savanna", + "minecraft:stony_shore", + "#minecraft:is_mountain" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_nether.json b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_nether.json new file mode 100644 index 00000000..f7e672b8 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_nether.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_nether" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_ocean.json b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_ocean.json new file mode 100644 index 00000000..9d98621b --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_ocean.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_standard.json b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_standard.json new file mode 100644 index 00000000..3cf0503f --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_standard.json @@ -0,0 +1,16 @@ +{ + "values": [ + "#minecraft:is_beach", + "#minecraft:is_river", + "#minecraft:is_taiga", + "#minecraft:is_forest", + "minecraft:mushroom_fields", + "minecraft:ice_spikes", + "minecraft:dripstone_caves", + "minecraft:lush_caves", + "minecraft:savanna", + "minecraft:snowy_plains", + "minecraft:plains", + "minecraft:sunflower_plains" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_swamp.json b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_swamp.json new file mode 100644 index 00000000..0f5eb22e --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_swamp.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/shipwreck.json b/data/minecraft/tags/worldgen/biome/has_structure/shipwreck.json new file mode 100644 index 00000000..9d98621b --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/shipwreck.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/shipwreck_beached.json b/data/minecraft/tags/worldgen/biome/has_structure/shipwreck_beached.json new file mode 100644 index 00000000..b15673e3 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/shipwreck_beached.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_beach" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/stronghold.json b/data/minecraft/tags/worldgen/biome/has_structure/stronghold.json new file mode 100644 index 00000000..d3152c5b --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/stronghold.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_overworld" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/swamp_hut.json b/data/minecraft/tags/worldgen/biome/has_structure/swamp_hut.json new file mode 100644 index 00000000..6afa2575 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/swamp_hut.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:swamp" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/trail_ruins.json b/data/minecraft/tags/worldgen/biome/has_structure/trail_ruins.json new file mode 100644 index 00000000..6cd82ab7 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/trail_ruins.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:taiga", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga", + "minecraft:old_growth_birch_forest", + "minecraft:jungle" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/trial_chambers.json b/data/minecraft/tags/worldgen/biome/has_structure/trial_chambers.json new file mode 100644 index 00000000..960b9815 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/trial_chambers.json @@ -0,0 +1,56 @@ +{ + "values": [ + "minecraft:mushroom_fields", + "minecraft:deep_frozen_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_cold_ocean", + "minecraft:cold_ocean", + "minecraft:deep_ocean", + "minecraft:ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:warm_ocean", + "minecraft:stony_shore", + "minecraft:swamp", + "minecraft:mangrove_swamp", + "minecraft:snowy_slopes", + "minecraft:snowy_plains", + "minecraft:snowy_beach", + "minecraft:windswept_gravelly_hills", + "minecraft:grove", + "minecraft:windswept_hills", + "minecraft:snowy_taiga", + "minecraft:windswept_forest", + "minecraft:taiga", + "minecraft:plains", + "minecraft:meadow", + "minecraft:beach", + "minecraft:forest", + "minecraft:old_growth_spruce_taiga", + "minecraft:flower_forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:savanna_plateau", + "minecraft:savanna", + "minecraft:jungle", + "minecraft:badlands", + "minecraft:desert", + "minecraft:wooded_badlands", + "minecraft:jagged_peaks", + "minecraft:stony_peaks", + "minecraft:frozen_river", + "minecraft:river", + "minecraft:ice_spikes", + "minecraft:old_growth_pine_taiga", + "minecraft:sunflower_plains", + "minecraft:old_growth_birch_forest", + "minecraft:sparse_jungle", + "minecraft:bamboo_jungle", + "minecraft:eroded_badlands", + "minecraft:windswept_savanna", + "minecraft:cherry_grove", + "minecraft:frozen_peaks", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/village_desert.json b/data/minecraft/tags/worldgen/biome/has_structure/village_desert.json new file mode 100644 index 00000000..f1a8ccb6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/village_desert.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:desert" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/village_plains.json b/data/minecraft/tags/worldgen/biome/has_structure/village_plains.json new file mode 100644 index 00000000..b602af3b --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/village_plains.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:plains", + "minecraft:meadow" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/village_savanna.json b/data/minecraft/tags/worldgen/biome/has_structure/village_savanna.json new file mode 100644 index 00000000..ed8b4550 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/village_savanna.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:savanna" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/village_snowy.json b/data/minecraft/tags/worldgen/biome/has_structure/village_snowy.json new file mode 100644 index 00000000..05a22cb3 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/village_snowy.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:snowy_plains" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/village_taiga.json b/data/minecraft/tags/worldgen/biome/has_structure/village_taiga.json new file mode 100644 index 00000000..a466ede6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/village_taiga.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:taiga" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/woodland_mansion.json b/data/minecraft/tags/worldgen/biome/has_structure/woodland_mansion.json new file mode 100644 index 00000000..2d31b9e8 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/woodland_mansion.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:dark_forest" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/increased_fire_burnout.json b/data/minecraft/tags/worldgen/biome/increased_fire_burnout.json new file mode 100644 index 00000000..0096896d --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/increased_fire_burnout.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:bamboo_jungle", + "minecraft:mushroom_fields", + "minecraft:mangrove_swamp", + "minecraft:snowy_slopes", + "minecraft:frozen_peaks", + "minecraft:jagged_peaks", + "minecraft:swamp", + "minecraft:jungle" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_badlands.json b/data/minecraft/tags/worldgen/biome/is_badlands.json new file mode 100644 index 00000000..2067af28 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_badlands.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_beach.json b/data/minecraft/tags/worldgen/biome/is_beach.json new file mode 100644 index 00000000..124b0d42 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_beach.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:beach", + "minecraft:snowy_beach" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_deep_ocean.json b/data/minecraft/tags/worldgen/biome/is_deep_ocean.json new file mode 100644 index 00000000..eefd3ebd --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_deep_ocean.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:deep_frozen_ocean", + "minecraft:deep_cold_ocean", + "minecraft:deep_ocean", + "minecraft:deep_lukewarm_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_end.json b/data/minecraft/tags/worldgen/biome/is_end.json new file mode 100644 index 00000000..71d4af2d --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_end.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:the_end", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:small_end_islands", + "minecraft:end_barrens" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_forest.json b/data/minecraft/tags/worldgen/biome/is_forest.json new file mode 100644 index 00000000..10d6d89e --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_forest.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:forest", + "minecraft:flower_forest", + "minecraft:birch_forest", + "minecraft:old_growth_birch_forest", + "minecraft:dark_forest", + "minecraft:grove" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_hill.json b/data/minecraft/tags/worldgen/biome/is_hill.json new file mode 100644 index 00000000..e52099d1 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_hill.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:windswept_hills", + "minecraft:windswept_forest", + "minecraft:windswept_gravelly_hills" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_jungle.json b/data/minecraft/tags/worldgen/biome/is_jungle.json new file mode 100644 index 00000000..2bc95599 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_jungle.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:bamboo_jungle", + "minecraft:jungle", + "minecraft:sparse_jungle" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_mountain.json b/data/minecraft/tags/worldgen/biome/is_mountain.json new file mode 100644 index 00000000..fe922aa6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_mountain.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:meadow", + "minecraft:frozen_peaks", + "minecraft:jagged_peaks", + "minecraft:stony_peaks", + "minecraft:snowy_slopes", + "minecraft:cherry_grove" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_nether.json b/data/minecraft/tags/worldgen/biome/is_nether.json new file mode 100644 index 00000000..340c9d16 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_nether.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:nether_wastes", + "minecraft:soul_sand_valley", + "minecraft:crimson_forest", + "minecraft:warped_forest", + "minecraft:basalt_deltas" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_ocean.json b/data/minecraft/tags/worldgen/biome/is_ocean.json new file mode 100644 index 00000000..ce6b5168 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_ocean.json @@ -0,0 +1,10 @@ +{ + "values": [ + "#minecraft:is_deep_ocean", + "minecraft:frozen_ocean", + "minecraft:ocean", + "minecraft:cold_ocean", + "minecraft:lukewarm_ocean", + "minecraft:warm_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_overworld.json b/data/minecraft/tags/worldgen/biome/is_overworld.json new file mode 100644 index 00000000..caf0b878 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_overworld.json @@ -0,0 +1,57 @@ +{ + "values": [ + "minecraft:mushroom_fields", + "minecraft:deep_frozen_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_cold_ocean", + "minecraft:cold_ocean", + "minecraft:deep_ocean", + "minecraft:ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:warm_ocean", + "minecraft:stony_shore", + "minecraft:swamp", + "minecraft:mangrove_swamp", + "minecraft:snowy_slopes", + "minecraft:snowy_plains", + "minecraft:snowy_beach", + "minecraft:windswept_gravelly_hills", + "minecraft:grove", + "minecraft:windswept_hills", + "minecraft:snowy_taiga", + "minecraft:windswept_forest", + "minecraft:taiga", + "minecraft:plains", + "minecraft:meadow", + "minecraft:beach", + "minecraft:forest", + "minecraft:old_growth_spruce_taiga", + "minecraft:flower_forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:savanna_plateau", + "minecraft:savanna", + "minecraft:jungle", + "minecraft:badlands", + "minecraft:desert", + "minecraft:wooded_badlands", + "minecraft:jagged_peaks", + "minecraft:stony_peaks", + "minecraft:frozen_river", + "minecraft:river", + "minecraft:ice_spikes", + "minecraft:old_growth_pine_taiga", + "minecraft:sunflower_plains", + "minecraft:old_growth_birch_forest", + "minecraft:sparse_jungle", + "minecraft:bamboo_jungle", + "minecraft:eroded_badlands", + "minecraft:windswept_savanna", + "minecraft:cherry_grove", + "minecraft:frozen_peaks", + "minecraft:dripstone_caves", + "minecraft:lush_caves", + "minecraft:deep_dark" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_river.json b/data/minecraft/tags/worldgen/biome/is_river.json new file mode 100644 index 00000000..5ca91a79 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_river.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:river", + "minecraft:frozen_river" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_savanna.json b/data/minecraft/tags/worldgen/biome/is_savanna.json new file mode 100644 index 00000000..fc71cb52 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_savanna.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:windswept_savanna" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/is_taiga.json b/data/minecraft/tags/worldgen/biome/is_taiga.json new file mode 100644 index 00000000..42944dcb --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/is_taiga.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:taiga", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/mineshaft_blocking.json b/data/minecraft/tags/worldgen/biome/mineshaft_blocking.json new file mode 100644 index 00000000..896ce431 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/mineshaft_blocking.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:deep_dark" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/more_frequent_drowned_spawns.json b/data/minecraft/tags/worldgen/biome/more_frequent_drowned_spawns.json new file mode 100644 index 00000000..c5435e25 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/more_frequent_drowned_spawns.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_river" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/plays_underwater_music.json b/data/minecraft/tags/worldgen/biome/plays_underwater_music.json new file mode 100644 index 00000000..800c1719 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/plays_underwater_music.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:is_ocean", + "#minecraft:is_river" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/polar_bears_spawn_on_alternate_blocks.json b/data/minecraft/tags/worldgen/biome/polar_bears_spawn_on_alternate_blocks.json new file mode 100644 index 00000000..94d00730 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/polar_bears_spawn_on_alternate_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/produces_corals_from_bonemeal.json b/data/minecraft/tags/worldgen/biome/produces_corals_from_bonemeal.json new file mode 100644 index 00000000..21875c99 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/produces_corals_from_bonemeal.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:warm_ocean" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/reduce_water_ambient_spawns.json b/data/minecraft/tags/worldgen/biome/reduce_water_ambient_spawns.json new file mode 100644 index 00000000..c5435e25 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/reduce_water_ambient_spawns.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:is_river" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/required_ocean_monument_surrounding.json b/data/minecraft/tags/worldgen/biome/required_ocean_monument_surrounding.json new file mode 100644 index 00000000..800c1719 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/required_ocean_monument_surrounding.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:is_ocean", + "#minecraft:is_river" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/snow_golem_melts.json b/data/minecraft/tags/worldgen/biome/snow_golem_melts.json new file mode 100644 index 00000000..b403ab11 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/snow_golem_melts.json @@ -0,0 +1,16 @@ +{ + "values": [ + "minecraft:badlands", + "minecraft:basalt_deltas", + "minecraft:crimson_forest", + "minecraft:desert", + "minecraft:eroded_badlands", + "minecraft:nether_wastes", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:soul_sand_valley", + "minecraft:warped_forest", + "minecraft:windswept_savanna", + "minecraft:wooded_badlands" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/spawns_cold_variant_frogs.json b/data/minecraft/tags/worldgen/biome/spawns_cold_variant_frogs.json new file mode 100644 index 00000000..76dda367 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/spawns_cold_variant_frogs.json @@ -0,0 +1,17 @@ +{ + "values": [ + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:frozen_peaks", + "minecraft:jagged_peaks", + "minecraft:snowy_slopes", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:grove", + "minecraft:deep_dark", + "minecraft:frozen_river", + "minecraft:snowy_taiga", + "minecraft:snowy_beach", + "#minecraft:is_end" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/spawns_gold_rabbits.json b/data/minecraft/tags/worldgen/biome/spawns_gold_rabbits.json new file mode 100644 index 00000000..f1a8ccb6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/spawns_gold_rabbits.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:desert" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/spawns_snow_foxes.json b/data/minecraft/tags/worldgen/biome/spawns_snow_foxes.json new file mode 100644 index 00000000..b37d5ef6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/spawns_snow_foxes.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:frozen_ocean", + "minecraft:snowy_taiga", + "minecraft:frozen_river", + "minecraft:snowy_beach", + "minecraft:frozen_peaks", + "minecraft:jagged_peaks", + "minecraft:snowy_slopes", + "minecraft:grove" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/spawns_warm_variant_frogs.json b/data/minecraft/tags/worldgen/biome/spawns_warm_variant_frogs.json new file mode 100644 index 00000000..c38caafd --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/spawns_warm_variant_frogs.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:desert", + "minecraft:warm_ocean", + "#minecraft:is_jungle", + "#minecraft:is_savanna", + "#minecraft:is_nether", + "#minecraft:is_badlands", + "minecraft:mangrove_swamp" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/spawns_white_rabbits.json b/data/minecraft/tags/worldgen/biome/spawns_white_rabbits.json new file mode 100644 index 00000000..b37d5ef6 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/spawns_white_rabbits.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:frozen_ocean", + "minecraft:snowy_taiga", + "minecraft:frozen_river", + "minecraft:snowy_beach", + "minecraft:frozen_peaks", + "minecraft:jagged_peaks", + "minecraft:snowy_slopes", + "minecraft:grove" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/stronghold_biased_to.json b/data/minecraft/tags/worldgen/biome/stronghold_biased_to.json new file mode 100644 index 00000000..124112fc --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/stronghold_biased_to.json @@ -0,0 +1,39 @@ +{ + "values": [ + "minecraft:plains", + "minecraft:sunflower_plains", + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:desert", + "minecraft:forest", + "minecraft:flower_forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:old_growth_birch_forest", + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga", + "minecraft:taiga", + "minecraft:snowy_taiga", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:windswept_hills", + "minecraft:windswept_gravelly_hills", + "minecraft:windswept_forest", + "minecraft:windswept_savanna", + "minecraft:jungle", + "minecraft:sparse_jungle", + "minecraft:bamboo_jungle", + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands", + "minecraft:meadow", + "minecraft:grove", + "minecraft:snowy_slopes", + "minecraft:frozen_peaks", + "minecraft:jagged_peaks", + "minecraft:stony_peaks", + "minecraft:mushroom_fields", + "minecraft:dripstone_caves", + "minecraft:lush_caves" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/water_on_map_outlines.json b/data/minecraft/tags/worldgen/biome/water_on_map_outlines.json new file mode 100644 index 00000000..1128ade1 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/water_on_map_outlines.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:is_ocean", + "#minecraft:is_river", + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/without_patrol_spawns.json b/data/minecraft/tags/worldgen/biome/without_patrol_spawns.json new file mode 100644 index 00000000..05d85d95 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/without_patrol_spawns.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mushroom_fields" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/without_wandering_trader_spawns.json b/data/minecraft/tags/worldgen/biome/without_wandering_trader_spawns.json new file mode 100644 index 00000000..f55aea66 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/without_wandering_trader_spawns.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:the_void" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/without_zombie_sieges.json b/data/minecraft/tags/worldgen/biome/without_zombie_sieges.json new file mode 100644 index 00000000..05d85d95 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/without_zombie_sieges.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mushroom_fields" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/flat_level_generator_preset/visible.json b/data/minecraft/tags/worldgen/flat_level_generator_preset/visible.json new file mode 100644 index 00000000..de2b98df --- /dev/null +++ b/data/minecraft/tags/worldgen/flat_level_generator_preset/visible.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:classic_flat", + "minecraft:tunnelers_dream", + "minecraft:water_world", + "minecraft:overworld", + "minecraft:snowy_kingdom", + "minecraft:bottomless_pit", + "minecraft:desert", + "minecraft:redstone_ready", + "minecraft:the_void" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/cats_spawn_as_black.json b/data/minecraft/tags/worldgen/structure/cats_spawn_as_black.json new file mode 100644 index 00000000..69fd4a7f --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/cats_spawn_as_black.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:swamp_hut" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/cats_spawn_in.json b/data/minecraft/tags/worldgen/structure/cats_spawn_in.json new file mode 100644 index 00000000..69fd4a7f --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/cats_spawn_in.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:swamp_hut" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/dolphin_located.json b/data/minecraft/tags/worldgen/structure/dolphin_located.json new file mode 100644 index 00000000..4c5da1fc --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/dolphin_located.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:ocean_ruin", + "#minecraft:shipwreck" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/eye_of_ender_located.json b/data/minecraft/tags/worldgen/structure/eye_of_ender_located.json new file mode 100644 index 00000000..0635d07a --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/eye_of_ender_located.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:stronghold" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/mineshaft.json b/data/minecraft/tags/worldgen/structure/mineshaft.json new file mode 100644 index 00000000..3def9bec --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/mineshaft.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:mineshaft", + "minecraft:mineshaft_mesa" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/ocean_ruin.json b/data/minecraft/tags/worldgen/structure/ocean_ruin.json new file mode 100644 index 00000000..da7a0aca --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/ocean_ruin.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:ocean_ruin_cold", + "minecraft:ocean_ruin_warm" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/on_ocean_explorer_maps.json b/data/minecraft/tags/worldgen/structure/on_ocean_explorer_maps.json new file mode 100644 index 00000000..ab6748eb --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/on_ocean_explorer_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:monument" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/on_treasure_maps.json b/data/minecraft/tags/worldgen/structure/on_treasure_maps.json new file mode 100644 index 00000000..5dcd7092 --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/on_treasure_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:buried_treasure" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/on_trial_chambers_maps.json b/data/minecraft/tags/worldgen/structure/on_trial_chambers_maps.json new file mode 100644 index 00000000..e8128caa --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/on_trial_chambers_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:trial_chambers" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/on_woodland_explorer_maps.json b/data/minecraft/tags/worldgen/structure/on_woodland_explorer_maps.json new file mode 100644 index 00000000..b15b4215 --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/on_woodland_explorer_maps.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mansion" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/ruined_portal.json b/data/minecraft/tags/worldgen/structure/ruined_portal.json new file mode 100644 index 00000000..b2424b11 --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/ruined_portal.json @@ -0,0 +1,11 @@ +{ + "values": [ + "minecraft:ruined_portal_desert", + "minecraft:ruined_portal_jungle", + "minecraft:ruined_portal_mountain", + "minecraft:ruined_portal_nether", + "minecraft:ruined_portal_ocean", + "minecraft:ruined_portal", + "minecraft:ruined_portal_swamp" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/shipwreck.json b/data/minecraft/tags/worldgen/structure/shipwreck.json new file mode 100644 index 00000000..6b8bc734 --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/shipwreck.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:shipwreck", + "minecraft:shipwreck_beached" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/structure/village.json b/data/minecraft/tags/worldgen/structure/village.json new file mode 100644 index 00000000..a0f77018 --- /dev/null +++ b/data/minecraft/tags/worldgen/structure/village.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:village_plains", + "minecraft:village_desert", + "minecraft:village_savanna", + "minecraft:village_snowy", + "minecraft:village_taiga" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/world_preset/extended.json b/data/minecraft/tags/worldgen/world_preset/extended.json new file mode 100644 index 00000000..9603a20b --- /dev/null +++ b/data/minecraft/tags/worldgen/world_preset/extended.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:normal", + "minecraft:debug_all_block_states" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/world_preset/normal.json b/data/minecraft/tags/worldgen/world_preset/normal.json new file mode 100644 index 00000000..cbd3e0b4 --- /dev/null +++ b/data/minecraft/tags/worldgen/world_preset/normal.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:normal", + "minecraft:flat", + "minecraft:large_biomes", + "minecraft:amplified", + "minecraft:single_biome_surface" + ] +} \ No newline at end of file diff --git a/data/minecraft/trim_material/amethyst.json b/data/minecraft/trim_material/amethyst.json new file mode 100644 index 00000000..85945cbd --- /dev/null +++ b/data/minecraft/trim_material/amethyst.json @@ -0,0 +1,9 @@ +{ + "asset_name": "amethyst", + "description": { + "color": "#9A5CC6", + "translate": "trim_material.minecraft.amethyst" + }, + "ingredient": "minecraft:amethyst_shard", + "item_model_index": 1.0 +} \ No newline at end of file diff --git a/data/minecraft/trim_material/copper.json b/data/minecraft/trim_material/copper.json new file mode 100644 index 00000000..a014bf74 --- /dev/null +++ b/data/minecraft/trim_material/copper.json @@ -0,0 +1,9 @@ +{ + "asset_name": "copper", + "description": { + "color": "#B4684D", + "translate": "trim_material.minecraft.copper" + }, + "ingredient": "minecraft:copper_ingot", + "item_model_index": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/trim_material/diamond.json b/data/minecraft/trim_material/diamond.json new file mode 100644 index 00000000..21b27e99 --- /dev/null +++ b/data/minecraft/trim_material/diamond.json @@ -0,0 +1,12 @@ +{ + "asset_name": "diamond", + "description": { + "color": "#6EECD2", + "translate": "trim_material.minecraft.diamond" + }, + "ingredient": "minecraft:diamond", + "item_model_index": 0.8, + "override_armor_materials": { + "minecraft:diamond": "diamond_darker" + } +} \ No newline at end of file diff --git a/data/minecraft/trim_material/emerald.json b/data/minecraft/trim_material/emerald.json new file mode 100644 index 00000000..5776f6c2 --- /dev/null +++ b/data/minecraft/trim_material/emerald.json @@ -0,0 +1,9 @@ +{ + "asset_name": "emerald", + "description": { + "color": "#11A036", + "translate": "trim_material.minecraft.emerald" + }, + "ingredient": "minecraft:emerald", + "item_model_index": 0.7 +} \ No newline at end of file diff --git a/data/minecraft/trim_material/gold.json b/data/minecraft/trim_material/gold.json new file mode 100644 index 00000000..195e14f2 --- /dev/null +++ b/data/minecraft/trim_material/gold.json @@ -0,0 +1,12 @@ +{ + "asset_name": "gold", + "description": { + "color": "#DEB12D", + "translate": "trim_material.minecraft.gold" + }, + "ingredient": "minecraft:gold_ingot", + "item_model_index": 0.6, + "override_armor_materials": { + "minecraft:gold": "gold_darker" + } +} \ No newline at end of file diff --git a/data/minecraft/trim_material/iron.json b/data/minecraft/trim_material/iron.json new file mode 100644 index 00000000..69ba5ec1 --- /dev/null +++ b/data/minecraft/trim_material/iron.json @@ -0,0 +1,12 @@ +{ + "asset_name": "iron", + "description": { + "color": "#ECECEC", + "translate": "trim_material.minecraft.iron" + }, + "ingredient": "minecraft:iron_ingot", + "item_model_index": 0.2, + "override_armor_materials": { + "minecraft:iron": "iron_darker" + } +} \ No newline at end of file diff --git a/data/minecraft/trim_material/lapis.json b/data/minecraft/trim_material/lapis.json new file mode 100644 index 00000000..eb31702d --- /dev/null +++ b/data/minecraft/trim_material/lapis.json @@ -0,0 +1,9 @@ +{ + "asset_name": "lapis", + "description": { + "color": "#416E97", + "translate": "trim_material.minecraft.lapis" + }, + "ingredient": "minecraft:lapis_lazuli", + "item_model_index": 0.9 +} \ No newline at end of file diff --git a/data/minecraft/trim_material/netherite.json b/data/minecraft/trim_material/netherite.json new file mode 100644 index 00000000..6cdd97a6 --- /dev/null +++ b/data/minecraft/trim_material/netherite.json @@ -0,0 +1,12 @@ +{ + "asset_name": "netherite", + "description": { + "color": "#625859", + "translate": "trim_material.minecraft.netherite" + }, + "ingredient": "minecraft:netherite_ingot", + "item_model_index": 0.3, + "override_armor_materials": { + "minecraft:netherite": "netherite_darker" + } +} \ No newline at end of file diff --git a/data/minecraft/trim_material/quartz.json b/data/minecraft/trim_material/quartz.json new file mode 100644 index 00000000..7600a105 --- /dev/null +++ b/data/minecraft/trim_material/quartz.json @@ -0,0 +1,9 @@ +{ + "asset_name": "quartz", + "description": { + "color": "#E3D4C4", + "translate": "trim_material.minecraft.quartz" + }, + "ingredient": "minecraft:quartz", + "item_model_index": 0.1 +} \ No newline at end of file diff --git a/data/minecraft/trim_material/redstone.json b/data/minecraft/trim_material/redstone.json new file mode 100644 index 00000000..797bd0cd --- /dev/null +++ b/data/minecraft/trim_material/redstone.json @@ -0,0 +1,9 @@ +{ + "asset_name": "redstone", + "description": { + "color": "#971607", + "translate": "trim_material.minecraft.redstone" + }, + "ingredient": "minecraft:redstone", + "item_model_index": 0.4 +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/bolt.json b/data/minecraft/trim_pattern/bolt.json new file mode 100644 index 00000000..27c0d9bc --- /dev/null +++ b/data/minecraft/trim_pattern/bolt.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:bolt", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.bolt" + }, + "template_item": "minecraft:bolt_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/coast.json b/data/minecraft/trim_pattern/coast.json new file mode 100644 index 00000000..6e77fc37 --- /dev/null +++ b/data/minecraft/trim_pattern/coast.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:coast", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.coast" + }, + "template_item": "minecraft:coast_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/dune.json b/data/minecraft/trim_pattern/dune.json new file mode 100644 index 00000000..2b825b34 --- /dev/null +++ b/data/minecraft/trim_pattern/dune.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:dune", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.dune" + }, + "template_item": "minecraft:dune_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/eye.json b/data/minecraft/trim_pattern/eye.json new file mode 100644 index 00000000..52260df5 --- /dev/null +++ b/data/minecraft/trim_pattern/eye.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:eye", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.eye" + }, + "template_item": "minecraft:eye_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/flow.json b/data/minecraft/trim_pattern/flow.json new file mode 100644 index 00000000..2d94de80 --- /dev/null +++ b/data/minecraft/trim_pattern/flow.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:flow", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.flow" + }, + "template_item": "minecraft:flow_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/host.json b/data/minecraft/trim_pattern/host.json new file mode 100644 index 00000000..483d3f41 --- /dev/null +++ b/data/minecraft/trim_pattern/host.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:host", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.host" + }, + "template_item": "minecraft:host_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/raiser.json b/data/minecraft/trim_pattern/raiser.json new file mode 100644 index 00000000..b7d69d45 --- /dev/null +++ b/data/minecraft/trim_pattern/raiser.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:raiser", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.raiser" + }, + "template_item": "minecraft:raiser_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/rib.json b/data/minecraft/trim_pattern/rib.json new file mode 100644 index 00000000..ae0e5159 --- /dev/null +++ b/data/minecraft/trim_pattern/rib.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:rib", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.rib" + }, + "template_item": "minecraft:rib_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/sentry.json b/data/minecraft/trim_pattern/sentry.json new file mode 100644 index 00000000..1d864542 --- /dev/null +++ b/data/minecraft/trim_pattern/sentry.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:sentry", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.sentry" + }, + "template_item": "minecraft:sentry_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/shaper.json b/data/minecraft/trim_pattern/shaper.json new file mode 100644 index 00000000..38a76d94 --- /dev/null +++ b/data/minecraft/trim_pattern/shaper.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:shaper", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.shaper" + }, + "template_item": "minecraft:shaper_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/silence.json b/data/minecraft/trim_pattern/silence.json new file mode 100644 index 00000000..0cf9ca84 --- /dev/null +++ b/data/minecraft/trim_pattern/silence.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:silence", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.silence" + }, + "template_item": "minecraft:silence_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/snout.json b/data/minecraft/trim_pattern/snout.json new file mode 100644 index 00000000..0b23038b --- /dev/null +++ b/data/minecraft/trim_pattern/snout.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:snout", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.snout" + }, + "template_item": "minecraft:snout_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/spire.json b/data/minecraft/trim_pattern/spire.json new file mode 100644 index 00000000..9df73f59 --- /dev/null +++ b/data/minecraft/trim_pattern/spire.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:spire", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.spire" + }, + "template_item": "minecraft:spire_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/tide.json b/data/minecraft/trim_pattern/tide.json new file mode 100644 index 00000000..a01adda4 --- /dev/null +++ b/data/minecraft/trim_pattern/tide.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:tide", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.tide" + }, + "template_item": "minecraft:tide_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/vex.json b/data/minecraft/trim_pattern/vex.json new file mode 100644 index 00000000..bc010f1f --- /dev/null +++ b/data/minecraft/trim_pattern/vex.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:vex", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.vex" + }, + "template_item": "minecraft:vex_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/ward.json b/data/minecraft/trim_pattern/ward.json new file mode 100644 index 00000000..e07ffbc1 --- /dev/null +++ b/data/minecraft/trim_pattern/ward.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:ward", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.ward" + }, + "template_item": "minecraft:ward_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/wayfinder.json b/data/minecraft/trim_pattern/wayfinder.json new file mode 100644 index 00000000..ecb8cc90 --- /dev/null +++ b/data/minecraft/trim_pattern/wayfinder.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:wayfinder", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.wayfinder" + }, + "template_item": "minecraft:wayfinder_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/trim_pattern/wild.json b/data/minecraft/trim_pattern/wild.json new file mode 100644 index 00000000..4696f382 --- /dev/null +++ b/data/minecraft/trim_pattern/wild.json @@ -0,0 +1,8 @@ +{ + "asset_id": "minecraft:wild", + "decal": false, + "description": { + "translate": "trim_pattern.minecraft.wild" + }, + "template_item": "minecraft:wild_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/ashen.json b/data/minecraft/wolf_variant/ashen.json new file mode 100644 index 00000000..16ad8aef --- /dev/null +++ b/data/minecraft/wolf_variant/ashen.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_ashen_angry", + "biomes": "minecraft:snowy_taiga", + "tame_texture": "minecraft:entity/wolf/wolf_ashen_tame", + "wild_texture": "minecraft:entity/wolf/wolf_ashen" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/black.json b/data/minecraft/wolf_variant/black.json new file mode 100644 index 00000000..fe704d12 --- /dev/null +++ b/data/minecraft/wolf_variant/black.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_black_angry", + "biomes": "minecraft:old_growth_pine_taiga", + "tame_texture": "minecraft:entity/wolf/wolf_black_tame", + "wild_texture": "minecraft:entity/wolf/wolf_black" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/chestnut.json b/data/minecraft/wolf_variant/chestnut.json new file mode 100644 index 00000000..c94e4f52 --- /dev/null +++ b/data/minecraft/wolf_variant/chestnut.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_chestnut_angry", + "biomes": "minecraft:old_growth_spruce_taiga", + "tame_texture": "minecraft:entity/wolf/wolf_chestnut_tame", + "wild_texture": "minecraft:entity/wolf/wolf_chestnut" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/pale.json b/data/minecraft/wolf_variant/pale.json new file mode 100644 index 00000000..fde95058 --- /dev/null +++ b/data/minecraft/wolf_variant/pale.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_angry", + "biomes": "minecraft:taiga", + "tame_texture": "minecraft:entity/wolf/wolf_tame", + "wild_texture": "minecraft:entity/wolf/wolf" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/rusty.json b/data/minecraft/wolf_variant/rusty.json new file mode 100644 index 00000000..834607a9 --- /dev/null +++ b/data/minecraft/wolf_variant/rusty.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_rusty_angry", + "biomes": "#minecraft:is_jungle", + "tame_texture": "minecraft:entity/wolf/wolf_rusty_tame", + "wild_texture": "minecraft:entity/wolf/wolf_rusty" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/snowy.json b/data/minecraft/wolf_variant/snowy.json new file mode 100644 index 00000000..41441e8d --- /dev/null +++ b/data/minecraft/wolf_variant/snowy.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_snowy_angry", + "biomes": "minecraft:grove", + "tame_texture": "minecraft:entity/wolf/wolf_snowy_tame", + "wild_texture": "minecraft:entity/wolf/wolf_snowy" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/spotted.json b/data/minecraft/wolf_variant/spotted.json new file mode 100644 index 00000000..f4c52147 --- /dev/null +++ b/data/minecraft/wolf_variant/spotted.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_spotted_angry", + "biomes": "#minecraft:is_savanna", + "tame_texture": "minecraft:entity/wolf/wolf_spotted_tame", + "wild_texture": "minecraft:entity/wolf/wolf_spotted" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/striped.json b/data/minecraft/wolf_variant/striped.json new file mode 100644 index 00000000..c36f7a6d --- /dev/null +++ b/data/minecraft/wolf_variant/striped.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_striped_angry", + "biomes": "#minecraft:is_badlands", + "tame_texture": "minecraft:entity/wolf/wolf_striped_tame", + "wild_texture": "minecraft:entity/wolf/wolf_striped" +} \ No newline at end of file diff --git a/data/minecraft/wolf_variant/woods.json b/data/minecraft/wolf_variant/woods.json new file mode 100644 index 00000000..7c2afa20 --- /dev/null +++ b/data/minecraft/wolf_variant/woods.json @@ -0,0 +1,6 @@ +{ + "angry_texture": "minecraft:entity/wolf/wolf_woods_angry", + "biomes": "minecraft:forest", + "tame_texture": "minecraft:entity/wolf/wolf_woods_tame", + "wild_texture": "minecraft:entity/wolf/wolf_woods" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/badlands.json b/data/minecraft/worldgen/biome/badlands.json new file mode 100644 index 00000000..e629c60f --- /dev/null +++ b/data/minecraft/worldgen/biome/badlands.json @@ -0,0 +1,180 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "creature_spawn_probability": 0.03, + "downfall": 0.0, + "effects": { + "fog_color": 12638463, + "foliage_color": 10387789, + "grass_color": 9470285, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.badlands" + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:ore_gold_extra", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_grass_badlands", + "minecraft:patch_dead_bush_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane_badlands", + "minecraft:patch_pumpkin", + "minecraft:patch_cactus_decorated" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:armadillo", + "maxCount": 2, + "minCount": 1, + "weight": 6 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/bamboo_jungle.json b/data/minecraft/worldgen/biome/bamboo_jungle.json new file mode 100644 index 00000000..23422fcc --- /dev/null +++ b/data/minecraft/worldgen/biome/bamboo_jungle.json @@ -0,0 +1,221 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.9, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.bamboo_jungle" + }, + "sky_color": 7842047, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:bamboo", + "minecraft:bamboo_vegetation", + "minecraft:flower_warm", + "minecraft:patch_grass_jungle", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:vines", + "minecraft:patch_melon" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:parrot", + "maxCount": 2, + "minCount": 1, + "weight": 40 + }, + { + "type": "minecraft:panda", + "maxCount": 2, + "minCount": 1, + "weight": 80 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:ocelot", + "maxCount": 1, + "minCount": 1, + "weight": 2 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.95 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/basalt_deltas.json b/data/minecraft/worldgen/biome/basalt_deltas.json new file mode 100644 index 00000000..e062aa66 --- /dev/null +++ b/data/minecraft/worldgen/biome/basalt_deltas.json @@ -0,0 +1,98 @@ +{ + "carvers": { + "air": "minecraft:nether_cave" + }, + "downfall": 0.0, + "effects": { + "additions_sound": { + "sound": "minecraft:ambient.basalt_deltas.additions", + "tick_chance": 0.0111 + }, + "ambient_sound": "minecraft:ambient.basalt_deltas.loop", + "fog_color": 6840176, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.basalt_deltas.mood", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.nether.basalt_deltas" + }, + "particle": { + "options": { + "type": "minecraft:white_ash" + }, + "probability": 0.118093334 + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [], + [], + [ + "minecraft:delta", + "minecraft:small_basalt_columns", + "minecraft:large_basalt_columns" + ], + [], + [], + [ + "minecraft:basalt_blobs", + "minecraft:blackstone_blobs", + "minecraft:spring_delta", + "minecraft:patch_fire", + "minecraft:patch_soul_fire", + "minecraft:glowstone_extra", + "minecraft:glowstone", + "minecraft:brown_mushroom_nether", + "minecraft:red_mushroom_nether", + "minecraft:ore_magma", + "minecraft:spring_closed_double", + "minecraft:ore_gold_deltas", + "minecraft:ore_quartz_deltas", + "minecraft:ore_ancient_debris_large", + "minecraft:ore_debris_small" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [ + { + "type": "minecraft:strider", + "maxCount": 2, + "minCount": 1, + "weight": 60 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:ghast", + "maxCount": 1, + "minCount": 1, + "weight": 40 + }, + { + "type": "minecraft:magma_cube", + "maxCount": 5, + "minCount": 2, + "weight": 100 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/beach.json b/data/minecraft/worldgen/biome/beach.json new file mode 100644 index 00000000..38afdc66 --- /dev/null +++ b/data/minecraft/worldgen/biome/beach.json @@ -0,0 +1,169 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.4, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 7907327, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:turtle", + "maxCount": 5, + "minCount": 2, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/birch_forest.json b/data/minecraft/worldgen/biome/birch_forest.json new file mode 100644 index 00000000..6338abf6 --- /dev/null +++ b/data/minecraft/worldgen/biome/birch_forest.json @@ -0,0 +1,195 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.6, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.forest" + }, + "sky_color": 8037887, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:forest_flowers", + "minecraft:trees_birch", + "minecraft:flower_default", + "minecraft:patch_grass_forest", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/cherry_grove.json b/data/minecraft/worldgen/biome/cherry_grove.json new file mode 100644 index 00000000..f96b6a3a --- /dev/null +++ b/data/minecraft/worldgen/biome/cherry_grove.json @@ -0,0 +1,190 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "foliage_color": 11983713, + "grass_color": 11983713, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.cherry_grove" + }, + "sky_color": 8103167, + "water_color": 6141935, + "water_fog_color": 6141935 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:patch_grass_plain", + "minecraft:flower_cherry", + "minecraft:trees_cherry" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:pig", + "maxCount": 2, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:rabbit", + "maxCount": 6, + "minCount": 2, + "weight": 2 + }, + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 2, + "weight": 2 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/cold_ocean.json b/data/minecraft/worldgen/biome/cold_ocean.json new file mode 100644 index 00000000..cb5835ef --- /dev/null +++ b/data/minecraft/worldgen/biome/cold_ocean.json @@ -0,0 +1,192 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4020182, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:seagrass_cold", + "minecraft:seagrass_simple", + "minecraft:kelp_cold" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:cod", + "maxCount": 6, + "minCount": 3, + "weight": 15 + }, + { + "type": "minecraft:salmon", + "maxCount": 5, + "minCount": 1, + "weight": 15 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 3 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/crimson_forest.json b/data/minecraft/worldgen/biome/crimson_forest.json new file mode 100644 index 00000000..32460a81 --- /dev/null +++ b/data/minecraft/worldgen/biome/crimson_forest.json @@ -0,0 +1,106 @@ +{ + "carvers": { + "air": "minecraft:nether_cave" + }, + "downfall": 0.0, + "effects": { + "additions_sound": { + "sound": "minecraft:ambient.crimson_forest.additions", + "tick_chance": 0.0111 + }, + "ambient_sound": "minecraft:ambient.crimson_forest.loop", + "fog_color": 3343107, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.crimson_forest.mood", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.nether.crimson_forest" + }, + "particle": { + "options": { + "type": "minecraft:crimson_spore" + }, + "probability": 0.025 + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [], + [], + [], + [], + [], + [ + "minecraft:spring_open", + "minecraft:patch_fire", + "minecraft:glowstone_extra", + "minecraft:glowstone", + "minecraft:ore_magma", + "minecraft:spring_closed", + "minecraft:ore_gravel_nether", + "minecraft:ore_blackstone", + "minecraft:ore_gold_nether", + "minecraft:ore_quartz_nether", + "minecraft:ore_ancient_debris_large", + "minecraft:ore_debris_small" + ], + [], + [ + "minecraft:spring_lava", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:weeping_vines", + "minecraft:crimson_fungi", + "minecraft:crimson_forest_vegetation" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [ + { + "type": "minecraft:strider", + "maxCount": 2, + "minCount": 1, + "weight": 60 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:zombified_piglin", + "maxCount": 4, + "minCount": 2, + "weight": 1 + }, + { + "type": "minecraft:hoglin", + "maxCount": 4, + "minCount": 3, + "weight": 9 + }, + { + "type": "minecraft:piglin", + "maxCount": 4, + "minCount": 3, + "weight": 5 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/dark_forest.json b/data/minecraft/worldgen/biome/dark_forest.json new file mode 100644 index 00000000..678b0eb4 --- /dev/null +++ b/data/minecraft/worldgen/biome/dark_forest.json @@ -0,0 +1,196 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "grass_color_modifier": "dark_forest", + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.forest" + }, + "sky_color": 7972607, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:dark_forest_vegetation", + "minecraft:forest_flowers", + "minecraft:flower_default", + "minecraft:patch_grass_forest", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/deep_cold_ocean.json b/data/minecraft/worldgen/biome/deep_cold_ocean.json new file mode 100644 index 00000000..9850e3ec --- /dev/null +++ b/data/minecraft/worldgen/biome/deep_cold_ocean.json @@ -0,0 +1,192 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4020182, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:seagrass_deep_cold", + "minecraft:seagrass_simple", + "minecraft:kelp_cold" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:cod", + "maxCount": 6, + "minCount": 3, + "weight": 15 + }, + { + "type": "minecraft:salmon", + "maxCount": 5, + "minCount": 1, + "weight": 15 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 3 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/deep_dark.json b/data/minecraft/worldgen/biome/deep_dark.json new file mode 100644 index 00000000..d9ee2b77 --- /dev/null +++ b/data/minecraft/worldgen/biome/deep_dark.json @@ -0,0 +1,104 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.4, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.deep_dark" + }, + "sky_color": 7907327, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [ + "minecraft:sculk_vein", + "minecraft:sculk_patch_deep_dark" + ], + [], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:trees_plains", + "minecraft:flower_plains", + "minecraft:patch_grass_plain", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/deep_frozen_ocean.json b/data/minecraft/worldgen/biome/deep_frozen_ocean.json new file mode 100644 index 00000000..72409540 --- /dev/null +++ b/data/minecraft/worldgen/biome/deep_frozen_ocean.json @@ -0,0 +1,195 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 3750089, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:iceberg_packed", + "minecraft:iceberg_blue", + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [ + "minecraft:blue_ice" + ], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:polar_bear", + "maxCount": 2, + "minCount": 1, + "weight": 1 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:salmon", + "maxCount": 5, + "minCount": 1, + "weight": 15 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 1 + } + ] + }, + "temperature": 0.5, + "temperature_modifier": "frozen" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json b/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json new file mode 100644 index 00000000..413f8109 --- /dev/null +++ b/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json @@ -0,0 +1,204 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4566514, + "water_fog_color": 267827 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:seagrass_deep_warm", + "minecraft:seagrass_simple", + "minecraft:kelp_warm" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:cod", + "maxCount": 6, + "minCount": 3, + "weight": 8 + }, + { + "type": "minecraft:pufferfish", + "maxCount": 3, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:tropical_fish", + "maxCount": 8, + "minCount": 8, + "weight": 25 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 8 + }, + { + "type": "minecraft:dolphin", + "maxCount": 2, + "minCount": 1, + "weight": 2 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/deep_ocean.json b/data/minecraft/worldgen/biome/deep_ocean.json new file mode 100644 index 00000000..56e5219b --- /dev/null +++ b/data/minecraft/worldgen/biome/deep_ocean.json @@ -0,0 +1,192 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:seagrass_deep", + "minecraft:seagrass_simple", + "minecraft:kelp_cold" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:cod", + "maxCount": 6, + "minCount": 3, + "weight": 10 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:dolphin", + "maxCount": 2, + "minCount": 1, + "weight": 1 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/desert.json b/data/minecraft/worldgen/biome/desert.json new file mode 100644 index 00000000..395a3692 --- /dev/null +++ b/data/minecraft/worldgen/biome/desert.json @@ -0,0 +1,187 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.0, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.desert" + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:fossil_upper", + "minecraft:fossil_lower", + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [ + "minecraft:desert_well" + ], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:patch_dead_bush_2", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane_desert", + "minecraft:patch_pumpkin", + "minecraft:patch_cactus_desert" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 19 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:husk", + "maxCount": 4, + "minCount": 4, + "weight": 80 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/dripstone_caves.json b/data/minecraft/worldgen/biome/dripstone_caves.json new file mode 100644 index 00000000..6eaaa571 --- /dev/null +++ b/data/minecraft/worldgen/biome/dripstone_caves.json @@ -0,0 +1,180 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.4, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.dripstone_caves" + }, + "sky_color": 7907327, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode", + "minecraft:large_dripstone" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper_large", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [ + "minecraft:dripstone_cluster", + "minecraft:pointed_dripstone" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:trees_plains", + "minecraft:flower_plains", + "minecraft:patch_grass_plain", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 4, + "minCount": 4, + "weight": 95 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/end_barrens.json b/data/minecraft/worldgen/biome/end_barrens.json new file mode 100644 index 00000000..1d07576b --- /dev/null +++ b/data/minecraft/worldgen/biome/end_barrens.json @@ -0,0 +1,37 @@ +{ + "carvers": {}, + "downfall": 0.5, + "effects": { + "fog_color": 10518688, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 0, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 10 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/end_highlands.json b/data/minecraft/worldgen/biome/end_highlands.json new file mode 100644 index 00000000..05f13807 --- /dev/null +++ b/data/minecraft/worldgen/biome/end_highlands.json @@ -0,0 +1,52 @@ +{ + "carvers": {}, + "downfall": 0.5, + "effects": { + "fog_color": 10518688, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 0, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [], + [], + [ + "minecraft:end_gateway_return" + ], + [], + [], + [], + [], + [ + "minecraft:chorus_plant" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 10 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/end_midlands.json b/data/minecraft/worldgen/biome/end_midlands.json new file mode 100644 index 00000000..1d07576b --- /dev/null +++ b/data/minecraft/worldgen/biome/end_midlands.json @@ -0,0 +1,37 @@ +{ + "carvers": {}, + "downfall": 0.5, + "effects": { + "fog_color": 10518688, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 0, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 10 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/eroded_badlands.json b/data/minecraft/worldgen/biome/eroded_badlands.json new file mode 100644 index 00000000..e629c60f --- /dev/null +++ b/data/minecraft/worldgen/biome/eroded_badlands.json @@ -0,0 +1,180 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "creature_spawn_probability": 0.03, + "downfall": 0.0, + "effects": { + "fog_color": 12638463, + "foliage_color": 10387789, + "grass_color": 9470285, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.badlands" + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:ore_gold_extra", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_grass_badlands", + "minecraft:patch_dead_bush_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane_badlands", + "minecraft:patch_pumpkin", + "minecraft:patch_cactus_decorated" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:armadillo", + "maxCount": 2, + "minCount": 1, + "weight": 6 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/flower_forest.json b/data/minecraft/worldgen/biome/flower_forest.json new file mode 100644 index 00000000..d45edd25 --- /dev/null +++ b/data/minecraft/worldgen/biome/flower_forest.json @@ -0,0 +1,201 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.flower_forest" + }, + "sky_color": 7972607, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:flower_forest_flowers", + "minecraft:trees_flower_forest", + "minecraft:flower_flower_forest", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/forest.json b/data/minecraft/worldgen/biome/forest.json new file mode 100644 index 00000000..d81b3554 --- /dev/null +++ b/data/minecraft/worldgen/biome/forest.json @@ -0,0 +1,201 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.forest" + }, + "sky_color": 7972607, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:forest_flowers", + "minecraft:trees_birch_and_oak", + "minecraft:flower_default", + "minecraft:patch_grass_forest", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:wolf", + "maxCount": 4, + "minCount": 4, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/frozen_ocean.json b/data/minecraft/worldgen/biome/frozen_ocean.json new file mode 100644 index 00000000..2b9a2ae1 --- /dev/null +++ b/data/minecraft/worldgen/biome/frozen_ocean.json @@ -0,0 +1,195 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8364543, + "water_color": 3750089, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:iceberg_packed", + "minecraft:iceberg_blue", + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [ + "minecraft:blue_ice" + ], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:polar_bear", + "maxCount": 2, + "minCount": 1, + "weight": 1 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:salmon", + "maxCount": 5, + "minCount": 1, + "weight": 15 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 1 + } + ] + }, + "temperature": 0.0, + "temperature_modifier": "frozen" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/frozen_peaks.json b/data/minecraft/worldgen/biome/frozen_peaks.json new file mode 100644 index 00000000..6f06b574 --- /dev/null +++ b/data/minecraft/worldgen/biome/frozen_peaks.json @@ -0,0 +1,173 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.9, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.frozen_peaks" + }, + "sky_color": 8756735, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava", + "minecraft:spring_lava_frozen" + ], + [ + "minecraft:glow_lichen" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:goat", + "maxCount": 3, + "minCount": 1, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": -0.7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/frozen_river.json b/data/minecraft/worldgen/biome/frozen_river.json new file mode 100644 index 00000000..5bc38324 --- /dev/null +++ b/data/minecraft/worldgen/biome/frozen_river.json @@ -0,0 +1,183 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8364543, + "water_color": 3750089, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 1 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:salmon", + "maxCount": 5, + "minCount": 1, + "weight": 5 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 2 + } + ] + }, + "temperature": 0.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/grove.json b/data/minecraft/worldgen/biome/grove.json new file mode 100644 index 00000000..e5c46d43 --- /dev/null +++ b/data/minecraft/worldgen/biome/grove.json @@ -0,0 +1,188 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.grove" + }, + "sky_color": 8495359, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava", + "minecraft:spring_lava_frozen" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_grove", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:wolf", + "maxCount": 1, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 8 + }, + { + "type": "minecraft:fox", + "maxCount": 4, + "minCount": 2, + "weight": 4 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": -0.2 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/ice_spikes.json b/data/minecraft/worldgen/biome/ice_spikes.json new file mode 100644 index 00000000..a034b3d9 --- /dev/null +++ b/data/minecraft/worldgen/biome/ice_spikes.json @@ -0,0 +1,186 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "creature_spawn_probability": 0.07, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8364543, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [ + "minecraft:ice_spike", + "minecraft:ice_patch" + ], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_snowy", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 10 + }, + { + "type": "minecraft:polar_bear", + "maxCount": 2, + "minCount": 1, + "weight": 1 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 20 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:stray", + "maxCount": 4, + "minCount": 4, + "weight": 80 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/jagged_peaks.json b/data/minecraft/worldgen/biome/jagged_peaks.json new file mode 100644 index 00000000..15a76969 --- /dev/null +++ b/data/minecraft/worldgen/biome/jagged_peaks.json @@ -0,0 +1,173 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.9, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.jagged_peaks" + }, + "sky_color": 8756735, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava", + "minecraft:spring_lava_frozen" + ], + [ + "minecraft:glow_lichen" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:goat", + "maxCount": 3, + "minCount": 1, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": -0.7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/jungle.json b/data/minecraft/worldgen/biome/jungle.json new file mode 100644 index 00000000..2c805572 --- /dev/null +++ b/data/minecraft/worldgen/biome/jungle.json @@ -0,0 +1,221 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.9, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.jungle" + }, + "sky_color": 7842047, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:bamboo_light", + "minecraft:trees_jungle", + "minecraft:flower_warm", + "minecraft:patch_grass_jungle", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:vines", + "minecraft:patch_melon" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:parrot", + "maxCount": 2, + "minCount": 1, + "weight": 40 + }, + { + "type": "minecraft:panda", + "maxCount": 2, + "minCount": 1, + "weight": 1 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:ocelot", + "maxCount": 3, + "minCount": 1, + "weight": 2 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.95 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/lukewarm_ocean.json b/data/minecraft/worldgen/biome/lukewarm_ocean.json new file mode 100644 index 00000000..9a259fe3 --- /dev/null +++ b/data/minecraft/worldgen/biome/lukewarm_ocean.json @@ -0,0 +1,203 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4566514, + "water_fog_color": 267827 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:seagrass_warm", + "minecraft:kelp_warm" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:cod", + "maxCount": 6, + "minCount": 3, + "weight": 15 + }, + { + "type": "minecraft:pufferfish", + "maxCount": 3, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:tropical_fish", + "maxCount": 8, + "minCount": 8, + "weight": 25 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 2, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:dolphin", + "maxCount": 2, + "minCount": 1, + "weight": 2 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/lush_caves.json b/data/minecraft/worldgen/biome/lush_caves.json new file mode 100644 index 00000000..b3aef76a --- /dev/null +++ b/data/minecraft/worldgen/biome/lush_caves.json @@ -0,0 +1,185 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.lush_caves" + }, + "sky_color": 8103167, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:ore_clay", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:lush_caves_ceiling_vegetation", + "minecraft:cave_vines", + "minecraft:lush_caves_clay", + "minecraft:lush_caves_vegetation", + "minecraft:rooted_azalea_tree", + "minecraft:spore_blossom", + "minecraft:classic_vines_cave_feature" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [ + { + "type": "minecraft:axolotl", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:tropical_fish", + "maxCount": 8, + "minCount": 8, + "weight": 25 + } + ], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/mangrove_swamp.json b/data/minecraft/worldgen/biome/mangrove_swamp.json new file mode 100644 index 00000000..bc4aa912 --- /dev/null +++ b/data/minecraft/worldgen/biome/mangrove_swamp.json @@ -0,0 +1,196 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.9, + "effects": { + "fog_color": 12638463, + "foliage_color": 9285927, + "grass_color_modifier": "swamp", + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.swamp" + }, + "sky_color": 7907327, + "water_color": 3832426, + "water_fog_color": 5077600 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:fossil_upper", + "minecraft:fossil_lower", + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_grass", + "minecraft:disk_clay" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_mangrove", + "minecraft:patch_grass_normal", + "minecraft:patch_dead_bush", + "minecraft:patch_waterlily", + "minecraft:seagrass_swamp" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:frog", + "maxCount": 5, + "minCount": 2, + "weight": 10 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 70 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:slime", + "maxCount": 1, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:bogged", + "maxCount": 4, + "minCount": 4, + "weight": 30 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:tropical_fish", + "maxCount": 8, + "minCount": 8, + "weight": 25 + } + ], + "water_creature": [] + }, + "temperature": 0.8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/meadow.json b/data/minecraft/worldgen/biome/meadow.json new file mode 100644 index 00000000..4f2ec95d --- /dev/null +++ b/data/minecraft/worldgen/biome/meadow.json @@ -0,0 +1,188 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.meadow" + }, + "sky_color": 8103167, + "water_color": 937679, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:patch_grass_plain", + "minecraft:flower_meadow", + "minecraft:trees_meadow" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:donkey", + "maxCount": 2, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:rabbit", + "maxCount": 6, + "minCount": 2, + "weight": 2 + }, + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 2, + "weight": 2 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/mushroom_fields.json b/data/minecraft/worldgen/biome/mushroom_fields.json new file mode 100644 index 00000000..e8a21c1e --- /dev/null +++ b/data/minecraft/worldgen/biome/mushroom_fields.json @@ -0,0 +1,119 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 1.0, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 7842047, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:mushroom_island_vegetation", + "minecraft:brown_mushroom_taiga", + "minecraft:red_mushroom_taiga", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:mooshroom", + "maxCount": 8, + "minCount": 4, + "weight": 8 + } + ], + "misc": [], + "monster": [], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.9 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/nether_wastes.json b/data/minecraft/worldgen/biome/nether_wastes.json new file mode 100644 index 00000000..d0e13f09 --- /dev/null +++ b/data/minecraft/worldgen/biome/nether_wastes.json @@ -0,0 +1,112 @@ +{ + "carvers": { + "air": "minecraft:nether_cave" + }, + "downfall": 0.0, + "effects": { + "additions_sound": { + "sound": "minecraft:ambient.nether_wastes.additions", + "tick_chance": 0.0111 + }, + "ambient_sound": "minecraft:ambient.nether_wastes.loop", + "fog_color": 3344392, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.nether_wastes.mood", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.nether.nether_wastes" + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [], + [], + [], + [], + [], + [ + "minecraft:spring_open", + "minecraft:patch_fire", + "minecraft:patch_soul_fire", + "minecraft:glowstone_extra", + "minecraft:glowstone", + "minecraft:brown_mushroom_nether", + "minecraft:red_mushroom_nether", + "minecraft:ore_magma", + "minecraft:spring_closed", + "minecraft:ore_gravel_nether", + "minecraft:ore_blackstone", + "minecraft:ore_gold_nether", + "minecraft:ore_quartz_nether", + "minecraft:ore_ancient_debris_large", + "minecraft:ore_debris_small" + ], + [], + [ + "minecraft:spring_lava", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [ + { + "type": "minecraft:strider", + "maxCount": 2, + "minCount": 1, + "weight": 60 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:ghast", + "maxCount": 4, + "minCount": 4, + "weight": 50 + }, + { + "type": "minecraft:zombified_piglin", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:magma_cube", + "maxCount": 4, + "minCount": 4, + "weight": 2 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 1 + }, + { + "type": "minecraft:piglin", + "maxCount": 4, + "minCount": 4, + "weight": 15 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/ocean.json b/data/minecraft/worldgen/biome/ocean.json new file mode 100644 index 00000000..32b74be8 --- /dev/null +++ b/data/minecraft/worldgen/biome/ocean.json @@ -0,0 +1,192 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:seagrass_normal", + "minecraft:seagrass_simple", + "minecraft:kelp_cold" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:cod", + "maxCount": 6, + "minCount": 3, + "weight": 10 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:dolphin", + "maxCount": 2, + "minCount": 1, + "weight": 1 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/old_growth_birch_forest.json b/data/minecraft/worldgen/biome/old_growth_birch_forest.json new file mode 100644 index 00000000..eb2da855 --- /dev/null +++ b/data/minecraft/worldgen/biome/old_growth_birch_forest.json @@ -0,0 +1,195 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.6, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.forest" + }, + "sky_color": 8037887, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:forest_flowers", + "minecraft:birch_tall", + "minecraft:flower_default", + "minecraft:patch_grass_forest", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/old_growth_pine_taiga.json b/data/minecraft/worldgen/biome/old_growth_pine_taiga.json new file mode 100644 index 00000000..4618b800 --- /dev/null +++ b/data/minecraft/worldgen/biome/old_growth_pine_taiga.json @@ -0,0 +1,218 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.old_growth_taiga" + }, + "sky_color": 8168447, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode", + "minecraft:forest_rock" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_large_fern", + "minecraft:trees_old_growth_pine_taiga", + "minecraft:flower_default", + "minecraft:patch_grass_taiga", + "minecraft:patch_dead_bush", + "minecraft:brown_mushroom_old_growth", + "minecraft:red_mushroom_old_growth", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:patch_berry_common" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:wolf", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + }, + { + "type": "minecraft:fox", + "maxCount": 4, + "minCount": 2, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 25 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.3 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json b/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json new file mode 100644 index 00000000..d51fde7e --- /dev/null +++ b/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json @@ -0,0 +1,218 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.old_growth_taiga" + }, + "sky_color": 8233983, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode", + "minecraft:forest_rock" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_large_fern", + "minecraft:trees_old_growth_spruce_taiga", + "minecraft:flower_default", + "minecraft:patch_grass_taiga", + "minecraft:patch_dead_bush", + "minecraft:brown_mushroom_old_growth", + "minecraft:red_mushroom_old_growth", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:patch_berry_common" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:wolf", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + }, + { + "type": "minecraft:fox", + "maxCount": 4, + "minCount": 2, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.25 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/plains.json b/data/minecraft/worldgen/biome/plains.json new file mode 100644 index 00000000..a223a716 --- /dev/null +++ b/data/minecraft/worldgen/biome/plains.json @@ -0,0 +1,201 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.4, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 7907327, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:trees_plains", + "minecraft:flower_plains", + "minecraft:patch_grass_plain", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:horse", + "maxCount": 6, + "minCount": 2, + "weight": 5 + }, + { + "type": "minecraft:donkey", + "maxCount": 3, + "minCount": 1, + "weight": 1 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/river.json b/data/minecraft/worldgen/biome/river.json new file mode 100644 index 00000000..bce49abb --- /dev/null +++ b/data/minecraft/worldgen/biome/river.json @@ -0,0 +1,184 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:seagrass_river" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 100 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:salmon", + "maxCount": 5, + "minCount": 1, + "weight": 5 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 1, + "weight": 2 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/savanna.json b/data/minecraft/worldgen/biome/savanna.json new file mode 100644 index 00000000..c357a3b7 --- /dev/null +++ b/data/minecraft/worldgen/biome/savanna.json @@ -0,0 +1,207 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.0, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass", + "minecraft:trees_savanna", + "minecraft:flower_warm", + "minecraft:patch_grass_savanna", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:horse", + "maxCount": 6, + "minCount": 2, + "weight": 1 + }, + { + "type": "minecraft:donkey", + "maxCount": 1, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:armadillo", + "maxCount": 3, + "minCount": 2, + "weight": 10 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/savanna_plateau.json b/data/minecraft/worldgen/biome/savanna_plateau.json new file mode 100644 index 00000000..d1bd9db3 --- /dev/null +++ b/data/minecraft/worldgen/biome/savanna_plateau.json @@ -0,0 +1,219 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.0, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass", + "minecraft:trees_savanna", + "minecraft:flower_warm", + "minecraft:patch_grass_savanna", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:horse", + "maxCount": 6, + "minCount": 2, + "weight": 1 + }, + { + "type": "minecraft:donkey", + "maxCount": 1, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:armadillo", + "maxCount": 3, + "minCount": 2, + "weight": 10 + }, + { + "type": "minecraft:llama", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:wolf", + "maxCount": 8, + "minCount": 4, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/small_end_islands.json b/data/minecraft/worldgen/biome/small_end_islands.json new file mode 100644 index 00000000..c9e4887d --- /dev/null +++ b/data/minecraft/worldgen/biome/small_end_islands.json @@ -0,0 +1,41 @@ +{ + "carvers": {}, + "downfall": 0.5, + "effects": { + "fog_color": 10518688, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 0, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [ + "minecraft:end_island_decorated" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 10 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/snowy_beach.json b/data/minecraft/worldgen/biome/snowy_beach.json new file mode 100644 index 00000000..8814e77e --- /dev/null +++ b/data/minecraft/worldgen/biome/snowy_beach.json @@ -0,0 +1,162 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.3, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8364543, + "water_color": 4020182, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.05 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/snowy_plains.json b/data/minecraft/worldgen/biome/snowy_plains.json new file mode 100644 index 00000000..8d635339 --- /dev/null +++ b/data/minecraft/worldgen/biome/snowy_plains.json @@ -0,0 +1,183 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "creature_spawn_probability": 0.07, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8364543, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_snowy", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 10 + }, + { + "type": "minecraft:polar_bear", + "maxCount": 2, + "minCount": 1, + "weight": 1 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 20 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:stray", + "maxCount": 4, + "minCount": 4, + "weight": 80 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/snowy_slopes.json b/data/minecraft/worldgen/biome/snowy_slopes.json new file mode 100644 index 00000000..fb9dc704 --- /dev/null +++ b/data/minecraft/worldgen/biome/snowy_slopes.json @@ -0,0 +1,181 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.9, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.snowy_slopes" + }, + "sky_color": 8560639, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava", + "minecraft:spring_lava_frozen" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + }, + { + "type": "minecraft:goat", + "maxCount": 3, + "minCount": 1, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": -0.3 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/snowy_taiga.json b/data/minecraft/worldgen/biome/snowy_taiga.json new file mode 100644 index 00000000..9dd36242 --- /dev/null +++ b/data/minecraft/worldgen/biome/snowy_taiga.json @@ -0,0 +1,208 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.4, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8625919, + "water_color": 4020182, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_large_fern", + "minecraft:trees_taiga", + "minecraft:flower_default", + "minecraft:patch_grass_taiga_2", + "minecraft:brown_mushroom_taiga", + "minecraft:red_mushroom_taiga", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:patch_berry_rare" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:wolf", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + }, + { + "type": "minecraft:fox", + "maxCount": 4, + "minCount": 2, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": -0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/soul_sand_valley.json b/data/minecraft/worldgen/biome/soul_sand_valley.json new file mode 100644 index 00000000..efa00435 --- /dev/null +++ b/data/minecraft/worldgen/biome/soul_sand_valley.json @@ -0,0 +1,123 @@ +{ + "carvers": { + "air": "minecraft:nether_cave" + }, + "downfall": 0.0, + "effects": { + "additions_sound": { + "sound": "minecraft:ambient.soul_sand_valley.additions", + "tick_chance": 0.0111 + }, + "ambient_sound": "minecraft:ambient.soul_sand_valley.loop", + "fog_color": 1787717, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.soul_sand_valley.mood", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.nether.soul_sand_valley" + }, + "particle": { + "options": { + "type": "minecraft:ash" + }, + "probability": 0.00625 + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [ + "minecraft:basalt_pillar" + ], + [], + [], + [], + [], + [ + "minecraft:spring_open", + "minecraft:patch_fire", + "minecraft:patch_soul_fire", + "minecraft:glowstone_extra", + "minecraft:glowstone", + "minecraft:patch_crimson_roots", + "minecraft:ore_magma", + "minecraft:spring_closed", + "minecraft:ore_soul_sand", + "minecraft:ore_gravel_nether", + "minecraft:ore_blackstone", + "minecraft:ore_gold_nether", + "minecraft:ore_quartz_nether", + "minecraft:ore_ancient_debris_large", + "minecraft:ore_debris_small" + ], + [], + [ + "minecraft:spring_lava" + ] + ], + "has_precipitation": false, + "spawn_costs": { + "minecraft:enderman": { + "charge": 0.7, + "energy_budget": 0.15 + }, + "minecraft:ghast": { + "charge": 0.7, + "energy_budget": 0.15 + }, + "minecraft:skeleton": { + "charge": 0.7, + "energy_budget": 0.15 + }, + "minecraft:strider": { + "charge": 0.7, + "energy_budget": 0.15 + } + }, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [ + { + "type": "minecraft:strider", + "maxCount": 2, + "minCount": 1, + "weight": 60 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:skeleton", + "maxCount": 5, + "minCount": 5, + "weight": 20 + }, + { + "type": "minecraft:ghast", + "maxCount": 4, + "minCount": 4, + "weight": 50 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 1 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/sparse_jungle.json b/data/minecraft/worldgen/biome/sparse_jungle.json new file mode 100644 index 00000000..629e5cc5 --- /dev/null +++ b/data/minecraft/worldgen/biome/sparse_jungle.json @@ -0,0 +1,208 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.sparse_jungle" + }, + "sky_color": 7842047, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_sparse_jungle", + "minecraft:flower_warm", + "minecraft:patch_grass_jungle", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:vines", + "minecraft:patch_melon_sparse" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:wolf", + "maxCount": 4, + "minCount": 2, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.95 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/stony_peaks.json b/data/minecraft/worldgen/biome/stony_peaks.json new file mode 100644 index 00000000..e7605b5d --- /dev/null +++ b/data/minecraft/worldgen/biome/stony_peaks.json @@ -0,0 +1,165 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.3, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.stony_peaks" + }, + "sky_color": 7776511, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 1.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/stony_shore.json b/data/minecraft/worldgen/biome/stony_shore.json new file mode 100644 index 00000000..f4d44286 --- /dev/null +++ b/data/minecraft/worldgen/biome/stony_shore.json @@ -0,0 +1,162 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.3, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8233727, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.2 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/sunflower_plains.json b/data/minecraft/worldgen/biome/sunflower_plains.json new file mode 100644 index 00000000..d365e37c --- /dev/null +++ b/data/minecraft/worldgen/biome/sunflower_plains.json @@ -0,0 +1,202 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.4, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 7907327, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:patch_sunflower", + "minecraft:trees_plains", + "minecraft:flower_plains", + "minecraft:patch_grass_plain", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:horse", + "maxCount": 6, + "minCount": 2, + "weight": 5 + }, + { + "type": "minecraft:donkey", + "maxCount": 3, + "minCount": 1, + "weight": 1 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/swamp.json b/data/minecraft/worldgen/biome/swamp.json new file mode 100644 index 00000000..1f67a8ff --- /dev/null +++ b/data/minecraft/worldgen/biome/swamp.json @@ -0,0 +1,219 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.9, + "effects": { + "fog_color": 12638463, + "foliage_color": 6975545, + "grass_color_modifier": "swamp", + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.swamp" + }, + "sky_color": 7907327, + "water_color": 6388580, + "water_fog_color": 2302743 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:fossil_upper", + "minecraft:fossil_lower", + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_clay" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_swamp", + "minecraft:flower_swamp", + "minecraft:patch_grass_normal", + "minecraft:patch_dead_bush", + "minecraft:patch_waterlily", + "minecraft:brown_mushroom_swamp", + "minecraft:red_mushroom_swamp", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane_swamp", + "minecraft:patch_pumpkin", + "minecraft:seagrass_swamp" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:frog", + "maxCount": 5, + "minCount": 2, + "weight": 10 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 70 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:slime", + "maxCount": 1, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:bogged", + "maxCount": 4, + "minCount": 4, + "weight": 30 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/taiga.json b/data/minecraft/worldgen/biome/taiga.json new file mode 100644 index 00000000..24c600b6 --- /dev/null +++ b/data/minecraft/worldgen/biome/taiga.json @@ -0,0 +1,208 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8233983, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:patch_large_fern", + "minecraft:trees_taiga", + "minecraft:flower_default", + "minecraft:patch_grass_taiga_2", + "minecraft:brown_mushroom_taiga", + "minecraft:red_mushroom_taiga", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:patch_berry_common" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:wolf", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + }, + { + "type": "minecraft:fox", + "maxCount": 4, + "minCount": 2, + "weight": 8 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.25 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/the_end.json b/data/minecraft/worldgen/biome/the_end.json new file mode 100644 index 00000000..616acd85 --- /dev/null +++ b/data/minecraft/worldgen/biome/the_end.json @@ -0,0 +1,53 @@ +{ + "carvers": {}, + "downfall": 0.5, + "effects": { + "fog_color": 10518688, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 0, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [], + [], + [ + "minecraft:end_spike" + ], + [], + [], + [], + [], + [], + [ + "minecraft:end_platform" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 10 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/the_void.json b/data/minecraft/worldgen/biome/the_void.json new file mode 100644 index 00000000..49d0cca5 --- /dev/null +++ b/data/minecraft/worldgen/biome/the_void.json @@ -0,0 +1,44 @@ +{ + "carvers": {}, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [ + "minecraft:void_start_platform" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/warm_ocean.json b/data/minecraft/worldgen/biome/warm_ocean.json new file mode 100644 index 00000000..b1e1da65 --- /dev/null +++ b/data/minecraft/worldgen/biome/warm_ocean.json @@ -0,0 +1,198 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.5, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8103167, + "water_color": 4445678, + "water_fog_color": 270131 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_water", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin", + "minecraft:warm_ocean_vegetation", + "minecraft:seagrass_warm", + "minecraft:sea_pickle" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [], + "misc": [], + "monster": [ + { + "type": "minecraft:drowned", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [ + { + "type": "minecraft:pufferfish", + "maxCount": 3, + "minCount": 1, + "weight": 15 + }, + { + "type": "minecraft:tropical_fish", + "maxCount": 8, + "minCount": 8, + "weight": 25 + } + ], + "water_creature": [ + { + "type": "minecraft:squid", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:dolphin", + "maxCount": 2, + "minCount": 1, + "weight": 2 + } + ] + }, + "temperature": 0.5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/warped_forest.json b/data/minecraft/worldgen/biome/warped_forest.json new file mode 100644 index 00000000..4e462ac5 --- /dev/null +++ b/data/minecraft/worldgen/biome/warped_forest.json @@ -0,0 +1,101 @@ +{ + "carvers": { + "air": "minecraft:nether_cave" + }, + "downfall": 0.0, + "effects": { + "additions_sound": { + "sound": "minecraft:ambient.warped_forest.additions", + "tick_chance": 0.0111 + }, + "ambient_sound": "minecraft:ambient.warped_forest.loop", + "fog_color": 1705242, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.warped_forest.mood", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.nether.warped_forest" + }, + "particle": { + "options": { + "type": "minecraft:warped_spore" + }, + "probability": 0.01428 + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [], + [], + [], + [], + [], + [], + [ + "minecraft:spring_open", + "minecraft:patch_fire", + "minecraft:patch_soul_fire", + "minecraft:glowstone_extra", + "minecraft:glowstone", + "minecraft:ore_magma", + "minecraft:spring_closed", + "minecraft:ore_gravel_nether", + "minecraft:ore_blackstone", + "minecraft:ore_gold_nether", + "minecraft:ore_quartz_nether", + "minecraft:ore_ancient_debris_large", + "minecraft:ore_debris_small" + ], + [], + [ + "minecraft:spring_lava", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:warped_fungi", + "minecraft:warped_forest_vegetation", + "minecraft:nether_sprouts", + "minecraft:twisting_vines" + ] + ], + "has_precipitation": false, + "spawn_costs": { + "minecraft:enderman": { + "charge": 1.0, + "energy_budget": 0.12 + } + }, + "spawners": { + "ambient": [], + "axolotls": [], + "creature": [ + { + "type": "minecraft:strider", + "maxCount": 2, + "minCount": 1, + "weight": 60 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 4, + "weight": 1 + } + ], + "underground_water_creature": [], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/windswept_forest.json b/data/minecraft/worldgen/biome/windswept_forest.json new file mode 100644 index 00000000..2949efc6 --- /dev/null +++ b/data/minecraft/worldgen/biome/windswept_forest.json @@ -0,0 +1,197 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.3, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8233727, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_windswept_forest", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:llama", + "maxCount": 6, + "minCount": 4, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.2 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/windswept_gravelly_hills.json b/data/minecraft/worldgen/biome/windswept_gravelly_hills.json new file mode 100644 index 00000000..bf891177 --- /dev/null +++ b/data/minecraft/worldgen/biome/windswept_gravelly_hills.json @@ -0,0 +1,197 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.3, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8233727, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_windswept_hills", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:llama", + "maxCount": 6, + "minCount": 4, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.2 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/windswept_hills.json b/data/minecraft/worldgen/biome/windswept_hills.json new file mode 100644 index 00000000..bf891177 --- /dev/null +++ b/data/minecraft/worldgen/biome/windswept_hills.json @@ -0,0 +1,197 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.3, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 8233727, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel", + "minecraft:ore_emerald" + ], + [ + "minecraft:ore_infested" + ], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_windswept_hills", + "minecraft:flower_default", + "minecraft:patch_grass_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": true, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:llama", + "maxCount": 6, + "minCount": 4, + "weight": 5 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 0.2 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/windswept_savanna.json b/data/minecraft/worldgen/biome/windswept_savanna.json new file mode 100644 index 00000000..522fafd6 --- /dev/null +++ b/data/minecraft/worldgen/biome/windswept_savanna.json @@ -0,0 +1,206 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "downfall": 0.0, + "effects": { + "fog_color": 12638463, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_windswept_savanna", + "minecraft:flower_default", + "minecraft:patch_grass_normal", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane", + "minecraft:patch_pumpkin" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:horse", + "maxCount": 6, + "minCount": 2, + "weight": 1 + }, + { + "type": "minecraft:donkey", + "maxCount": 1, + "minCount": 1, + "weight": 1 + }, + { + "type": "minecraft:armadillo", + "maxCount": 3, + "minCount": 2, + "weight": 10 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/wooded_badlands.json b/data/minecraft/worldgen/biome/wooded_badlands.json new file mode 100644 index 00000000..54909712 --- /dev/null +++ b/data/minecraft/worldgen/biome/wooded_badlands.json @@ -0,0 +1,187 @@ +{ + "carvers": { + "air": [ + "minecraft:cave", + "minecraft:cave_extra_underground", + "minecraft:canyon" + ] + }, + "creature_spawn_probability": 0.04, + "downfall": 0.0, + "effects": { + "fog_color": 12638463, + "foliage_color": 10387789, + "grass_color": 9470285, + "mood_sound": { + "block_search_extent": 8, + "offset": 2.0, + "sound": "minecraft:ambient.cave", + "tick_delay": 6000 + }, + "music": { + "max_delay": 24000, + "min_delay": 12000, + "replace_current_music": false, + "sound": "minecraft:music.overworld.badlands" + }, + "sky_color": 7254527, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "features": [ + [], + [ + "minecraft:lake_lava_underground", + "minecraft:lake_lava_surface" + ], + [ + "minecraft:amethyst_geode" + ], + [ + "minecraft:monster_room", + "minecraft:monster_room_deep" + ], + [], + [], + [ + "minecraft:ore_dirt", + "minecraft:ore_gravel", + "minecraft:ore_granite_upper", + "minecraft:ore_granite_lower", + "minecraft:ore_diorite_upper", + "minecraft:ore_diorite_lower", + "minecraft:ore_andesite_upper", + "minecraft:ore_andesite_lower", + "minecraft:ore_tuff", + "minecraft:ore_coal_upper", + "minecraft:ore_coal_lower", + "minecraft:ore_iron_upper", + "minecraft:ore_iron_middle", + "minecraft:ore_iron_small", + "minecraft:ore_gold", + "minecraft:ore_gold_lower", + "minecraft:ore_redstone", + "minecraft:ore_redstone_lower", + "minecraft:ore_diamond", + "minecraft:ore_diamond_medium", + "minecraft:ore_diamond_large", + "minecraft:ore_diamond_buried", + "minecraft:ore_lapis", + "minecraft:ore_lapis_buried", + "minecraft:ore_copper", + "minecraft:underwater_magma", + "minecraft:ore_gold_extra", + "minecraft:disk_sand", + "minecraft:disk_clay", + "minecraft:disk_gravel" + ], + [], + [ + "minecraft:spring_water", + "minecraft:spring_lava" + ], + [ + "minecraft:glow_lichen", + "minecraft:trees_badlands", + "minecraft:patch_grass_badlands", + "minecraft:patch_dead_bush_badlands", + "minecraft:brown_mushroom_normal", + "minecraft:red_mushroom_normal", + "minecraft:patch_sugar_cane_badlands", + "minecraft:patch_pumpkin", + "minecraft:patch_cactus_decorated" + ], + [ + "minecraft:freeze_top_layer" + ] + ], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "ambient": [ + { + "type": "minecraft:bat", + "maxCount": 8, + "minCount": 8, + "weight": 10 + } + ], + "axolotls": [], + "creature": [ + { + "type": "minecraft:armadillo", + "maxCount": 2, + "minCount": 1, + "weight": 6 + }, + { + "type": "minecraft:wolf", + "maxCount": 8, + "minCount": 4, + "weight": 2 + } + ], + "misc": [], + "monster": [ + { + "type": "minecraft:spider", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:zombie", + "maxCount": 4, + "minCount": 4, + "weight": 95 + }, + { + "type": "minecraft:zombie_villager", + "maxCount": 1, + "minCount": 1, + "weight": 5 + }, + { + "type": "minecraft:skeleton", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:creeper", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:slime", + "maxCount": 4, + "minCount": 4, + "weight": 100 + }, + { + "type": "minecraft:enderman", + "maxCount": 4, + "minCount": 1, + "weight": 10 + }, + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 5 + } + ], + "underground_water_creature": [ + { + "type": "minecraft:glow_squid", + "maxCount": 6, + "minCount": 4, + "weight": 10 + } + ], + "water_ambient": [], + "water_creature": [] + }, + "temperature": 2.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_carver/canyon.json b/data/minecraft/worldgen/configured_carver/canyon.json new file mode 100644 index 00000000..0e00c48d --- /dev/null +++ b/data/minecraft/worldgen/configured_carver/canyon.json @@ -0,0 +1,70 @@ +{ + "type": "minecraft:canyon", + "config": { + "debug_settings": { + "air_state": { + "Name": "minecraft:warped_button", + "Properties": { + "face": "wall", + "facing": "north", + "powered": "false" + } + }, + "barrier_state": { + "Name": "minecraft:glass" + }, + "lava_state": { + "Name": "minecraft:orange_stained_glass" + }, + "water_state": { + "Name": "minecraft:candle", + "Properties": { + "candles": "1", + "lit": "false", + "waterlogged": "false" + } + } + }, + "lava_level": { + "above_bottom": 8 + }, + "probability": 0.01, + "replaceable": "#minecraft:overworld_carver_replaceables", + "shape": { + "distance_factor": { + "type": "minecraft:uniform", + "max_exclusive": 1.0, + "min_inclusive": 0.75 + }, + "horizontal_radius_factor": { + "type": "minecraft:uniform", + "max_exclusive": 1.0, + "min_inclusive": 0.75 + }, + "thickness": { + "type": "minecraft:trapezoid", + "max": 6.0, + "min": 0.0, + "plateau": 2.0 + }, + "vertical_radius_center_factor": 0.0, + "vertical_radius_default_factor": 1.0, + "width_smoothness": 3 + }, + "vertical_rotation": { + "type": "minecraft:uniform", + "max_exclusive": 0.125, + "min_inclusive": -0.125 + }, + "y": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 67 + }, + "min_inclusive": { + "absolute": 10 + } + }, + "yScale": 3.0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_carver/cave.json b/data/minecraft/worldgen/configured_carver/cave.json new file mode 100644 index 00000000..5beb3f63 --- /dev/null +++ b/data/minecraft/worldgen/configured_carver/cave.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:cave", + "config": { + "debug_settings": { + "air_state": { + "Name": "minecraft:crimson_button", + "Properties": { + "face": "wall", + "facing": "north", + "powered": "false" + } + }, + "barrier_state": { + "Name": "minecraft:glass" + }, + "lava_state": { + "Name": "minecraft:orange_stained_glass" + }, + "water_state": { + "Name": "minecraft:candle", + "Properties": { + "candles": "1", + "lit": "false", + "waterlogged": "false" + } + } + }, + "floor_level": { + "type": "minecraft:uniform", + "max_exclusive": -0.4, + "min_inclusive": -1.0 + }, + "horizontal_radius_multiplier": { + "type": "minecraft:uniform", + "max_exclusive": 1.4, + "min_inclusive": 0.7 + }, + "lava_level": { + "above_bottom": 8 + }, + "probability": 0.15, + "replaceable": "#minecraft:overworld_carver_replaceables", + "vertical_radius_multiplier": { + "type": "minecraft:uniform", + "max_exclusive": 1.3, + "min_inclusive": 0.8 + }, + "y": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 180 + }, + "min_inclusive": { + "above_bottom": 8 + } + }, + "yScale": { + "type": "minecraft:uniform", + "max_exclusive": 0.9, + "min_inclusive": 0.1 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_carver/cave_extra_underground.json b/data/minecraft/worldgen/configured_carver/cave_extra_underground.json new file mode 100644 index 00000000..bc1ac71b --- /dev/null +++ b/data/minecraft/worldgen/configured_carver/cave_extra_underground.json @@ -0,0 +1,63 @@ +{ + "type": "minecraft:cave", + "config": { + "debug_settings": { + "air_state": { + "Name": "minecraft:oak_button", + "Properties": { + "face": "wall", + "facing": "north", + "powered": "false" + } + }, + "barrier_state": { + "Name": "minecraft:glass" + }, + "lava_state": { + "Name": "minecraft:orange_stained_glass" + }, + "water_state": { + "Name": "minecraft:candle", + "Properties": { + "candles": "1", + "lit": "false", + "waterlogged": "false" + } + } + }, + "floor_level": { + "type": "minecraft:uniform", + "max_exclusive": -0.4, + "min_inclusive": -1.0 + }, + "horizontal_radius_multiplier": { + "type": "minecraft:uniform", + "max_exclusive": 1.4, + "min_inclusive": 0.7 + }, + "lava_level": { + "above_bottom": 8 + }, + "probability": 0.07, + "replaceable": "#minecraft:overworld_carver_replaceables", + "vertical_radius_multiplier": { + "type": "minecraft:uniform", + "max_exclusive": 1.3, + "min_inclusive": 0.8 + }, + "y": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 47 + }, + "min_inclusive": { + "above_bottom": 8 + } + }, + "yScale": { + "type": "minecraft:uniform", + "max_exclusive": 0.9, + "min_inclusive": 0.1 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_carver/nether_cave.json b/data/minecraft/worldgen/configured_carver/nether_cave.json new file mode 100644 index 00000000..5cd88ba5 --- /dev/null +++ b/data/minecraft/worldgen/configured_carver/nether_cave.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:nether_cave", + "config": { + "floor_level": -0.7, + "horizontal_radius_multiplier": 1.0, + "lava_level": { + "above_bottom": 10 + }, + "probability": 0.2, + "replaceable": "#minecraft:nether_carver_replaceables", + "vertical_radius_multiplier": 1.0, + "y": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 1 + }, + "min_inclusive": { + "absolute": 0 + } + }, + "yScale": 0.5 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/acacia.json b/data/minecraft/worldgen/configured_feature/acacia.json new file mode 100644 index 00000000..2964d577 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/acacia.json @@ -0,0 +1,51 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:acacia_foliage_placer", + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:acacia_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:forking_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 2 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:acacia_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/amethyst_geode.json b/data/minecraft/worldgen/configured_feature/amethyst_geode.json new file mode 100644 index 00000000..46a48fe9 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/amethyst_geode.json @@ -0,0 +1,102 @@ +{ + "type": "minecraft:geode", + "config": { + "blocks": { + "alternate_inner_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:budding_amethyst" + } + }, + "cannot_replace": "#minecraft:features_cannot_replace", + "filling_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:air" + } + }, + "inner_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:amethyst_block" + } + }, + "inner_placements": [ + { + "Name": "minecraft:small_amethyst_bud", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:medium_amethyst_bud", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:large_amethyst_bud", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:amethyst_cluster", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + } + ], + "invalid_blocks": "#minecraft:geode_invalid_blocks", + "middle_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:calcite" + } + }, + "outer_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:smooth_basalt" + } + } + }, + "crack": { + "base_crack_size": 2.0, + "crack_point_offset": 2, + "generate_crack_chance": 0.95 + }, + "distribution_points": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 3 + }, + "invalid_blocks_threshold": 1, + "layers": { + "filling": 1.7, + "inner_layer": 2.2, + "middle_layer": 3.2, + "outer_layer": 4.2 + }, + "max_gen_offset": 16, + "min_gen_offset": -16, + "noise_multiplier": 0.05, + "outer_wall_distance": { + "type": "minecraft:uniform", + "max_inclusive": 6, + "min_inclusive": 4 + }, + "placements_require_layer0_alternate": true, + "point_offset": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 1 + }, + "use_alternate_layer0_chance": 0.083, + "use_potential_placements_chance": 0.35 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/azalea_tree.json b/data/minecraft/worldgen/configured_feature/azalea_tree.json new file mode 100644 index 00000000..840f2ead --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/azalea_tree.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:rooted_dirt" + } + }, + "foliage_placer": { + "type": "minecraft:random_spread_foliage_placer", + "foliage_height": 2, + "leaf_placement_attempts": 50, + "offset": 0, + "radius": 3 + }, + "foliage_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:azalea_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + }, + "weight": 3 + }, + { + "data": { + "Name": "minecraft:flowering_azalea_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + }, + "weight": 1 + } + ] + }, + "force_dirt": true, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:bending_trunk_placer", + "base_height": 4, + "bend_length": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 1 + }, + "height_rand_a": 2, + "height_rand_b": 0, + "min_height_for_leaves": 3 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/bamboo_no_podzol.json b/data/minecraft/worldgen/configured_feature/bamboo_no_podzol.json new file mode 100644 index 00000000..5ac3632f --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/bamboo_no_podzol.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:bamboo", + "config": { + "probability": 0.0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/bamboo_some_podzol.json b/data/minecraft/worldgen/configured_feature/bamboo_some_podzol.json new file mode 100644 index 00000000..308ada01 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/bamboo_some_podzol.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:bamboo", + "config": { + "probability": 0.2 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/bamboo_vegetation.json b/data/minecraft/worldgen/configured_feature/bamboo_vegetation.json new file mode 100644 index 00000000..64750c8d --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/bamboo_vegetation.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": { + "feature": "minecraft:patch_grass_jungle", + "placement": [] + }, + "features": [ + { + "chance": 0.05, + "feature": "minecraft:fancy_oak_checked" + }, + { + "chance": 0.15, + "feature": "minecraft:jungle_bush" + }, + { + "chance": 0.7, + "feature": "minecraft:mega_jungle_tree_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/basalt_blobs.json b/data/minecraft/worldgen/configured_feature/basalt_blobs.json new file mode 100644 index 00000000..593df33e --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/basalt_blobs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:netherrack_replace_blobs", + "config": { + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 3 + }, + "state": { + "Name": "minecraft:basalt", + "Properties": { + "axis": "y" + } + }, + "target": { + "Name": "minecraft:netherrack" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/basalt_pillar.json b/data/minecraft/worldgen/configured_feature/basalt_pillar.json new file mode 100644 index 00000000..f32f9a66 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/basalt_pillar.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:basalt_pillar", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/birch.json b/data/minecraft/worldgen/configured_feature/birch.json new file mode 100644 index 00000000..6be310ef --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/birch.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/birch_bees_0002.json b/data/minecraft/worldgen/configured_feature/birch_bees_0002.json new file mode 100644 index 00000000..b03bba84 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/birch_bees_0002.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.002 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/birch_bees_002.json b/data/minecraft/worldgen/configured_feature/birch_bees_002.json new file mode 100644 index 00000000..89127b38 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/birch_bees_002.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.02 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/birch_bees_005.json b/data/minecraft/worldgen/configured_feature/birch_bees_005.json new file mode 100644 index 00000000..1509797a --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/birch_bees_005.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.05 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/birch_tall.json b/data/minecraft/worldgen/configured_feature/birch_tall.json new file mode 100644 index 00000000..7701dbad --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/birch_tall.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:birch_bees_0002", + "features": [ + { + "chance": 0.5, + "feature": "minecraft:super_birch_bees_0002" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/blackstone_blobs.json b/data/minecraft/worldgen/configured_feature/blackstone_blobs.json new file mode 100644 index 00000000..99b2568f --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/blackstone_blobs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:netherrack_replace_blobs", + "config": { + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 3 + }, + "state": { + "Name": "minecraft:blackstone" + }, + "target": { + "Name": "minecraft:netherrack" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/blue_ice.json b/data/minecraft/worldgen/configured_feature/blue_ice.json new file mode 100644 index 00000000..d26c9f5d --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/blue_ice.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:blue_ice", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/bonus_chest.json b/data/minecraft/worldgen/configured_feature/bonus_chest.json new file mode 100644 index 00000000..2e409dd9 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/bonus_chest.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:bonus_chest", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/cave_vine.json b/data/minecraft/worldgen/configured_feature/cave_vine.json new file mode 100644 index 00000000..82f429b3 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/cave_vine.json @@ -0,0 +1,104 @@ +{ + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction": "down", + "layers": [ + { + "height": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 19, + "min_inclusive": 0 + }, + "weight": 2 + }, + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 0 + }, + "weight": 3 + }, + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 6, + "min_inclusive": 0 + }, + "weight": 10 + } + ] + }, + "provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:cave_vines_plant", + "Properties": { + "berries": "false" + } + }, + "weight": 4 + }, + { + "data": { + "Name": "minecraft:cave_vines_plant", + "Properties": { + "berries": "true" + } + }, + "weight": 1 + } + ] + } + }, + { + "height": 1, + "provider": { + "type": "minecraft:randomized_int_state_provider", + "property": "age", + "source": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:cave_vines", + "Properties": { + "age": "0", + "berries": "false" + } + }, + "weight": 4 + }, + { + "data": { + "Name": "minecraft:cave_vines", + "Properties": { + "age": "0", + "berries": "true" + } + }, + "weight": 1 + } + ] + }, + "values": { + "type": "minecraft:uniform", + "max_inclusive": 25, + "min_inclusive": 23 + } + } + } + ], + "prioritize_tip": true + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/cave_vine_in_moss.json b/data/minecraft/worldgen/configured_feature/cave_vine_in_moss.json new file mode 100644 index 00000000..1d86c8f0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/cave_vine_in_moss.json @@ -0,0 +1,96 @@ +{ + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction": "down", + "layers": [ + { + "height": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": 0 + }, + "weight": 5 + }, + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 1 + }, + "weight": 1 + } + ] + }, + "provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:cave_vines_plant", + "Properties": { + "berries": "false" + } + }, + "weight": 4 + }, + { + "data": { + "Name": "minecraft:cave_vines_plant", + "Properties": { + "berries": "true" + } + }, + "weight": 1 + } + ] + } + }, + { + "height": 1, + "provider": { + "type": "minecraft:randomized_int_state_provider", + "property": "age", + "source": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:cave_vines", + "Properties": { + "age": "0", + "berries": "false" + } + }, + "weight": 4 + }, + { + "data": { + "Name": "minecraft:cave_vines", + "Properties": { + "age": "0", + "berries": "true" + } + }, + "weight": 1 + } + ] + }, + "values": { + "type": "minecraft:uniform", + "max_inclusive": 25, + "min_inclusive": 23 + } + } + } + ], + "prioritize_tip": true + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/cherry.json b/data/minecraft/worldgen/configured_feature/cherry.json new file mode 100644 index 00000000..a616ac32 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/cherry.json @@ -0,0 +1,87 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:cherry_foliage_placer", + "corner_hole_chance": 0.25, + "hanging_leaves_chance": 0.16666667, + "hanging_leaves_extension_chance": 0.33333334, + "height": 5, + "offset": 0, + "radius": 4, + "wide_bottom_layer_hole_chance": 0.25 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:cherry_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:cherry_trunk_placer", + "base_height": 7, + "branch_count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 1, + "weight": 1 + }, + { + "data": 2, + "weight": 1 + }, + { + "data": 3, + "weight": 1 + } + ] + }, + "branch_end_offset_from_top": { + "type": "minecraft:uniform", + "max_inclusive": 0, + "min_inclusive": -1 + }, + "branch_horizontal_length": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 2 + }, + "branch_start_offset_from_top": { + "max_inclusive": -3, + "min_inclusive": -4 + }, + "height_rand_a": 1, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:cherry_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/cherry_bees_005.json b/data/minecraft/worldgen/configured_feature/cherry_bees_005.json new file mode 100644 index 00000000..cda84432 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/cherry_bees_005.json @@ -0,0 +1,92 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.05 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:cherry_foliage_placer", + "corner_hole_chance": 0.25, + "hanging_leaves_chance": 0.16666667, + "hanging_leaves_extension_chance": 0.33333334, + "height": 5, + "offset": 0, + "radius": 4, + "wide_bottom_layer_hole_chance": 0.25 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:cherry_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:cherry_trunk_placer", + "base_height": 7, + "branch_count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 1, + "weight": 1 + }, + { + "data": 2, + "weight": 1 + }, + { + "data": 3, + "weight": 1 + } + ] + }, + "branch_end_offset_from_top": { + "type": "minecraft:uniform", + "max_inclusive": 0, + "min_inclusive": -1 + }, + "branch_horizontal_length": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 2 + }, + "branch_start_offset_from_top": { + "max_inclusive": -3, + "min_inclusive": -4 + }, + "height_rand_a": 1, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:cherry_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/chorus_plant.json b/data/minecraft/worldgen/configured_feature/chorus_plant.json new file mode 100644 index 00000000..7c7b9e33 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/chorus_plant.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:chorus_plant", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/clay_pool_with_dripleaves.json b/data/minecraft/worldgen/configured_feature/clay_pool_with_dripleaves.json new file mode 100644 index 00000000..db6f05ea --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/clay_pool_with_dripleaves.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:waterlogged_vegetation_patch", + "config": { + "depth": 3, + "extra_bottom_block_chance": 0.8, + "extra_edge_column_chance": 0.7, + "ground_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:clay" + } + }, + "replaceable": "#minecraft:lush_ground_replaceable", + "surface": "floor", + "vegetation_chance": 0.1, + "vegetation_feature": { + "feature": "minecraft:dripleaf", + "placement": [] + }, + "vertical_range": 5, + "xz_radius": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 4 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/clay_with_dripleaves.json b/data/minecraft/worldgen/configured_feature/clay_with_dripleaves.json new file mode 100644 index 00000000..e0120c02 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/clay_with_dripleaves.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:vegetation_patch", + "config": { + "depth": 3, + "extra_bottom_block_chance": 0.8, + "extra_edge_column_chance": 0.7, + "ground_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:clay" + } + }, + "replaceable": "#minecraft:lush_ground_replaceable", + "surface": "floor", + "vegetation_chance": 0.05, + "vegetation_feature": { + "feature": "minecraft:dripleaf", + "placement": [] + }, + "vertical_range": 2, + "xz_radius": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 4 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/crimson_forest_vegetation.json b/data/minecraft/worldgen/configured_feature/crimson_forest_vegetation.json new file mode 100644 index 00000000..d40be6a6 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/crimson_forest_vegetation.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:nether_forest_vegetation", + "config": { + "spread_height": 4, + "spread_width": 8, + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:crimson_roots" + }, + "weight": 87 + }, + { + "data": { + "Name": "minecraft:crimson_fungus" + }, + "weight": 11 + }, + { + "data": { + "Name": "minecraft:warped_fungus" + }, + "weight": 1 + } + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/crimson_forest_vegetation_bonemeal.json b/data/minecraft/worldgen/configured_feature/crimson_forest_vegetation_bonemeal.json new file mode 100644 index 00000000..bc5bc1d1 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/crimson_forest_vegetation_bonemeal.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:nether_forest_vegetation", + "config": { + "spread_height": 1, + "spread_width": 3, + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:crimson_roots" + }, + "weight": 87 + }, + { + "data": { + "Name": "minecraft:crimson_fungus" + }, + "weight": 11 + }, + { + "data": { + "Name": "minecraft:warped_fungus" + }, + "weight": 1 + } + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/crimson_fungus.json b/data/minecraft/worldgen/configured_feature/crimson_fungus.json new file mode 100644 index 00000000..c69bc1e7 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/crimson_fungus.json @@ -0,0 +1,83 @@ +{ + "type": "minecraft:huge_fungus", + "config": { + "decor_state": { + "Name": "minecraft:shroomlight" + }, + "hat_state": { + "Name": "minecraft:nether_wart_block" + }, + "planted": false, + "replaceable_blocks": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:cherry_sapling", + "minecraft:dark_oak_sapling", + "minecraft:mangrove_propagule", + "minecraft:dandelion", + "minecraft:torchflower", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:wither_rose", + "minecraft:lily_of_the_valley", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:wheat", + "minecraft:sugar_cane", + "minecraft:attached_pumpkin_stem", + "minecraft:attached_melon_stem", + "minecraft:pumpkin_stem", + "minecraft:melon_stem", + "minecraft:lily_pad", + "minecraft:nether_wart", + "minecraft:cocoa", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:chorus_plant", + "minecraft:chorus_flower", + "minecraft:torchflower_crop", + "minecraft:pitcher_crop", + "minecraft:beetroots", + "minecraft:sweet_berry_bush", + "minecraft:warped_fungus", + "minecraft:crimson_fungus", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:spore_blossom", + "minecraft:azalea", + "minecraft:flowering_azalea", + "minecraft:moss_carpet", + "minecraft:pink_petals", + "minecraft:big_dripleaf", + "minecraft:big_dripleaf_stem", + "minecraft:small_dripleaf" + ] + }, + "stem_state": { + "Name": "minecraft:crimson_stem", + "Properties": { + "axis": "y" + } + }, + "valid_base_block": { + "Name": "minecraft:crimson_nylium" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/crimson_fungus_planted.json b/data/minecraft/worldgen/configured_feature/crimson_fungus_planted.json new file mode 100644 index 00000000..a9c15cfe --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/crimson_fungus_planted.json @@ -0,0 +1,83 @@ +{ + "type": "minecraft:huge_fungus", + "config": { + "decor_state": { + "Name": "minecraft:shroomlight" + }, + "hat_state": { + "Name": "minecraft:nether_wart_block" + }, + "planted": true, + "replaceable_blocks": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:cherry_sapling", + "minecraft:dark_oak_sapling", + "minecraft:mangrove_propagule", + "minecraft:dandelion", + "minecraft:torchflower", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:wither_rose", + "minecraft:lily_of_the_valley", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:wheat", + "minecraft:sugar_cane", + "minecraft:attached_pumpkin_stem", + "minecraft:attached_melon_stem", + "minecraft:pumpkin_stem", + "minecraft:melon_stem", + "minecraft:lily_pad", + "minecraft:nether_wart", + "minecraft:cocoa", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:chorus_plant", + "minecraft:chorus_flower", + "minecraft:torchflower_crop", + "minecraft:pitcher_crop", + "minecraft:beetroots", + "minecraft:sweet_berry_bush", + "minecraft:warped_fungus", + "minecraft:crimson_fungus", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:spore_blossom", + "minecraft:azalea", + "minecraft:flowering_azalea", + "minecraft:moss_carpet", + "minecraft:pink_petals", + "minecraft:big_dripleaf", + "minecraft:big_dripleaf_stem", + "minecraft:small_dripleaf" + ] + }, + "stem_state": { + "Name": "minecraft:crimson_stem", + "Properties": { + "axis": "y" + } + }, + "valid_base_block": { + "Name": "minecraft:crimson_nylium" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/dark_forest_vegetation.json b/data/minecraft/worldgen/configured_feature/dark_forest_vegetation.json new file mode 100644 index 00000000..ad2c35d4 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/dark_forest_vegetation.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:oak_checked", + "features": [ + { + "chance": 0.025, + "feature": { + "feature": "minecraft:huge_brown_mushroom", + "placement": [] + } + }, + { + "chance": 0.05, + "feature": { + "feature": "minecraft:huge_red_mushroom", + "placement": [] + } + }, + { + "chance": 0.6666667, + "feature": "minecraft:dark_oak_checked" + }, + { + "chance": 0.2, + "feature": "minecraft:birch_checked" + }, + { + "chance": 0.1, + "feature": "minecraft:fancy_oak_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/dark_oak.json b/data/minecraft/worldgen/configured_feature/dark_oak.json new file mode 100644 index 00000000..6eb24d5e --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/dark_oak.json @@ -0,0 +1,53 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:dark_oak_foliage_placer", + "offset": 0, + "radius": 0 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dark_oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:three_layers_feature_size", + "limit": 1, + "lower_size": 0, + "middle_size": 1, + "upper_limit": 1, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:dark_oak_trunk_placer", + "base_height": 6, + "height_rand_a": 2, + "height_rand_b": 1 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dark_oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/delta.json b/data/minecraft/worldgen/configured_feature/delta.json new file mode 100644 index 00000000..18e97973 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/delta.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:delta_feature", + "config": { + "contents": { + "Name": "minecraft:lava", + "Properties": { + "level": "0" + } + }, + "rim": { + "Name": "minecraft:magma_block" + }, + "rim_size": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 0 + }, + "size": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 3 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/desert_well.json b/data/minecraft/worldgen/configured_feature/desert_well.json new file mode 100644 index 00000000..f0f1ba22 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/desert_well.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:desert_well", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/disk_clay.json b/data/minecraft/worldgen/configured_feature/disk_clay.json new file mode 100644 index 00000000..4c5b6729 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/disk_clay.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:disk", + "config": { + "half_height": 1, + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": 2 + }, + "state_provider": { + "fallback": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:clay" + } + }, + "rules": [] + }, + "target": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:dirt", + "minecraft:clay" + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/disk_grass.json b/data/minecraft/worldgen/configured_feature/disk_grass.json new file mode 100644 index 00000000..9e9f493c --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/disk_grass.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:disk", + "config": { + "half_height": 2, + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 6, + "min_inclusive": 2 + }, + "state_provider": { + "fallback": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "rules": [ + { + "if_true": { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:solid", + "offset": [ + 0, + 1, + 0 + ] + }, + { + "type": "minecraft:matching_fluids", + "fluids": "minecraft:water", + "offset": [ + 0, + 1, + 0 + ] + } + ] + } + }, + "then": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + } + ] + }, + "target": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:dirt", + "minecraft:mud" + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/disk_gravel.json b/data/minecraft/worldgen/configured_feature/disk_gravel.json new file mode 100644 index 00000000..7e919ed5 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/disk_gravel.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:disk", + "config": { + "half_height": 2, + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 5, + "min_inclusive": 2 + }, + "state_provider": { + "fallback": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:gravel" + } + }, + "rules": [] + }, + "target": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:dirt", + "minecraft:grass_block" + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/disk_sand.json b/data/minecraft/worldgen/configured_feature/disk_sand.json new file mode 100644 index 00000000..648ea75b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/disk_sand.json @@ -0,0 +1,45 @@ +{ + "type": "minecraft:disk", + "config": { + "half_height": 2, + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 6, + "min_inclusive": 2 + }, + "state_provider": { + "fallback": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:sand" + } + }, + "rules": [ + { + "if_true": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air", + "offset": [ + 0, + -1, + 0 + ] + }, + "then": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:sandstone" + } + } + } + ] + }, + "target": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:dirt", + "minecraft:grass_block" + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/dripleaf.json b/data/minecraft/worldgen/configured_feature/dripleaf.json new file mode 100644 index 00000000..5a27344b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/dripleaf.json @@ -0,0 +1,312 @@ +{ + "type": "minecraft:simple_random_selector", + "config": { + "features": [ + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:small_dripleaf", + "Properties": { + "facing": "east", + "half": "lower", + "waterlogged": "false" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:small_dripleaf", + "Properties": { + "facing": "west", + "half": "lower", + "waterlogged": "false" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:small_dripleaf", + "Properties": { + "facing": "north", + "half": "lower", + "waterlogged": "false" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:small_dripleaf", + "Properties": { + "facing": "south", + "half": "lower", + "waterlogged": "false" + } + }, + "weight": 1 + } + ] + } + } + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:water" + ] + }, + "direction": "up", + "layers": [ + { + "height": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 0 + }, + "weight": 2 + }, + { + "data": 0, + "weight": 1 + } + ] + }, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf_stem", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + } + } + }, + { + "height": 1, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf", + "Properties": { + "facing": "east", + "tilt": "none", + "waterlogged": "false" + } + } + } + } + ], + "prioritize_tip": true + } + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:water" + ] + }, + "direction": "up", + "layers": [ + { + "height": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 0 + }, + "weight": 2 + }, + { + "data": 0, + "weight": 1 + } + ] + }, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf_stem", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + } + } + }, + { + "height": 1, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf", + "Properties": { + "facing": "west", + "tilt": "none", + "waterlogged": "false" + } + } + } + } + ], + "prioritize_tip": true + } + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:water" + ] + }, + "direction": "up", + "layers": [ + { + "height": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 0 + }, + "weight": 2 + }, + { + "data": 0, + "weight": 1 + } + ] + }, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf_stem", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + } + } + }, + { + "height": 1, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf", + "Properties": { + "facing": "south", + "tilt": "none", + "waterlogged": "false" + } + } + } + } + ], + "prioritize_tip": true + } + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:water" + ] + }, + "direction": "up", + "layers": [ + { + "height": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 0 + }, + "weight": 2 + }, + { + "data": 0, + "weight": 1 + } + ] + }, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf_stem", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + } + } + }, + { + "height": 1, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:big_dripleaf", + "Properties": { + "facing": "north", + "tilt": "none", + "waterlogged": "false" + } + } + } + } + ], + "prioritize_tip": true + } + }, + "placement": [] + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/dripstone_cluster.json b/data/minecraft/worldgen/configured_feature/dripstone_cluster.json new file mode 100644 index 00000000..82edfafd --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/dripstone_cluster.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:dripstone_cluster", + "config": { + "chance_of_dripstone_column_at_max_distance_from_center": 0.1, + "density": { + "type": "minecraft:uniform", + "max_exclusive": 0.7, + "min_inclusive": 0.3 + }, + "dripstone_block_layer_thickness": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 2 + }, + "floor_to_ceiling_search_range": 12, + "height": { + "type": "minecraft:uniform", + "max_inclusive": 6, + "min_inclusive": 3 + }, + "height_deviation": 3, + "max_distance_from_center_affecting_height_bias": 8, + "max_distance_from_edge_affecting_chance_of_dripstone_column": 3, + "max_stalagmite_stalactite_height_diff": 1, + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 8, + "min_inclusive": 2 + }, + "wetness": { + "type": "minecraft:clamped_normal", + "deviation": 0.3, + "max": 0.9, + "mean": 0.1, + "min": 0.1 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/end_gateway_delayed.json b/data/minecraft/worldgen/configured_feature/end_gateway_delayed.json new file mode 100644 index 00000000..34e7d25f --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/end_gateway_delayed.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:end_gateway", + "config": { + "exact": false + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/end_gateway_return.json b/data/minecraft/worldgen/configured_feature/end_gateway_return.json new file mode 100644 index 00000000..664a6c1a --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/end_gateway_return.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:end_gateway", + "config": { + "exact": true, + "exit": [ + 100, + 50, + 0 + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/end_island.json b/data/minecraft/worldgen/configured_feature/end_island.json new file mode 100644 index 00000000..af26c1c9 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/end_island.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:end_island", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/end_platform.json b/data/minecraft/worldgen/configured_feature/end_platform.json new file mode 100644 index 00000000..8a622fc7 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/end_platform.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:end_platform", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/end_spike.json b/data/minecraft/worldgen/configured_feature/end_spike.json new file mode 100644 index 00000000..ee498033 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/end_spike.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:end_spike", + "config": { + "crystal_invulnerable": false, + "spikes": [] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/fancy_oak.json b/data/minecraft/worldgen/configured_feature/fancy_oak.json new file mode 100644 index 00000000..d0fa7ef8 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/fancy_oak.json @@ -0,0 +1,53 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:fancy_foliage_placer", + "height": 4, + "offset": 4, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 0, + "lower_size": 0, + "min_clipped_height": 4, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:fancy_trunk_placer", + "base_height": 3, + "height_rand_a": 11, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/fancy_oak_bees.json b/data/minecraft/worldgen/configured_feature/fancy_oak_bees.json new file mode 100644 index 00000000..54bc233a --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/fancy_oak_bees.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 1.0 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:fancy_foliage_placer", + "height": 4, + "offset": 4, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 0, + "lower_size": 0, + "min_clipped_height": 4, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:fancy_trunk_placer", + "base_height": 3, + "height_rand_a": 11, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/fancy_oak_bees_0002.json b/data/minecraft/worldgen/configured_feature/fancy_oak_bees_0002.json new file mode 100644 index 00000000..18932aa3 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/fancy_oak_bees_0002.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.002 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:fancy_foliage_placer", + "height": 4, + "offset": 4, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 0, + "lower_size": 0, + "min_clipped_height": 4, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:fancy_trunk_placer", + "base_height": 3, + "height_rand_a": 11, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/fancy_oak_bees_002.json b/data/minecraft/worldgen/configured_feature/fancy_oak_bees_002.json new file mode 100644 index 00000000..775b1715 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/fancy_oak_bees_002.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.02 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:fancy_foliage_placer", + "height": 4, + "offset": 4, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 0, + "lower_size": 0, + "min_clipped_height": 4, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:fancy_trunk_placer", + "base_height": 3, + "height_rand_a": 11, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/fancy_oak_bees_005.json b/data/minecraft/worldgen/configured_feature/fancy_oak_bees_005.json new file mode 100644 index 00000000..4310dd91 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/fancy_oak_bees_005.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.05 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:fancy_foliage_placer", + "height": 4, + "offset": 4, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 0, + "lower_size": 0, + "min_clipped_height": 4, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:fancy_trunk_placer", + "base_height": 3, + "height_rand_a": 11, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/flower_cherry.json b/data/minecraft/worldgen/configured_feature/flower_cherry.json new file mode 100644 index 00000000..58995fa1 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/flower_cherry.json @@ -0,0 +1,189 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "north", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "east", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "south", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "west", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "north", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "east", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "south", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "west", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "north", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "east", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "south", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "west", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "north", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "east", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "south", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:pink_petals", + "Properties": { + "facing": "west", + "flower_amount": "4" + } + }, + "weight": 1 + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 6, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/flower_default.json b/data/minecraft/worldgen/configured_feature/flower_default.json new file mode 100644 index 00000000..301b0668 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/flower_default.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:poppy" + }, + "weight": 2 + }, + { + "data": { + "Name": "minecraft:dandelion" + }, + "weight": 1 + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 64, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/flower_flower_forest.json b/data/minecraft/worldgen/configured_feature/flower_flower_forest.json new file mode 100644 index 00000000..ede6aac6 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/flower_flower_forest.json @@ -0,0 +1,70 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "noise": { + "amplitudes": [ + 1.0 + ], + "firstOctave": 0 + }, + "scale": 0.020833334, + "seed": 2345, + "states": [ + { + "Name": "minecraft:dandelion" + }, + { + "Name": "minecraft:poppy" + }, + { + "Name": "minecraft:allium" + }, + { + "Name": "minecraft:azure_bluet" + }, + { + "Name": "minecraft:red_tulip" + }, + { + "Name": "minecraft:orange_tulip" + }, + { + "Name": "minecraft:white_tulip" + }, + { + "Name": "minecraft:pink_tulip" + }, + { + "Name": "minecraft:oxeye_daisy" + }, + { + "Name": "minecraft:cornflower" + }, + { + "Name": "minecraft:lily_of_the_valley" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 6, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/flower_meadow.json b/data/minecraft/worldgen/configured_feature/flower_meadow.json new file mode 100644 index 00000000..bdf1cbe7 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/flower_meadow.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:dual_noise_provider", + "noise": { + "amplitudes": [ + 1.0 + ], + "firstOctave": -3 + }, + "scale": 1.0, + "seed": 2345, + "slow_noise": { + "amplitudes": [ + 1.0 + ], + "firstOctave": -10 + }, + "slow_scale": 1.0, + "states": [ + { + "Name": "minecraft:tall_grass", + "Properties": { + "half": "lower" + } + }, + { + "Name": "minecraft:allium" + }, + { + "Name": "minecraft:poppy" + }, + { + "Name": "minecraft:azure_bluet" + }, + { + "Name": "minecraft:dandelion" + }, + { + "Name": "minecraft:cornflower" + }, + { + "Name": "minecraft:oxeye_daisy" + }, + { + "Name": "minecraft:short_grass" + } + ], + "variety": [ + 1, + 3 + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 6, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/flower_plain.json b/data/minecraft/worldgen/configured_feature/flower_plain.json new file mode 100644 index 00000000..ac32b662 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/flower_plain.json @@ -0,0 +1,68 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_threshold_provider", + "default_state": { + "Name": "minecraft:dandelion" + }, + "high_chance": 0.33333334, + "high_states": [ + { + "Name": "minecraft:poppy" + }, + { + "Name": "minecraft:azure_bluet" + }, + { + "Name": "minecraft:oxeye_daisy" + }, + { + "Name": "minecraft:cornflower" + } + ], + "low_states": [ + { + "Name": "minecraft:orange_tulip" + }, + { + "Name": "minecraft:red_tulip" + }, + { + "Name": "minecraft:pink_tulip" + }, + { + "Name": "minecraft:white_tulip" + } + ], + "noise": { + "amplitudes": [ + 1.0 + ], + "firstOctave": 0 + }, + "scale": 0.005, + "seed": 2345, + "threshold": -0.8 + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 64, + "xz_spread": 6, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/flower_swamp.json b/data/minecraft/worldgen/configured_feature/flower_swamp.json new file mode 100644 index 00000000..175cf2df --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/flower_swamp.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:blue_orchid" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 64, + "xz_spread": 6, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/forest_flowers.json b/data/minecraft/worldgen/configured_feature/forest_flowers.json new file mode 100644 index 00000000..1889788b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/forest_flowers.json @@ -0,0 +1,148 @@ +{ + "type": "minecraft:simple_random_selector", + "config": { + "features": [ + { + "feature": { + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:lilac", + "Properties": { + "half": "lower" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:rose_bush", + "Properties": { + "half": "lower" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:peony", + "Properties": { + "half": "lower" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:no_bonemeal_flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:lily_of_the_valley" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } + }, + "placement": [] + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/forest_rock.json b/data/minecraft/worldgen/configured_feature/forest_rock.json new file mode 100644 index 00000000..bf7350fc --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/forest_rock.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:forest_rock", + "config": { + "state": { + "Name": "minecraft:mossy_cobblestone" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/fossil_coal.json b/data/minecraft/worldgen/configured_feature/fossil_coal.json new file mode 100644 index 00000000..829b5dbf --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/fossil_coal.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:fossil", + "config": { + "fossil_processors": "minecraft:fossil_rot", + "fossil_structures": [ + "minecraft:fossil/spine_1", + "minecraft:fossil/spine_2", + "minecraft:fossil/spine_3", + "minecraft:fossil/spine_4", + "minecraft:fossil/skull_1", + "minecraft:fossil/skull_2", + "minecraft:fossil/skull_3", + "minecraft:fossil/skull_4" + ], + "max_empty_corners_allowed": 4, + "overlay_processors": "minecraft:fossil_coal", + "overlay_structures": [ + "minecraft:fossil/spine_1_coal", + "minecraft:fossil/spine_2_coal", + "minecraft:fossil/spine_3_coal", + "minecraft:fossil/spine_4_coal", + "minecraft:fossil/skull_1_coal", + "minecraft:fossil/skull_2_coal", + "minecraft:fossil/skull_3_coal", + "minecraft:fossil/skull_4_coal" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/fossil_diamonds.json b/data/minecraft/worldgen/configured_feature/fossil_diamonds.json new file mode 100644 index 00000000..36530950 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/fossil_diamonds.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:fossil", + "config": { + "fossil_processors": "minecraft:fossil_rot", + "fossil_structures": [ + "minecraft:fossil/spine_1", + "minecraft:fossil/spine_2", + "minecraft:fossil/spine_3", + "minecraft:fossil/spine_4", + "minecraft:fossil/skull_1", + "minecraft:fossil/skull_2", + "minecraft:fossil/skull_3", + "minecraft:fossil/skull_4" + ], + "max_empty_corners_allowed": 4, + "overlay_processors": "minecraft:fossil_diamonds", + "overlay_structures": [ + "minecraft:fossil/spine_1_coal", + "minecraft:fossil/spine_2_coal", + "minecraft:fossil/spine_3_coal", + "minecraft:fossil/spine_4_coal", + "minecraft:fossil/skull_1_coal", + "minecraft:fossil/skull_2_coal", + "minecraft:fossil/skull_3_coal", + "minecraft:fossil/skull_4_coal" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/freeze_top_layer.json b/data/minecraft/worldgen/configured_feature/freeze_top_layer.json new file mode 100644 index 00000000..3b684589 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/freeze_top_layer.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:freeze_top_layer", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/glow_lichen.json b/data/minecraft/worldgen/configured_feature/glow_lichen.json new file mode 100644 index 00000000..fb97dabe --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/glow_lichen.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:multiface_growth", + "config": { + "block": "minecraft:glow_lichen", + "can_be_placed_on": [ + "minecraft:stone", + "minecraft:andesite", + "minecraft:diorite", + "minecraft:granite", + "minecraft:dripstone_block", + "minecraft:calcite", + "minecraft:tuff", + "minecraft:deepslate" + ], + "can_place_on_ceiling": true, + "can_place_on_floor": false, + "can_place_on_wall": true, + "chance_of_spreading": 0.5, + "search_range": 20 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/glowstone_extra.json b/data/minecraft/worldgen/configured_feature/glowstone_extra.json new file mode 100644 index 00000000..a1a14276 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/glowstone_extra.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:glowstone_blob", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/huge_brown_mushroom.json b/data/minecraft/worldgen/configured_feature/huge_brown_mushroom.json new file mode 100644 index 00000000..36d91ebb --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/huge_brown_mushroom.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:huge_brown_mushroom", + "config": { + "cap_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:brown_mushroom_block", + "Properties": { + "down": "false", + "east": "true", + "north": "true", + "south": "true", + "up": "true", + "west": "true" + } + } + }, + "foliage_radius": 3, + "stem_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mushroom_stem", + "Properties": { + "down": "false", + "east": "true", + "north": "true", + "south": "true", + "up": "false", + "west": "true" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/huge_red_mushroom.json b/data/minecraft/worldgen/configured_feature/huge_red_mushroom.json new file mode 100644 index 00000000..ec1f8e50 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/huge_red_mushroom.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:huge_red_mushroom", + "config": { + "cap_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:red_mushroom_block", + "Properties": { + "down": "false", + "east": "true", + "north": "true", + "south": "true", + "up": "true", + "west": "true" + } + } + }, + "foliage_radius": 2, + "stem_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mushroom_stem", + "Properties": { + "down": "false", + "east": "true", + "north": "true", + "south": "true", + "up": "false", + "west": "true" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ice_patch.json b/data/minecraft/worldgen/configured_feature/ice_patch.json new file mode 100644 index 00000000..2c4f669b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ice_patch.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:disk", + "config": { + "half_height": 1, + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": 2 + }, + "state_provider": { + "fallback": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:packed_ice" + } + }, + "rules": [] + }, + "target": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium", + "minecraft:snow_block", + "minecraft:ice" + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ice_spike.json b/data/minecraft/worldgen/configured_feature/ice_spike.json new file mode 100644 index 00000000..93a9d9fd --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ice_spike.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:ice_spike", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/iceberg_blue.json b/data/minecraft/worldgen/configured_feature/iceberg_blue.json new file mode 100644 index 00000000..27ed8fe5 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/iceberg_blue.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:iceberg", + "config": { + "state": { + "Name": "minecraft:blue_ice" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/iceberg_packed.json b/data/minecraft/worldgen/configured_feature/iceberg_packed.json new file mode 100644 index 00000000..2f777514 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/iceberg_packed.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:iceberg", + "config": { + "state": { + "Name": "minecraft:packed_ice" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/jungle_bush.json b/data/minecraft/worldgen/configured_feature/jungle_bush.json new file mode 100644 index 00000000..76202d6a --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/jungle_bush.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:bush_foliage_placer", + "height": 2, + "offset": 1, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 0, + "lower_size": 0, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 1, + "height_rand_a": 0, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:jungle_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/jungle_tree.json b/data/minecraft/worldgen/configured_feature/jungle_tree.json new file mode 100644 index 00000000..c355a081 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/jungle_tree.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:cocoa", + "probability": 0.2 + }, + { + "type": "minecraft:trunk_vine" + }, + { + "type": "minecraft:leave_vine", + "probability": 0.25 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:jungle_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 4, + "height_rand_a": 8, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:jungle_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/jungle_tree_no_vine.json b/data/minecraft/worldgen/configured_feature/jungle_tree_no_vine.json new file mode 100644 index 00000000..063e2f5e --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/jungle_tree_no_vine.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:jungle_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 4, + "height_rand_a": 8, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:jungle_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/kelp.json b/data/minecraft/worldgen/configured_feature/kelp.json new file mode 100644 index 00000000..c07640df --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/kelp.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:kelp", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/lake_lava.json b/data/minecraft/worldgen/configured_feature/lake_lava.json new file mode 100644 index 00000000..696af9c5 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/lake_lava.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:lake", + "config": { + "barrier": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:stone" + } + }, + "fluid": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:lava", + "Properties": { + "level": "0" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/large_basalt_columns.json b/data/minecraft/worldgen/configured_feature/large_basalt_columns.json new file mode 100644 index 00000000..6ae5eda6 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/large_basalt_columns.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:basalt_columns", + "config": { + "height": { + "type": "minecraft:uniform", + "max_inclusive": 10, + "min_inclusive": 5 + }, + "reach": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": 2 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/large_dripstone.json b/data/minecraft/worldgen/configured_feature/large_dripstone.json new file mode 100644 index 00000000..0987f947 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/large_dripstone.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:large_dripstone", + "config": { + "column_radius": { + "type": "minecraft:uniform", + "max_inclusive": 19, + "min_inclusive": 3 + }, + "floor_to_ceiling_search_range": 30, + "height_scale": { + "type": "minecraft:uniform", + "max_exclusive": 2.0, + "min_inclusive": 0.4 + }, + "max_column_radius_to_cave_height_ratio": 0.33, + "min_bluntness_for_wind": 0.6, + "min_radius_for_wind": 4, + "stalactite_bluntness": { + "type": "minecraft:uniform", + "max_exclusive": 0.9, + "min_inclusive": 0.3 + }, + "stalagmite_bluntness": { + "type": "minecraft:uniform", + "max_exclusive": 1.0, + "min_inclusive": 0.4 + }, + "wind_speed": { + "type": "minecraft:uniform", + "max_exclusive": 0.3, + "min_inclusive": 0.0 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/lush_caves_clay.json b/data/minecraft/worldgen/configured_feature/lush_caves_clay.json new file mode 100644 index 00000000..e4d495f3 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/lush_caves_clay.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:random_boolean_selector", + "config": { + "feature_false": { + "feature": "minecraft:clay_pool_with_dripleaves", + "placement": [] + }, + "feature_true": { + "feature": "minecraft:clay_with_dripleaves", + "placement": [] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/mangrove.json b/data/minecraft/worldgen/configured_feature/mangrove.json new file mode 100644 index 00000000..d1f19cde --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/mangrove.json @@ -0,0 +1,150 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:leave_vine", + "probability": 0.125 + }, + { + "type": "minecraft:attached_to_leaves", + "block_provider": { + "type": "minecraft:randomized_int_state_provider", + "property": "age", + "source": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_propagule", + "Properties": { + "age": "0", + "hanging": "true", + "stage": "0", + "waterlogged": "false" + } + } + }, + "values": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 0 + } + }, + "directions": [ + "down" + ], + "exclusion_radius_xz": 1, + "exclusion_radius_y": 0, + "probability": 0.14, + "required_empty_blocks": 2 + }, + { + "type": "minecraft:beehive", + "probability": 0.01 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:random_spread_foliage_placer", + "foliage_height": 2, + "leaf_placement_attempts": 70, + "offset": 0, + "radius": 3 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 2, + "lower_size": 0, + "upper_size": 2 + }, + "root_placer": { + "type": "minecraft:mangrove_root_placer", + "above_root_placement": { + "above_root_placement_chance": 0.5, + "above_root_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:moss_carpet" + } + } + }, + "mangrove_root_placement": { + "can_grow_through": "#minecraft:mangrove_roots_can_grow_through", + "max_root_length": 15, + "max_root_width": 8, + "muddy_roots_in": [ + "minecraft:mud", + "minecraft:muddy_mangrove_roots" + ], + "muddy_roots_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:muddy_mangrove_roots", + "Properties": { + "axis": "y" + } + } + }, + "random_skew_chance": 0.2 + }, + "root_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_roots", + "Properties": { + "waterlogged": "false" + } + } + }, + "trunk_offset_y": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": 1 + } + }, + "trunk_placer": { + "type": "minecraft:upwards_branching_trunk_placer", + "base_height": 2, + "can_grow_through": "#minecraft:mangrove_logs_can_grow_through", + "extra_branch_length": { + "type": "minecraft:uniform", + "max_inclusive": 1, + "min_inclusive": 0 + }, + "extra_branch_steps": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 1 + }, + "height_rand_a": 1, + "height_rand_b": 4, + "place_branch_per_log_probability": 0.5 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/mangrove_vegetation.json b/data/minecraft/worldgen/configured_feature/mangrove_vegetation.json new file mode 100644 index 00000000..b92fb402 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/mangrove_vegetation.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:mangrove_checked", + "features": [ + { + "chance": 0.85, + "feature": "minecraft:tall_mangrove_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/meadow_trees.json b/data/minecraft/worldgen/configured_feature/meadow_trees.json new file mode 100644 index 00000000..293ae6d1 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/meadow_trees.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:super_birch_bees", + "features": [ + { + "chance": 0.5, + "feature": "minecraft:fancy_oak_bees" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/mega_jungle_tree.json b/data/minecraft/worldgen/configured_feature/mega_jungle_tree.json new file mode 100644 index 00000000..178be6d0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/mega_jungle_tree.json @@ -0,0 +1,60 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:trunk_vine" + }, + { + "type": "minecraft:leave_vine", + "probability": 0.25 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:jungle_foliage_placer", + "height": 2, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:jungle_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 1, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:mega_jungle_trunk_placer", + "base_height": 10, + "height_rand_a": 2, + "height_rand_b": 19 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:jungle_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/mega_pine.json b/data/minecraft/worldgen/configured_feature/mega_pine.json new file mode 100644 index 00000000..402249a8 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/mega_pine.json @@ -0,0 +1,69 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:alter_ground", + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:mega_pine_foliage_placer", + "crown_height": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 3 + }, + "offset": 0, + "radius": 0 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 1, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:giant_trunk_placer", + "base_height": 13, + "height_rand_a": 2, + "height_rand_b": 14 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/mega_spruce.json b/data/minecraft/worldgen/configured_feature/mega_spruce.json new file mode 100644 index 00000000..d02454f7 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/mega_spruce.json @@ -0,0 +1,69 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:alter_ground", + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:mega_pine_foliage_placer", + "crown_height": { + "type": "minecraft:uniform", + "max_inclusive": 17, + "min_inclusive": 13 + }, + "offset": 0, + "radius": 0 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 1, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:giant_trunk_placer", + "base_height": 13, + "height_rand_a": 2, + "height_rand_b": 14 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/monster_room.json b/data/minecraft/worldgen/configured_feature/monster_room.json new file mode 100644 index 00000000..f8aaf027 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/monster_room.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:monster_room", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/moss_patch.json b/data/minecraft/worldgen/configured_feature/moss_patch.json new file mode 100644 index 00000000..4a66f746 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/moss_patch.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:vegetation_patch", + "config": { + "depth": 1, + "extra_bottom_block_chance": 0.0, + "extra_edge_column_chance": 0.3, + "ground_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:moss_block" + } + }, + "replaceable": "#minecraft:moss_replaceable", + "surface": "floor", + "vegetation_chance": 0.8, + "vegetation_feature": { + "feature": "minecraft:moss_vegetation", + "placement": [] + }, + "vertical_range": 5, + "xz_radius": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 4 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/moss_patch_bonemeal.json b/data/minecraft/worldgen/configured_feature/moss_patch_bonemeal.json new file mode 100644 index 00000000..a9f8b319 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/moss_patch_bonemeal.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:vegetation_patch", + "config": { + "depth": 1, + "extra_bottom_block_chance": 0.0, + "extra_edge_column_chance": 0.75, + "ground_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:moss_block" + } + }, + "replaceable": "#minecraft:moss_replaceable", + "surface": "floor", + "vegetation_chance": 0.6, + "vegetation_feature": { + "feature": "minecraft:moss_vegetation", + "placement": [] + }, + "vertical_range": 5, + "xz_radius": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 1 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/moss_patch_ceiling.json b/data/minecraft/worldgen/configured_feature/moss_patch_ceiling.json new file mode 100644 index 00000000..f03ce33c --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/moss_patch_ceiling.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:vegetation_patch", + "config": { + "depth": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 1 + }, + "extra_bottom_block_chance": 0.0, + "extra_edge_column_chance": 0.3, + "ground_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:moss_block" + } + }, + "replaceable": "#minecraft:moss_replaceable", + "surface": "ceiling", + "vegetation_chance": 0.08, + "vegetation_feature": { + "feature": "minecraft:cave_vine_in_moss", + "placement": [] + }, + "vertical_range": 5, + "xz_radius": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 4 + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/moss_vegetation.json b/data/minecraft/worldgen/configured_feature/moss_vegetation.json new file mode 100644 index 00000000..9e199688 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/moss_vegetation.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:flowering_azalea" + }, + "weight": 4 + }, + { + "data": { + "Name": "minecraft:azalea" + }, + "weight": 7 + }, + { + "data": { + "Name": "minecraft:moss_carpet" + }, + "weight": 25 + }, + { + "data": { + "Name": "minecraft:short_grass" + }, + "weight": 50 + }, + { + "data": { + "Name": "minecraft:tall_grass", + "Properties": { + "half": "lower" + } + }, + "weight": 10 + } + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/mushroom_island_vegetation.json b/data/minecraft/worldgen/configured_feature/mushroom_island_vegetation.json new file mode 100644 index 00000000..a61a8d03 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/mushroom_island_vegetation.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:random_boolean_selector", + "config": { + "feature_false": { + "feature": "minecraft:huge_brown_mushroom", + "placement": [] + }, + "feature_true": { + "feature": "minecraft:huge_red_mushroom", + "placement": [] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/nether_sprouts.json b/data/minecraft/worldgen/configured_feature/nether_sprouts.json new file mode 100644 index 00000000..a7fd952f --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/nether_sprouts.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:nether_forest_vegetation", + "config": { + "spread_height": 4, + "spread_width": 8, + "state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:nether_sprouts" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/nether_sprouts_bonemeal.json b/data/minecraft/worldgen/configured_feature/nether_sprouts_bonemeal.json new file mode 100644 index 00000000..bd829b10 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/nether_sprouts_bonemeal.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:nether_forest_vegetation", + "config": { + "spread_height": 1, + "spread_width": 3, + "state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:nether_sprouts" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/oak.json b/data/minecraft/worldgen/configured_feature/oak.json new file mode 100644 index 00000000..4b1d6d34 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/oak.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 4, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/oak_bees_0002.json b/data/minecraft/worldgen/configured_feature/oak_bees_0002.json new file mode 100644 index 00000000..ef3b7b7d --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/oak_bees_0002.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.002 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 4, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/oak_bees_002.json b/data/minecraft/worldgen/configured_feature/oak_bees_002.json new file mode 100644 index 00000000..ca36cc01 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/oak_bees_002.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.02 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 4, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/oak_bees_005.json b/data/minecraft/worldgen/configured_feature/oak_bees_005.json new file mode 100644 index 00000000..c6d8f003 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/oak_bees_005.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.05 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 4, + "height_rand_a": 2, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_ancient_debris_large.json b/data/minecraft/worldgen/configured_feature/ore_ancient_debris_large.json new file mode 100644 index 00000000..dd844579 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_ancient_debris_large.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:scattered_ore", + "config": { + "discard_chance_on_air_exposure": 1.0, + "size": 3, + "targets": [ + { + "state": { + "Name": "minecraft:ancient_debris" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_nether" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_ancient_debris_small.json b/data/minecraft/worldgen/configured_feature/ore_ancient_debris_small.json new file mode 100644 index 00000000..207fb6ee --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_ancient_debris_small.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:scattered_ore", + "config": { + "discard_chance_on_air_exposure": 1.0, + "size": 2, + "targets": [ + { + "state": { + "Name": "minecraft:ancient_debris" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_nether" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_andesite.json b/data/minecraft/worldgen/configured_feature/ore_andesite.json new file mode 100644 index 00000000..b73561f0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_andesite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 64, + "targets": [ + { + "state": { + "Name": "minecraft:andesite" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_overworld" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_blackstone.json b/data/minecraft/worldgen/configured_feature/ore_blackstone.json new file mode 100644 index 00000000..bb05bf05 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_blackstone.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 33, + "targets": [ + { + "state": { + "Name": "minecraft:blackstone" + }, + "target": { + "block": "minecraft:netherrack", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_clay.json b/data/minecraft/worldgen/configured_feature/ore_clay.json new file mode 100644 index 00000000..88fd2f8f --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_clay.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 33, + "targets": [ + { + "state": { + "Name": "minecraft:clay" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_overworld" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_coal.json b/data/minecraft/worldgen/configured_feature/ore_coal.json new file mode 100644 index 00000000..50ecedc9 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_coal.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 17, + "targets": [ + { + "state": { + "Name": "minecraft:coal_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_coal_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_coal_buried.json b/data/minecraft/worldgen/configured_feature/ore_coal_buried.json new file mode 100644 index 00000000..b35e6b32 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_coal_buried.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.5, + "size": 17, + "targets": [ + { + "state": { + "Name": "minecraft:coal_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_coal_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_copper_large.json b/data/minecraft/worldgen/configured_feature/ore_copper_large.json new file mode 100644 index 00000000..d3657159 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_copper_large.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 20, + "targets": [ + { + "state": { + "Name": "minecraft:copper_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_copper_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_copper_small.json b/data/minecraft/worldgen/configured_feature/ore_copper_small.json new file mode 100644 index 00000000..b9809375 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_copper_small.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 10, + "targets": [ + { + "state": { + "Name": "minecraft:copper_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_copper_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_diamond_buried.json b/data/minecraft/worldgen/configured_feature/ore_diamond_buried.json new file mode 100644 index 00000000..8f529fe4 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_diamond_buried.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 1.0, + "size": 8, + "targets": [ + { + "state": { + "Name": "minecraft:diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_diamond_large.json b/data/minecraft/worldgen/configured_feature/ore_diamond_large.json new file mode 100644 index 00000000..501925ad --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_diamond_large.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.7, + "size": 12, + "targets": [ + { + "state": { + "Name": "minecraft:diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_diamond_medium.json b/data/minecraft/worldgen/configured_feature/ore_diamond_medium.json new file mode 100644 index 00000000..aa20fc8b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_diamond_medium.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.5, + "size": 8, + "targets": [ + { + "state": { + "Name": "minecraft:diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_diamond_small.json b/data/minecraft/worldgen/configured_feature/ore_diamond_small.json new file mode 100644 index 00000000..cddd59e2 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_diamond_small.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.5, + "size": 4, + "targets": [ + { + "state": { + "Name": "minecraft:diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_diamond_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_diorite.json b/data/minecraft/worldgen/configured_feature/ore_diorite.json new file mode 100644 index 00000000..4249f867 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_diorite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 64, + "targets": [ + { + "state": { + "Name": "minecraft:diorite" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_overworld" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_dirt.json b/data/minecraft/worldgen/configured_feature/ore_dirt.json new file mode 100644 index 00000000..e6c140f6 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_dirt.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 33, + "targets": [ + { + "state": { + "Name": "minecraft:dirt" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_overworld" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_emerald.json b/data/minecraft/worldgen/configured_feature/ore_emerald.json new file mode 100644 index 00000000..fc68e2d7 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_emerald.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 3, + "targets": [ + { + "state": { + "Name": "minecraft:emerald_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_emerald_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_gold.json b/data/minecraft/worldgen/configured_feature/ore_gold.json new file mode 100644 index 00000000..cba3856d --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_gold.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 9, + "targets": [ + { + "state": { + "Name": "minecraft:gold_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_gold_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_gold_buried.json b/data/minecraft/worldgen/configured_feature/ore_gold_buried.json new file mode 100644 index 00000000..9a85c4a5 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_gold_buried.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.5, + "size": 9, + "targets": [ + { + "state": { + "Name": "minecraft:gold_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_gold_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_granite.json b/data/minecraft/worldgen/configured_feature/ore_granite.json new file mode 100644 index 00000000..32ea76f6 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_granite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 64, + "targets": [ + { + "state": { + "Name": "minecraft:granite" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_overworld" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_gravel.json b/data/minecraft/worldgen/configured_feature/ore_gravel.json new file mode 100644 index 00000000..6497dc69 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_gravel.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 33, + "targets": [ + { + "state": { + "Name": "minecraft:gravel" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_overworld" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_gravel_nether.json b/data/minecraft/worldgen/configured_feature/ore_gravel_nether.json new file mode 100644 index 00000000..f58621a3 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_gravel_nether.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 33, + "targets": [ + { + "state": { + "Name": "minecraft:gravel" + }, + "target": { + "block": "minecraft:netherrack", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_infested.json b/data/minecraft/worldgen/configured_feature/ore_infested.json new file mode 100644 index 00000000..46fd07cd --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_infested.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 9, + "targets": [ + { + "state": { + "Name": "minecraft:infested_stone" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:infested_deepslate", + "Properties": { + "axis": "y" + } + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_iron.json b/data/minecraft/worldgen/configured_feature/ore_iron.json new file mode 100644 index 00000000..acd256a2 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_iron.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 9, + "targets": [ + { + "state": { + "Name": "minecraft:iron_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_iron_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_iron_small.json b/data/minecraft/worldgen/configured_feature/ore_iron_small.json new file mode 100644 index 00000000..edb954b2 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_iron_small.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 4, + "targets": [ + { + "state": { + "Name": "minecraft:iron_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_iron_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_lapis.json b/data/minecraft/worldgen/configured_feature/ore_lapis.json new file mode 100644 index 00000000..aa191fe5 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_lapis.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 7, + "targets": [ + { + "state": { + "Name": "minecraft:lapis_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_lapis_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_lapis_buried.json b/data/minecraft/worldgen/configured_feature/ore_lapis_buried.json new file mode 100644 index 00000000..c6429558 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_lapis_buried.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 1.0, + "size": 7, + "targets": [ + { + "state": { + "Name": "minecraft:lapis_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_lapis_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_magma.json b/data/minecraft/worldgen/configured_feature/ore_magma.json new file mode 100644 index 00000000..a983f464 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_magma.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 33, + "targets": [ + { + "state": { + "Name": "minecraft:magma_block" + }, + "target": { + "block": "minecraft:netherrack", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_nether_gold.json b/data/minecraft/worldgen/configured_feature/ore_nether_gold.json new file mode 100644 index 00000000..2010286a --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_nether_gold.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 10, + "targets": [ + { + "state": { + "Name": "minecraft:nether_gold_ore" + }, + "target": { + "block": "minecraft:netherrack", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_quartz.json b/data/minecraft/worldgen/configured_feature/ore_quartz.json new file mode 100644 index 00000000..39fe03ca --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_quartz.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 14, + "targets": [ + { + "state": { + "Name": "minecraft:nether_quartz_ore" + }, + "target": { + "block": "minecraft:netherrack", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_redstone.json b/data/minecraft/worldgen/configured_feature/ore_redstone.json new file mode 100644 index 00000000..66c042d1 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_redstone.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 8, + "targets": [ + { + "state": { + "Name": "minecraft:redstone_ore", + "Properties": { + "lit": "false" + } + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "minecraft:deepslate_redstone_ore", + "Properties": { + "lit": "false" + } + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_soul_sand.json b/data/minecraft/worldgen/configured_feature/ore_soul_sand.json new file mode 100644 index 00000000..96f80cb0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_soul_sand.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 12, + "targets": [ + { + "state": { + "Name": "minecraft:soul_sand" + }, + "target": { + "block": "minecraft:netherrack", + "predicate_type": "minecraft:block_match" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/ore_tuff.json b/data/minecraft/worldgen/configured_feature/ore_tuff.json new file mode 100644 index 00000000..39a405dd --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/ore_tuff.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 64, + "targets": [ + { + "state": { + "Name": "minecraft:tuff" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:base_stone_overworld" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_berry_bush.json b/data/minecraft/worldgen/configured_feature/patch_berry_bush.json new file mode 100644 index 00000000..ab5df7a7 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_berry_bush.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:sweet_berry_bush", + "Properties": { + "age": "3" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:grass_block", + "offset": [ + 0, + -1, + 0 + ] + } + ] + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_brown_mushroom.json b/data/minecraft/worldgen/configured_feature/patch_brown_mushroom.json new file mode 100644 index 00000000..9b1fc346 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_brown_mushroom.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:brown_mushroom" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_cactus.json b/data/minecraft/worldgen/configured_feature/patch_cactus.json new file mode 100644 index 00000000..406cf985 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_cactus.json @@ -0,0 +1,62 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction": "up", + "layers": [ + { + "height": { + "type": "minecraft:biased_to_bottom", + "max_inclusive": 3, + "min_inclusive": 1 + }, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:cactus", + "Properties": { + "age": "0" + } + } + } + } + ], + "prioritize_tip": false + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:cactus", + "Properties": { + "age": "0" + } + } + } + ] + } + } + ] + }, + "tries": 10, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_crimson_roots.json b/data/minecraft/worldgen/configured_feature/patch_crimson_roots.json new file mode 100644 index 00000000..f862bd41 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_crimson_roots.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:crimson_roots" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_dead_bush.json b/data/minecraft/worldgen/configured_feature/patch_dead_bush.json new file mode 100644 index 00000000..f0cf78a8 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_dead_bush.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dead_bush" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 4, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_fire.json b/data/minecraft/worldgen/configured_feature/patch_fire.json new file mode 100644 index 00000000..ae10119e --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_fire.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:fire", + "Properties": { + "age": "0", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:netherrack", + "offset": [ + 0, + -1, + 0 + ] + } + ] + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_grass.json b/data/minecraft/worldgen/configured_feature/patch_grass.json new file mode 100644 index 00000000..e820bac0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_grass.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:short_grass" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 32, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_grass_jungle.json b/data/minecraft/worldgen/configured_feature/patch_grass_jungle.json new file mode 100644 index 00000000..dff42a2b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_grass_jungle.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:short_grass" + }, + "weight": 3 + }, + { + "data": { + "Name": "minecraft:fern" + }, + "weight": 1 + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:podzol", + "offset": [ + 0, + -1, + 0 + ] + } + } + ] + } + } + ] + }, + "tries": 32, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_large_fern.json b/data/minecraft/worldgen/configured_feature/patch_large_fern.json new file mode 100644 index 00000000..8114975c --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_large_fern.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:large_fern", + "Properties": { + "half": "lower" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_melon.json b/data/minecraft/worldgen/configured_feature/patch_melon.json new file mode 100644 index 00000000..5c93c07b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_melon.json @@ -0,0 +1,47 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:melon" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:replaceable" + }, + { + "type": "minecraft:matching_fluids", + "fluids": "minecraft:empty" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:grass_block", + "offset": [ + 0, + -1, + 0 + ] + } + ] + } + } + ] + }, + "tries": 64, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_pumpkin.json b/data/minecraft/worldgen/configured_feature/patch_pumpkin.json new file mode 100644 index 00000000..6d2fefac --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_pumpkin.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:pumpkin" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:grass_block", + "offset": [ + 0, + -1, + 0 + ] + } + ] + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_red_mushroom.json b/data/minecraft/worldgen/configured_feature/patch_red_mushroom.json new file mode 100644 index 00000000..6ff84a02 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_red_mushroom.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:red_mushroom" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_soul_fire.json b/data/minecraft/worldgen/configured_feature/patch_soul_fire.json new file mode 100644 index 00000000..315d85cb --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_soul_fire.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:soul_fire" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:soul_soil", + "offset": [ + 0, + -1, + 0 + ] + } + ] + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_sugar_cane.json b/data/minecraft/worldgen/configured_feature/patch_sugar_cane.json new file mode 100644 index 00000000..306b95f0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_sugar_cane.json @@ -0,0 +1,115 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:block_column", + "config": { + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction": "up", + "layers": [ + { + "height": { + "type": "minecraft:biased_to_bottom", + "max_inclusive": 4, + "min_inclusive": 2 + }, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:sugar_cane", + "Properties": { + "age": "0" + } + } + } + } + ], + "prioritize_tip": false + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:sugar_cane", + "Properties": { + "age": "0" + } + } + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_fluids", + "fluids": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "offset": [ + 1, + -1, + 0 + ] + }, + { + "type": "minecraft:matching_fluids", + "fluids": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "offset": [ + -1, + -1, + 0 + ] + }, + { + "type": "minecraft:matching_fluids", + "fluids": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "offset": [ + 0, + -1, + 1 + ] + }, + { + "type": "minecraft:matching_fluids", + "fluids": [ + "minecraft:water", + "minecraft:flowing_water" + ], + "offset": [ + 0, + -1, + -1 + ] + } + ] + } + ] + } + } + ] + }, + "tries": 20, + "xz_spread": 4, + "y_spread": 0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_sunflower.json b/data/minecraft/worldgen/configured_feature/patch_sunflower.json new file mode 100644 index 00000000..1d72484d --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_sunflower.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:sunflower", + "Properties": { + "half": "lower" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_taiga_grass.json b/data/minecraft/worldgen/configured_feature/patch_taiga_grass.json new file mode 100644 index 00000000..4e6fbd1b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_taiga_grass.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:short_grass" + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:fern" + }, + "weight": 4 + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 32, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_tall_grass.json b/data/minecraft/worldgen/configured_feature/patch_tall_grass.json new file mode 100644 index 00000000..b5886691 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_tall_grass.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:tall_grass", + "Properties": { + "half": "lower" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 96, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/patch_waterlily.json b/data/minecraft/worldgen/configured_feature/patch_waterlily.json new file mode 100644 index 00000000..01f053d7 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/patch_waterlily.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:lily_pad" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 10, + "xz_spread": 7, + "y_spread": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/pile_hay.json b/data/minecraft/worldgen/configured_feature/pile_hay.json new file mode 100644 index 00000000..b54eb444 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/pile_hay.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:rotated_block_provider", + "state": { + "Name": "minecraft:hay_block", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/pile_ice.json b/data/minecraft/worldgen/configured_feature/pile_ice.json new file mode 100644 index 00000000..5fc9f198 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/pile_ice.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:blue_ice" + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:packed_ice" + }, + "weight": 5 + } + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/pile_melon.json b/data/minecraft/worldgen/configured_feature/pile_melon.json new file mode 100644 index 00000000..2b1e8526 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/pile_melon.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:melon" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/pile_pumpkin.json b/data/minecraft/worldgen/configured_feature/pile_pumpkin.json new file mode 100644 index 00000000..3ab3e710 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/pile_pumpkin.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:pumpkin" + }, + "weight": 19 + }, + { + "data": { + "Name": "minecraft:jack_o_lantern", + "Properties": { + "facing": "north" + } + }, + "weight": 1 + } + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/pile_snow.json b/data/minecraft/worldgen/configured_feature/pile_snow.json new file mode 100644 index 00000000..80545386 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/pile_snow.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:snow", + "Properties": { + "layers": "1" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/pine.json b/data/minecraft/worldgen/configured_feature/pine.json new file mode 100644 index 00000000..602f7fd2 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/pine.json @@ -0,0 +1,56 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:pine_foliage_placer", + "height": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 3 + }, + "offset": 1, + "radius": 1 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 2, + "lower_size": 0, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 6, + "height_rand_a": 4, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/pointed_dripstone.json b/data/minecraft/worldgen/configured_feature/pointed_dripstone.json new file mode 100644 index 00000000..0929a46b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/pointed_dripstone.json @@ -0,0 +1,73 @@ +{ + "type": "minecraft:simple_random_selector", + "config": { + "features": [ + { + "feature": { + "type": "minecraft:pointed_dripstone", + "config": { + "chance_of_directional_spread": 0.7, + "chance_of_spread_radius2": 0.5, + "chance_of_spread_radius3": 0.5, + "chance_of_taller_dripstone": 0.2 + } + }, + "placement": [ + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:water" + ] + }, + "direction_of_search": "down", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": 1 + } + ] + }, + { + "feature": { + "type": "minecraft:pointed_dripstone", + "config": { + "chance_of_directional_spread": 0.7, + "chance_of_spread_radius2": 0.5, + "chance_of_spread_radius3": 0.5, + "chance_of_taller_dripstone": 0.2 + } + }, + "placement": [ + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:water" + ] + }, + "direction_of_search": "up", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -1 + } + ] + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/rooted_azalea_tree.json b/data/minecraft/worldgen/configured_feature/rooted_azalea_tree.json new file mode 100644 index 00000000..4c46b43d --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/rooted_azalea_tree.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:root_system", + "config": { + "allowed_tree_position": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:cave_air", + "minecraft:void_air" + ] + }, + { + "type": "minecraft:matching_block_tag", + "tag": "minecraft:replaceable_by_trees" + } + ] + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ + 0, + -1, + 0 + ], + "tag": "minecraft:azalea_grows_on" + } + ] + }, + "allowed_vertical_water_for_tree": 2, + "feature": { + "feature": "minecraft:azalea_tree", + "placement": [] + }, + "hanging_root_placement_attempts": 20, + "hanging_root_radius": 3, + "hanging_root_state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:hanging_roots", + "Properties": { + "waterlogged": "false" + } + } + }, + "hanging_roots_vertical_span": 2, + "required_vertical_space_for_tree": 3, + "root_column_max_height": 100, + "root_placement_attempts": 20, + "root_radius": 3, + "root_replaceable": "#minecraft:azalea_root_replaceable", + "root_state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:rooted_dirt" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/sculk_patch_ancient_city.json b/data/minecraft/worldgen/configured_feature/sculk_patch_ancient_city.json new file mode 100644 index 00000000..2e87f425 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/sculk_patch_ancient_city.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:sculk_patch", + "config": { + "amount_per_charge": 32, + "catalyst_chance": 0.5, + "charge_count": 10, + "extra_rare_growths": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": 1 + }, + "growth_rounds": 0, + "spread_attempts": 64, + "spread_rounds": 1 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/sculk_patch_deep_dark.json b/data/minecraft/worldgen/configured_feature/sculk_patch_deep_dark.json new file mode 100644 index 00000000..95147b72 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/sculk_patch_deep_dark.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:sculk_patch", + "config": { + "amount_per_charge": 32, + "catalyst_chance": 0.5, + "charge_count": 10, + "extra_rare_growths": 0, + "growth_rounds": 0, + "spread_attempts": 64, + "spread_rounds": 1 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/sculk_vein.json b/data/minecraft/worldgen/configured_feature/sculk_vein.json new file mode 100644 index 00000000..8539e3ba --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/sculk_vein.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:multiface_growth", + "config": { + "block": "minecraft:sculk_vein", + "can_be_placed_on": [ + "minecraft:stone", + "minecraft:andesite", + "minecraft:diorite", + "minecraft:granite", + "minecraft:dripstone_block", + "minecraft:calcite", + "minecraft:tuff", + "minecraft:deepslate" + ], + "can_place_on_ceiling": true, + "can_place_on_floor": true, + "can_place_on_wall": true, + "chance_of_spreading": 1.0, + "search_range": 20 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/sea_pickle.json b/data/minecraft/worldgen/configured_feature/sea_pickle.json new file mode 100644 index 00000000..2d7b08a0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/sea_pickle.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:sea_pickle", + "config": { + "count": 20 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/seagrass_mid.json b/data/minecraft/worldgen/configured_feature/seagrass_mid.json new file mode 100644 index 00000000..88941d5a --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/seagrass_mid.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:seagrass", + "config": { + "probability": 0.6 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/seagrass_short.json b/data/minecraft/worldgen/configured_feature/seagrass_short.json new file mode 100644 index 00000000..0bf9b0f2 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/seagrass_short.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:seagrass", + "config": { + "probability": 0.3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/seagrass_simple.json b/data/minecraft/worldgen/configured_feature/seagrass_simple.json new file mode 100644 index 00000000..1566bec8 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/seagrass_simple.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:seagrass" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/seagrass_slightly_less_short.json b/data/minecraft/worldgen/configured_feature/seagrass_slightly_less_short.json new file mode 100644 index 00000000..7ddd77de --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/seagrass_slightly_less_short.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:seagrass", + "config": { + "probability": 0.4 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/seagrass_tall.json b/data/minecraft/worldgen/configured_feature/seagrass_tall.json new file mode 100644 index 00000000..3647eb84 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/seagrass_tall.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:seagrass", + "config": { + "probability": 0.8 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/single_piece_of_grass.json b/data/minecraft/worldgen/configured_feature/single_piece_of_grass.json new file mode 100644 index 00000000..7539bcec --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/single_piece_of_grass.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:short_grass" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/small_basalt_columns.json b/data/minecraft/worldgen/configured_feature/small_basalt_columns.json new file mode 100644 index 00000000..1cdb0745 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/small_basalt_columns.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:basalt_columns", + "config": { + "height": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 1 + }, + "reach": 1 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spore_blossom.json b/data/minecraft/worldgen/configured_feature/spore_blossom.json new file mode 100644 index 00000000..41a28b48 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spore_blossom.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spore_blossom" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spring_lava_frozen.json b/data/minecraft/worldgen/configured_feature/spring_lava_frozen.json new file mode 100644 index 00000000..919cc23a --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spring_lava_frozen.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "hole_count": 1, + "requires_block_below": true, + "rock_count": 4, + "state": { + "Name": "minecraft:lava", + "Properties": { + "falling": "true" + } + }, + "valid_blocks": [ + "minecraft:snow_block", + "minecraft:powder_snow", + "minecraft:packed_ice" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spring_lava_nether.json b/data/minecraft/worldgen/configured_feature/spring_lava_nether.json new file mode 100644 index 00000000..088f2511 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spring_lava_nether.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "hole_count": 1, + "requires_block_below": true, + "rock_count": 4, + "state": { + "Name": "minecraft:lava", + "Properties": { + "falling": "true" + } + }, + "valid_blocks": [ + "minecraft:netherrack", + "minecraft:soul_sand", + "minecraft:gravel", + "minecraft:magma_block", + "minecraft:blackstone" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spring_lava_overworld.json b/data/minecraft/worldgen/configured_feature/spring_lava_overworld.json new file mode 100644 index 00000000..99583564 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spring_lava_overworld.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "hole_count": 1, + "requires_block_below": true, + "rock_count": 4, + "state": { + "Name": "minecraft:lava", + "Properties": { + "falling": "true" + } + }, + "valid_blocks": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:deepslate", + "minecraft:tuff", + "minecraft:calcite", + "minecraft:dirt" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spring_nether_closed.json b/data/minecraft/worldgen/configured_feature/spring_nether_closed.json new file mode 100644 index 00000000..a0ee2912 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spring_nether_closed.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "hole_count": 0, + "requires_block_below": false, + "rock_count": 5, + "state": { + "Name": "minecraft:lava", + "Properties": { + "falling": "true" + } + }, + "valid_blocks": "minecraft:netherrack" + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spring_nether_open.json b/data/minecraft/worldgen/configured_feature/spring_nether_open.json new file mode 100644 index 00000000..c1f5888c --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spring_nether_open.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "hole_count": 1, + "requires_block_below": false, + "rock_count": 4, + "state": { + "Name": "minecraft:lava", + "Properties": { + "falling": "true" + } + }, + "valid_blocks": "minecraft:netherrack" + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spring_water.json b/data/minecraft/worldgen/configured_feature/spring_water.json new file mode 100644 index 00000000..c9be5208 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spring_water.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "hole_count": 1, + "requires_block_below": true, + "rock_count": 4, + "state": { + "Name": "minecraft:water", + "Properties": { + "falling": "true" + } + }, + "valid_blocks": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:deepslate", + "minecraft:tuff", + "minecraft:calcite", + "minecraft:dirt", + "minecraft:snow_block", + "minecraft:powder_snow", + "minecraft:packed_ice" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/spruce.json b/data/minecraft/worldgen/configured_feature/spruce.json new file mode 100644 index 00000000..ed5c0276 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/spruce.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:spruce_foliage_placer", + "offset": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 0 + }, + "radius": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": 2 + }, + "trunk_height": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 1 + } + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 2, + "lower_size": 0, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 1 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:spruce_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/super_birch_bees.json b/data/minecraft/worldgen/configured_feature/super_birch_bees.json new file mode 100644 index 00000000..fa4e1776 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/super_birch_bees.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 1.0 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 6 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/super_birch_bees_0002.json b/data/minecraft/worldgen/configured_feature/super_birch_bees_0002.json new file mode 100644 index 00000000..6bc7b323 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/super_birch_bees_0002.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:beehive", + "probability": 0.002 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 2, + "height_rand_b": 6 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:birch_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/swamp_oak.json b/data/minecraft/worldgen/configured_feature/swamp_oak.json new file mode 100644 index 00000000..abb0400b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/swamp_oak.json @@ -0,0 +1,57 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:leave_vine", + "probability": 0.25 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:blob_foliage_placer", + "height": 3, + "offset": 0, + "radius": 3 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 1 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 5, + "height_rand_a": 3, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:oak_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/tall_mangrove.json b/data/minecraft/worldgen/configured_feature/tall_mangrove.json new file mode 100644 index 00000000..e09c267d --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/tall_mangrove.json @@ -0,0 +1,150 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [ + { + "type": "minecraft:leave_vine", + "probability": 0.125 + }, + { + "type": "minecraft:attached_to_leaves", + "block_provider": { + "type": "minecraft:randomized_int_state_provider", + "property": "age", + "source": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_propagule", + "Properties": { + "age": "0", + "hanging": "true", + "stage": "0", + "waterlogged": "false" + } + } + }, + "values": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 0 + } + }, + "directions": [ + "down" + ], + "exclusion_radius_xz": 1, + "exclusion_radius_y": 0, + "probability": 0.14, + "required_empty_blocks": 2 + }, + { + "type": "minecraft:beehive", + "probability": 0.01 + } + ], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:random_spread_foliage_placer", + "foliage_height": 2, + "leaf_placement_attempts": 70, + "offset": 0, + "radius": 3 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 3, + "lower_size": 0, + "upper_size": 2 + }, + "root_placer": { + "type": "minecraft:mangrove_root_placer", + "above_root_placement": { + "above_root_placement_chance": 0.5, + "above_root_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:moss_carpet" + } + } + }, + "mangrove_root_placement": { + "can_grow_through": "#minecraft:mangrove_roots_can_grow_through", + "max_root_length": 15, + "max_root_width": 8, + "muddy_roots_in": [ + "minecraft:mud", + "minecraft:muddy_mangrove_roots" + ], + "muddy_roots_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:muddy_mangrove_roots", + "Properties": { + "axis": "y" + } + } + }, + "random_skew_chance": 0.2 + }, + "root_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_roots", + "Properties": { + "waterlogged": "false" + } + } + }, + "trunk_offset_y": { + "type": "minecraft:uniform", + "max_inclusive": 7, + "min_inclusive": 3 + } + }, + "trunk_placer": { + "type": "minecraft:upwards_branching_trunk_placer", + "base_height": 4, + "can_grow_through": "#minecraft:mangrove_logs_can_grow_through", + "extra_branch_length": { + "type": "minecraft:uniform", + "max_inclusive": 1, + "min_inclusive": 0 + }, + "extra_branch_steps": { + "type": "minecraft:uniform", + "max_inclusive": 6, + "min_inclusive": 1 + }, + "height_rand_a": 1, + "height_rand_b": 9, + "place_branch_per_log_probability": 0.5 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mangrove_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_birch_and_oak.json b/data/minecraft/worldgen/configured_feature/trees_birch_and_oak.json new file mode 100644 index 00000000..f779aad0 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_birch_and_oak.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:oak_bees_0002", + "features": [ + { + "chance": 0.2, + "feature": "minecraft:birch_bees_0002" + }, + { + "chance": 0.1, + "feature": "minecraft:fancy_oak_bees_0002" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_flower_forest.json b/data/minecraft/worldgen/configured_feature/trees_flower_forest.json new file mode 100644 index 00000000..d8095f78 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_flower_forest.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:oak_bees_002", + "features": [ + { + "chance": 0.2, + "feature": "minecraft:birch_bees_002" + }, + { + "chance": 0.1, + "feature": "minecraft:fancy_oak_bees_002" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_grove.json b/data/minecraft/worldgen/configured_feature/trees_grove.json new file mode 100644 index 00000000..7c6afd66 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_grove.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:spruce_on_snow", + "features": [ + { + "chance": 0.33333334, + "feature": "minecraft:pine_on_snow" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_jungle.json b/data/minecraft/worldgen/configured_feature/trees_jungle.json new file mode 100644 index 00000000..39bdb585 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_jungle.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:jungle_tree", + "features": [ + { + "chance": 0.1, + "feature": "minecraft:fancy_oak_checked" + }, + { + "chance": 0.5, + "feature": "minecraft:jungle_bush" + }, + { + "chance": 0.33333334, + "feature": "minecraft:mega_jungle_tree_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_old_growth_pine_taiga.json b/data/minecraft/worldgen/configured_feature/trees_old_growth_pine_taiga.json new file mode 100644 index 00000000..1e4efd39 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_old_growth_pine_taiga.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:spruce_checked", + "features": [ + { + "chance": 0.025641026, + "feature": "minecraft:mega_spruce_checked" + }, + { + "chance": 0.30769232, + "feature": "minecraft:mega_pine_checked" + }, + { + "chance": 0.33333334, + "feature": "minecraft:pine_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_old_growth_spruce_taiga.json b/data/minecraft/worldgen/configured_feature/trees_old_growth_spruce_taiga.json new file mode 100644 index 00000000..fb290593 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_old_growth_spruce_taiga.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:spruce_checked", + "features": [ + { + "chance": 0.33333334, + "feature": "minecraft:mega_spruce_checked" + }, + { + "chance": 0.33333334, + "feature": "minecraft:pine_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_plains.json b/data/minecraft/worldgen/configured_feature/trees_plains.json new file mode 100644 index 00000000..c5f56bf6 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_plains.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": { + "feature": "minecraft:oak_bees_005", + "placement": [] + }, + "features": [ + { + "chance": 0.33333334, + "feature": { + "feature": "minecraft:fancy_oak_bees_005", + "placement": [] + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_savanna.json b/data/minecraft/worldgen/configured_feature/trees_savanna.json new file mode 100644 index 00000000..f3f04267 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_savanna.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:oak_checked", + "features": [ + { + "chance": 0.8, + "feature": "minecraft:acacia_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_sparse_jungle.json b/data/minecraft/worldgen/configured_feature/trees_sparse_jungle.json new file mode 100644 index 00000000..a2b593bb --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_sparse_jungle.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:jungle_tree", + "features": [ + { + "chance": 0.1, + "feature": "minecraft:fancy_oak_checked" + }, + { + "chance": 0.5, + "feature": "minecraft:jungle_bush" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_taiga.json b/data/minecraft/worldgen/configured_feature/trees_taiga.json new file mode 100644 index 00000000..1da37322 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_taiga.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:spruce_checked", + "features": [ + { + "chance": 0.33333334, + "feature": "minecraft:pine_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_water.json b/data/minecraft/worldgen/configured_feature/trees_water.json new file mode 100644 index 00000000..b98ce95e --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_water.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:oak_checked", + "features": [ + { + "chance": 0.1, + "feature": "minecraft:fancy_oak_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/trees_windswept_hills.json b/data/minecraft/worldgen/configured_feature/trees_windswept_hills.json new file mode 100644 index 00000000..3d2554bf --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/trees_windswept_hills.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:random_selector", + "config": { + "default": "minecraft:oak_checked", + "features": [ + { + "chance": 0.666, + "feature": "minecraft:spruce_checked" + }, + { + "chance": 0.1, + "feature": "minecraft:fancy_oak_checked" + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/twisting_vines.json b/data/minecraft/worldgen/configured_feature/twisting_vines.json new file mode 100644 index 00000000..b7f42b23 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/twisting_vines.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:twisting_vines", + "config": { + "max_height": 8, + "spread_height": 4, + "spread_width": 8 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/twisting_vines_bonemeal.json b/data/minecraft/worldgen/configured_feature/twisting_vines_bonemeal.json new file mode 100644 index 00000000..e3cea5ad --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/twisting_vines_bonemeal.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:twisting_vines", + "config": { + "max_height": 2, + "spread_height": 1, + "spread_width": 3 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/underwater_magma.json b/data/minecraft/worldgen/configured_feature/underwater_magma.json new file mode 100644 index 00000000..6800a78b --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/underwater_magma.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:underwater_magma", + "config": { + "floor_search_range": 5, + "placement_probability_per_valid_position": 0.5, + "placement_radius_around_floor": 1 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/vines.json b/data/minecraft/worldgen/configured_feature/vines.json new file mode 100644 index 00000000..9d2db213 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/vines.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:vines", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/void_start_platform.json b/data/minecraft/worldgen/configured_feature/void_start_platform.json new file mode 100644 index 00000000..d6249646 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/void_start_platform.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:void_start_platform", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/warm_ocean_vegetation.json b/data/minecraft/worldgen/configured_feature/warm_ocean_vegetation.json new file mode 100644 index 00000000..89fc9075 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/warm_ocean_vegetation.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:simple_random_selector", + "config": { + "features": [ + { + "feature": { + "type": "minecraft:coral_tree", + "config": {} + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:coral_claw", + "config": {} + }, + "placement": [] + }, + { + "feature": { + "type": "minecraft:coral_mushroom", + "config": {} + }, + "placement": [] + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/warped_forest_vegetation.json b/data/minecraft/worldgen/configured_feature/warped_forest_vegetation.json new file mode 100644 index 00000000..7aa937dd --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/warped_forest_vegetation.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:nether_forest_vegetation", + "config": { + "spread_height": 4, + "spread_width": 8, + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:warped_roots" + }, + "weight": 85 + }, + { + "data": { + "Name": "minecraft:crimson_roots" + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:warped_fungus" + }, + "weight": 13 + }, + { + "data": { + "Name": "minecraft:crimson_fungus" + }, + "weight": 1 + } + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/warped_forest_vegetation_bonemeal.json b/data/minecraft/worldgen/configured_feature/warped_forest_vegetation_bonemeal.json new file mode 100644 index 00000000..3508b719 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/warped_forest_vegetation_bonemeal.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:nether_forest_vegetation", + "config": { + "spread_height": 1, + "spread_width": 3, + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "minecraft:warped_roots" + }, + "weight": 85 + }, + { + "data": { + "Name": "minecraft:crimson_roots" + }, + "weight": 1 + }, + { + "data": { + "Name": "minecraft:warped_fungus" + }, + "weight": 13 + }, + { + "data": { + "Name": "minecraft:crimson_fungus" + }, + "weight": 1 + } + ] + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/warped_fungus.json b/data/minecraft/worldgen/configured_feature/warped_fungus.json new file mode 100644 index 00000000..fb6339c1 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/warped_fungus.json @@ -0,0 +1,83 @@ +{ + "type": "minecraft:huge_fungus", + "config": { + "decor_state": { + "Name": "minecraft:shroomlight" + }, + "hat_state": { + "Name": "minecraft:warped_wart_block" + }, + "planted": false, + "replaceable_blocks": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:cherry_sapling", + "minecraft:dark_oak_sapling", + "minecraft:mangrove_propagule", + "minecraft:dandelion", + "minecraft:torchflower", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:wither_rose", + "minecraft:lily_of_the_valley", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:wheat", + "minecraft:sugar_cane", + "minecraft:attached_pumpkin_stem", + "minecraft:attached_melon_stem", + "minecraft:pumpkin_stem", + "minecraft:melon_stem", + "minecraft:lily_pad", + "minecraft:nether_wart", + "minecraft:cocoa", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:chorus_plant", + "minecraft:chorus_flower", + "minecraft:torchflower_crop", + "minecraft:pitcher_crop", + "minecraft:beetroots", + "minecraft:sweet_berry_bush", + "minecraft:warped_fungus", + "minecraft:crimson_fungus", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:spore_blossom", + "minecraft:azalea", + "minecraft:flowering_azalea", + "minecraft:moss_carpet", + "minecraft:pink_petals", + "minecraft:big_dripleaf", + "minecraft:big_dripleaf_stem", + "minecraft:small_dripleaf" + ] + }, + "stem_state": { + "Name": "minecraft:warped_stem", + "Properties": { + "axis": "y" + } + }, + "valid_base_block": { + "Name": "minecraft:warped_nylium" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/warped_fungus_planted.json b/data/minecraft/worldgen/configured_feature/warped_fungus_planted.json new file mode 100644 index 00000000..053b0e63 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/warped_fungus_planted.json @@ -0,0 +1,83 @@ +{ + "type": "minecraft:huge_fungus", + "config": { + "decor_state": { + "Name": "minecraft:shroomlight" + }, + "hat_state": { + "Name": "minecraft:warped_wart_block" + }, + "planted": true, + "replaceable_blocks": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:cherry_sapling", + "minecraft:dark_oak_sapling", + "minecraft:mangrove_propagule", + "minecraft:dandelion", + "minecraft:torchflower", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:wither_rose", + "minecraft:lily_of_the_valley", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:wheat", + "minecraft:sugar_cane", + "minecraft:attached_pumpkin_stem", + "minecraft:attached_melon_stem", + "minecraft:pumpkin_stem", + "minecraft:melon_stem", + "minecraft:lily_pad", + "minecraft:nether_wart", + "minecraft:cocoa", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:chorus_plant", + "minecraft:chorus_flower", + "minecraft:torchflower_crop", + "minecraft:pitcher_crop", + "minecraft:beetroots", + "minecraft:sweet_berry_bush", + "minecraft:warped_fungus", + "minecraft:crimson_fungus", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:spore_blossom", + "minecraft:azalea", + "minecraft:flowering_azalea", + "minecraft:moss_carpet", + "minecraft:pink_petals", + "minecraft:big_dripleaf", + "minecraft:big_dripleaf_stem", + "minecraft:small_dripleaf" + ] + }, + "stem_state": { + "Name": "minecraft:warped_stem", + "Properties": { + "axis": "y" + } + }, + "valid_base_block": { + "Name": "minecraft:warped_nylium" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/configured_feature/weeping_vines.json b/data/minecraft/worldgen/configured_feature/weeping_vines.json new file mode 100644 index 00000000..c914f4a8 --- /dev/null +++ b/data/minecraft/worldgen/configured_feature/weeping_vines.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:weeping_vines", + "config": {} +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/end/base_3d_noise.json b/data/minecraft/worldgen/density_function/end/base_3d_noise.json new file mode 100644 index 00000000..42ce3b80 --- /dev/null +++ b/data/minecraft/worldgen/density_function/end/base_3d_noise.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:old_blended_noise", + "smear_scale_multiplier": 4.0, + "xz_factor": 80.0, + "xz_scale": 0.25, + "y_factor": 160.0, + "y_scale": 0.25 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/end/sloped_cheese.json b/data/minecraft/worldgen/density_function/end/sloped_cheese.json new file mode 100644 index 00000000..52cf0ac0 --- /dev/null +++ b/data/minecraft/worldgen/density_function/end/sloped_cheese.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:end_islands" + }, + "argument2": "minecraft:end/base_3d_noise" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/nether/base_3d_noise.json b/data/minecraft/worldgen/density_function/nether/base_3d_noise.json new file mode 100644 index 00000000..f4f9874e --- /dev/null +++ b/data/minecraft/worldgen/density_function/nether/base_3d_noise.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:old_blended_noise", + "smear_scale_multiplier": 8.0, + "xz_factor": 80.0, + "xz_scale": 0.25, + "y_factor": 60.0, + "y_scale": 0.375 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/base_3d_noise.json b/data/minecraft/worldgen/density_function/overworld/base_3d_noise.json new file mode 100644 index 00000000..ed5a2d9c --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/base_3d_noise.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:old_blended_noise", + "smear_scale_multiplier": 8.0, + "xz_factor": 80.0, + "xz_scale": 0.25, + "y_factor": 160.0, + "y_scale": 0.125 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/caves/entrances.json b/data/minecraft/worldgen/density_function/overworld/caves/entrances.json new file mode 100644 index 00000000..582c4778 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/caves/entrances.json @@ -0,0 +1,83 @@ +{ + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:add", + "argument1": 0.37, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:cave_entrance", + "xz_scale": 0.75, + "y_scale": 0.5 + } + }, + "argument2": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.3, + "from_y": -10, + "to_value": 0.0, + "to_y": 30 + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": "minecraft:overworld/caves/spaghetti_roughness_function", + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:weird_scaled_sampler", + "input": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_3d_rarity", + "xz_scale": 2.0, + "y_scale": 1.0 + } + }, + "noise": "minecraft:spaghetti_3d_1", + "rarity_value_mapper": "type_1" + }, + "argument2": { + "type": "minecraft:weird_scaled_sampler", + "input": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_3d_rarity", + "xz_scale": 2.0, + "y_scale": 1.0 + } + }, + "noise": "minecraft:spaghetti_3d_2", + "rarity_value_mapper": "type_1" + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.0765, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.011499999999999996, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_3d_thickness", + "xz_scale": 1.0, + "y_scale": 1.0 + } + } + } + }, + "max": 1.0, + "min": -1.0 + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/caves/noodle.json b/data/minecraft/worldgen/density_function/overworld/caves/noodle.json new file mode 100644 index 00000000..b5566b10 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/caves/noodle.json @@ -0,0 +1,94 @@ +{ + "type": "minecraft:range_choice", + "input": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 321.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:noodle", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "when_out_of_range": -1.0 + } + }, + "max_exclusive": 0.0, + "min_inclusive": -1000000.0, + "when_in_range": 64.0, + "when_out_of_range": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 321.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:add", + "argument1": -0.07500000000000001, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.025, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:noodle_thickness", + "xz_scale": 1.0, + "y_scale": 1.0 + } + } + }, + "when_out_of_range": 0.0 + } + }, + "argument2": { + "type": "minecraft:mul", + "argument1": 1.5, + "argument2": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 321.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:noodle_ridge_a", + "xz_scale": 2.6666666666666665, + "y_scale": 2.6666666666666665 + }, + "when_out_of_range": 0.0 + } + } + }, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 321.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:noodle_ridge_b", + "xz_scale": 2.6666666666666665, + "y_scale": 2.6666666666666665 + }, + "when_out_of_range": 0.0 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/caves/pillars.json b/data/minecraft/worldgen/density_function/overworld/caves/pillars.json new file mode 100644 index 00000000..ef84930e --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/caves/pillars.json @@ -0,0 +1,50 @@ +{ + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 2.0, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:pillar", + "xz_scale": 25.0, + "y_scale": 0.3 + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": -1.0, + "argument2": { + "type": "minecraft:mul", + "argument1": -1.0, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:pillar_rareness", + "xz_scale": 1.0, + "y_scale": 1.0 + } + } + } + }, + "argument2": { + "type": "minecraft:cube", + "argument": { + "type": "minecraft:add", + "argument1": 0.55, + "argument2": { + "type": "minecraft:mul", + "argument1": 0.55, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:pillar_thickness", + "xz_scale": 1.0, + "y_scale": 1.0 + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_2d.json b/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_2d.json new file mode 100644 index 00000000..7a1a4dc4 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_2d.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:clamp", + "input": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:weird_scaled_sampler", + "input": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_2d_modulator", + "xz_scale": 2.0, + "y_scale": 1.0 + }, + "noise": "minecraft:spaghetti_2d", + "rarity_value_mapper": "type_2" + }, + "argument2": { + "type": "minecraft:mul", + "argument1": 0.083, + "argument2": "minecraft:overworld/caves/spaghetti_2d_thickness_modulator" + } + }, + "argument2": { + "type": "minecraft:cube", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:add", + "argument1": 0.0, + "argument2": { + "type": "minecraft:mul", + "argument1": 8.0, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_2d_elevation", + "xz_scale": 1.0, + "y_scale": 0.0 + } + } + }, + "argument2": { + "type": "minecraft:y_clamped_gradient", + "from_value": 8.0, + "from_y": -64, + "to_value": -40.0, + "to_y": 320 + } + } + }, + "argument2": "minecraft:overworld/caves/spaghetti_2d_thickness_modulator" + } + } + }, + "max": 1.0, + "min": -1.0 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_2d_thickness_modulator.json b/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_2d_thickness_modulator.json new file mode 100644 index 00000000..be136655 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_2d_thickness_modulator.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:add", + "argument1": -0.95, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.35000000000000003, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_2d_thickness", + "xz_scale": 2.0, + "y_scale": 1.0 + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_roughness_function.json b/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_roughness_function.json new file mode 100644 index 00000000..549344e2 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/caves/spaghetti_roughness_function.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": -0.05, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.05, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_roughness_modulator", + "xz_scale": 1.0, + "y_scale": 1.0 + } + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.4, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_roughness", + "xz_scale": 1.0, + "y_scale": 1.0 + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/continents.json b/data/minecraft/worldgen/density_function/overworld/continents.json new file mode 100644 index 00000000..321b6f03 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/continents.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:continentalness", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/depth.json b/data/minecraft/worldgen/density_function/overworld/depth.json new file mode 100644 index 00000000..23944893 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/depth.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.5, + "from_y": -64, + "to_value": -1.5, + "to_y": 320 + }, + "argument2": "minecraft:overworld/offset" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/erosion.json b/data/minecraft/worldgen/density_function/overworld/erosion.json new file mode 100644 index 00000000..fff06598 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/erosion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:erosion", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/factor.json b/data/minecraft/worldgen/density_function/overworld/factor.json new file mode 100644 index 00000000..3a5de1fa --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/factor.json @@ -0,0 +1,890 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": 10.0, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_alpha" + }, + "argument2": { + "type": "minecraft:add", + "argument1": -10.0, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld/continents", + "points": [ + { + "derivative": 0.0, + "location": -0.19, + "value": 3.95 + }, + { + "derivative": 0.0, + "location": -0.15, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.06, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.05, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 1.56 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 1.56 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 1.37 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 1.37 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": 4.69 + } + ] + } + } + ] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/jaggedness.json b/data/minecraft/worldgen/density_function/overworld/jaggedness.json new file mode 100644 index 00000000..70216d6e --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/jaggedness.json @@ -0,0 +1,303 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": 0.0, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_alpha" + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.0, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld/continents", + "points": [ + { + "derivative": 0.0, + "location": -0.11, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.78, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.315 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.15 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5775, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.315 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.15 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.375, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.65, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.78, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5775, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.375, + "value": 0.0 + } + ] + } + } + ] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/offset.json b/data/minecraft/worldgen/density_function/overworld/offset.json new file mode 100644 index 00000000..61ef46d4 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/offset.json @@ -0,0 +1,1523 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_offset" + }, + "argument2": { + "type": "minecraft:add", + "argument1": 1.0, + "argument2": { + "type": "minecraft:mul", + "argument1": -1.0, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:blend_alpha" + } + } + } + } + }, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": -0.5037500262260437, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld/continents", + "points": [ + { + "derivative": 0.0, + "location": -1.1, + "value": 0.044 + }, + { + "derivative": 0.0, + "location": -1.02, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.51, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.44, + "value": -0.12 + }, + { + "derivative": 0.0, + "location": -0.18, + "value": -0.12 + }, + { + "derivative": 0.0, + "location": -0.16, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 0.69000006 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 0.6400001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.100000024 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.3 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.1, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.06, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 0.69000006 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 0.6400001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.100000024 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.3 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.1, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.06, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 0.69000006 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 0.6400001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.100000024 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.25 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.01, + "location": -0.4, + "value": 0.001 + }, + { + "derivative": 0.01, + "location": 0.0, + "value": 0.003 + }, + { + "derivative": 0.094000004, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.12, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.25, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.20235021 + }, + { + "derivative": 0.5138249, + "location": 0.0, + "value": 0.7161751 + }, + { + "derivative": 0.5138249, + "location": 1.0, + "value": 1.23 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.43317974, + "location": 0.0, + "value": 0.44682026 + }, + { + "derivative": 0.43317974, + "location": 1.0, + "value": 0.88 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.3917051, + "location": 0.0, + "value": 0.30829495 + }, + { + "derivative": 0.3917051, + "location": 1.0, + "value": 0.70000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.25 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.35 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.35 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.35 + }, + { + "derivative": 0.049000014, + "location": 1.0, + "value": 0.42000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.07, + "location": -0.4, + "value": 0.0069999998 + }, + { + "derivative": 0.07, + "location": 0.0, + "value": 0.021 + }, + { + "derivative": 0.658, + "location": 0.4, + "value": 0.35 + }, + { + "derivative": 0.049000014, + "location": 1.0, + "value": 0.42000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.12, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.34792626 + }, + { + "derivative": 0.5760369, + "location": 0.0, + "value": 0.9239631 + }, + { + "derivative": 0.5760369, + "location": 1.0, + "value": 1.5 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.4608295, + "location": 0.0, + "value": 0.5391705 + }, + { + "derivative": 0.4608295, + "location": 1.0, + "value": 1.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.4608295, + "location": 0.0, + "value": 0.5391705 + }, + { + "derivative": 0.4608295, + "location": 1.0, + "value": 1.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.2 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.5 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.5 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.5 + }, + { + "derivative": 0.070000015, + "location": 1.0, + "value": 0.6 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.099999994, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.099999994, + "location": 0.0, + "value": 0.03 + }, + { + "derivative": 0.94, + "location": 0.4, + "value": 0.5 + }, + { + "derivative": 0.070000015, + "location": 1.0, + "value": 0.6 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.015, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + } + ] + } + } + ] + } + } + }, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:blend_alpha" + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/ridges.json b/data/minecraft/worldgen/density_function/overworld/ridges.json new file mode 100644 index 00000000..f4d6b4a5 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/ridges.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:ridge", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/ridges_folded.json b/data/minecraft/worldgen/density_function/overworld/ridges_folded.json new file mode 100644 index 00000000..e4d81cde --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/ridges_folded.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:mul", + "argument1": -3.0, + "argument2": { + "type": "minecraft:add", + "argument1": -0.3333333333333333, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:add", + "argument1": -0.6666666666666666, + "argument2": { + "type": "minecraft:abs", + "argument": "minecraft:overworld/ridges" + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld/sloped_cheese.json b/data/minecraft/worldgen/density_function/overworld/sloped_cheese.json new file mode 100644 index 00000000..4e8ecd56 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld/sloped_cheese.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": "minecraft:overworld/depth", + "argument2": { + "type": "minecraft:mul", + "argument1": "minecraft:overworld/jaggedness", + "argument2": { + "type": "minecraft:half_negative", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:jagged", + "xz_scale": 1500.0, + "y_scale": 0.0 + } + } + } + }, + "argument2": "minecraft:overworld/factor" + } + } + }, + "argument2": "minecraft:overworld/base_3d_noise" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_amplified/depth.json b/data/minecraft/worldgen/density_function/overworld_amplified/depth.json new file mode 100644 index 00000000..b6a3b0d2 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_amplified/depth.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.5, + "from_y": -64, + "to_value": -1.5, + "to_y": 320 + }, + "argument2": "minecraft:overworld_amplified/offset" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_amplified/factor.json b/data/minecraft/worldgen/density_function/overworld_amplified/factor.json new file mode 100644 index 00000000..4dd87e3f --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_amplified/factor.json @@ -0,0 +1,890 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": 10.0, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_alpha" + }, + "argument2": { + "type": "minecraft:add", + "argument1": -10.0, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld/continents", + "points": [ + { + "derivative": 0.0, + "location": -0.19, + "value": 3.95 + }, + { + "derivative": 0.0, + "location": -0.15, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6530563 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 0.4351369 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6530563 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6530563 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 0.4351369 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 0.6969027 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6530563 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 0.6530563 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 0.6530563 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 0.6530563 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.13888884 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 0.6530563 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 0.6530563 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.13888884 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 0.6530563 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6299603 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 0.4351369 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6299603 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6299603 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 0.4351369 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 0.6969027 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6299603 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 0.6299603 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 0.6299603 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 0.6299603 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.13888884 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 0.6299603 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 0.6299603 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.13888884 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 0.6299603 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.06, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 0.4351369 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 0.4351369 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 0.6969027 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.05, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 0.2972561 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 0.2972561 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 0.2688383 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 0.6969027 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 0.6050052 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 0.2688383 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": 0.6050052 + } + ] + } + } + ] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_amplified/jaggedness.json b/data/minecraft/worldgen/density_function/overworld_amplified/jaggedness.json new file mode 100644 index 00000000..fcfe2f08 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_amplified/jaggedness.json @@ -0,0 +1,303 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": 0.0, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_alpha" + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.0, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld/continents", + "points": [ + { + "derivative": 0.0, + "location": -0.11, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 1.26 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.6 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.78, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5775, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.375, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.65, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 1.26 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.6 + } + ] + } + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 1.26 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.6 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.78, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 1.26 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.6 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5775, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 1.26 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.6 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.375, + "value": 0.0 + } + ] + } + } + ] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_amplified/offset.json b/data/minecraft/worldgen/density_function/overworld_amplified/offset.json new file mode 100644 index 00000000..646d88f0 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_amplified/offset.json @@ -0,0 +1,1523 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_offset" + }, + "argument2": { + "type": "minecraft:add", + "argument1": 1.0, + "argument2": { + "type": "minecraft:mul", + "argument1": -1.0, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:blend_alpha" + } + } + } + } + }, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": -0.5037500262260437, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld/continents", + "points": [ + { + "derivative": 0.0, + "location": -1.1, + "value": 0.088 + }, + { + "derivative": 0.0, + "location": -1.02, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.51, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.44, + "value": -0.12 + }, + { + "derivative": 0.0, + "location": -0.18, + "value": -0.12 + }, + { + "derivative": 0.0, + "location": -0.16, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 1.3800001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 1.2800002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 5.9604645E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 5.9604645E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.20000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.3 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.1 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.1 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.1 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.120000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.1, + "location": 0.4, + "value": 0.1 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.120000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.06, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 1.3800001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 1.2800002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 5.9604645E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 5.9604645E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.20000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.3 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.1 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.1 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.1 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.120000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.1, + "location": 0.4, + "value": 0.1 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.120000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.06, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 1.3800001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 1.2800002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 5.9604645E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 5.9604645E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.20000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.25 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.1 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.1 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.1 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.120000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.01, + "location": -0.4, + "value": 0.002 + }, + { + "derivative": 0.01, + "location": 0.0, + "value": 0.006 + }, + { + "derivative": 0.094000004, + "location": 0.4, + "value": 0.1 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.120000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.12, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.25, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.40470043 + }, + { + "derivative": 0.5138249, + "location": 0.0, + "value": 1.4323502 + }, + { + "derivative": 0.5138249, + "location": 1.0, + "value": 2.46 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.4 + }, + { + "derivative": 0.43317974, + "location": 0.0, + "value": 0.8936405 + }, + { + "derivative": 0.43317974, + "location": 1.0, + "value": 1.76 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.4 + }, + { + "derivative": 0.3917051, + "location": 0.0, + "value": 0.6165899 + }, + { + "derivative": 0.3917051, + "location": 1.0, + "value": 1.4000001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.25 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.7 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.7 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.7 + }, + { + "derivative": 0.049000014, + "location": 1.0, + "value": 0.84000003 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.07, + "location": -0.4, + "value": 0.0139999995 + }, + { + "derivative": 0.07, + "location": 0.0, + "value": 0.042 + }, + { + "derivative": 0.658, + "location": 0.4, + "value": 0.7 + }, + { + "derivative": 0.049000014, + "location": 1.0, + "value": 0.84000003 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.34 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.34 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.12, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.6958525 + }, + { + "derivative": 0.5760369, + "location": 0.0, + "value": 1.8479263 + }, + { + "derivative": 0.5760369, + "location": 1.0, + "value": 3.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.4 + }, + { + "derivative": 0.4608295, + "location": 0.0, + "value": 1.078341 + }, + { + "derivative": 0.4608295, + "location": 1.0, + "value": 2.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.4 + }, + { + "derivative": 0.4608295, + "location": 0.0, + "value": 1.078341 + }, + { + "derivative": 0.4608295, + "location": 1.0, + "value": 2.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.2 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 1.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 1.0 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 1.0 + }, + { + "derivative": 0.070000015, + "location": 1.0, + "value": 1.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.099999994, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.099999994, + "location": 0.0, + "value": 0.06 + }, + { + "derivative": 0.94, + "location": 0.4, + "value": 1.0 + }, + { + "derivative": 0.070000015, + "location": 1.0, + "value": 1.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.34 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.34 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.015, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.02 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.02 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.06 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.2 + } + ] + } + } + ] + } + } + ] + } + } + }, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:blend_alpha" + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_amplified/sloped_cheese.json b/data/minecraft/worldgen/density_function/overworld_amplified/sloped_cheese.json new file mode 100644 index 00000000..e9675714 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_amplified/sloped_cheese.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": "minecraft:overworld_amplified/depth", + "argument2": { + "type": "minecraft:mul", + "argument1": "minecraft:overworld_amplified/jaggedness", + "argument2": { + "type": "minecraft:half_negative", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:jagged", + "xz_scale": 1500.0, + "y_scale": 0.0 + } + } + } + }, + "argument2": "minecraft:overworld_amplified/factor" + } + } + }, + "argument2": "minecraft:overworld/base_3d_noise" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_large_biomes/continents.json b/data/minecraft/worldgen/density_function/overworld_large_biomes/continents.json new file mode 100644 index 00000000..c86ba3a0 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_large_biomes/continents.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:continentalness_large", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_large_biomes/depth.json b/data/minecraft/worldgen/density_function/overworld_large_biomes/depth.json new file mode 100644 index 00000000..95783517 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_large_biomes/depth.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.5, + "from_y": -64, + "to_value": -1.5, + "to_y": 320 + }, + "argument2": "minecraft:overworld_large_biomes/offset" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_large_biomes/erosion.json b/data/minecraft/worldgen/density_function/overworld_large_biomes/erosion.json new file mode 100644 index 00000000..4447cd98 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_large_biomes/erosion.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:erosion_large", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_large_biomes/factor.json b/data/minecraft/worldgen/density_function/overworld_large_biomes/factor.json new file mode 100644 index 00000000..aed6a45f --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_large_biomes/factor.json @@ -0,0 +1,890 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": 10.0, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_alpha" + }, + "argument2": { + "type": "minecraft:add", + "argument1": -10.0, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld_large_biomes/continents", + "points": [ + { + "derivative": 0.0, + "location": -0.19, + "value": 3.95 + }, + { + "derivative": 0.0, + "location": -0.15, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 6.25 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 6.25 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.47 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 5.47 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.35, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.9, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": -0.69, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": 0.0, + "value": 5.08 + }, + { + "derivative": 0.0, + "location": 0.1, + "value": 0.625 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.62, + "value": 5.08 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.06, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.6, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 2.67 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.25, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.05, + "value": 2.67 + }, + { + "derivative": 0.0, + "location": 0.05, + "value": 6.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.05, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 1.56 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": 1.56 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 1.37 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.2, + "value": 6.3 + }, + { + "derivative": 0.0, + "location": 0.2, + "value": 4.69 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": 1.37 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": 4.69 + } + ] + } + } + ] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_large_biomes/jaggedness.json b/data/minecraft/worldgen/density_function/overworld_large_biomes/jaggedness.json new file mode 100644 index 00000000..2e202d03 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_large_biomes/jaggedness.json @@ -0,0 +1,303 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": 0.0, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_alpha" + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.0, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld_large_biomes/continents", + "points": [ + { + "derivative": 0.0, + "location": -0.11, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.03, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.78, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.315 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.15 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5775, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.315 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.15 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.375, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.65, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.78, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.5775, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": 0.19999999, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.44999996, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld/ridges", + "points": [ + { + "derivative": 0.0, + "location": -0.01, + "value": 0.63 + }, + { + "derivative": 0.0, + "location": 0.01, + "value": 0.3 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.375, + "value": 0.0 + } + ] + } + } + ] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_large_biomes/offset.json b/data/minecraft/worldgen/density_function/overworld_large_biomes/offset.json new file mode 100644 index 00000000..7e8a3b63 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_large_biomes/offset.json @@ -0,0 +1,1523 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:blend_offset" + }, + "argument2": { + "type": "minecraft:add", + "argument1": 1.0, + "argument2": { + "type": "minecraft:mul", + "argument1": -1.0, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:blend_alpha" + } + } + } + } + }, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": -0.5037500262260437, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "minecraft:overworld_large_biomes/continents", + "points": [ + { + "derivative": 0.0, + "location": -1.1, + "value": 0.044 + }, + { + "derivative": 0.0, + "location": -1.02, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.51, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.44, + "value": -0.12 + }, + { + "derivative": 0.0, + "location": -0.18, + "value": -0.12 + }, + { + "derivative": 0.0, + "location": -0.16, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 0.69000006 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 0.6400001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.100000024 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.3 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.1, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.06, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.15, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 0.69000006 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 0.6400001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.100000024 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.3 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.1, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.15 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.06, + "location": 0.4, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 1.0, + "value": 0.0 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.38940096, + "location": -1.0, + "value": -0.08880186 + }, + { + "derivative": 0.38940096, + "location": 1.0, + "value": 0.69000006 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.37788022, + "location": -1.0, + "value": -0.115760356 + }, + { + "derivative": 0.37788022, + "location": 1.0, + "value": 0.6400001 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.75, + "value": -0.2222 + }, + { + "derivative": 0.0, + "location": -0.65, + "value": 0.0 + }, + { + "derivative": 0.0, + "location": 0.5954547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 0.6054547, + "value": 2.9802322E-8 + }, + { + "derivative": 0.2534563, + "location": 1.0, + "value": 0.100000024 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.25 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.05 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.01, + "location": -0.4, + "value": 0.001 + }, + { + "derivative": 0.01, + "location": 0.0, + "value": 0.003 + }, + { + "derivative": 0.094000004, + "location": 0.4, + "value": 0.05 + }, + { + "derivative": 0.007000001, + "location": 1.0, + "value": 0.060000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.12, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.25, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.20235021 + }, + { + "derivative": 0.5138249, + "location": 0.0, + "value": 0.7161751 + }, + { + "derivative": 0.5138249, + "location": 1.0, + "value": 1.23 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.43317974, + "location": 0.0, + "value": 0.44682026 + }, + { + "derivative": 0.43317974, + "location": 1.0, + "value": 0.88 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.3917051, + "location": 0.0, + "value": 0.30829495 + }, + { + "derivative": 0.3917051, + "location": 1.0, + "value": 0.70000005 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.25 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.35 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.35 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.35 + }, + { + "derivative": 0.049000014, + "location": 1.0, + "value": 0.42000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.07, + "location": -0.4, + "value": 0.0069999998 + }, + { + "derivative": 0.07, + "location": 0.0, + "value": 0.021 + }, + { + "derivative": 0.658, + "location": 0.4, + "value": 0.35 + }, + { + "derivative": 0.049000014, + "location": 1.0, + "value": 0.42000002 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.1 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": -0.03 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": -0.03 + }, + { + "derivative": 0.12, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + } + ] + } + }, + { + "derivative": 0.0, + "location": 1.0, + "value": { + "coordinate": "minecraft:overworld_large_biomes/erosion", + "points": [ + { + "derivative": 0.0, + "location": -0.85, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.34792626 + }, + { + "derivative": 0.5760369, + "location": 0.0, + "value": 0.9239631 + }, + { + "derivative": 0.5760369, + "location": 1.0, + "value": 1.5 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.4608295, + "location": 0.0, + "value": 0.5391705 + }, + { + "derivative": 0.4608295, + "location": 1.0, + "value": 1.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": 0.2 + }, + { + "derivative": 0.4608295, + "location": 0.0, + "value": 0.5391705 + }, + { + "derivative": 0.4608295, + "location": 1.0, + "value": 1.0 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.35, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.2 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.5 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.5 + }, + { + "derivative": 0.0, + "location": 0.4, + "value": 0.5 + }, + { + "derivative": 0.070000015, + "location": 1.0, + "value": 0.6 + } + ] + } + }, + { + "derivative": 0.0, + "location": -0.1, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.099999994, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.099999994, + "location": 0.0, + "value": 0.03 + }, + { + "derivative": 0.94, + "location": 0.4, + "value": 0.5 + }, + { + "derivative": 0.070000015, + "location": 1.0, + "value": 0.6 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.2, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.45, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.55, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.0, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.17 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.58, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.5, + "location": -1.0, + "value": -0.05 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + }, + { + "derivative": 0.0, + "location": 0.7, + "value": { + "coordinate": "minecraft:overworld/ridges_folded", + "points": [ + { + "derivative": 0.015, + "location": -1.0, + "value": -0.02 + }, + { + "derivative": 0.0, + "location": -0.4, + "value": 0.01 + }, + { + "derivative": 0.0, + "location": 0.0, + "value": 0.01 + }, + { + "derivative": 0.04, + "location": 0.4, + "value": 0.03 + }, + { + "derivative": 0.049, + "location": 1.0, + "value": 0.1 + } + ] + } + } + ] + } + } + ] + } + } + }, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:blend_alpha" + } + } + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/overworld_large_biomes/sloped_cheese.json b/data/minecraft/worldgen/density_function/overworld_large_biomes/sloped_cheese.json new file mode 100644 index 00000000..5da0fba5 --- /dev/null +++ b/data/minecraft/worldgen/density_function/overworld_large_biomes/sloped_cheese.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:add", + "argument1": "minecraft:overworld_large_biomes/depth", + "argument2": { + "type": "minecraft:mul", + "argument1": "minecraft:overworld_large_biomes/jaggedness", + "argument2": { + "type": "minecraft:half_negative", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:jagged", + "xz_scale": 1500.0, + "y_scale": 0.0 + } + } + } + }, + "argument2": "minecraft:overworld_large_biomes/factor" + } + } + }, + "argument2": "minecraft:overworld/base_3d_noise" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/shift_x.json b/data/minecraft/worldgen/density_function/shift_x.json new file mode 100644 index 00000000..7c212483 --- /dev/null +++ b/data/minecraft/worldgen/density_function/shift_x.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:shift_a", + "argument": "minecraft:offset" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/shift_z.json b/data/minecraft/worldgen/density_function/shift_z.json new file mode 100644 index 00000000..263c1129 --- /dev/null +++ b/data/minecraft/worldgen/density_function/shift_z.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:shift_b", + "argument": "minecraft:offset" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/y.json b/data/minecraft/worldgen/density_function/y.json new file mode 100644 index 00000000..4d21495f --- /dev/null +++ b/data/minecraft/worldgen/density_function/y.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:y_clamped_gradient", + "from_value": -4064.0, + "from_y": -4064, + "to_value": 4062.0, + "to_y": 4062 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/density_function/zero.json b/data/minecraft/worldgen/density_function/zero.json new file mode 100644 index 00000000..171538eb --- /dev/null +++ b/data/minecraft/worldgen/density_function/zero.json @@ -0,0 +1 @@ +0.0 \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/bottomless_pit.json b/data/minecraft/worldgen/flat_level_generator_preset/bottomless_pit.json new file mode 100644 index 00000000..93134c03 --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/bottomless_pit.json @@ -0,0 +1,23 @@ +{ + "display": "minecraft:feather", + "settings": { + "biome": "minecraft:plains", + "features": false, + "lakes": false, + "layers": [ + { + "block": "minecraft:cobblestone", + "height": 2 + }, + { + "block": "minecraft:dirt", + "height": 3 + }, + { + "block": "minecraft:grass_block", + "height": 1 + } + ], + "structure_overrides": "minecraft:villages" + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/classic_flat.json b/data/minecraft/worldgen/flat_level_generator_preset/classic_flat.json new file mode 100644 index 00000000..0f4a33e3 --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/classic_flat.json @@ -0,0 +1,23 @@ +{ + "display": "minecraft:grass_block", + "settings": { + "biome": "minecraft:plains", + "features": false, + "lakes": false, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:dirt", + "height": 2 + }, + { + "block": "minecraft:grass_block", + "height": 1 + } + ], + "structure_overrides": "minecraft:villages" + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/desert.json b/data/minecraft/worldgen/flat_level_generator_preset/desert.json new file mode 100644 index 00000000..e8686430 --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/desert.json @@ -0,0 +1,32 @@ +{ + "display": "minecraft:sand", + "settings": { + "biome": "minecraft:desert", + "features": true, + "lakes": false, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:stone", + "height": 3 + }, + { + "block": "minecraft:sandstone", + "height": 52 + }, + { + "block": "minecraft:sand", + "height": 8 + } + ], + "structure_overrides": [ + "minecraft:villages", + "minecraft:desert_pyramids", + "minecraft:mineshafts", + "minecraft:strongholds" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/overworld.json b/data/minecraft/worldgen/flat_level_generator_preset/overworld.json new file mode 100644 index 00000000..981ed494 --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/overworld.json @@ -0,0 +1,33 @@ +{ + "display": "minecraft:short_grass", + "settings": { + "biome": "minecraft:plains", + "features": true, + "lakes": true, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:stone", + "height": 59 + }, + { + "block": "minecraft:dirt", + "height": 3 + }, + { + "block": "minecraft:grass_block", + "height": 1 + } + ], + "structure_overrides": [ + "minecraft:villages", + "minecraft:mineshafts", + "minecraft:pillager_outposts", + "minecraft:ruined_portals", + "minecraft:strongholds" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/redstone_ready.json b/data/minecraft/worldgen/flat_level_generator_preset/redstone_ready.json new file mode 100644 index 00000000..7d960592 --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/redstone_ready.json @@ -0,0 +1,23 @@ +{ + "display": "minecraft:redstone", + "settings": { + "biome": "minecraft:desert", + "features": false, + "lakes": false, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:stone", + "height": 3 + }, + { + "block": "minecraft:sandstone", + "height": 116 + } + ], + "structure_overrides": [] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/snowy_kingdom.json b/data/minecraft/worldgen/flat_level_generator_preset/snowy_kingdom.json new file mode 100644 index 00000000..6f4df895 --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/snowy_kingdom.json @@ -0,0 +1,34 @@ +{ + "display": "minecraft:snow", + "settings": { + "biome": "minecraft:snowy_plains", + "features": false, + "lakes": false, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:stone", + "height": 59 + }, + { + "block": "minecraft:dirt", + "height": 3 + }, + { + "block": "minecraft:grass_block", + "height": 1 + }, + { + "block": "minecraft:snow", + "height": 1 + } + ], + "structure_overrides": [ + "minecraft:villages", + "minecraft:igloos" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/the_void.json b/data/minecraft/worldgen/flat_level_generator_preset/the_void.json new file mode 100644 index 00000000..6de56e38 --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/the_void.json @@ -0,0 +1,15 @@ +{ + "display": "minecraft:barrier", + "settings": { + "biome": "minecraft:the_void", + "features": true, + "lakes": false, + "layers": [ + { + "block": "minecraft:air", + "height": 1 + } + ], + "structure_overrides": [] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/tunnelers_dream.json b/data/minecraft/worldgen/flat_level_generator_preset/tunnelers_dream.json new file mode 100644 index 00000000..d3b8a8ca --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/tunnelers_dream.json @@ -0,0 +1,30 @@ +{ + "display": "minecraft:stone", + "settings": { + "biome": "minecraft:windswept_hills", + "features": true, + "lakes": false, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:stone", + "height": 230 + }, + { + "block": "minecraft:dirt", + "height": 5 + }, + { + "block": "minecraft:grass_block", + "height": 1 + } + ], + "structure_overrides": [ + "minecraft:mineshafts", + "minecraft:strongholds" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/flat_level_generator_preset/water_world.json b/data/minecraft/worldgen/flat_level_generator_preset/water_world.json new file mode 100644 index 00000000..cc84af5f --- /dev/null +++ b/data/minecraft/worldgen/flat_level_generator_preset/water_world.json @@ -0,0 +1,39 @@ +{ + "display": "minecraft:water_bucket", + "settings": { + "biome": "minecraft:deep_ocean", + "features": false, + "lakes": false, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:deepslate", + "height": 64 + }, + { + "block": "minecraft:stone", + "height": 5 + }, + { + "block": "minecraft:dirt", + "height": 5 + }, + { + "block": "minecraft:gravel", + "height": 5 + }, + { + "block": "minecraft:water", + "height": 90 + } + ], + "structure_overrides": [ + "minecraft:ocean_ruins", + "minecraft:shipwrecks", + "minecraft:ocean_monuments" + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/multi_noise_biome_source_parameter_list/nether.json b/data/minecraft/worldgen/multi_noise_biome_source_parameter_list/nether.json new file mode 100644 index 00000000..69ae9ebf --- /dev/null +++ b/data/minecraft/worldgen/multi_noise_biome_source_parameter_list/nether.json @@ -0,0 +1,3 @@ +{ + "preset": "minecraft:nether" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/multi_noise_biome_source_parameter_list/overworld.json b/data/minecraft/worldgen/multi_noise_biome_source_parameter_list/overworld.json new file mode 100644 index 00000000..4dd59007 --- /dev/null +++ b/data/minecraft/worldgen/multi_noise_biome_source_parameter_list/overworld.json @@ -0,0 +1,3 @@ +{ + "preset": "minecraft:overworld" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/aquifer_barrier.json b/data/minecraft/worldgen/noise/aquifer_barrier.json new file mode 100644 index 00000000..24271d2f --- /dev/null +++ b/data/minecraft/worldgen/noise/aquifer_barrier.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -3 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/aquifer_fluid_level_floodedness.json b/data/minecraft/worldgen/noise/aquifer_fluid_level_floodedness.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/aquifer_fluid_level_floodedness.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/aquifer_fluid_level_spread.json b/data/minecraft/worldgen/noise/aquifer_fluid_level_spread.json new file mode 100644 index 00000000..9968798a --- /dev/null +++ b/data/minecraft/worldgen/noise/aquifer_fluid_level_spread.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/aquifer_lava.json b/data/minecraft/worldgen/noise/aquifer_lava.json new file mode 100644 index 00000000..5eba7707 --- /dev/null +++ b/data/minecraft/worldgen/noise/aquifer_lava.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -1 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/badlands_pillar.json b/data/minecraft/worldgen/noise/badlands_pillar.json new file mode 100644 index 00000000..44eea82a --- /dev/null +++ b/data/minecraft/worldgen/noise/badlands_pillar.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -2 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/badlands_pillar_roof.json b/data/minecraft/worldgen/noise/badlands_pillar_roof.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/badlands_pillar_roof.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/badlands_surface.json b/data/minecraft/worldgen/noise/badlands_surface.json new file mode 100644 index 00000000..492e6c81 --- /dev/null +++ b/data/minecraft/worldgen/noise/badlands_surface.json @@ -0,0 +1,8 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/calcite.json b/data/minecraft/worldgen/noise/calcite.json new file mode 100644 index 00000000..d0ae5c0d --- /dev/null +++ b/data/minecraft/worldgen/noise/calcite.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -9 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/cave_cheese.json b/data/minecraft/worldgen/noise/cave_cheese.json new file mode 100644 index 00000000..76e3564a --- /dev/null +++ b/data/minecraft/worldgen/noise/cave_cheese.json @@ -0,0 +1,14 @@ +{ + "amplitudes": [ + 0.5, + 1.0, + 2.0, + 1.0, + 2.0, + 1.0, + 0.0, + 2.0, + 0.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/cave_entrance.json b/data/minecraft/worldgen/noise/cave_entrance.json new file mode 100644 index 00000000..b03b4dd6 --- /dev/null +++ b/data/minecraft/worldgen/noise/cave_entrance.json @@ -0,0 +1,8 @@ +{ + "amplitudes": [ + 0.4, + 0.5, + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/cave_layer.json b/data/minecraft/worldgen/noise/cave_layer.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/cave_layer.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/clay_bands_offset.json b/data/minecraft/worldgen/noise/clay_bands_offset.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/clay_bands_offset.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/continentalness.json b/data/minecraft/worldgen/noise/continentalness.json new file mode 100644 index 00000000..974cce70 --- /dev/null +++ b/data/minecraft/worldgen/noise/continentalness.json @@ -0,0 +1,14 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 2.0, + 2.0, + 2.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -9 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/continentalness_large.json b/data/minecraft/worldgen/noise/continentalness_large.json new file mode 100644 index 00000000..1a966482 --- /dev/null +++ b/data/minecraft/worldgen/noise/continentalness_large.json @@ -0,0 +1,14 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 2.0, + 2.0, + 2.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -11 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/erosion.json b/data/minecraft/worldgen/noise/erosion.json new file mode 100644 index 00000000..5cb78233 --- /dev/null +++ b/data/minecraft/worldgen/noise/erosion.json @@ -0,0 +1,10 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 0.0, + 1.0, + 1.0 + ], + "firstOctave": -9 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/erosion_large.json b/data/minecraft/worldgen/noise/erosion_large.json new file mode 100644 index 00000000..9d22d239 --- /dev/null +++ b/data/minecraft/worldgen/noise/erosion_large.json @@ -0,0 +1,10 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 0.0, + 1.0, + 1.0 + ], + "firstOctave": -11 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/gravel.json b/data/minecraft/worldgen/noise/gravel.json new file mode 100644 index 00000000..77668018 --- /dev/null +++ b/data/minecraft/worldgen/noise/gravel.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/gravel_layer.json b/data/minecraft/worldgen/noise/gravel_layer.json new file mode 100644 index 00000000..64adfc30 --- /dev/null +++ b/data/minecraft/worldgen/noise/gravel_layer.json @@ -0,0 +1,14 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.013333333333333334 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/ice.json b/data/minecraft/worldgen/noise/ice.json new file mode 100644 index 00000000..93c50c69 --- /dev/null +++ b/data/minecraft/worldgen/noise/ice.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -4 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/iceberg_pillar.json b/data/minecraft/worldgen/noise/iceberg_pillar.json new file mode 100644 index 00000000..b51be97c --- /dev/null +++ b/data/minecraft/worldgen/noise/iceberg_pillar.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/iceberg_pillar_roof.json b/data/minecraft/worldgen/noise/iceberg_pillar_roof.json new file mode 100644 index 00000000..24271d2f --- /dev/null +++ b/data/minecraft/worldgen/noise/iceberg_pillar_roof.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -3 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/iceberg_surface.json b/data/minecraft/worldgen/noise/iceberg_surface.json new file mode 100644 index 00000000..492e6c81 --- /dev/null +++ b/data/minecraft/worldgen/noise/iceberg_surface.json @@ -0,0 +1,8 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/jagged.json b/data/minecraft/worldgen/noise/jagged.json new file mode 100644 index 00000000..75d6175f --- /dev/null +++ b/data/minecraft/worldgen/noise/jagged.json @@ -0,0 +1,21 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -16 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/nether_state_selector.json b/data/minecraft/worldgen/noise/nether_state_selector.json new file mode 100644 index 00000000..964556b3 --- /dev/null +++ b/data/minecraft/worldgen/noise/nether_state_selector.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -4 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/nether_wart.json b/data/minecraft/worldgen/noise/nether_wart.json new file mode 100644 index 00000000..4ecd087f --- /dev/null +++ b/data/minecraft/worldgen/noise/nether_wart.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 0.0, + 0.0, + 0.9 + ], + "firstOctave": -3 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/netherrack.json b/data/minecraft/worldgen/noise/netherrack.json new file mode 100644 index 00000000..afceca13 --- /dev/null +++ b/data/minecraft/worldgen/noise/netherrack.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 0.0, + 0.0, + 0.35 + ], + "firstOctave": -3 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/noodle.json b/data/minecraft/worldgen/noise/noodle.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/noodle.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/noodle_ridge_a.json b/data/minecraft/worldgen/noise/noodle_ridge_a.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/noodle_ridge_a.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/noodle_ridge_b.json b/data/minecraft/worldgen/noise/noodle_ridge_b.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/noodle_ridge_b.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/noodle_thickness.json b/data/minecraft/worldgen/noise/noodle_thickness.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/noodle_thickness.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/offset.json b/data/minecraft/worldgen/noise/offset.json new file mode 100644 index 00000000..db285f39 --- /dev/null +++ b/data/minecraft/worldgen/noise/offset.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 0.0 + ], + "firstOctave": -3 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/ore_gap.json b/data/minecraft/worldgen/noise/ore_gap.json new file mode 100644 index 00000000..9968798a --- /dev/null +++ b/data/minecraft/worldgen/noise/ore_gap.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/ore_vein_a.json b/data/minecraft/worldgen/noise/ore_vein_a.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/ore_vein_a.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/ore_vein_b.json b/data/minecraft/worldgen/noise/ore_vein_b.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/ore_vein_b.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/ore_veininess.json b/data/minecraft/worldgen/noise/ore_veininess.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/ore_veininess.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/packed_ice.json b/data/minecraft/worldgen/noise/packed_ice.json new file mode 100644 index 00000000..97249698 --- /dev/null +++ b/data/minecraft/worldgen/noise/packed_ice.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/patch.json b/data/minecraft/worldgen/noise/patch.json new file mode 100644 index 00000000..b73af3ec --- /dev/null +++ b/data/minecraft/worldgen/noise/patch.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.013333333333333334 + ], + "firstOctave": -5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/pillar.json b/data/minecraft/worldgen/noise/pillar.json new file mode 100644 index 00000000..15e00691 --- /dev/null +++ b/data/minecraft/worldgen/noise/pillar.json @@ -0,0 +1,7 @@ +{ + "amplitudes": [ + 1.0, + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/pillar_rareness.json b/data/minecraft/worldgen/noise/pillar_rareness.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/pillar_rareness.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/pillar_thickness.json b/data/minecraft/worldgen/noise/pillar_thickness.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/pillar_thickness.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/powder_snow.json b/data/minecraft/worldgen/noise/powder_snow.json new file mode 100644 index 00000000..b51be97c --- /dev/null +++ b/data/minecraft/worldgen/noise/powder_snow.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/ridge.json b/data/minecraft/worldgen/noise/ridge.json new file mode 100644 index 00000000..c935aa7f --- /dev/null +++ b/data/minecraft/worldgen/noise/ridge.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.0, + 2.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/soul_sand_layer.json b/data/minecraft/worldgen/noise/soul_sand_layer.json new file mode 100644 index 00000000..64adfc30 --- /dev/null +++ b/data/minecraft/worldgen/noise/soul_sand_layer.json @@ -0,0 +1,14 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.013333333333333334 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_2d.json b/data/minecraft/worldgen/noise/spaghetti_2d.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_2d.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_2d_elevation.json b/data/minecraft/worldgen/noise/spaghetti_2d_elevation.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_2d_elevation.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_2d_modulator.json b/data/minecraft/worldgen/noise/spaghetti_2d_modulator.json new file mode 100644 index 00000000..90d5f80b --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_2d_modulator.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -11 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_2d_thickness.json b/data/minecraft/worldgen/noise/spaghetti_2d_thickness.json new file mode 100644 index 00000000..90d5f80b --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_2d_thickness.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -11 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_3d_1.json b/data/minecraft/worldgen/noise/spaghetti_3d_1.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_3d_1.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_3d_2.json b/data/minecraft/worldgen/noise/spaghetti_3d_2.json new file mode 100644 index 00000000..0701b239 --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_3d_2.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -7 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_3d_rarity.json b/data/minecraft/worldgen/noise/spaghetti_3d_rarity.json new file mode 100644 index 00000000..90d5f80b --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_3d_rarity.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -11 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_3d_thickness.json b/data/minecraft/worldgen/noise/spaghetti_3d_thickness.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_3d_thickness.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_roughness.json b/data/minecraft/worldgen/noise/spaghetti_roughness.json new file mode 100644 index 00000000..9968798a --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_roughness.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -5 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/spaghetti_roughness_modulator.json b/data/minecraft/worldgen/noise/spaghetti_roughness_modulator.json new file mode 100644 index 00000000..897544f9 --- /dev/null +++ b/data/minecraft/worldgen/noise/spaghetti_roughness_modulator.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/surface.json b/data/minecraft/worldgen/noise/surface.json new file mode 100644 index 00000000..492e6c81 --- /dev/null +++ b/data/minecraft/worldgen/noise/surface.json @@ -0,0 +1,8 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 1.0 + ], + "firstOctave": -6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/surface_secondary.json b/data/minecraft/worldgen/noise/surface_secondary.json new file mode 100644 index 00000000..71bbea94 --- /dev/null +++ b/data/minecraft/worldgen/noise/surface_secondary.json @@ -0,0 +1,9 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 0.0, + 1.0 + ], + "firstOctave": -6 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/surface_swamp.json b/data/minecraft/worldgen/noise/surface_swamp.json new file mode 100644 index 00000000..d6da1547 --- /dev/null +++ b/data/minecraft/worldgen/noise/surface_swamp.json @@ -0,0 +1,6 @@ +{ + "amplitudes": [ + 1.0 + ], + "firstOctave": -2 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/temperature.json b/data/minecraft/worldgen/noise/temperature.json new file mode 100644 index 00000000..ddcab842 --- /dev/null +++ b/data/minecraft/worldgen/noise/temperature.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.5, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + "firstOctave": -10 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/temperature_large.json b/data/minecraft/worldgen/noise/temperature_large.json new file mode 100644 index 00000000..184e5899 --- /dev/null +++ b/data/minecraft/worldgen/noise/temperature_large.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.5, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + "firstOctave": -12 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/vegetation.json b/data/minecraft/worldgen/noise/vegetation.json new file mode 100644 index 00000000..320e418e --- /dev/null +++ b/data/minecraft/worldgen/noise/vegetation.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "firstOctave": -8 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise/vegetation_large.json b/data/minecraft/worldgen/noise/vegetation_large.json new file mode 100644 index 00000000..1f4daef0 --- /dev/null +++ b/data/minecraft/worldgen/noise/vegetation_large.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "firstOctave": -10 +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise_settings/amplified.json b/data/minecraft/worldgen/noise_settings/amplified.json new file mode 100644 index 00000000..510ab7a1 --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/amplified.json @@ -0,0 +1,2542 @@ +{ + "aquifers_enabled": true, + "default_block": { + "Name": "minecraft:stone" + }, + "default_fluid": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + }, + "disable_mob_generation": false, + "legacy_random_source": false, + "noise": { + "height": 384, + "min_y": -64, + "size_horizontal": 1, + "size_vertical": 2 + }, + "noise_router": { + "barrier": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_barrier", + "xz_scale": 1.0, + "y_scale": 0.5 + }, + "continents": "minecraft:overworld/continents", + "depth": "minecraft:overworld_amplified/depth", + "erosion": "minecraft:overworld/erosion", + "final_density": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": 0.4, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -64, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.4, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 304, + "to_value": 0.0, + "to_y": 320 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld_amplified/sloped_cheese", + "max_exclusive": 1.5625, + "min_inclusive": -1000000.0, + "when_in_range": { + "type": "minecraft:min", + "argument1": "minecraft:overworld_amplified/sloped_cheese", + "argument2": { + "type": "minecraft:mul", + "argument1": 5.0, + "argument2": "minecraft:overworld/caves/entrances" + } + }, + "when_out_of_range": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:square", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:cave_layer", + "xz_scale": 1.0, + "y_scale": 8.0 + } + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 0.27, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:cave_cheese", + "xz_scale": 1.0, + "y_scale": 0.6666666666666666 + } + }, + "max": 1.0, + "min": -1.0 + }, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 1.5, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.64, + "argument2": "minecraft:overworld_amplified/sloped_cheese" + } + }, + "max": 0.5, + "min": 0.0 + } + } + }, + "argument2": "minecraft:overworld/caves/entrances" + }, + "argument2": { + "type": "minecraft:add", + "argument1": "minecraft:overworld/caves/spaghetti_2d", + "argument2": "minecraft:overworld/caves/spaghetti_roughness_function" + } + }, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld/caves/pillars", + "max_exclusive": 0.03, + "min_inclusive": -1000000.0, + "when_in_range": -1000000.0, + "when_out_of_range": "minecraft:overworld/caves/pillars" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "argument2": "minecraft:overworld/caves/noodle" + }, + "fluid_level_floodedness": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_floodedness", + "xz_scale": 1.0, + "y_scale": 0.67 + }, + "fluid_level_spread": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_spread", + "xz_scale": 1.0, + "y_scale": 0.7142857142857143 + }, + "initial_density_without_jaggedness": { + "type": "minecraft:add", + "argument1": 0.4, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -64, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.4, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 304, + "to_value": 0.0, + "to_y": 320 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": -0.703125, + "argument2": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": "minecraft:overworld_amplified/depth", + "argument2": { + "type": "minecraft:cache_2d", + "argument": "minecraft:overworld_amplified/factor" + } + } + } + } + }, + "max": 64.0, + "min": -64.0 + } + } + } + } + } + } + }, + "lava": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_lava", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "ridges": "minecraft:overworld/ridges", + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vein_gap": { + "type": "minecraft:noise", + "noise": "minecraft:ore_gap", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "vein_ridged": { + "type": "minecraft:add", + "argument1": -0.07999999821186066, + "argument2": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_a", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + }, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_b", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + } + } + }, + "vein_toggle": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_veininess", + "xz_scale": 1.5, + "y_scale": 1.5 + }, + "when_out_of_range": 0.0 + } + } + }, + "ore_veins_enabled": true, + "sea_level": 63, + "spawn_target": [ + { + "continentalness": [ + -0.11, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + -0.16 + ] + }, + { + "continentalness": [ + -0.11, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + 0.16, + 1.0 + ] + } + ], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "above_bottom": 5 + }, + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:above_preliminary_surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 97 + }, + "surface_depth_multiplier": 2 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 62 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 60 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 256 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:temperature" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": 0.0, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": 0.0, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.06060606060606061, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.11515151515151514, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:ice_spikes" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mushroom_fields" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mycelium", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": -0.5, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": -0.0625, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 6, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 30, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks", + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "absolute": 8 + }, + "random_name": "minecraft:deepslate", + "true_at_and_below": { + "absolute": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise_settings/caves.json b/data/minecraft/worldgen/noise_settings/caves.json new file mode 100644 index 00000000..09f47745 --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/caves.json @@ -0,0 +1,2277 @@ +{ + "aquifers_enabled": false, + "default_block": { + "Name": "minecraft:stone" + }, + "default_fluid": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + }, + "disable_mob_generation": false, + "legacy_random_source": true, + "noise": { + "height": 192, + "min_y": -64, + "size_horizontal": 1, + "size_vertical": 2 + }, + "noise_router": { + "barrier": 0.0, + "continents": 0.0, + "depth": 0.0, + "erosion": 0.0, + "final_density": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": 2.5, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -72, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -2.5, + "argument2": { + "type": "minecraft:add", + "argument1": 0.9375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 104, + "to_value": 0.0, + "to_y": 128 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.9375, + "argument2": "minecraft:nether/base_3d_noise" + } + } + } + } + } + } + } + } + } + }, + "fluid_level_floodedness": 0.0, + "fluid_level_spread": 0.0, + "initial_density_without_jaggedness": 0.0, + "lava": 0.0, + "ridges": 0.0, + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vein_gap": 0.0, + "vein_ridged": 0.0, + "vein_toggle": 0.0 + }, + "ore_veins_enabled": false, + "sea_level": 32, + "spawn_target": [], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "below_top": 0 + }, + "random_name": "minecraft:bedrock_roof", + "true_at_and_below": { + "below_top": 5 + } + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "above_bottom": 5 + }, + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 97 + }, + "surface_depth_multiplier": 2 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 62 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 60 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 256 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:temperature" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": 0.0, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": 0.0, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.06060606060606061, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.11515151515151514, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:ice_spikes" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mushroom_fields" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mycelium", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": -0.5, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": -0.0625, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 6, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 30, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks", + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "absolute": 8 + }, + "random_name": "minecraft:deepslate", + "true_at_and_below": { + "absolute": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise_settings/end.json b/data/minecraft/worldgen/noise_settings/end.json new file mode 100644 index 00000000..2a3558fd --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/end.json @@ -0,0 +1,142 @@ +{ + "aquifers_enabled": false, + "default_block": { + "Name": "minecraft:end_stone" + }, + "default_fluid": { + "Name": "minecraft:air" + }, + "disable_mob_generation": true, + "legacy_random_source": true, + "noise": { + "height": 128, + "min_y": 0, + "size_horizontal": 2, + "size_vertical": 1 + }, + "noise_router": { + "barrier": 0.0, + "continents": 0.0, + "depth": 0.0, + "erosion": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:end_islands" + } + }, + "final_density": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": -0.234375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": 4, + "to_value": 1.0, + "to_y": 32 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.234375, + "argument2": { + "type": "minecraft:add", + "argument1": -23.4375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 56, + "to_value": 0.0, + "to_y": 312 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 23.4375, + "argument2": "minecraft:end/sloped_cheese" + } + } + } + } + } + } + } + } + } + }, + "fluid_level_floodedness": 0.0, + "fluid_level_spread": 0.0, + "initial_density_without_jaggedness": { + "type": "minecraft:add", + "argument1": -0.234375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": 4, + "to_value": 1.0, + "to_y": 32 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.234375, + "argument2": { + "type": "minecraft:add", + "argument1": -23.4375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 56, + "to_value": 0.0, + "to_y": 312 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 23.4375, + "argument2": { + "type": "minecraft:add", + "argument1": -0.703125, + "argument2": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:end_islands" + } + } + } + } + } + } + } + } + }, + "lava": 0.0, + "ridges": 0.0, + "temperature": 0.0, + "vegetation": 0.0, + "vein_gap": 0.0, + "vein_ridged": 0.0, + "vein_toggle": 0.0 + }, + "ore_veins_enabled": false, + "sea_level": 0, + "spawn_target": [], + "surface_rule": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:end_stone" + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise_settings/floating_islands.json b/data/minecraft/worldgen/noise_settings/floating_islands.json new file mode 100644 index 00000000..da39c4aa --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/floating_islands.json @@ -0,0 +1,2236 @@ +{ + "aquifers_enabled": false, + "default_block": { + "Name": "minecraft:stone" + }, + "default_fluid": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + }, + "disable_mob_generation": false, + "legacy_random_source": true, + "noise": { + "height": 256, + "min_y": 0, + "size_horizontal": 2, + "size_vertical": 1 + }, + "noise_router": { + "barrier": 0.0, + "continents": 0.0, + "depth": 0.0, + "erosion": 0.0, + "final_density": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": -0.234375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": 4, + "to_value": 1.0, + "to_y": 32 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.234375, + "argument2": { + "type": "minecraft:add", + "argument1": -23.4375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 184, + "to_value": 0.0, + "to_y": 440 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 23.4375, + "argument2": "minecraft:end/base_3d_noise" + } + } + } + } + } + } + } + } + } + }, + "fluid_level_floodedness": 0.0, + "fluid_level_spread": 0.0, + "initial_density_without_jaggedness": 0.0, + "lava": 0.0, + "ridges": 0.0, + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vein_gap": 0.0, + "vein_ridged": 0.0, + "vein_toggle": 0.0 + }, + "ore_veins_enabled": false, + "sea_level": -64, + "spawn_target": [], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 97 + }, + "surface_depth_multiplier": 2 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 62 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 60 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 256 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:temperature" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": 0.0, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": 0.0, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.06060606060606061, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.11515151515151514, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:ice_spikes" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mushroom_fields" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mycelium", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": -0.5, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": -0.0625, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 6, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 30, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks", + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "absolute": 8 + }, + "random_name": "minecraft:deepslate", + "true_at_and_below": { + "absolute": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise_settings/large_biomes.json b/data/minecraft/worldgen/noise_settings/large_biomes.json new file mode 100644 index 00000000..20c19ce5 --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/large_biomes.json @@ -0,0 +1,2542 @@ +{ + "aquifers_enabled": true, + "default_block": { + "Name": "minecraft:stone" + }, + "default_fluid": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + }, + "disable_mob_generation": false, + "legacy_random_source": false, + "noise": { + "height": 384, + "min_y": -64, + "size_horizontal": 1, + "size_vertical": 2 + }, + "noise_router": { + "barrier": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_barrier", + "xz_scale": 1.0, + "y_scale": 0.5 + }, + "continents": "minecraft:overworld_large_biomes/continents", + "depth": "minecraft:overworld_large_biomes/depth", + "erosion": "minecraft:overworld_large_biomes/erosion", + "final_density": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": 0.1171875, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -64, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.1171875, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 240, + "to_value": 0.0, + "to_y": 256 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld_large_biomes/sloped_cheese", + "max_exclusive": 1.5625, + "min_inclusive": -1000000.0, + "when_in_range": { + "type": "minecraft:min", + "argument1": "minecraft:overworld_large_biomes/sloped_cheese", + "argument2": { + "type": "minecraft:mul", + "argument1": 5.0, + "argument2": "minecraft:overworld/caves/entrances" + } + }, + "when_out_of_range": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:square", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:cave_layer", + "xz_scale": 1.0, + "y_scale": 8.0 + } + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 0.27, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:cave_cheese", + "xz_scale": 1.0, + "y_scale": 0.6666666666666666 + } + }, + "max": 1.0, + "min": -1.0 + }, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 1.5, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.64, + "argument2": "minecraft:overworld_large_biomes/sloped_cheese" + } + }, + "max": 0.5, + "min": 0.0 + } + } + }, + "argument2": "minecraft:overworld/caves/entrances" + }, + "argument2": { + "type": "minecraft:add", + "argument1": "minecraft:overworld/caves/spaghetti_2d", + "argument2": "minecraft:overworld/caves/spaghetti_roughness_function" + } + }, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld/caves/pillars", + "max_exclusive": 0.03, + "min_inclusive": -1000000.0, + "when_in_range": -1000000.0, + "when_out_of_range": "minecraft:overworld/caves/pillars" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "argument2": "minecraft:overworld/caves/noodle" + }, + "fluid_level_floodedness": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_floodedness", + "xz_scale": 1.0, + "y_scale": 0.67 + }, + "fluid_level_spread": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_spread", + "xz_scale": 1.0, + "y_scale": 0.7142857142857143 + }, + "initial_density_without_jaggedness": { + "type": "minecraft:add", + "argument1": 0.1171875, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -64, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.1171875, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 240, + "to_value": 0.0, + "to_y": 256 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": -0.703125, + "argument2": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": "minecraft:overworld_large_biomes/depth", + "argument2": { + "type": "minecraft:cache_2d", + "argument": "minecraft:overworld_large_biomes/factor" + } + } + } + } + }, + "max": 64.0, + "min": -64.0 + } + } + } + } + } + } + }, + "lava": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_lava", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "ridges": "minecraft:overworld/ridges", + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature_large", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation_large", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vein_gap": { + "type": "minecraft:noise", + "noise": "minecraft:ore_gap", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "vein_ridged": { + "type": "minecraft:add", + "argument1": -0.07999999821186066, + "argument2": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_a", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + }, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_b", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + } + } + }, + "vein_toggle": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_veininess", + "xz_scale": 1.5, + "y_scale": 1.5 + }, + "when_out_of_range": 0.0 + } + } + }, + "ore_veins_enabled": true, + "sea_level": 63, + "spawn_target": [ + { + "continentalness": [ + -0.11, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + -0.16 + ] + }, + { + "continentalness": [ + -0.11, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + 0.16, + 1.0 + ] + } + ], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "above_bottom": 5 + }, + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:above_preliminary_surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 97 + }, + "surface_depth_multiplier": 2 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 62 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 60 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 256 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:temperature" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": 0.0, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": 0.0, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.06060606060606061, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.11515151515151514, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:ice_spikes" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mushroom_fields" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mycelium", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": -0.5, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": -0.0625, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 6, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 30, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks", + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "absolute": 8 + }, + "random_name": "minecraft:deepslate", + "true_at_and_below": { + "absolute": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise_settings/nether.json b/data/minecraft/worldgen/noise_settings/nether.json new file mode 100644 index 00000000..6c6d7e9b --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/nether.json @@ -0,0 +1,737 @@ +{ + "aquifers_enabled": false, + "default_block": { + "Name": "minecraft:netherrack" + }, + "default_fluid": { + "Name": "minecraft:lava", + "Properties": { + "level": "0" + } + }, + "disable_mob_generation": false, + "legacy_random_source": true, + "noise": { + "height": 128, + "min_y": 0, + "size_horizontal": 1, + "size_vertical": 2 + }, + "noise_router": { + "barrier": 0.0, + "continents": 0.0, + "depth": 0.0, + "erosion": 0.0, + "final_density": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": 2.5, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -8, + "to_value": 1.0, + "to_y": 24 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -2.5, + "argument2": { + "type": "minecraft:add", + "argument1": 0.9375, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 104, + "to_value": 0.0, + "to_y": 128 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.9375, + "argument2": "minecraft:nether/base_3d_noise" + } + } + } + } + } + } + } + } + } + }, + "fluid_level_floodedness": 0.0, + "fluid_level_spread": 0.0, + "initial_density_without_jaggedness": 0.0, + "lava": 0.0, + "ridges": 0.0, + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vein_gap": 0.0, + "vein_ridged": 0.0, + "vein_toggle": 0.0 + }, + "ore_veins_enabled": false, + "sea_level": 32, + "spawn_target": [], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "above_bottom": 5 + }, + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "below_top": 0 + }, + "random_name": "minecraft:bedrock_roof", + "true_at_and_below": { + "below_top": 5 + } + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "below_top": 5 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:netherrack" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:basalt_deltas" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:basalt", + "Properties": { + "axis": "y" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.012, + "noise": "minecraft:patch" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 30 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 35 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:nether_state_selector" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:basalt", + "Properties": { + "axis": "y" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:blackstone" + } + } + ] + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:soul_sand_valley" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:nether_state_selector" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:soul_sand" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:soul_soil" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.012, + "noise": "minecraft:patch" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 30 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 35 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:nether_state_selector" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:soul_sand" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:soul_soil" + } + } + ] + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 32 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:lava", + "Properties": { + "level": "0" + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warped_forest" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.54, + "noise": "minecraft:netherrack" + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 31 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 1.17, + "noise": "minecraft:nether_wart" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:warped_wart_block" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:warped_nylium" + } + } + ] + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:crimson_forest" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.54, + "noise": "minecraft:netherrack" + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 31 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 1.17, + "noise": "minecraft:nether_wart" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:nether_wart_block" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:crimson_nylium" + } + } + ] + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:nether_wastes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.012, + "noise": "minecraft:soul_sand_layer" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 30 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 35 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:soul_sand" + } + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:netherrack" + } + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 31 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 35 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.012, + "noise": "minecraft:gravel_layer" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 32 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + } + ] + } + } + } + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:netherrack" + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/noise_settings/overworld.json b/data/minecraft/worldgen/noise_settings/overworld.json new file mode 100644 index 00000000..afacea32 --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/overworld.json @@ -0,0 +1,2542 @@ +{ + "aquifers_enabled": true, + "default_block": { + "Name": "minecraft:stone" + }, + "default_fluid": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + }, + "disable_mob_generation": false, + "legacy_random_source": false, + "noise": { + "height": 384, + "min_y": -64, + "size_horizontal": 1, + "size_vertical": 2 + }, + "noise_router": { + "barrier": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_barrier", + "xz_scale": 1.0, + "y_scale": 0.5 + }, + "continents": "minecraft:overworld/continents", + "depth": "minecraft:overworld/depth", + "erosion": "minecraft:overworld/erosion", + "final_density": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:squeeze", + "argument": { + "type": "minecraft:mul", + "argument1": 0.64, + "argument2": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:blend_density", + "argument": { + "type": "minecraft:add", + "argument1": 0.1171875, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -64, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.1171875, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 240, + "to_value": 0.0, + "to_y": 256 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld/sloped_cheese", + "max_exclusive": 1.5625, + "min_inclusive": -1000000.0, + "when_in_range": { + "type": "minecraft:min", + "argument1": "minecraft:overworld/sloped_cheese", + "argument2": { + "type": "minecraft:mul", + "argument1": 5.0, + "argument2": "minecraft:overworld/caves/entrances" + } + }, + "when_out_of_range": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:square", + "argument": { + "type": "minecraft:noise", + "noise": "minecraft:cave_layer", + "xz_scale": 1.0, + "y_scale": 8.0 + } + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 0.27, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:cave_cheese", + "xz_scale": 1.0, + "y_scale": 0.6666666666666666 + } + }, + "max": 1.0, + "min": -1.0 + }, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": 1.5, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.64, + "argument2": "minecraft:overworld/sloped_cheese" + } + }, + "max": 0.5, + "min": 0.0 + } + } + }, + "argument2": "minecraft:overworld/caves/entrances" + }, + "argument2": { + "type": "minecraft:add", + "argument1": "minecraft:overworld/caves/spaghetti_2d", + "argument2": "minecraft:overworld/caves/spaghetti_roughness_function" + } + }, + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:overworld/caves/pillars", + "max_exclusive": 0.03, + "min_inclusive": -1000000.0, + "when_in_range": -1000000.0, + "when_out_of_range": "minecraft:overworld/caves/pillars" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "argument2": "minecraft:overworld/caves/noodle" + }, + "fluid_level_floodedness": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_floodedness", + "xz_scale": 1.0, + "y_scale": 0.67 + }, + "fluid_level_spread": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_spread", + "xz_scale": 1.0, + "y_scale": 0.7142857142857143 + }, + "initial_density_without_jaggedness": { + "type": "minecraft:add", + "argument1": 0.1171875, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -64, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.1171875, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 240, + "to_value": 0.0, + "to_y": 256 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": -0.703125, + "argument2": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": "minecraft:overworld/depth", + "argument2": { + "type": "minecraft:cache_2d", + "argument": "minecraft:overworld/factor" + } + } + } + } + }, + "max": 64.0, + "min": -64.0 + } + } + } + } + } + } + }, + "lava": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_lava", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "ridges": "minecraft:overworld/ridges", + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.25, + "y_scale": 0.0 + }, + "vein_gap": { + "type": "minecraft:noise", + "noise": "minecraft:ore_gap", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "vein_ridged": { + "type": "minecraft:add", + "argument1": -0.07999999821186066, + "argument2": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_a", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + }, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_b", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + } + } + }, + "vein_toggle": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_veininess", + "xz_scale": 1.5, + "y_scale": 1.5 + }, + "when_out_of_range": 0.0 + } + } + }, + "ore_veins_enabled": true, + "sea_level": 63, + "spawn_target": [ + { + "continentalness": [ + -0.11, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + -0.16 + ] + }, + { + "continentalness": [ + -0.11, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + 0.16, + 1.0 + ] + } + ], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "above_bottom": 5 + }, + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:above_preliminary_surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 97 + }, + "surface_depth_multiplier": 2 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 62 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 60 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 256 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:temperature" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": 0.0, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": 0.0, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.06060606060606061, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.11515151515151514, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:ice_spikes" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mushroom_fields" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mycelium", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": -0.5, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": -0.0625, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157E308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 6, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 30, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks", + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "absolute": 8 + }, + "random_name": "minecraft:deepslate", + "true_at_and_below": { + "absolute": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/acacia.json b/data/minecraft/worldgen/placed_feature/acacia.json new file mode 100644 index 00000000..ee4d0d43 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/acacia.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:acacia", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:acacia_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/acacia_checked.json b/data/minecraft/worldgen/placed_feature/acacia_checked.json new file mode 100644 index 00000000..ee4d0d43 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/acacia_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:acacia", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:acacia_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/amethyst_geode.json b/data/minecraft/worldgen/placed_feature/amethyst_geode.json new file mode 100644 index 00000000..3a21bb47 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/amethyst_geode.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:amethyst_geode", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 24 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 30 + }, + "min_inclusive": { + "above_bottom": 6 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/bamboo.json b/data/minecraft/worldgen/placed_feature/bamboo.json new file mode 100644 index 00000000..65e79c18 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/bamboo.json @@ -0,0 +1,21 @@ +{ + "feature": "minecraft:bamboo_some_podzol", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_factor": 80.0, + "noise_offset": 0.3, + "noise_to_count_ratio": 160 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/bamboo_light.json b/data/minecraft/worldgen/placed_feature/bamboo_light.json new file mode 100644 index 00000000..e827cc28 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/bamboo_light.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:bamboo_no_podzol", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/bamboo_vegetation.json b/data/minecraft/worldgen/placed_feature/bamboo_vegetation.json new file mode 100644 index 00000000..9da04ec6 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/bamboo_vegetation.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:bamboo_vegetation", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 30, + "weight": 9 + }, + { + "data": 31, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/basalt_blobs.json b/data/minecraft/worldgen/placed_feature/basalt_blobs.json new file mode 100644 index 00000000..369daf31 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/basalt_blobs.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:basalt_blobs", + "placement": [ + { + "type": "minecraft:count", + "count": 75 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/basalt_pillar.json b/data/minecraft/worldgen/placed_feature/basalt_pillar.json new file mode 100644 index 00000000..9505c449 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/basalt_pillar.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:basalt_pillar", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/birch_bees_0002.json b/data/minecraft/worldgen/placed_feature/birch_bees_0002.json new file mode 100644 index 00000000..fafa3b47 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/birch_bees_0002.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:birch_bees_0002", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:birch_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/birch_bees_002.json b/data/minecraft/worldgen/placed_feature/birch_bees_002.json new file mode 100644 index 00000000..92cbaffb --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/birch_bees_002.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:birch_bees_002", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:birch_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/birch_checked.json b/data/minecraft/worldgen/placed_feature/birch_checked.json new file mode 100644 index 00000000..4171ea91 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/birch_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:birch", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:birch_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/birch_tall.json b/data/minecraft/worldgen/placed_feature/birch_tall.json new file mode 100644 index 00000000..498eecc4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/birch_tall.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:birch_tall", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/blackstone_blobs.json b/data/minecraft/worldgen/placed_feature/blackstone_blobs.json new file mode 100644 index 00000000..352f73b9 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/blackstone_blobs.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:blackstone_blobs", + "placement": [ + { + "type": "minecraft:count", + "count": 25 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/blue_ice.json b/data/minecraft/worldgen/placed_feature/blue_ice.json new file mode 100644 index 00000000..b2901812 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/blue_ice.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:blue_ice", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 19, + "min_inclusive": 0 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 61 + }, + "min_inclusive": { + "absolute": 30 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/brown_mushroom_nether.json b/data/minecraft/worldgen/placed_feature/brown_mushroom_nether.json new file mode 100644 index 00000000..b4dc63f6 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/brown_mushroom_nether.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:patch_brown_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/brown_mushroom_normal.json b/data/minecraft/worldgen/placed_feature/brown_mushroom_normal.json new file mode 100644 index 00000000..15399bcc --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/brown_mushroom_normal.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_brown_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 256 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/brown_mushroom_old_growth.json b/data/minecraft/worldgen/placed_feature/brown_mushroom_old_growth.json new file mode 100644 index 00000000..19f4990c --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/brown_mushroom_old_growth.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:patch_brown_mushroom", + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:rarity_filter", + "chance": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/brown_mushroom_swamp.json b/data/minecraft/worldgen/placed_feature/brown_mushroom_swamp.json new file mode 100644 index 00000000..2a061898 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/brown_mushroom_swamp.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_brown_mushroom", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/brown_mushroom_taiga.json b/data/minecraft/worldgen/placed_feature/brown_mushroom_taiga.json new file mode 100644 index 00000000..aebcdda1 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/brown_mushroom_taiga.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_brown_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/cave_vines.json b/data/minecraft/worldgen/placed_feature/cave_vines.json new file mode 100644 index 00000000..2f68e8f2 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/cave_vines.json @@ -0,0 +1,45 @@ +{ + "feature": "minecraft:cave_vine", + "placement": [ + { + "type": "minecraft:count", + "count": 188 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction_of_search": "up", + "max_steps": 12, + "target_condition": { + "type": "minecraft:has_sturdy_face", + "direction": "down" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -1 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/cherry_bees_005.json b/data/minecraft/worldgen/placed_feature/cherry_bees_005.json new file mode 100644 index 00000000..1939ba11 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/cherry_bees_005.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:cherry_bees_005", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:cherry_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/cherry_checked.json b/data/minecraft/worldgen/placed_feature/cherry_checked.json new file mode 100644 index 00000000..36d0536a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/cherry_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:cherry", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:cherry_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/chorus_plant.json b/data/minecraft/worldgen/placed_feature/chorus_plant.json new file mode 100644 index 00000000..e6971203 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/chorus_plant.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:chorus_plant", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 0 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/classic_vines_cave_feature.json b/data/minecraft/worldgen/placed_feature/classic_vines_cave_feature.json new file mode 100644 index 00000000..77af5731 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/classic_vines_cave_feature.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:vines", + "placement": [ + { + "type": "minecraft:count", + "count": 256 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/crimson_forest_vegetation.json b/data/minecraft/worldgen/placed_feature/crimson_forest_vegetation.json new file mode 100644 index 00000000..2b2bd018 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/crimson_forest_vegetation.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:crimson_forest_vegetation", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 6 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/crimson_fungi.json b/data/minecraft/worldgen/placed_feature/crimson_fungi.json new file mode 100644 index 00000000..c805ba3a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/crimson_fungi.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:crimson_fungus", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 8 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/dark_forest_vegetation.json b/data/minecraft/worldgen/placed_feature/dark_forest_vegetation.json new file mode 100644 index 00000000..1a69bc57 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/dark_forest_vegetation.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:dark_forest_vegetation", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/dark_oak_checked.json b/data/minecraft/worldgen/placed_feature/dark_oak_checked.json new file mode 100644 index 00000000..bbfac2a9 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/dark_oak_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:dark_oak", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:dark_oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/delta.json b/data/minecraft/worldgen/placed_feature/delta.json new file mode 100644 index 00000000..b483f400 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/delta.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:delta", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 40 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/desert_well.json b/data/minecraft/worldgen/placed_feature/desert_well.json new file mode 100644 index 00000000..972623c1 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/desert_well.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:desert_well", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 1000 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/disk_clay.json b/data/minecraft/worldgen/placed_feature/disk_clay.json new file mode 100644 index 00000000..7bb5f696 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/disk_clay.json @@ -0,0 +1,22 @@ +{ + "feature": "minecraft:disk_clay", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_fluids", + "fluids": "minecraft:water" + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/disk_grass.json b/data/minecraft/worldgen/placed_feature/disk_grass.json new file mode 100644 index 00000000..df6d29a8 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/disk_grass.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:disk_grass", + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -1 + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:mud" + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/disk_gravel.json b/data/minecraft/worldgen/placed_feature/disk_gravel.json new file mode 100644 index 00000000..f6448e5e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/disk_gravel.json @@ -0,0 +1,22 @@ +{ + "feature": "minecraft:disk_gravel", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_fluids", + "fluids": "minecraft:water" + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/disk_sand.json b/data/minecraft/worldgen/placed_feature/disk_sand.json new file mode 100644 index 00000000..88df19ea --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/disk_sand.json @@ -0,0 +1,26 @@ +{ + "feature": "minecraft:disk_sand", + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_fluids", + "fluids": "minecraft:water" + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/dripstone_cluster.json b/data/minecraft/worldgen/placed_feature/dripstone_cluster.json new file mode 100644 index 00000000..b13083bb --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/dripstone_cluster.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:dripstone_cluster", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 96, + "min_inclusive": 48 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/end_gateway_return.json b/data/minecraft/worldgen/placed_feature/end_gateway_return.json new file mode 100644 index 00000000..d0c7c6c4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/end_gateway_return.json @@ -0,0 +1,28 @@ +{ + "feature": "minecraft:end_gateway_return", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 700 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:uniform", + "max_inclusive": 9, + "min_inclusive": 3 + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/end_island_decorated.json b/data/minecraft/worldgen/placed_feature/end_island_decorated.json new file mode 100644 index 00000000..453397dd --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/end_island_decorated.json @@ -0,0 +1,43 @@ +{ + "feature": "minecraft:end_island", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 14 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 1, + "weight": 3 + }, + { + "data": 2, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 70 + }, + "min_inclusive": { + "absolute": 55 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/end_platform.json b/data/minecraft/worldgen/placed_feature/end_platform.json new file mode 100644 index 00000000..77cbe112 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/end_platform.json @@ -0,0 +1,18 @@ +{ + "feature": "minecraft:end_platform", + "placement": [ + { + "type": "minecraft:fixed_placement", + "positions": [ + [ + 100, + 49, + 0 + ] + ] + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/end_spike.json b/data/minecraft/worldgen/placed_feature/end_spike.json new file mode 100644 index 00000000..8140240a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/end_spike.json @@ -0,0 +1,8 @@ +{ + "feature": "minecraft:end_spike", + "placement": [ + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/fancy_oak_bees.json b/data/minecraft/worldgen/placed_feature/fancy_oak_bees.json new file mode 100644 index 00000000..952dcadc --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/fancy_oak_bees.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:fancy_oak_bees", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/fancy_oak_bees_0002.json b/data/minecraft/worldgen/placed_feature/fancy_oak_bees_0002.json new file mode 100644 index 00000000..2b07c958 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/fancy_oak_bees_0002.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:fancy_oak_bees_0002", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/fancy_oak_bees_002.json b/data/minecraft/worldgen/placed_feature/fancy_oak_bees_002.json new file mode 100644 index 00000000..4e4defd7 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/fancy_oak_bees_002.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:fancy_oak_bees_002", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/fancy_oak_checked.json b/data/minecraft/worldgen/placed_feature/fancy_oak_checked.json new file mode 100644 index 00000000..b13ef1d2 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/fancy_oak_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:fancy_oak", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_cherry.json b/data/minecraft/worldgen/placed_feature/flower_cherry.json new file mode 100644 index 00000000..8083230c --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_cherry.json @@ -0,0 +1,21 @@ +{ + "feature": "minecraft:flower_cherry", + "placement": [ + { + "type": "minecraft:noise_threshold_count", + "above_noise": 10, + "below_noise": 5, + "noise_level": -0.8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_default.json b/data/minecraft/worldgen/placed_feature/flower_default.json new file mode 100644 index 00000000..63bbb515 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_default.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:flower_default", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_flower_forest.json b/data/minecraft/worldgen/placed_feature/flower_flower_forest.json new file mode 100644 index 00000000..1e42c869 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_flower_forest.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:flower_flower_forest", + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_forest_flowers.json b/data/minecraft/worldgen/placed_feature/flower_forest_flowers.json new file mode 100644 index 00000000..3c62153b --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_forest_flowers.json @@ -0,0 +1,32 @@ +{ + "feature": "minecraft:forest_flowers", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:clamped", + "max_inclusive": 3, + "min_inclusive": 0, + "source": { + "type": "minecraft:uniform", + "max_inclusive": 3, + "min_inclusive": -1 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_meadow.json b/data/minecraft/worldgen/placed_feature/flower_meadow.json new file mode 100644 index 00000000..fac12db4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_meadow.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:flower_meadow", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_plain.json b/data/minecraft/worldgen/placed_feature/flower_plain.json new file mode 100644 index 00000000..a1e96238 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_plain.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:flower_plain", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_plains.json b/data/minecraft/worldgen/placed_feature/flower_plains.json new file mode 100644 index 00000000..4775be4f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_plains.json @@ -0,0 +1,25 @@ +{ + "feature": "minecraft:flower_plain", + "placement": [ + { + "type": "minecraft:noise_threshold_count", + "above_noise": 4, + "below_noise": 15, + "noise_level": -0.8 + }, + { + "type": "minecraft:rarity_filter", + "chance": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_swamp.json b/data/minecraft/worldgen/placed_feature/flower_swamp.json new file mode 100644 index 00000000..35cc701a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_swamp.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:flower_swamp", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/flower_warm.json b/data/minecraft/worldgen/placed_feature/flower_warm.json new file mode 100644 index 00000000..f669c159 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/flower_warm.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:flower_default", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/forest_flowers.json b/data/minecraft/worldgen/placed_feature/forest_flowers.json new file mode 100644 index 00000000..7d5d4df8 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/forest_flowers.json @@ -0,0 +1,32 @@ +{ + "feature": "minecraft:forest_flowers", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:clamped", + "max_inclusive": 1, + "min_inclusive": 0, + "source": { + "type": "minecraft:uniform", + "max_inclusive": 1, + "min_inclusive": -3 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/forest_rock.json b/data/minecraft/worldgen/placed_feature/forest_rock.json new file mode 100644 index 00000000..db95ee2a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/forest_rock.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:forest_rock", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/fossil_lower.json b/data/minecraft/worldgen/placed_feature/fossil_lower.json new file mode 100644 index 00000000..d1c7d385 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/fossil_lower.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:fossil_diamonds", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 64 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": -8 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/fossil_upper.json b/data/minecraft/worldgen/placed_feature/fossil_upper.json new file mode 100644 index 00000000..d6f4a4f2 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/fossil_upper.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:fossil_coal", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 64 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/freeze_top_layer.json b/data/minecraft/worldgen/placed_feature/freeze_top_layer.json new file mode 100644 index 00000000..d95d87df --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/freeze_top_layer.json @@ -0,0 +1,8 @@ +{ + "feature": "minecraft:freeze_top_layer", + "placement": [ + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/glow_lichen.json b/data/minecraft/worldgen/placed_feature/glow_lichen.json new file mode 100644 index 00000000..292b0645 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/glow_lichen.json @@ -0,0 +1,36 @@ +{ + "feature": "minecraft:glow_lichen", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 157, + "min_inclusive": 104 + } + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_relative_threshold_filter", + "heightmap": "OCEAN_FLOOR_WG", + "max_inclusive": -13 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/glowstone.json b/data/minecraft/worldgen/placed_feature/glowstone.json new file mode 100644 index 00000000..560063db --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/glowstone.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:glowstone_extra", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/glowstone_extra.json b/data/minecraft/worldgen/placed_feature/glowstone_extra.json new file mode 100644 index 00000000..ba2d4f40 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/glowstone_extra.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:glowstone_extra", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:biased_to_bottom", + "max_inclusive": 9, + "min_inclusive": 0 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 4 + }, + "min_inclusive": { + "above_bottom": 4 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/grass_bonemeal.json b/data/minecraft/worldgen/placed_feature/grass_bonemeal.json new file mode 100644 index 00000000..b0d53869 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/grass_bonemeal.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:single_piece_of_grass", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ice_patch.json b/data/minecraft/worldgen/placed_feature/ice_patch.json new file mode 100644 index 00000000..322a6430 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ice_patch.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:ice_patch", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -1 + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:snow_block" + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ice_spike.json b/data/minecraft/worldgen/placed_feature/ice_spike.json new file mode 100644 index 00000000..a545382e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ice_spike.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:ice_spike", + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/iceberg_blue.json b/data/minecraft/worldgen/placed_feature/iceberg_blue.json new file mode 100644 index 00000000..465f52f1 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/iceberg_blue.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:iceberg_blue", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 200 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/iceberg_packed.json b/data/minecraft/worldgen/placed_feature/iceberg_packed.json new file mode 100644 index 00000000..df686ce8 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/iceberg_packed.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:iceberg_packed", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/jungle_bush.json b/data/minecraft/worldgen/placed_feature/jungle_bush.json new file mode 100644 index 00000000..30e24a6b --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/jungle_bush.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:jungle_bush", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/jungle_tree.json b/data/minecraft/worldgen/placed_feature/jungle_tree.json new file mode 100644 index 00000000..c64fa96d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/jungle_tree.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:jungle_tree", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:jungle_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/kelp_cold.json b/data/minecraft/worldgen/placed_feature/kelp_cold.json new file mode 100644 index 00000000..5a7e6a62 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/kelp_cold.json @@ -0,0 +1,21 @@ +{ + "feature": "minecraft:kelp", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_factor": 80.0, + "noise_offset": 0.0, + "noise_to_count_ratio": 120 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/kelp_warm.json b/data/minecraft/worldgen/placed_feature/kelp_warm.json new file mode 100644 index 00000000..b22be2df --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/kelp_warm.json @@ -0,0 +1,21 @@ +{ + "feature": "minecraft:kelp", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_factor": 80.0, + "noise_offset": 0.0, + "noise_to_count_ratio": 80 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/lake_lava_surface.json b/data/minecraft/worldgen/placed_feature/lake_lava_surface.json new file mode 100644 index 00000000..72722131 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/lake_lava_surface.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:lake_lava", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 200 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/lake_lava_underground.json b/data/minecraft/worldgen/placed_feature/lake_lava_underground.json new file mode 100644 index 00000000..35336bee --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/lake_lava_underground.json @@ -0,0 +1,57 @@ +{ + "feature": "minecraft:lake_lava", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 9 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "max_steps": 32, + "target_condition": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + }, + { + "type": "minecraft:inside_world_bounds", + "offset": [ + 0, + -5, + 0 + ] + } + ] + } + }, + { + "type": "minecraft:surface_relative_threshold_filter", + "heightmap": "OCEAN_FLOOR_WG", + "max_inclusive": -5 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/large_basalt_columns.json b/data/minecraft/worldgen/placed_feature/large_basalt_columns.json new file mode 100644 index 00000000..ea240cfd --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/large_basalt_columns.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:large_basalt_columns", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 2 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/large_dripstone.json b/data/minecraft/worldgen/placed_feature/large_dripstone.json new file mode 100644 index 00000000..df40c063 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/large_dripstone.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:large_dripstone", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 48, + "min_inclusive": 10 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/lush_caves_ceiling_vegetation.json b/data/minecraft/worldgen/placed_feature/lush_caves_ceiling_vegetation.json new file mode 100644 index 00000000..0433b30a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/lush_caves_ceiling_vegetation.json @@ -0,0 +1,44 @@ +{ + "feature": "minecraft:moss_patch_ceiling", + "placement": [ + { + "type": "minecraft:count", + "count": 125 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction_of_search": "up", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -1 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/lush_caves_clay.json b/data/minecraft/worldgen/placed_feature/lush_caves_clay.json new file mode 100644 index 00000000..e5bf51fd --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/lush_caves_clay.json @@ -0,0 +1,44 @@ +{ + "feature": "minecraft:lush_caves_clay", + "placement": [ + { + "type": "minecraft:count", + "count": 62 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction_of_search": "down", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": 1 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/lush_caves_vegetation.json b/data/minecraft/worldgen/placed_feature/lush_caves_vegetation.json new file mode 100644 index 00000000..d1bebe41 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/lush_caves_vegetation.json @@ -0,0 +1,44 @@ +{ + "feature": "minecraft:moss_patch", + "placement": [ + { + "type": "minecraft:count", + "count": 125 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction_of_search": "down", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": 1 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/mangrove_checked.json b/data/minecraft/worldgen/placed_feature/mangrove_checked.json new file mode 100644 index 00000000..b1b987fd --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/mangrove_checked.json @@ -0,0 +1,20 @@ +{ + "feature": "minecraft:mangrove", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:mangrove_propagule", + "Properties": { + "age": "0", + "hanging": "false", + "stage": "0", + "waterlogged": "false" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/mega_jungle_tree_checked.json b/data/minecraft/worldgen/placed_feature/mega_jungle_tree_checked.json new file mode 100644 index 00000000..f0583154 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/mega_jungle_tree_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:mega_jungle_tree", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:jungle_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/mega_pine_checked.json b/data/minecraft/worldgen/placed_feature/mega_pine_checked.json new file mode 100644 index 00000000..3eea8e24 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/mega_pine_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:mega_pine", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:spruce_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/mega_spruce_checked.json b/data/minecraft/worldgen/placed_feature/mega_spruce_checked.json new file mode 100644 index 00000000..67c91906 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/mega_spruce_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:mega_spruce", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:spruce_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/monster_room.json b/data/minecraft/worldgen/placed_feature/monster_room.json new file mode 100644 index 00000000..eeec57fa --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/monster_room.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:monster_room", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/monster_room_deep.json b/data/minecraft/worldgen/placed_feature/monster_room_deep.json new file mode 100644 index 00000000..d4c380b4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/monster_room_deep.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:monster_room", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": -1 + }, + "min_inclusive": { + "above_bottom": 6 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/mushroom_island_vegetation.json b/data/minecraft/worldgen/placed_feature/mushroom_island_vegetation.json new file mode 100644 index 00000000..8079ef75 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/mushroom_island_vegetation.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:mushroom_island_vegetation", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/nether_sprouts.json b/data/minecraft/worldgen/placed_feature/nether_sprouts.json new file mode 100644 index 00000000..718616fa --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/nether_sprouts.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:nether_sprouts", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 4 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/oak.json b/data/minecraft/worldgen/placed_feature/oak.json new file mode 100644 index 00000000..219b753d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/oak.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:oak", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/oak_bees_0002.json b/data/minecraft/worldgen/placed_feature/oak_bees_0002.json new file mode 100644 index 00000000..f17c0332 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/oak_bees_0002.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:oak_bees_0002", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/oak_bees_002.json b/data/minecraft/worldgen/placed_feature/oak_bees_002.json new file mode 100644 index 00000000..25e38943 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/oak_bees_002.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:oak_bees_002", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/oak_checked.json b/data/minecraft/worldgen/placed_feature/oak_checked.json new file mode 100644 index 00000000..219b753d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/oak_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:oak", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_ancient_debris_large.json b/data/minecraft/worldgen/placed_feature/ore_ancient_debris_large.json new file mode 100644 index 00000000..d0719a2f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_ancient_debris_large.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:ore_ancient_debris_large", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 24 + }, + "min_inclusive": { + "absolute": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_andesite_lower.json b/data/minecraft/worldgen/placed_feature/ore_andesite_lower.json new file mode 100644 index 00000000..782687df --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_andesite_lower.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_andesite", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 60 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_andesite_upper.json b/data/minecraft/worldgen/placed_feature/ore_andesite_upper.json new file mode 100644 index 00000000..4ea278c3 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_andesite_upper.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_andesite", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 128 + }, + "min_inclusive": { + "absolute": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_blackstone.json b/data/minecraft/worldgen/placed_feature/ore_blackstone.json new file mode 100644 index 00000000..751fc75c --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_blackstone.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_blackstone", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 31 + }, + "min_inclusive": { + "absolute": 5 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_clay.json b/data/minecraft/worldgen/placed_feature/ore_clay.json new file mode 100644 index 00000000..7bcecead --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_clay.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_clay", + "placement": [ + { + "type": "minecraft:count", + "count": 46 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_coal_lower.json b/data/minecraft/worldgen/placed_feature/ore_coal_lower.json new file mode 100644 index 00000000..2469dd96 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_coal_lower.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_coal_buried", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 192 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_coal_upper.json b/data/minecraft/worldgen/placed_feature/ore_coal_upper.json new file mode 100644 index 00000000..973c39b7 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_coal_upper.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_coal", + "placement": [ + { + "type": "minecraft:count", + "count": 30 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "absolute": 136 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_copper.json b/data/minecraft/worldgen/placed_feature/ore_copper.json new file mode 100644 index 00000000..de894cfa --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_copper.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_copper_small", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 112 + }, + "min_inclusive": { + "absolute": -16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_copper_large.json b/data/minecraft/worldgen/placed_feature/ore_copper_large.json new file mode 100644 index 00000000..9df99eb5 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_copper_large.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_copper_large", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 112 + }, + "min_inclusive": { + "absolute": -16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_debris_small.json b/data/minecraft/worldgen/placed_feature/ore_debris_small.json new file mode 100644 index 00000000..1065910f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_debris_small.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:ore_ancient_debris_small", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 8 + }, + "min_inclusive": { + "above_bottom": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_diamond.json b/data/minecraft/worldgen/placed_feature/ore_diamond.json new file mode 100644 index 00000000..e24c6c9d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_diamond.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_diamond_small", + "placement": [ + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "above_bottom": 80 + }, + "min_inclusive": { + "above_bottom": -80 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_diamond_buried.json b/data/minecraft/worldgen/placed_feature/ore_diamond_buried.json new file mode 100644 index 00000000..b9cfbaaa --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_diamond_buried.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_diamond_buried", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "above_bottom": 80 + }, + "min_inclusive": { + "above_bottom": -80 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_diamond_large.json b/data/minecraft/worldgen/placed_feature/ore_diamond_large.json new file mode 100644 index 00000000..0a8a0f93 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_diamond_large.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_diamond_large", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 9 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "above_bottom": 80 + }, + "min_inclusive": { + "above_bottom": -80 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_diamond_medium.json b/data/minecraft/worldgen/placed_feature/ore_diamond_medium.json new file mode 100644 index 00000000..cc88d4cd --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_diamond_medium.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_diamond_medium", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": -4 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_diorite_lower.json b/data/minecraft/worldgen/placed_feature/ore_diorite_lower.json new file mode 100644 index 00000000..7aabf8de --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_diorite_lower.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_diorite", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 60 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_diorite_upper.json b/data/minecraft/worldgen/placed_feature/ore_diorite_upper.json new file mode 100644 index 00000000..404a8082 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_diorite_upper.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_diorite", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 128 + }, + "min_inclusive": { + "absolute": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_dirt.json b/data/minecraft/worldgen/placed_feature/ore_dirt.json new file mode 100644 index 00000000..bcce4c19 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_dirt.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_dirt", + "placement": [ + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 160 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_emerald.json b/data/minecraft/worldgen/placed_feature/ore_emerald.json new file mode 100644 index 00000000..09d5a406 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_emerald.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_emerald", + "placement": [ + { + "type": "minecraft:count", + "count": 100 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 480 + }, + "min_inclusive": { + "absolute": -16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_gold.json b/data/minecraft/worldgen/placed_feature/ore_gold.json new file mode 100644 index 00000000..004acb81 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_gold.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_gold_buried", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 32 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_gold_deltas.json b/data/minecraft/worldgen/placed_feature/ore_gold_deltas.json new file mode 100644 index 00000000..55072eb3 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_gold_deltas.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_nether_gold", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 10 + }, + "min_inclusive": { + "above_bottom": 10 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_gold_extra.json b/data/minecraft/worldgen/placed_feature/ore_gold_extra.json new file mode 100644 index 00000000..c3cb1052 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_gold_extra.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_gold", + "placement": [ + { + "type": "minecraft:count", + "count": 50 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "absolute": 32 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_gold_lower.json b/data/minecraft/worldgen/placed_feature/ore_gold_lower.json new file mode 100644 index 00000000..5ab44009 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_gold_lower.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:ore_gold_buried", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 1, + "min_inclusive": 0 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": -48 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_gold_nether.json b/data/minecraft/worldgen/placed_feature/ore_gold_nether.json new file mode 100644 index 00000000..1a3c6613 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_gold_nether.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_nether_gold", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 10 + }, + "min_inclusive": { + "above_bottom": 10 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_granite_lower.json b/data/minecraft/worldgen/placed_feature/ore_granite_lower.json new file mode 100644 index 00000000..ab721172 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_granite_lower.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_granite", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 60 + }, + "min_inclusive": { + "absolute": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_granite_upper.json b/data/minecraft/worldgen/placed_feature/ore_granite_upper.json new file mode 100644 index 00000000..c5787158 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_granite_upper.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_granite", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 128 + }, + "min_inclusive": { + "absolute": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_gravel.json b/data/minecraft/worldgen/placed_feature/ore_gravel.json new file mode 100644 index 00000000..1dc3077b --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_gravel.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_gravel", + "placement": [ + { + "type": "minecraft:count", + "count": 14 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_gravel_nether.json b/data/minecraft/worldgen/placed_feature/ore_gravel_nether.json new file mode 100644 index 00000000..7b2518e6 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_gravel_nether.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_gravel_nether", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 41 + }, + "min_inclusive": { + "absolute": 5 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_infested.json b/data/minecraft/worldgen/placed_feature/ore_infested.json new file mode 100644 index 00000000..b6615bb5 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_infested.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_infested", + "placement": [ + { + "type": "minecraft:count", + "count": 14 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 63 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_iron_middle.json b/data/minecraft/worldgen/placed_feature/ore_iron_middle.json new file mode 100644 index 00000000..6f10b77c --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_iron_middle.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_iron", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 56 + }, + "min_inclusive": { + "absolute": -24 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_iron_small.json b/data/minecraft/worldgen/placed_feature/ore_iron_small.json new file mode 100644 index 00000000..c21289de --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_iron_small.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_iron_small", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 72 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_iron_upper.json b/data/minecraft/worldgen/placed_feature/ore_iron_upper.json new file mode 100644 index 00000000..e096548e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_iron_upper.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_iron", + "placement": [ + { + "type": "minecraft:count", + "count": 90 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 384 + }, + "min_inclusive": { + "absolute": 80 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_lapis.json b/data/minecraft/worldgen/placed_feature/ore_lapis.json new file mode 100644 index 00000000..4f1d8737 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_lapis.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_lapis", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 32 + }, + "min_inclusive": { + "absolute": -32 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_lapis_buried.json b/data/minecraft/worldgen/placed_feature/ore_lapis_buried.json new file mode 100644 index 00000000..e90a95e2 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_lapis_buried.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_lapis_buried", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 64 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_magma.json b/data/minecraft/worldgen/placed_feature/ore_magma.json new file mode 100644 index 00000000..4512bae5 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_magma.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_magma", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 36 + }, + "min_inclusive": { + "absolute": 27 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_quartz_deltas.json b/data/minecraft/worldgen/placed_feature/ore_quartz_deltas.json new file mode 100644 index 00000000..c1e9a491 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_quartz_deltas.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_quartz", + "placement": [ + { + "type": "minecraft:count", + "count": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 10 + }, + "min_inclusive": { + "above_bottom": 10 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_quartz_nether.json b/data/minecraft/worldgen/placed_feature/ore_quartz_nether.json new file mode 100644 index 00000000..fb9746f9 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_quartz_nether.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_quartz", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 10 + }, + "min_inclusive": { + "above_bottom": 10 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_redstone.json b/data/minecraft/worldgen/placed_feature/ore_redstone.json new file mode 100644 index 00000000..d23d800d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_redstone.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_redstone", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 15 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_redstone_lower.json b/data/minecraft/worldgen/placed_feature/ore_redstone_lower.json new file mode 100644 index 00000000..ce1d41cf --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_redstone_lower.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_redstone", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "above_bottom": 32 + }, + "min_inclusive": { + "above_bottom": -32 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_soul_sand.json b/data/minecraft/worldgen/placed_feature/ore_soul_sand.json new file mode 100644 index 00000000..28b86977 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_soul_sand.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_soul_sand", + "placement": [ + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 31 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/ore_tuff.json b/data/minecraft/worldgen/placed_feature/ore_tuff.json new file mode 100644 index 00000000..b5e55e1f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/ore_tuff.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:ore_tuff", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_berry_bush.json b/data/minecraft/worldgen/placed_feature/patch_berry_bush.json new file mode 100644 index 00000000..5aa80e4f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_berry_bush.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:patch_berry_bush", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_berry_common.json b/data/minecraft/worldgen/placed_feature/patch_berry_common.json new file mode 100644 index 00000000..326fe416 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_berry_common.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_berry_bush", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_berry_rare.json b/data/minecraft/worldgen/placed_feature/patch_berry_rare.json new file mode 100644 index 00000000..32d3a1ef --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_berry_rare.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_berry_bush", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 384 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_cactus.json b/data/minecraft/worldgen/placed_feature/patch_cactus.json new file mode 100644 index 00000000..078cc950 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_cactus.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:patch_cactus", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_cactus_decorated.json b/data/minecraft/worldgen/placed_feature/patch_cactus_decorated.json new file mode 100644 index 00000000..4cfcc1c9 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_cactus_decorated.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_cactus", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 13 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_cactus_desert.json b/data/minecraft/worldgen/placed_feature/patch_cactus_desert.json new file mode 100644 index 00000000..12f36532 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_cactus_desert.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_cactus", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_crimson_roots.json b/data/minecraft/worldgen/placed_feature/patch_crimson_roots.json new file mode 100644 index 00000000..c50f1ab4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_crimson_roots.json @@ -0,0 +1,20 @@ +{ + "feature": "minecraft:patch_crimson_roots", + "placement": [ + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_dead_bush.json b/data/minecraft/worldgen/placed_feature/patch_dead_bush.json new file mode 100644 index 00000000..083b4980 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_dead_bush.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:patch_dead_bush", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_dead_bush_2.json b/data/minecraft/worldgen/placed_feature/patch_dead_bush_2.json new file mode 100644 index 00000000..612437e0 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_dead_bush_2.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_dead_bush", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_dead_bush_badlands.json b/data/minecraft/worldgen/placed_feature/patch_dead_bush_badlands.json new file mode 100644 index 00000000..c2999542 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_dead_bush_badlands.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_dead_bush", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_fire.json b/data/minecraft/worldgen/placed_feature/patch_fire.json new file mode 100644 index 00000000..c6e0c696 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_fire.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:patch_fire", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 5, + "min_inclusive": 0 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 4 + }, + "min_inclusive": { + "above_bottom": 4 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_badlands.json b/data/minecraft/worldgen/placed_feature/patch_grass_badlands.json new file mode 100644 index 00000000..95791c65 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_badlands.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:patch_grass", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_forest.json b/data/minecraft/worldgen/placed_feature/patch_grass_forest.json new file mode 100644 index 00000000..39b6c63f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_forest.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_grass", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_jungle.json b/data/minecraft/worldgen/placed_feature/patch_grass_jungle.json new file mode 100644 index 00000000..201813c8 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_jungle.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_grass_jungle", + "placement": [ + { + "type": "minecraft:count", + "count": 25 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_normal.json b/data/minecraft/worldgen/placed_feature/patch_grass_normal.json new file mode 100644 index 00000000..7c5e6d7b --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_normal.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_grass", + "placement": [ + { + "type": "minecraft:count", + "count": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_plain.json b/data/minecraft/worldgen/placed_feature/patch_grass_plain.json new file mode 100644 index 00000000..686e8189 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_plain.json @@ -0,0 +1,21 @@ +{ + "feature": "minecraft:patch_grass", + "placement": [ + { + "type": "minecraft:noise_threshold_count", + "above_noise": 10, + "below_noise": 5, + "noise_level": -0.8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_savanna.json b/data/minecraft/worldgen/placed_feature/patch_grass_savanna.json new file mode 100644 index 00000000..23d989d5 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_savanna.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_grass", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_taiga.json b/data/minecraft/worldgen/placed_feature/patch_grass_taiga.json new file mode 100644 index 00000000..80550ad6 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_taiga.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_taiga_grass", + "placement": [ + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_grass_taiga_2.json b/data/minecraft/worldgen/placed_feature/patch_grass_taiga_2.json new file mode 100644 index 00000000..c6084155 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_grass_taiga_2.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:patch_taiga_grass", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_large_fern.json b/data/minecraft/worldgen/placed_feature/patch_large_fern.json new file mode 100644 index 00000000..e19c4b3a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_large_fern.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_large_fern", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_melon.json b/data/minecraft/worldgen/placed_feature/patch_melon.json new file mode 100644 index 00000000..282b0d57 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_melon.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_melon", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_melon_sparse.json b/data/minecraft/worldgen/placed_feature/patch_melon_sparse.json new file mode 100644 index 00000000..da52ee28 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_melon_sparse.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_melon", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 64 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_pumpkin.json b/data/minecraft/worldgen/placed_feature/patch_pumpkin.json new file mode 100644 index 00000000..54aa099e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_pumpkin.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_pumpkin", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 300 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_soul_fire.json b/data/minecraft/worldgen/placed_feature/patch_soul_fire.json new file mode 100644 index 00000000..2219897e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_soul_fire.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:patch_soul_fire", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 5, + "min_inclusive": 0 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 4 + }, + "min_inclusive": { + "above_bottom": 4 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_sugar_cane.json b/data/minecraft/worldgen/placed_feature/patch_sugar_cane.json new file mode 100644 index 00000000..492f9494 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_sugar_cane.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_sugar_cane", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_sugar_cane_badlands.json b/data/minecraft/worldgen/placed_feature/patch_sugar_cane_badlands.json new file mode 100644 index 00000000..a36f9f28 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_sugar_cane_badlands.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_sugar_cane", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_sugar_cane_desert.json b/data/minecraft/worldgen/placed_feature/patch_sugar_cane_desert.json new file mode 100644 index 00000000..0d1c561d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_sugar_cane_desert.json @@ -0,0 +1,15 @@ +{ + "feature": "minecraft:patch_sugar_cane", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_sugar_cane_swamp.json b/data/minecraft/worldgen/placed_feature/patch_sugar_cane_swamp.json new file mode 100644 index 00000000..cfc37055 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_sugar_cane_swamp.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_sugar_cane", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_sunflower.json b/data/minecraft/worldgen/placed_feature/patch_sunflower.json new file mode 100644 index 00000000..c8f5a6f8 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_sunflower.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_sunflower", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_taiga_grass.json b/data/minecraft/worldgen/placed_feature/patch_taiga_grass.json new file mode 100644 index 00000000..5679459f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_taiga_grass.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:patch_taiga_grass", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_tall_grass.json b/data/minecraft/worldgen/placed_feature/patch_tall_grass.json new file mode 100644 index 00000000..a52b62a5 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_tall_grass.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_tall_grass", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_tall_grass_2.json b/data/minecraft/worldgen/placed_feature/patch_tall_grass_2.json new file mode 100644 index 00000000..e5e9e75a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_tall_grass_2.json @@ -0,0 +1,25 @@ +{ + "feature": "minecraft:patch_tall_grass", + "placement": [ + { + "type": "minecraft:noise_threshold_count", + "above_noise": 7, + "below_noise": 0, + "noise_level": -0.8 + }, + { + "type": "minecraft:rarity_filter", + "chance": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/patch_waterlily.json b/data/minecraft/worldgen/placed_feature/patch_waterlily.json new file mode 100644 index 00000000..fdadab19 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/patch_waterlily.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_waterlily", + "placement": [ + { + "type": "minecraft:count", + "count": 4 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pile_hay.json b/data/minecraft/worldgen/placed_feature/pile_hay.json new file mode 100644 index 00000000..7036d4ce --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pile_hay.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:pile_hay", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pile_ice.json b/data/minecraft/worldgen/placed_feature/pile_ice.json new file mode 100644 index 00000000..d778000a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pile_ice.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:pile_ice", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pile_melon.json b/data/minecraft/worldgen/placed_feature/pile_melon.json new file mode 100644 index 00000000..915d5735 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pile_melon.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:pile_melon", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pile_pumpkin.json b/data/minecraft/worldgen/placed_feature/pile_pumpkin.json new file mode 100644 index 00000000..397f3260 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pile_pumpkin.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:pile_pumpkin", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pile_snow.json b/data/minecraft/worldgen/placed_feature/pile_snow.json new file mode 100644 index 00000000..07bb3bc7 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pile_snow.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:pile_snow", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pine.json b/data/minecraft/worldgen/placed_feature/pine.json new file mode 100644 index 00000000..303bcaf4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pine.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:pine", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:spruce_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pine_checked.json b/data/minecraft/worldgen/placed_feature/pine_checked.json new file mode 100644 index 00000000..303bcaf4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pine_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:pine", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:spruce_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pine_on_snow.json b/data/minecraft/worldgen/placed_feature/pine_on_snow.json new file mode 100644 index 00000000..797cf813 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pine_on_snow.json @@ -0,0 +1,32 @@ +{ + "feature": "minecraft:pine", + "placement": [ + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 8, + "target_condition": { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:powder_snow" + } + } + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:snow_block", + "minecraft:powder_snow" + ], + "offset": [ + 0, + -1, + 0 + ] + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/pointed_dripstone.json b/data/minecraft/worldgen/placed_feature/pointed_dripstone.json new file mode 100644 index 00000000..ee384e85 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/pointed_dripstone.json @@ -0,0 +1,56 @@ +{ + "feature": "minecraft:pointed_dripstone", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 256, + "min_inclusive": 192 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 5, + "min_inclusive": 1 + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": { + "type": "minecraft:clamped_normal", + "deviation": 3.0, + "max_inclusive": 10, + "mean": 0.0, + "min_inclusive": -10 + }, + "y_spread": { + "type": "minecraft:clamped_normal", + "deviation": 0.6, + "max_inclusive": 2, + "mean": 0.0, + "min_inclusive": -2 + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/red_mushroom_nether.json b/data/minecraft/worldgen/placed_feature/red_mushroom_nether.json new file mode 100644 index 00000000..db4076ba --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/red_mushroom_nether.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:patch_red_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/red_mushroom_normal.json b/data/minecraft/worldgen/placed_feature/red_mushroom_normal.json new file mode 100644 index 00000000..fa4cfbe9 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/red_mushroom_normal.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_red_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 512 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/red_mushroom_old_growth.json b/data/minecraft/worldgen/placed_feature/red_mushroom_old_growth.json new file mode 100644 index 00000000..349ec794 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/red_mushroom_old_growth.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_red_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 171 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/red_mushroom_swamp.json b/data/minecraft/worldgen/placed_feature/red_mushroom_swamp.json new file mode 100644 index 00000000..c6da6319 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/red_mushroom_swamp.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_red_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 64 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/red_mushroom_taiga.json b/data/minecraft/worldgen/placed_feature/red_mushroom_taiga.json new file mode 100644 index 00000000..beb6748e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/red_mushroom_taiga.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:patch_red_mushroom", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 256 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "MOTION_BLOCKING" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/rooted_azalea_tree.json b/data/minecraft/worldgen/placed_feature/rooted_azalea_tree.json new file mode 100644 index 00000000..ebb01a8a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/rooted_azalea_tree.json @@ -0,0 +1,48 @@ +{ + "feature": "minecraft:rooted_azalea_tree", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 1 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction_of_search": "up", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -1 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/sculk_patch_ancient_city.json b/data/minecraft/worldgen/placed_feature/sculk_patch_ancient_city.json new file mode 100644 index 00000000..9d9a5c4a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/sculk_patch_ancient_city.json @@ -0,0 +1,4 @@ +{ + "feature": "minecraft:sculk_patch_ancient_city", + "placement": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/sculk_patch_deep_dark.json b/data/minecraft/worldgen/placed_feature/sculk_patch_deep_dark.json new file mode 100644 index 00000000..f7339687 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/sculk_patch_deep_dark.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:sculk_patch_deep_dark", + "placement": [ + { + "type": "minecraft:count", + "count": 256 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/sculk_vein.json b/data/minecraft/worldgen/placed_feature/sculk_vein.json new file mode 100644 index 00000000..5f16b749 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/sculk_vein.json @@ -0,0 +1,31 @@ +{ + "feature": "minecraft:sculk_vein", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 250, + "min_inclusive": 204 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/sea_pickle.json b/data/minecraft/worldgen/placed_feature/sea_pickle.json new file mode 100644 index 00000000..80175bbf --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/sea_pickle.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:sea_pickle", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_cold.json b/data/minecraft/worldgen/placed_feature/seagrass_cold.json new file mode 100644 index 00000000..419adcc6 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_cold.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_short", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 32 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_deep.json b/data/minecraft/worldgen/placed_feature/seagrass_deep.json new file mode 100644 index 00000000..306b9182 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_deep.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_tall", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 48 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_deep_cold.json b/data/minecraft/worldgen/placed_feature/seagrass_deep_cold.json new file mode 100644 index 00000000..b8a8b28f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_deep_cold.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_tall", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 40 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_deep_warm.json b/data/minecraft/worldgen/placed_feature/seagrass_deep_warm.json new file mode 100644 index 00000000..6015530c --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_deep_warm.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_tall", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 80 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_normal.json b/data/minecraft/worldgen/placed_feature/seagrass_normal.json new file mode 100644 index 00000000..1cc1627b --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_normal.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_short", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 48 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_river.json b/data/minecraft/worldgen/placed_feature/seagrass_river.json new file mode 100644 index 00000000..ea722425 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_river.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_slightly_less_short", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 48 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_simple.json b/data/minecraft/worldgen/placed_feature/seagrass_simple.json new file mode 100644 index 00000000..218418bd --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_simple.json @@ -0,0 +1,46 @@ +{ + "feature": "minecraft:seagrass_simple", + "placement": [ + { + "type": "minecraft:carving_mask", + "step": "liquid" + }, + { + "type": "minecraft:rarity_filter", + "chance": 10 + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:stone", + "offset": [ + 0, + -1, + 0 + ] + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:water" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:water", + "offset": [ + 0, + 1, + 0 + ] + } + ] + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_swamp.json b/data/minecraft/worldgen/placed_feature/seagrass_swamp.json new file mode 100644 index 00000000..52b3f359 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_swamp.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_mid", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 64 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/seagrass_warm.json b/data/minecraft/worldgen/placed_feature/seagrass_warm.json new file mode 100644 index 00000000..3d973788 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/seagrass_warm.json @@ -0,0 +1,19 @@ +{ + "feature": "minecraft:seagrass_short", + "placement": [ + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:count", + "count": 80 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/small_basalt_columns.json b/data/minecraft/worldgen/placed_feature/small_basalt_columns.json new file mode 100644 index 00000000..13d368a2 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/small_basalt_columns.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:small_basalt_columns", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 4 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spore_blossom.json b/data/minecraft/worldgen/placed_feature/spore_blossom.json new file mode 100644 index 00000000..06f6a4d8 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spore_blossom.json @@ -0,0 +1,44 @@ +{ + "feature": "minecraft:spore_blossom", + "placement": [ + { + "type": "minecraft:count", + "count": 25 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction_of_search": "up", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -1 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spring_closed.json b/data/minecraft/worldgen/placed_feature/spring_closed.json new file mode 100644 index 00000000..c90abc33 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spring_closed.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:spring_nether_closed", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 10 + }, + "min_inclusive": { + "above_bottom": 10 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spring_closed_double.json b/data/minecraft/worldgen/placed_feature/spring_closed_double.json new file mode 100644 index 00000000..98b3e91c --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spring_closed_double.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:spring_nether_closed", + "placement": [ + { + "type": "minecraft:count", + "count": 32 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 10 + }, + "min_inclusive": { + "above_bottom": 10 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spring_delta.json b/data/minecraft/worldgen/placed_feature/spring_delta.json new file mode 100644 index 00000000..b680210e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spring_delta.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:spring_lava_nether", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 4 + }, + "min_inclusive": { + "above_bottom": 4 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spring_lava.json b/data/minecraft/worldgen/placed_feature/spring_lava.json new file mode 100644 index 00000000..4a799ff5 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spring_lava.json @@ -0,0 +1,28 @@ +{ + "feature": "minecraft:spring_lava_overworld", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:very_biased_to_bottom", + "inner": 8, + "max_inclusive": { + "below_top": 8 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spring_lava_frozen.json b/data/minecraft/worldgen/placed_feature/spring_lava_frozen.json new file mode 100644 index 00000000..6d02d4f1 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spring_lava_frozen.json @@ -0,0 +1,28 @@ +{ + "feature": "minecraft:spring_lava_frozen", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:very_biased_to_bottom", + "inner": 8, + "max_inclusive": { + "below_top": 8 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spring_open.json b/data/minecraft/worldgen/placed_feature/spring_open.json new file mode 100644 index 00000000..173f6447 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spring_open.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:spring_nether_open", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 4 + }, + "min_inclusive": { + "above_bottom": 4 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spring_water.json b/data/minecraft/worldgen/placed_feature/spring_water.json new file mode 100644 index 00000000..61a88588 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spring_water.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:spring_water", + "placement": [ + { + "type": "minecraft:count", + "count": 25 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 192 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spruce.json b/data/minecraft/worldgen/placed_feature/spruce.json new file mode 100644 index 00000000..097a470b --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spruce.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:spruce", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:spruce_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spruce_checked.json b/data/minecraft/worldgen/placed_feature/spruce_checked.json new file mode 100644 index 00000000..097a470b --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spruce_checked.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:spruce", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:spruce_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/spruce_on_snow.json b/data/minecraft/worldgen/placed_feature/spruce_on_snow.json new file mode 100644 index 00000000..2eb5ea21 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/spruce_on_snow.json @@ -0,0 +1,32 @@ +{ + "feature": "minecraft:spruce", + "placement": [ + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 8, + "target_condition": { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:powder_snow" + } + } + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:snow_block", + "minecraft:powder_snow" + ], + "offset": [ + 0, + -1, + 0 + ] + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/super_birch_bees.json b/data/minecraft/worldgen/placed_feature/super_birch_bees.json new file mode 100644 index 00000000..85bcfe9e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/super_birch_bees.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:super_birch_bees", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:birch_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/super_birch_bees_0002.json b/data/minecraft/worldgen/placed_feature/super_birch_bees_0002.json new file mode 100644 index 00000000..647e3038 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/super_birch_bees_0002.json @@ -0,0 +1,17 @@ +{ + "feature": "minecraft:super_birch_bees_0002", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:birch_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/tall_mangrove_checked.json b/data/minecraft/worldgen/placed_feature/tall_mangrove_checked.json new file mode 100644 index 00000000..5d29165f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/tall_mangrove_checked.json @@ -0,0 +1,20 @@ +{ + "feature": "minecraft:tall_mangrove", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:mangrove_propagule", + "Properties": { + "age": "0", + "hanging": "false", + "stage": "0", + "waterlogged": "false" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_badlands.json b/data/minecraft/worldgen/placed_feature/trees_badlands.json new file mode 100644 index 00000000..4b85d9a0 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_badlands.json @@ -0,0 +1,47 @@ +{ + "feature": "minecraft:oak", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 5, + "weight": 9 + }, + { + "data": 6, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_birch.json b/data/minecraft/worldgen/placed_feature/trees_birch.json new file mode 100644 index 00000000..f5e8cca4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_birch.json @@ -0,0 +1,47 @@ +{ + "feature": "minecraft:birch_bees_0002", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:birch_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_birch_and_oak.json b/data/minecraft/worldgen/placed_feature/trees_birch_and_oak.json new file mode 100644 index 00000000..d690f091 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_birch_and_oak.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_birch_and_oak", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_cherry.json b/data/minecraft/worldgen/placed_feature/trees_cherry.json new file mode 100644 index 00000000..bb63f871 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_cherry.json @@ -0,0 +1,47 @@ +{ + "feature": "minecraft:cherry_bees_005", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:cherry_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_flower_forest.json b/data/minecraft/worldgen/placed_feature/trees_flower_forest.json new file mode 100644 index 00000000..29553d4f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_flower_forest.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_flower_forest", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 6, + "weight": 9 + }, + { + "data": 7, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_grove.json b/data/minecraft/worldgen/placed_feature/trees_grove.json new file mode 100644 index 00000000..b09ef9cf --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_grove.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_grove", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_jungle.json b/data/minecraft/worldgen/placed_feature/trees_jungle.json new file mode 100644 index 00000000..8d746a5a --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_jungle.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_jungle", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 50, + "weight": 9 + }, + { + "data": 51, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_mangrove.json b/data/minecraft/worldgen/placed_feature/trees_mangrove.json new file mode 100644 index 00000000..fa7205d1 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_mangrove.json @@ -0,0 +1,38 @@ +{ + "feature": "minecraft:mangrove_vegetation", + "placement": [ + { + "type": "minecraft:count", + "count": 25 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 5 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:mangrove_propagule", + "Properties": { + "age": "0", + "hanging": "false", + "stage": "0", + "waterlogged": "false" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_meadow.json b/data/minecraft/worldgen/placed_feature/trees_meadow.json new file mode 100644 index 00000000..903e9ea8 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_meadow.json @@ -0,0 +1,23 @@ +{ + "feature": "minecraft:meadow_trees", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 100 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_old_growth_pine_taiga.json b/data/minecraft/worldgen/placed_feature/trees_old_growth_pine_taiga.json new file mode 100644 index 00000000..835d8466 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_old_growth_pine_taiga.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_old_growth_pine_taiga", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_old_growth_spruce_taiga.json b/data/minecraft/worldgen/placed_feature/trees_old_growth_spruce_taiga.json new file mode 100644 index 00000000..88be4c70 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_old_growth_spruce_taiga.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_old_growth_spruce_taiga", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_plains.json b/data/minecraft/worldgen/placed_feature/trees_plains.json new file mode 100644 index 00000000..68a61ddf --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_plains.json @@ -0,0 +1,47 @@ +{ + "feature": "minecraft:trees_plains", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 0, + "weight": 19 + }, + { + "data": 1, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_savanna.json b/data/minecraft/worldgen/placed_feature/trees_savanna.json new file mode 100644 index 00000000..5c0dd227 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_savanna.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_savanna", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 1, + "weight": 9 + }, + { + "data": 2, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_snowy.json b/data/minecraft/worldgen/placed_feature/trees_snowy.json new file mode 100644 index 00000000..9051c074 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_snowy.json @@ -0,0 +1,47 @@ +{ + "feature": "minecraft:spruce", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 0, + "weight": 9 + }, + { + "data": 1, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:spruce_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_sparse_jungle.json b/data/minecraft/worldgen/placed_feature/trees_sparse_jungle.json new file mode 100644 index 00000000..a585bbe0 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_sparse_jungle.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_sparse_jungle", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 2, + "weight": 9 + }, + { + "data": 3, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_swamp.json b/data/minecraft/worldgen/placed_feature/trees_swamp.json new file mode 100644 index 00000000..5db3e482 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_swamp.json @@ -0,0 +1,47 @@ +{ + "feature": "minecraft:swamp_oak", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 2, + "weight": 9 + }, + { + "data": 3, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 2 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:would_survive", + "state": { + "Name": "minecraft:oak_sapling", + "Properties": { + "stage": "0" + } + } + } + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_taiga.json b/data/minecraft/worldgen/placed_feature/trees_taiga.json new file mode 100644 index 00000000..835090a6 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_taiga.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_taiga", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 10, + "weight": 9 + }, + { + "data": 11, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_water.json b/data/minecraft/worldgen/placed_feature/trees_water.json new file mode 100644 index 00000000..997128fc --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_water.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_water", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 0, + "weight": 9 + }, + { + "data": 1, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_windswept_forest.json b/data/minecraft/worldgen/placed_feature/trees_windswept_forest.json new file mode 100644 index 00000000..8bce669f --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_windswept_forest.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_windswept_hills", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 3, + "weight": 9 + }, + { + "data": 4, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_windswept_hills.json b/data/minecraft/worldgen/placed_feature/trees_windswept_hills.json new file mode 100644 index 00000000..8be56da5 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_windswept_hills.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_windswept_hills", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 0, + "weight": 9 + }, + { + "data": 1, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/trees_windswept_savanna.json b/data/minecraft/worldgen/placed_feature/trees_windswept_savanna.json new file mode 100644 index 00000000..4fa16756 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/trees_windswept_savanna.json @@ -0,0 +1,35 @@ +{ + "feature": "minecraft:trees_savanna", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 2, + "weight": 9 + }, + { + "data": 3, + "weight": 1 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:surface_water_depth_filter", + "max_water_depth": 0 + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/twisting_vines.json b/data/minecraft/worldgen/placed_feature/twisting_vines.json new file mode 100644 index 00000000..52640f09 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/twisting_vines.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:twisting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/underwater_magma.json b/data/minecraft/worldgen/placed_feature/underwater_magma.json new file mode 100644 index 00000000..ba5c116d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/underwater_magma.json @@ -0,0 +1,36 @@ +{ + "feature": "minecraft:underwater_magma", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "max_inclusive": 52, + "min_inclusive": 44 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 256 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:surface_relative_threshold_filter", + "heightmap": "OCEAN_FLOOR_WG", + "max_inclusive": -2 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/vines.json b/data/minecraft/worldgen/placed_feature/vines.json new file mode 100644 index 00000000..682c6aa4 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/vines.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:vines", + "placement": [ + { + "type": "minecraft:count", + "count": 127 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 100 + }, + "min_inclusive": { + "absolute": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/void_start_platform.json b/data/minecraft/worldgen/placed_feature/void_start_platform.json new file mode 100644 index 00000000..9027738e --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/void_start_platform.json @@ -0,0 +1,8 @@ +{ + "feature": "minecraft:void_start_platform", + "placement": [ + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/warm_ocean_vegetation.json b/data/minecraft/worldgen/placed_feature/warm_ocean_vegetation.json new file mode 100644 index 00000000..8648d40c --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/warm_ocean_vegetation.json @@ -0,0 +1,21 @@ +{ + "feature": "minecraft:warm_ocean_vegetation", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_factor": 400.0, + "noise_offset": 0.0, + "noise_to_count_ratio": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR_WG" + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/warped_forest_vegetation.json b/data/minecraft/worldgen/placed_feature/warped_forest_vegetation.json new file mode 100644 index 00000000..10e5ed5d --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/warped_forest_vegetation.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:warped_forest_vegetation", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 5 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/warped_fungi.json b/data/minecraft/worldgen/placed_feature/warped_fungi.json new file mode 100644 index 00000000..5c6a1482 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/warped_fungi.json @@ -0,0 +1,12 @@ +{ + "feature": "minecraft:warped_fungus", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 8 + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/placed_feature/weeping_vines.json b/data/minecraft/worldgen/placed_feature/weeping_vines.json new file mode 100644 index 00000000..f189eb69 --- /dev/null +++ b/data/minecraft/worldgen/placed_feature/weeping_vines.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:weeping_vines", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 0 + }, + "min_inclusive": { + "above_bottom": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/ancient_city_generic_degradation.json b/data/minecraft/worldgen/processor_list/ancient_city_generic_degradation.json new file mode 100644 index 00000000..384eeecc --- /dev/null +++ b/data/minecraft/worldgen/processor_list/ancient_city_generic_degradation.json @@ -0,0 +1,57 @@ +{ + "processors": [ + { + "integrity": 0.95, + "processor_type": "minecraft:block_rot", + "rottable_blocks": "#minecraft:ancient_city_replaceable" + }, + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:deepslate_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_deepslate_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:deepslate_tiles", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_deepslate_tiles" + } + }, + { + "input_predicate": { + "block": "minecraft:soul_lantern", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + } + ] + }, + { + "processor_type": "minecraft:protected_blocks", + "value": "#minecraft:features_cannot_replace" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/ancient_city_start_degradation.json b/data/minecraft/worldgen/processor_list/ancient_city_start_degradation.json new file mode 100644 index 00000000..2807a8cd --- /dev/null +++ b/data/minecraft/worldgen/processor_list/ancient_city_start_degradation.json @@ -0,0 +1,52 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:deepslate_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_deepslate_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:deepslate_tiles", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_deepslate_tiles" + } + }, + { + "input_predicate": { + "block": "minecraft:soul_lantern", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + } + ] + }, + { + "processor_type": "minecraft:protected_blocks", + "value": "#minecraft:features_cannot_replace" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/ancient_city_walls_degradation.json b/data/minecraft/worldgen/processor_list/ancient_city_walls_degradation.json new file mode 100644 index 00000000..ea7d74f9 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/ancient_city_walls_degradation.json @@ -0,0 +1,70 @@ +{ + "processors": [ + { + "integrity": 0.95, + "processor_type": "minecraft:block_rot", + "rottable_blocks": "#minecraft:ancient_city_replaceable" + }, + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:deepslate_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_deepslate_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:deepslate_tiles", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_deepslate_tiles" + } + }, + { + "input_predicate": { + "block": "minecraft:deepslate_tile_slab", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:soul_lantern", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + } + ] + }, + { + "processor_type": "minecraft:protected_blocks", + "value": "#minecraft:features_cannot_replace" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/bastion_generic_degradation.json b/data/minecraft/worldgen/processor_list/bastion_generic_degradation.json new file mode 100644 index 00000000..e78711ea --- /dev/null +++ b/data/minecraft/worldgen/processor_list/bastion_generic_degradation.json @@ -0,0 +1,74 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 1.0E-4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:gold_block", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/bottom_rampart.json b/data/minecraft/worldgen/processor_list/bottom_rampart.json new file mode 100644 index 00000000..9712f5cf --- /dev/null +++ b/data/minecraft/worldgen/processor_list/bottom_rampart.json @@ -0,0 +1,61 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:magma_block", + "predicate_type": "minecraft:random_block_match", + "probability": 0.75 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:cracked_polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.15 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/bridge.json b/data/minecraft/worldgen/processor_list/bridge.json new file mode 100644 index 00000000..a91ac156 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/bridge.json @@ -0,0 +1,35 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 1.0E-4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/empty.json b/data/minecraft/worldgen/processor_list/empty.json new file mode 100644 index 00000000..06b65ef0 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/empty.json @@ -0,0 +1,3 @@ +{ + "processors": [] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/entrance_replacement.json b/data/minecraft/worldgen/processor_list/entrance_replacement.json new file mode 100644 index 00000000..f6884353 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/entrance_replacement.json @@ -0,0 +1,61 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:chiseled_polished_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:gold_block", + "predicate_type": "minecraft:random_block_match", + "probability": 0.6 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/farm_desert.json b/data/minecraft/worldgen/processor_list/farm_desert.json new file mode 100644 index 00000000..6b6bef0f --- /dev/null +++ b/data/minecraft/worldgen/processor_list/farm_desert.json @@ -0,0 +1,41 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:beetroots", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:melon_stem", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/farm_plains.json b/data/minecraft/worldgen/processor_list/farm_plains.json new file mode 100644 index 00000000..68ba02a7 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/farm_plains.json @@ -0,0 +1,57 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:carrots", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:potatoes", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:beetroots", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/farm_savanna.json b/data/minecraft/worldgen/processor_list/farm_savanna.json new file mode 100644 index 00000000..1be4851d --- /dev/null +++ b/data/minecraft/worldgen/processor_list/farm_savanna.json @@ -0,0 +1,25 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:melon_stem", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/farm_snowy.json b/data/minecraft/worldgen/processor_list/farm_snowy.json new file mode 100644 index 00000000..d7c61b46 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/farm_snowy.json @@ -0,0 +1,41 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:carrots", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.8 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:potatoes", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/farm_taiga.json b/data/minecraft/worldgen/processor_list/farm_taiga.json new file mode 100644 index 00000000..a361bb46 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/farm_taiga.json @@ -0,0 +1,41 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:pumpkin_stem", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:potatoes", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/fossil_coal.json b/data/minecraft/worldgen/processor_list/fossil_coal.json new file mode 100644 index 00000000..ae7a6011 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/fossil_coal.json @@ -0,0 +1,12 @@ +{ + "processors": [ + { + "integrity": 0.1, + "processor_type": "minecraft:block_rot" + }, + { + "processor_type": "minecraft:protected_blocks", + "value": "#minecraft:features_cannot_replace" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/fossil_diamonds.json b/data/minecraft/worldgen/processor_list/fossil_diamonds.json new file mode 100644 index 00000000..2181c32b --- /dev/null +++ b/data/minecraft/worldgen/processor_list/fossil_diamonds.json @@ -0,0 +1,29 @@ +{ + "processors": [ + { + "integrity": 0.1, + "processor_type": "minecraft:block_rot" + }, + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:coal_ore", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:deepslate_diamond_ore" + } + } + ] + }, + { + "processor_type": "minecraft:protected_blocks", + "value": "#minecraft:features_cannot_replace" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/fossil_rot.json b/data/minecraft/worldgen/processor_list/fossil_rot.json new file mode 100644 index 00000000..9295d08f --- /dev/null +++ b/data/minecraft/worldgen/processor_list/fossil_rot.json @@ -0,0 +1,12 @@ +{ + "processors": [ + { + "integrity": 0.9, + "processor_type": "minecraft:block_rot" + }, + { + "processor_type": "minecraft:protected_blocks", + "value": "#minecraft:features_cannot_replace" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/high_rampart.json b/data/minecraft/worldgen/processor_list/high_rampart.json new file mode 100644 index 00000000..635d25eb --- /dev/null +++ b/data/minecraft/worldgen/processor_list/high_rampart.json @@ -0,0 +1,54 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:gold_block", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "predicate_type": "minecraft:always_true" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + }, + "position_predicate": { + "axis": "y", + "max_chance": 0.05, + "max_dist": 100, + "min_chance": 0.0, + "min_dist": 0, + "predicate_type": "minecraft:axis_aligned_linear_pos" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/high_wall.json b/data/minecraft/worldgen/processor_list/high_wall.json new file mode 100644 index 00000000..413a7925 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/high_wall.json @@ -0,0 +1,61 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/housing.json b/data/minecraft/worldgen/processor_list/housing.json new file mode 100644 index 00000000..166d1246 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/housing.json @@ -0,0 +1,61 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 1.0E-4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/mossify_10_percent.json b/data/minecraft/worldgen/processor_list/mossify_10_percent.json new file mode 100644 index 00000000..f518c509 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/mossify_10_percent.json @@ -0,0 +1,22 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:mossy_cobblestone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/mossify_20_percent.json b/data/minecraft/worldgen/processor_list/mossify_20_percent.json new file mode 100644 index 00000000..c3a45e28 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/mossify_20_percent.json @@ -0,0 +1,22 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:mossy_cobblestone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/mossify_70_percent.json b/data/minecraft/worldgen/processor_list/mossify_70_percent.json new file mode 100644 index 00000000..7b14dbdf --- /dev/null +++ b/data/minecraft/worldgen/processor_list/mossify_70_percent.json @@ -0,0 +1,22 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.7 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:mossy_cobblestone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/outpost_rot.json b/data/minecraft/worldgen/processor_list/outpost_rot.json new file mode 100644 index 00000000..65991b4c --- /dev/null +++ b/data/minecraft/worldgen/processor_list/outpost_rot.json @@ -0,0 +1,8 @@ +{ + "processors": [ + { + "integrity": 0.05, + "processor_type": "minecraft:block_rot" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/rampart_degradation.json b/data/minecraft/worldgen/processor_list/rampart_degradation.json new file mode 100644 index 00000000..b18c5ba6 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/rampart_degradation.json @@ -0,0 +1,100 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 1.0E-4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 1.0E-4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:gold_block", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/roof.json b/data/minecraft/worldgen/processor_list/roof.json new file mode 100644 index 00000000..2f0f4c26 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/roof.json @@ -0,0 +1,48 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.15 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/side_wall_degradation.json b/data/minecraft/worldgen/processor_list/side_wall_degradation.json new file mode 100644 index 00000000..6b33ec25 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/side_wall_degradation.json @@ -0,0 +1,61 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:chiseled_polished_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:gold_block", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/stable_degradation.json b/data/minecraft/worldgen/processor_list/stable_degradation.json new file mode 100644 index 00000000..ada3a945 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/stable_degradation.json @@ -0,0 +1,61 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 1.0E-4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/street_plains.json b/data/minecraft/worldgen/processor_list/street_plains.json new file mode 100644 index 00000000..098c0868 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/street_plains.json @@ -0,0 +1,70 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:dirt_path", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:oak_planks" + } + }, + { + "input_predicate": { + "block": "minecraft:dirt_path", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + }, + { + "input_predicate": { + "block": "minecraft:grass_block", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:dirt", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/street_savanna.json b/data/minecraft/worldgen/processor_list/street_savanna.json new file mode 100644 index 00000000..ad90f636 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/street_savanna.json @@ -0,0 +1,70 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:dirt_path", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:acacia_planks" + } + }, + { + "input_predicate": { + "block": "minecraft:dirt_path", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + }, + { + "input_predicate": { + "block": "minecraft:grass_block", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:dirt", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/street_snowy_or_taiga.json b/data/minecraft/worldgen/processor_list/street_snowy_or_taiga.json new file mode 100644 index 00000000..21fc3017 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/street_snowy_or_taiga.json @@ -0,0 +1,83 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:dirt_path", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:spruce_planks" + } + }, + { + "input_predicate": { + "block": "minecraft:dirt_path", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:ice", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:spruce_planks" + } + }, + { + "input_predicate": { + "block": "minecraft:dirt_path", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + }, + { + "input_predicate": { + "block": "minecraft:grass_block", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:dirt", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "block": "minecraft:water", + "predicate_type": "minecraft:block_match" + }, + "output_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/trail_ruins_houses_archaeology.json b/data/minecraft/worldgen/processor_list/trail_ruins_houses_archaeology.json new file mode 100644 index 00000000..2d6a7fa6 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/trail_ruins_houses_archaeology.json @@ -0,0 +1,104 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:gravel", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:dirt" + } + }, + { + "input_predicate": { + "block": "minecraft:gravel", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:coarse_dirt" + } + }, + { + "input_predicate": { + "block": "minecraft:mud_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:packed_mud" + } + } + ] + }, + { + "delegate": { + "processor_type": "minecraft:rule", + "rules": [ + { + "block_entity_modifier": { + "type": "minecraft:append_loot", + "loot_table": "minecraft:archaeology/trail_ruins_common" + }, + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:trail_ruins_replaceable" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:suspicious_gravel", + "Properties": { + "dusted": "0" + } + } + } + ] + }, + "limit": 6, + "processor_type": "minecraft:capped" + }, + { + "delegate": { + "processor_type": "minecraft:rule", + "rules": [ + { + "block_entity_modifier": { + "type": "minecraft:append_loot", + "loot_table": "minecraft:archaeology/trail_ruins_rare" + }, + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:trail_ruins_replaceable" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:suspicious_gravel", + "Properties": { + "dusted": "0" + } + } + } + ] + }, + "limit": 3, + "processor_type": "minecraft:capped" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/trail_ruins_roads_archaeology.json b/data/minecraft/worldgen/processor_list/trail_ruins_roads_archaeology.json new file mode 100644 index 00000000..8a76493b --- /dev/null +++ b/data/minecraft/worldgen/processor_list/trail_ruins_roads_archaeology.json @@ -0,0 +1,76 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:gravel", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:dirt" + } + }, + { + "input_predicate": { + "block": "minecraft:gravel", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:coarse_dirt" + } + }, + { + "input_predicate": { + "block": "minecraft:mud_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:packed_mud" + } + } + ] + }, + { + "delegate": { + "processor_type": "minecraft:rule", + "rules": [ + { + "block_entity_modifier": { + "type": "minecraft:append_loot", + "loot_table": "minecraft:archaeology/trail_ruins_common" + }, + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:trail_ruins_replaceable" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:suspicious_gravel", + "Properties": { + "dusted": "0" + } + } + } + ] + }, + "limit": 2, + "processor_type": "minecraft:capped" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/trail_ruins_tower_top_archaeology.json b/data/minecraft/worldgen/processor_list/trail_ruins_tower_top_archaeology.json new file mode 100644 index 00000000..1658d1c9 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/trail_ruins_tower_top_archaeology.json @@ -0,0 +1,32 @@ +{ + "processors": [ + { + "delegate": { + "processor_type": "minecraft:rule", + "rules": [ + { + "block_entity_modifier": { + "type": "minecraft:append_loot", + "loot_table": "minecraft:archaeology/trail_ruins_common" + }, + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:trail_ruins_replaceable" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:suspicious_gravel", + "Properties": { + "dusted": "0" + } + } + } + ] + }, + "limit": 2, + "processor_type": "minecraft:capped" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/treasure_rooms.json b/data/minecraft/worldgen/processor_list/treasure_rooms.json new file mode 100644 index 00000000..5ab17822 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/treasure_rooms.json @@ -0,0 +1,61 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:polished_blackstone_bricks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.35 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:chiseled_polished_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cracked_polished_blackstone_bricks" + } + }, + { + "input_predicate": { + "block": "minecraft:gilded_blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:blackstone" + } + }, + { + "input_predicate": { + "block": "minecraft:blackstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.01 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:gilded_blackstone" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/trial_chambers_copper_bulb_degradation.json b/data/minecraft/worldgen/processor_list/trial_chambers_copper_bulb_degradation.json new file mode 100644 index 00000000..d5debb6b --- /dev/null +++ b/data/minecraft/worldgen/processor_list/trial_chambers_copper_bulb_degradation.json @@ -0,0 +1,64 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:waxed_copper_bulb", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:waxed_oxidized_copper_bulb", + "Properties": { + "lit": "true", + "powered": "false" + } + } + }, + { + "input_predicate": { + "block": "minecraft:waxed_copper_bulb", + "predicate_type": "minecraft:random_block_match", + "probability": 0.33333334 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:waxed_weathered_copper_bulb", + "Properties": { + "lit": "true", + "powered": "false" + } + } + }, + { + "input_predicate": { + "block": "minecraft:waxed_copper_bulb", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:waxed_exposed_copper_bulb", + "Properties": { + "lit": "true", + "powered": "false" + } + } + } + ] + }, + { + "processor_type": "minecraft:protected_blocks", + "value": "#minecraft:features_cannot_replace" + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/zombie_desert.json b/data/minecraft/worldgen/processor_list/zombie_desert.json new file mode 100644 index 00000000..8846384a --- /dev/null +++ b/data/minecraft/worldgen/processor_list/zombie_desert.json @@ -0,0 +1,142 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:doors" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:wall_torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:smooth_sandstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.08 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:cut_sandstone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:terracotta", + "predicate_type": "minecraft:random_block_match", + "probability": 0.08 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:smooth_sandstone_stairs", + "predicate_type": "minecraft:random_block_match", + "probability": 0.08 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:smooth_sandstone_slab", + "predicate_type": "minecraft:random_block_match", + "probability": 0.08 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:beetroots", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:melon_stem", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/zombie_plains.json b/data/minecraft/worldgen/processor_list/zombie_plains.json new file mode 100644 index 00000000..e85d5a3e --- /dev/null +++ b/data/minecraft/worldgen/processor_list/zombie_plains.json @@ -0,0 +1,266 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.8 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:mossy_cobblestone" + } + }, + { + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:doors" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:wall_torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.07 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:mossy_cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.07 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:white_terracotta", + "predicate_type": "minecraft:random_block_match", + "probability": 0.07 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:oak_log", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:oak_planks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:oak_stairs", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:stripped_oak_log", + "predicate_type": "minecraft:random_block_match", + "probability": 0.02 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:glass_pane", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:carrots", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:potatoes", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:beetroots", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/zombie_savanna.json b/data/minecraft/worldgen/processor_list/zombie_savanna.json new file mode 100644 index 00000000..d6a0354d --- /dev/null +++ b/data/minecraft/worldgen/processor_list/zombie_savanna.json @@ -0,0 +1,221 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:doors" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:wall_torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:acacia_planks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:acacia_stairs", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:acacia_log", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:acacia_wood", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:orange_terracotta", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:yellow_terracotta", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:red_terracotta", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:glass_pane", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:melon_stem", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/zombie_snowy.json b/data/minecraft/worldgen/processor_list/zombie_snowy.json new file mode 100644 index 00000000..9464bd14 --- /dev/null +++ b/data/minecraft/worldgen/processor_list/zombie_snowy.json @@ -0,0 +1,210 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:doors" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:wall_torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:lantern", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:spruce_planks", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:spruce_slab", + "predicate_type": "minecraft:random_block_match", + "probability": 0.4 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:stripped_spruce_log", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:stripped_spruce_wood", + "predicate_type": "minecraft:random_block_match", + "probability": 0.05 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:glass_pane", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.1 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:carrots", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.8 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:potatoes", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/processor_list/zombie_taiga.json b/data/minecraft/worldgen/processor_list/zombie_taiga.json new file mode 100644 index 00000000..bd94491d --- /dev/null +++ b/data/minecraft/worldgen/processor_list/zombie_taiga.json @@ -0,0 +1,203 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "input_predicate": { + "block": "minecraft:cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.8 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:mossy_cobblestone" + } + }, + { + "input_predicate": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:doors" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:wall_torch", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:air" + } + }, + { + "input_predicate": { + "block": "minecraft:campfire", + "predicate_type": "minecraft:block_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:campfire", + "Properties": { + "facing": "north", + "lit": "false", + "signal_fire": "false", + "waterlogged": "false" + } + } + }, + { + "input_predicate": { + "block": "minecraft:cobblestone", + "predicate_type": "minecraft:random_block_match", + "probability": 0.08 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:spruce_log", + "predicate_type": "minecraft:random_block_match", + "probability": 0.08 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block": "minecraft:glass_pane", + "predicate_type": "minecraft:random_block_match", + "probability": 0.5 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:cobweb" + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "false", + "north": "true", + "south": "true", + "waterlogged": "false", + "west": "false" + } + } + }, + { + "input_predicate": { + "block_state": { + "Name": "minecraft:glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + }, + "predicate_type": "minecraft:blockstate_match" + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:brown_stained_glass_pane", + "Properties": { + "east": "true", + "north": "false", + "south": "false", + "waterlogged": "false", + "west": "true" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.3 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:pumpkin_stem", + "Properties": { + "age": "0" + } + } + }, + { + "input_predicate": { + "block": "minecraft:wheat", + "predicate_type": "minecraft:random_block_match", + "probability": 0.2 + }, + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:potatoes", + "Properties": { + "age": "0" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ancient_city.json b/data/minecraft/worldgen/structure/ancient_city.json new file mode 100644 index 00000000..d7582a0b --- /dev/null +++ b/data/minecraft/worldgen/structure/ancient_city.json @@ -0,0 +1,48 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/ancient_city", + "max_distance_from_center": 116, + "size": 7, + "spawn_overrides": { + "ambient": { + "bounding_box": "full", + "spawns": [] + }, + "axolotls": { + "bounding_box": "full", + "spawns": [] + }, + "creature": { + "bounding_box": "full", + "spawns": [] + }, + "misc": { + "bounding_box": "full", + "spawns": [] + }, + "monster": { + "bounding_box": "full", + "spawns": [] + }, + "underground_water_creature": { + "bounding_box": "full", + "spawns": [] + }, + "water_ambient": { + "bounding_box": "full", + "spawns": [] + }, + "water_creature": { + "bounding_box": "full", + "spawns": [] + } + }, + "start_height": { + "absolute": -27 + }, + "start_jigsaw_name": "minecraft:city_anchor", + "start_pool": "minecraft:ancient_city/city_center", + "step": "underground_decoration", + "terrain_adaptation": "beard_box", + "use_expansion_hack": false +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/bastion_remnant.json b/data/minecraft/worldgen/structure/bastion_remnant.json new file mode 100644 index 00000000..105d6db0 --- /dev/null +++ b/data/minecraft/worldgen/structure/bastion_remnant.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/bastion_remnant", + "max_distance_from_center": 80, + "size": 6, + "spawn_overrides": {}, + "start_height": { + "absolute": 33 + }, + "start_pool": "minecraft:bastion/starts", + "step": "surface_structures", + "use_expansion_hack": false +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/buried_treasure.json b/data/minecraft/worldgen/structure/buried_treasure.json new file mode 100644 index 00000000..0ecc1c97 --- /dev/null +++ b/data/minecraft/worldgen/structure/buried_treasure.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:buried_treasure", + "biomes": "#minecraft:has_structure/buried_treasure", + "spawn_overrides": {}, + "step": "underground_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/desert_pyramid.json b/data/minecraft/worldgen/structure/desert_pyramid.json new file mode 100644 index 00000000..a11436ba --- /dev/null +++ b/data/minecraft/worldgen/structure/desert_pyramid.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:desert_pyramid", + "biomes": "#minecraft:has_structure/desert_pyramid", + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/end_city.json b/data/minecraft/worldgen/structure/end_city.json new file mode 100644 index 00000000..022ffaec --- /dev/null +++ b/data/minecraft/worldgen/structure/end_city.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:end_city", + "biomes": "#minecraft:has_structure/end_city", + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/fortress.json b/data/minecraft/worldgen/structure/fortress.json new file mode 100644 index 00000000..e310f12d --- /dev/null +++ b/data/minecraft/worldgen/structure/fortress.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:fortress", + "biomes": "#minecraft:has_structure/nether_fortress", + "spawn_overrides": { + "monster": { + "bounding_box": "piece", + "spawns": [ + { + "type": "minecraft:blaze", + "maxCount": 3, + "minCount": 2, + "weight": 10 + }, + { + "type": "minecraft:zombified_piglin", + "maxCount": 4, + "minCount": 4, + "weight": 5 + }, + { + "type": "minecraft:wither_skeleton", + "maxCount": 5, + "minCount": 5, + "weight": 8 + }, + { + "type": "minecraft:skeleton", + "maxCount": 5, + "minCount": 5, + "weight": 2 + }, + { + "type": "minecraft:magma_cube", + "maxCount": 4, + "minCount": 4, + "weight": 3 + } + ] + } + }, + "step": "underground_decoration" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/igloo.json b/data/minecraft/worldgen/structure/igloo.json new file mode 100644 index 00000000..6e46cb68 --- /dev/null +++ b/data/minecraft/worldgen/structure/igloo.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:igloo", + "biomes": "#minecraft:has_structure/igloo", + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/jungle_pyramid.json b/data/minecraft/worldgen/structure/jungle_pyramid.json new file mode 100644 index 00000000..66c88010 --- /dev/null +++ b/data/minecraft/worldgen/structure/jungle_pyramid.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:jungle_temple", + "biomes": "#minecraft:has_structure/jungle_temple", + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/mansion.json b/data/minecraft/worldgen/structure/mansion.json new file mode 100644 index 00000000..25ccc3e2 --- /dev/null +++ b/data/minecraft/worldgen/structure/mansion.json @@ -0,0 +1,6 @@ +{ + "type": "minecraft:woodland_mansion", + "biomes": "#minecraft:has_structure/woodland_mansion", + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/mineshaft.json b/data/minecraft/worldgen/structure/mineshaft.json new file mode 100644 index 00000000..973a9575 --- /dev/null +++ b/data/minecraft/worldgen/structure/mineshaft.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:mineshaft", + "biomes": "#minecraft:has_structure/mineshaft", + "mineshaft_type": "normal", + "spawn_overrides": {}, + "step": "underground_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/mineshaft_mesa.json b/data/minecraft/worldgen/structure/mineshaft_mesa.json new file mode 100644 index 00000000..5c163780 --- /dev/null +++ b/data/minecraft/worldgen/structure/mineshaft_mesa.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:mineshaft", + "biomes": "#minecraft:has_structure/mineshaft_mesa", + "mineshaft_type": "mesa", + "spawn_overrides": {}, + "step": "underground_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/monument.json b/data/minecraft/worldgen/structure/monument.json new file mode 100644 index 00000000..e4aa008e --- /dev/null +++ b/data/minecraft/worldgen/structure/monument.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:ocean_monument", + "biomes": "#minecraft:has_structure/ocean_monument", + "spawn_overrides": { + "axolotls": { + "bounding_box": "full", + "spawns": [] + }, + "monster": { + "bounding_box": "full", + "spawns": [ + { + "type": "minecraft:guardian", + "maxCount": 4, + "minCount": 2, + "weight": 1 + } + ] + }, + "underground_water_creature": { + "bounding_box": "full", + "spawns": [] + } + }, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/nether_fossil.json b/data/minecraft/worldgen/structure/nether_fossil.json new file mode 100644 index 00000000..d040f3e2 --- /dev/null +++ b/data/minecraft/worldgen/structure/nether_fossil.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:nether_fossil", + "biomes": "#minecraft:has_structure/nether_fossil", + "height": { + "type": "minecraft:uniform", + "max_inclusive": { + "below_top": 2 + }, + "min_inclusive": { + "absolute": 32 + } + }, + "spawn_overrides": {}, + "step": "underground_decoration", + "terrain_adaptation": "beard_thin" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ocean_ruin_cold.json b/data/minecraft/worldgen/structure/ocean_ruin_cold.json new file mode 100644 index 00000000..552a31fd --- /dev/null +++ b/data/minecraft/worldgen/structure/ocean_ruin_cold.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:ocean_ruin", + "biome_temp": "cold", + "biomes": "#minecraft:has_structure/ocean_ruin_cold", + "cluster_probability": 0.9, + "large_probability": 0.3, + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ocean_ruin_warm.json b/data/minecraft/worldgen/structure/ocean_ruin_warm.json new file mode 100644 index 00000000..8620fa9d --- /dev/null +++ b/data/minecraft/worldgen/structure/ocean_ruin_warm.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:ocean_ruin", + "biome_temp": "warm", + "biomes": "#minecraft:has_structure/ocean_ruin_warm", + "cluster_probability": 0.9, + "large_probability": 0.3, + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/pillager_outpost.json b/data/minecraft/worldgen/structure/pillager_outpost.json new file mode 100644 index 00000000..a11ced2a --- /dev/null +++ b/data/minecraft/worldgen/structure/pillager_outpost.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/pillager_outpost", + "max_distance_from_center": 80, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "size": 7, + "spawn_overrides": { + "monster": { + "bounding_box": "full", + "spawns": [ + { + "type": "minecraft:pillager", + "maxCount": 1, + "minCount": 1, + "weight": 1 + } + ] + } + }, + "start_height": { + "absolute": 0 + }, + "start_pool": "minecraft:pillager_outpost/base_plates", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "use_expansion_hack": true +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ruined_portal.json b/data/minecraft/worldgen/structure/ruined_portal.json new file mode 100644 index 00000000..5c8ae1b5 --- /dev/null +++ b/data/minecraft/worldgen/structure/ruined_portal.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:ruined_portal", + "biomes": "#minecraft:has_structure/ruined_portal_standard", + "setups": [ + { + "air_pocket_probability": 1.0, + "can_be_cold": true, + "mossiness": 0.2, + "overgrown": false, + "placement": "underground", + "replace_with_blackstone": false, + "vines": false, + "weight": 0.5 + }, + { + "air_pocket_probability": 0.5, + "can_be_cold": true, + "mossiness": 0.2, + "overgrown": false, + "placement": "on_land_surface", + "replace_with_blackstone": false, + "vines": false, + "weight": 0.5 + } + ], + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ruined_portal_desert.json b/data/minecraft/worldgen/structure/ruined_portal_desert.json new file mode 100644 index 00000000..489b9c86 --- /dev/null +++ b/data/minecraft/worldgen/structure/ruined_portal_desert.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ruined_portal", + "biomes": "#minecraft:has_structure/ruined_portal_desert", + "setups": [ + { + "air_pocket_probability": 0.0, + "can_be_cold": false, + "mossiness": 0.0, + "overgrown": false, + "placement": "partly_buried", + "replace_with_blackstone": false, + "vines": false, + "weight": 1.0 + } + ], + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ruined_portal_jungle.json b/data/minecraft/worldgen/structure/ruined_portal_jungle.json new file mode 100644 index 00000000..da747a8a --- /dev/null +++ b/data/minecraft/worldgen/structure/ruined_portal_jungle.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ruined_portal", + "biomes": "#minecraft:has_structure/ruined_portal_jungle", + "setups": [ + { + "air_pocket_probability": 0.5, + "can_be_cold": false, + "mossiness": 0.8, + "overgrown": true, + "placement": "on_land_surface", + "replace_with_blackstone": false, + "vines": true, + "weight": 1.0 + } + ], + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ruined_portal_mountain.json b/data/minecraft/worldgen/structure/ruined_portal_mountain.json new file mode 100644 index 00000000..67e3d22c --- /dev/null +++ b/data/minecraft/worldgen/structure/ruined_portal_mountain.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:ruined_portal", + "biomes": "#minecraft:has_structure/ruined_portal_mountain", + "setups": [ + { + "air_pocket_probability": 1.0, + "can_be_cold": true, + "mossiness": 0.2, + "overgrown": false, + "placement": "in_mountain", + "replace_with_blackstone": false, + "vines": false, + "weight": 0.5 + }, + { + "air_pocket_probability": 0.5, + "can_be_cold": true, + "mossiness": 0.2, + "overgrown": false, + "placement": "on_land_surface", + "replace_with_blackstone": false, + "vines": false, + "weight": 0.5 + } + ], + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ruined_portal_nether.json b/data/minecraft/worldgen/structure/ruined_portal_nether.json new file mode 100644 index 00000000..ddf2069c --- /dev/null +++ b/data/minecraft/worldgen/structure/ruined_portal_nether.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ruined_portal", + "biomes": "#minecraft:has_structure/ruined_portal_nether", + "setups": [ + { + "air_pocket_probability": 0.5, + "can_be_cold": false, + "mossiness": 0.0, + "overgrown": false, + "placement": "in_nether", + "replace_with_blackstone": true, + "vines": false, + "weight": 1.0 + } + ], + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ruined_portal_ocean.json b/data/minecraft/worldgen/structure/ruined_portal_ocean.json new file mode 100644 index 00000000..e473d153 --- /dev/null +++ b/data/minecraft/worldgen/structure/ruined_portal_ocean.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ruined_portal", + "biomes": "#minecraft:has_structure/ruined_portal_ocean", + "setups": [ + { + "air_pocket_probability": 0.0, + "can_be_cold": true, + "mossiness": 0.8, + "overgrown": false, + "placement": "on_ocean_floor", + "replace_with_blackstone": false, + "vines": false, + "weight": 1.0 + } + ], + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/ruined_portal_swamp.json b/data/minecraft/worldgen/structure/ruined_portal_swamp.json new file mode 100644 index 00000000..ac0898b1 --- /dev/null +++ b/data/minecraft/worldgen/structure/ruined_portal_swamp.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ruined_portal", + "biomes": "#minecraft:has_structure/ruined_portal_swamp", + "setups": [ + { + "air_pocket_probability": 0.0, + "can_be_cold": false, + "mossiness": 0.5, + "overgrown": false, + "placement": "on_ocean_floor", + "replace_with_blackstone": false, + "vines": true, + "weight": 1.0 + } + ], + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/shipwreck.json b/data/minecraft/worldgen/structure/shipwreck.json new file mode 100644 index 00000000..57e0f941 --- /dev/null +++ b/data/minecraft/worldgen/structure/shipwreck.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:shipwreck", + "biomes": "#minecraft:has_structure/shipwreck", + "is_beached": false, + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/shipwreck_beached.json b/data/minecraft/worldgen/structure/shipwreck_beached.json new file mode 100644 index 00000000..8debacbb --- /dev/null +++ b/data/minecraft/worldgen/structure/shipwreck_beached.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:shipwreck", + "biomes": "#minecraft:has_structure/shipwreck_beached", + "is_beached": true, + "spawn_overrides": {}, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/stronghold.json b/data/minecraft/worldgen/structure/stronghold.json new file mode 100644 index 00000000..53edaf89 --- /dev/null +++ b/data/minecraft/worldgen/structure/stronghold.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:stronghold", + "biomes": "#minecraft:has_structure/stronghold", + "spawn_overrides": {}, + "step": "surface_structures", + "terrain_adaptation": "bury" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/swamp_hut.json b/data/minecraft/worldgen/structure/swamp_hut.json new file mode 100644 index 00000000..21c5c467 --- /dev/null +++ b/data/minecraft/worldgen/structure/swamp_hut.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:swamp_hut", + "biomes": "#minecraft:has_structure/swamp_hut", + "spawn_overrides": { + "creature": { + "bounding_box": "piece", + "spawns": [ + { + "type": "minecraft:cat", + "maxCount": 1, + "minCount": 1, + "weight": 1 + } + ] + }, + "monster": { + "bounding_box": "piece", + "spawns": [ + { + "type": "minecraft:witch", + "maxCount": 1, + "minCount": 1, + "weight": 1 + } + ] + } + }, + "step": "surface_structures" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/trail_ruins.json b/data/minecraft/worldgen/structure/trail_ruins.json new file mode 100644 index 00000000..eead38e3 --- /dev/null +++ b/data/minecraft/worldgen/structure/trail_ruins.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/trail_ruins", + "max_distance_from_center": 80, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "size": 7, + "spawn_overrides": {}, + "start_height": { + "absolute": -15 + }, + "start_pool": "minecraft:trail_ruins/tower", + "step": "underground_structures", + "terrain_adaptation": "bury", + "use_expansion_hack": false +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/trial_chambers.json b/data/minecraft/worldgen/structure/trial_chambers.json new file mode 100644 index 00000000..1debb918 --- /dev/null +++ b/data/minecraft/worldgen/structure/trial_chambers.json @@ -0,0 +1,147 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/trial_chambers", + "dimension_padding": 10, + "liquid_settings": "ignore_waterlogging", + "max_distance_from_center": 116, + "pool_aliases": [ + { + "type": "minecraft:random_group", + "groups": [ + { + "data": [ + { + "type": "minecraft:direct", + "alias": "minecraft:trial_chambers/spawner/contents/ranged", + "target": "minecraft:trial_chambers/spawner/ranged/skeleton" + }, + { + "type": "minecraft:direct", + "alias": "minecraft:trial_chambers/spawner/contents/slow_ranged", + "target": "minecraft:trial_chambers/spawner/slow_ranged/skeleton" + } + ], + "weight": 1 + }, + { + "data": [ + { + "type": "minecraft:direct", + "alias": "minecraft:trial_chambers/spawner/contents/ranged", + "target": "minecraft:trial_chambers/spawner/ranged/stray" + }, + { + "type": "minecraft:direct", + "alias": "minecraft:trial_chambers/spawner/contents/slow_ranged", + "target": "minecraft:trial_chambers/spawner/slow_ranged/stray" + } + ], + "weight": 1 + }, + { + "data": [ + { + "type": "minecraft:direct", + "alias": "minecraft:trial_chambers/spawner/contents/ranged", + "target": "minecraft:trial_chambers/spawner/ranged/poison_skeleton" + }, + { + "type": "minecraft:direct", + "alias": "minecraft:trial_chambers/spawner/contents/slow_ranged", + "target": "minecraft:trial_chambers/spawner/slow_ranged/poison_skeleton" + } + ], + "weight": 1 + } + ] + }, + { + "type": "minecraft:random", + "alias": "minecraft:trial_chambers/spawner/contents/melee", + "targets": [ + { + "data": "minecraft:trial_chambers/spawner/melee/zombie", + "weight": 1 + }, + { + "data": "minecraft:trial_chambers/spawner/melee/husk", + "weight": 1 + }, + { + "data": "minecraft:trial_chambers/spawner/melee/spider", + "weight": 1 + } + ] + }, + { + "type": "minecraft:random", + "alias": "minecraft:trial_chambers/spawner/contents/small_melee", + "targets": [ + { + "data": "minecraft:trial_chambers/spawner/small_melee/slime", + "weight": 1 + }, + { + "data": "minecraft:trial_chambers/spawner/small_melee/cave_spider", + "weight": 1 + }, + { + "data": "minecraft:trial_chambers/spawner/small_melee/silverfish", + "weight": 1 + }, + { + "data": "minecraft:trial_chambers/spawner/small_melee/baby_zombie", + "weight": 1 + } + ] + } + ], + "size": 20, + "spawn_overrides": { + "ambient": { + "bounding_box": "piece", + "spawns": [] + }, + "axolotls": { + "bounding_box": "piece", + "spawns": [] + }, + "creature": { + "bounding_box": "piece", + "spawns": [] + }, + "misc": { + "bounding_box": "piece", + "spawns": [] + }, + "monster": { + "bounding_box": "piece", + "spawns": [] + }, + "underground_water_creature": { + "bounding_box": "piece", + "spawns": [] + }, + "water_ambient": { + "bounding_box": "piece", + "spawns": [] + }, + "water_creature": { + "bounding_box": "piece", + "spawns": [] + } + }, + "start_height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": -20 + }, + "min_inclusive": { + "absolute": -40 + } + }, + "start_pool": "minecraft:trial_chambers/chamber/end", + "step": "underground_structures", + "terrain_adaptation": "encapsulate", + "use_expansion_hack": false +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/village_desert.json b/data/minecraft/worldgen/structure/village_desert.json new file mode 100644 index 00000000..8e140ee3 --- /dev/null +++ b/data/minecraft/worldgen/structure/village_desert.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/village_desert", + "max_distance_from_center": 80, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "size": 6, + "spawn_overrides": {}, + "start_height": { + "absolute": 0 + }, + "start_pool": "minecraft:village/desert/town_centers", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "use_expansion_hack": true +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/village_plains.json b/data/minecraft/worldgen/structure/village_plains.json new file mode 100644 index 00000000..5aa6d1a0 --- /dev/null +++ b/data/minecraft/worldgen/structure/village_plains.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/village_plains", + "max_distance_from_center": 80, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "size": 6, + "spawn_overrides": {}, + "start_height": { + "absolute": 0 + }, + "start_pool": "minecraft:village/plains/town_centers", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "use_expansion_hack": true +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/village_savanna.json b/data/minecraft/worldgen/structure/village_savanna.json new file mode 100644 index 00000000..0281f6a7 --- /dev/null +++ b/data/minecraft/worldgen/structure/village_savanna.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/village_savanna", + "max_distance_from_center": 80, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "size": 6, + "spawn_overrides": {}, + "start_height": { + "absolute": 0 + }, + "start_pool": "minecraft:village/savanna/town_centers", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "use_expansion_hack": true +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/village_snowy.json b/data/minecraft/worldgen/structure/village_snowy.json new file mode 100644 index 00000000..cca57933 --- /dev/null +++ b/data/minecraft/worldgen/structure/village_snowy.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/village_snowy", + "max_distance_from_center": 80, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "size": 6, + "spawn_overrides": {}, + "start_height": { + "absolute": 0 + }, + "start_pool": "minecraft:village/snowy/town_centers", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "use_expansion_hack": true +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure/village_taiga.json b/data/minecraft/worldgen/structure/village_taiga.json new file mode 100644 index 00000000..8a88cdd8 --- /dev/null +++ b/data/minecraft/worldgen/structure/village_taiga.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:has_structure/village_taiga", + "max_distance_from_center": 80, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "size": 6, + "spawn_overrides": {}, + "start_height": { + "absolute": 0 + }, + "start_pool": "minecraft:village/taiga/town_centers", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "use_expansion_hack": true +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/ancient_cities.json b/data/minecraft/worldgen/structure_set/ancient_cities.json new file mode 100644 index 00000000..decca0b9 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/ancient_cities.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 20083232, + "separation": 8, + "spacing": 24 + }, + "structures": [ + { + "structure": "minecraft:ancient_city", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/buried_treasures.json b/data/minecraft/worldgen/structure_set/buried_treasures.json new file mode 100644 index 00000000..fe9483fd --- /dev/null +++ b/data/minecraft/worldgen/structure_set/buried_treasures.json @@ -0,0 +1,21 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "frequency": 0.01, + "frequency_reduction_method": "legacy_type_2", + "locate_offset": [ + 9, + 0, + 9 + ], + "salt": 0, + "separation": 0, + "spacing": 1 + }, + "structures": [ + { + "structure": "minecraft:buried_treasure", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/desert_pyramids.json b/data/minecraft/worldgen/structure_set/desert_pyramids.json new file mode 100644 index 00000000..99f26c3a --- /dev/null +++ b/data/minecraft/worldgen/structure_set/desert_pyramids.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 14357617, + "separation": 8, + "spacing": 32 + }, + "structures": [ + { + "structure": "minecraft:desert_pyramid", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/end_cities.json b/data/minecraft/worldgen/structure_set/end_cities.json new file mode 100644 index 00000000..8e7b3bb7 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/end_cities.json @@ -0,0 +1,15 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 10387313, + "separation": 11, + "spacing": 20, + "spread_type": "triangular" + }, + "structures": [ + { + "structure": "minecraft:end_city", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/igloos.json b/data/minecraft/worldgen/structure_set/igloos.json new file mode 100644 index 00000000..f2e610fb --- /dev/null +++ b/data/minecraft/worldgen/structure_set/igloos.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 14357618, + "separation": 8, + "spacing": 32 + }, + "structures": [ + { + "structure": "minecraft:igloo", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/jungle_temples.json b/data/minecraft/worldgen/structure_set/jungle_temples.json new file mode 100644 index 00000000..e792548f --- /dev/null +++ b/data/minecraft/worldgen/structure_set/jungle_temples.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 14357619, + "separation": 8, + "spacing": 32 + }, + "structures": [ + { + "structure": "minecraft:jungle_pyramid", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/mineshafts.json b/data/minecraft/worldgen/structure_set/mineshafts.json new file mode 100644 index 00000000..e4fc85a9 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/mineshafts.json @@ -0,0 +1,20 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "frequency": 0.004, + "frequency_reduction_method": "legacy_type_3", + "salt": 0, + "separation": 0, + "spacing": 1 + }, + "structures": [ + { + "structure": "minecraft:mineshaft", + "weight": 1 + }, + { + "structure": "minecraft:mineshaft_mesa", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/nether_complexes.json b/data/minecraft/worldgen/structure_set/nether_complexes.json new file mode 100644 index 00000000..3f2d8e00 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/nether_complexes.json @@ -0,0 +1,18 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 30084232, + "separation": 4, + "spacing": 27 + }, + "structures": [ + { + "structure": "minecraft:fortress", + "weight": 2 + }, + { + "structure": "minecraft:bastion_remnant", + "weight": 3 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/nether_fossils.json b/data/minecraft/worldgen/structure_set/nether_fossils.json new file mode 100644 index 00000000..571a28f8 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/nether_fossils.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 14357921, + "separation": 1, + "spacing": 2 + }, + "structures": [ + { + "structure": "minecraft:nether_fossil", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/ocean_monuments.json b/data/minecraft/worldgen/structure_set/ocean_monuments.json new file mode 100644 index 00000000..0a0157d8 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/ocean_monuments.json @@ -0,0 +1,15 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 10387313, + "separation": 5, + "spacing": 32, + "spread_type": "triangular" + }, + "structures": [ + { + "structure": "minecraft:monument", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/ocean_ruins.json b/data/minecraft/worldgen/structure_set/ocean_ruins.json new file mode 100644 index 00000000..9a8b6e5d --- /dev/null +++ b/data/minecraft/worldgen/structure_set/ocean_ruins.json @@ -0,0 +1,18 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 14357621, + "separation": 8, + "spacing": 20 + }, + "structures": [ + { + "structure": "minecraft:ocean_ruin_cold", + "weight": 1 + }, + { + "structure": "minecraft:ocean_ruin_warm", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/pillager_outposts.json b/data/minecraft/worldgen/structure_set/pillager_outposts.json new file mode 100644 index 00000000..ad635a47 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/pillager_outposts.json @@ -0,0 +1,20 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "exclusion_zone": { + "chunk_count": 10, + "other_set": "minecraft:villages" + }, + "frequency": 0.2, + "frequency_reduction_method": "legacy_type_1", + "salt": 165745296, + "separation": 8, + "spacing": 32 + }, + "structures": [ + { + "structure": "minecraft:pillager_outpost", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/ruined_portals.json b/data/minecraft/worldgen/structure_set/ruined_portals.json new file mode 100644 index 00000000..60c2e972 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/ruined_portals.json @@ -0,0 +1,38 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 34222645, + "separation": 15, + "spacing": 40 + }, + "structures": [ + { + "structure": "minecraft:ruined_portal", + "weight": 1 + }, + { + "structure": "minecraft:ruined_portal_desert", + "weight": 1 + }, + { + "structure": "minecraft:ruined_portal_jungle", + "weight": 1 + }, + { + "structure": "minecraft:ruined_portal_swamp", + "weight": 1 + }, + { + "structure": "minecraft:ruined_portal_mountain", + "weight": 1 + }, + { + "structure": "minecraft:ruined_portal_ocean", + "weight": 1 + }, + { + "structure": "minecraft:ruined_portal_nether", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/shipwrecks.json b/data/minecraft/worldgen/structure_set/shipwrecks.json new file mode 100644 index 00000000..7b403b4c --- /dev/null +++ b/data/minecraft/worldgen/structure_set/shipwrecks.json @@ -0,0 +1,18 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 165745295, + "separation": 4, + "spacing": 24 + }, + "structures": [ + { + "structure": "minecraft:shipwreck", + "weight": 1 + }, + { + "structure": "minecraft:shipwreck_beached", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/strongholds.json b/data/minecraft/worldgen/structure_set/strongholds.json new file mode 100644 index 00000000..c3f6005e --- /dev/null +++ b/data/minecraft/worldgen/structure_set/strongholds.json @@ -0,0 +1,16 @@ +{ + "placement": { + "type": "minecraft:concentric_rings", + "count": 128, + "distance": 32, + "preferred_biomes": "#minecraft:stronghold_biased_to", + "salt": 0, + "spread": 3 + }, + "structures": [ + { + "structure": "minecraft:stronghold", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/swamp_huts.json b/data/minecraft/worldgen/structure_set/swamp_huts.json new file mode 100644 index 00000000..0fe01b4d --- /dev/null +++ b/data/minecraft/worldgen/structure_set/swamp_huts.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 14357620, + "separation": 8, + "spacing": 32 + }, + "structures": [ + { + "structure": "minecraft:swamp_hut", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/trail_ruins.json b/data/minecraft/worldgen/structure_set/trail_ruins.json new file mode 100644 index 00000000..9a9ac814 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/trail_ruins.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 83469867, + "separation": 8, + "spacing": 34 + }, + "structures": [ + { + "structure": "minecraft:trail_ruins", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/trial_chambers.json b/data/minecraft/worldgen/structure_set/trial_chambers.json new file mode 100644 index 00000000..9989d05a --- /dev/null +++ b/data/minecraft/worldgen/structure_set/trial_chambers.json @@ -0,0 +1,14 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 94251327, + "separation": 12, + "spacing": 34 + }, + "structures": [ + { + "structure": "minecraft:trial_chambers", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/villages.json b/data/minecraft/worldgen/structure_set/villages.json new file mode 100644 index 00000000..a9a148ca --- /dev/null +++ b/data/minecraft/worldgen/structure_set/villages.json @@ -0,0 +1,30 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 10387312, + "separation": 8, + "spacing": 34 + }, + "structures": [ + { + "structure": "minecraft:village_plains", + "weight": 1 + }, + { + "structure": "minecraft:village_desert", + "weight": 1 + }, + { + "structure": "minecraft:village_savanna", + "weight": 1 + }, + { + "structure": "minecraft:village_snowy", + "weight": 1 + }, + { + "structure": "minecraft:village_taiga", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/structure_set/woodland_mansions.json b/data/minecraft/worldgen/structure_set/woodland_mansions.json new file mode 100644 index 00000000..d0a685ff --- /dev/null +++ b/data/minecraft/worldgen/structure_set/woodland_mansions.json @@ -0,0 +1,15 @@ +{ + "placement": { + "type": "minecraft:random_spread", + "salt": 10387319, + "separation": 20, + "spacing": 80, + "spread_type": "triangular" + }, + "structures": [ + { + "structure": "minecraft:mansion", + "weight": 1 + } + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/ancient_city/city/entrance.json b/data/minecraft/worldgen/template_pool/ancient_city/city/entrance.json new file mode 100644 index 00000000..f91e5db4 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/ancient_city/city/entrance.json @@ -0,0 +1,59 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city/entrance/entrance_connector", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city/entrance/entrance_path_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city/entrance/entrance_path_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city/entrance/entrance_path_3", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city/entrance/entrance_path_4", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city/entrance/entrance_path_5", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/ancient_city/city_center.json b/data/minecraft/worldgen/template_pool/ancient_city/city_center.json new file mode 100644 index 00000000..f9baf9b7 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/ancient_city/city_center.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/city_center_1", + "processors": "minecraft:ancient_city_start_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/city_center_2", + "processors": "minecraft:ancient_city_start_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/city_center_3", + "processors": "minecraft:ancient_city_start_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/ancient_city/city_center/walls.json b/data/minecraft/worldgen/template_pool/ancient_city/city_center/walls.json new file mode 100644 index 00000000..ddb5fbbb --- /dev/null +++ b/data/minecraft/worldgen/template_pool/ancient_city/city_center/walls.json @@ -0,0 +1,95 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/bottom_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/bottom_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/bottom_left_corner", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/bottom_right_corner_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/bottom_right_corner_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/left", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/right", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/top", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/top_right_corner", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/city_center/walls/top_left_corner", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/ancient_city/sculk.json b/data/minecraft/worldgen/template_pool/ancient_city/sculk.json new file mode 100644 index 00000000..a05c861e --- /dev/null +++ b/data/minecraft/worldgen/template_pool/ancient_city/sculk.json @@ -0,0 +1,19 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:sculk_patch_ancient_city", + "projection": "rigid" + }, + "weight": 6 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/ancient_city/structures.json b/data/minecraft/worldgen/template_pool/ancient_city/structures.json new file mode 100644 index 00000000..6350bed2 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/ancient_city/structures.json @@ -0,0 +1,208 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/barracks", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/chamber_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/chamber_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/chamber_3", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/sauna_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/small_statue", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/large_ruin_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/tall_ruin_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/tall_ruin_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/tall_ruin_3", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/tall_ruin_4", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:list_pool_element", + "elements": [ + { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/camp_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/camp_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/camp_3", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + } + ], + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/medium_ruin_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/medium_ruin_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/small_ruin_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/small_ruin_2", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/large_pillar_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/medium_pillar_1", + "processors": "minecraft:ancient_city_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:list_pool_element", + "elements": [ + { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/structures/ice_box_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + } + ], + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/ancient_city/walls.json b/data/minecraft/worldgen/template_pool/ancient_city/walls.json new file mode 100644 index 00000000..2f17eb21 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/ancient_city/walls.json @@ -0,0 +1,149 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_corner_wall_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_intersection_wall_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_lshape_wall_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_2", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_2", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_3", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_4", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_passage_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/ruined_corner_wall_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/ruined_corner_wall_2", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/ruined_horizontal_wall_stairs_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/ruined_horizontal_wall_stairs_2", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/ruined_horizontal_wall_stairs_3", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/ruined_horizontal_wall_stairs_4", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 3 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/ancient_city/walls/no_corners.json b/data/minecraft/worldgen/template_pool/ancient_city/walls/no_corners.json new file mode 100644 index 00000000..380a33e1 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/ancient_city/walls/no_corners.json @@ -0,0 +1,77 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_2", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_1", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_2", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_3", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_4", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_stairs_5", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:ancient_city/walls/intact_horizontal_wall_bridge", + "processors": "minecraft:ancient_city_walls_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/blocks/gold.json b/data/minecraft/worldgen/template_pool/bastion/blocks/gold.json new file mode 100644 index 00000000..c5c17289 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/blocks/gold.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/blocks/air", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/blocks/gold", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/bridge/bridge_pieces.json b/data/minecraft/worldgen/template_pool/bastion/bridge/bridge_pieces.json new file mode 100644 index 00000000..536479c9 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/bridge/bridge_pieces.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/bridge_pieces/bridge", + "processors": "minecraft:bridge", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/bridge/connectors.json b/data/minecraft/worldgen/template_pool/bastion/bridge/connectors.json new file mode 100644 index 00000000..dfbfc5d4 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/bridge/connectors.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/connectors/back_bridge_top", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/connectors/back_bridge_bottom", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/bridge/legs.json b/data/minecraft/worldgen/template_pool/bastion/bridge/legs.json new file mode 100644 index 00000000..1545bb86 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/bridge/legs.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/legs/leg_0", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/legs/leg_1", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/bridge/rampart_plates.json b/data/minecraft/worldgen/template_pool/bastion/bridge/rampart_plates.json new file mode 100644 index 00000000..fa6aa7cd --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/bridge/rampart_plates.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/rampart_plates/plate_0", + "processors": "minecraft:rampart_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/bridge/ramparts.json b/data/minecraft/worldgen/template_pool/bastion/bridge/ramparts.json new file mode 100644 index 00000000..8d64dd16 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/bridge/ramparts.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/ramparts/rampart_0", + "processors": "minecraft:rampart_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/ramparts/rampart_1", + "processors": "minecraft:rampart_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/bridge/starting_pieces.json b/data/minecraft/worldgen/template_pool/bastion/bridge/starting_pieces.json new file mode 100644 index 00000000..95e67ee9 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/bridge/starting_pieces.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/starting_pieces/entrance", + "processors": "minecraft:entrance_replacement", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/starting_pieces/entrance_face", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/bridge/walls.json b/data/minecraft/worldgen/template_pool/bastion/bridge/walls.json new file mode 100644 index 00000000..519f747b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/bridge/walls.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/walls/wall_base_0", + "processors": "minecraft:rampart_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/walls/wall_base_1", + "processors": "minecraft:rampart_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/connectors.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/connectors.json new file mode 100644 index 00000000..b9141a07 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/connectors.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/connectors/end_post_connector", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/large_stables/inner.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/large_stables/inner.json new file mode 100644 index 00000000..d5f6db4f --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/large_stables/inner.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/inner_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/inner_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/inner_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/inner_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/inner_4", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/large_stables/outer.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/large_stables/outer.json new file mode 100644 index 00000000..7e7f4644 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/large_stables/outer.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/outer_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/outer_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/outer_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/outer_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/large_stables/outer_4", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/mirrored_starting_pieces.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/mirrored_starting_pieces.json new file mode 100644 index 00000000..fe684790 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/mirrored_starting_pieces.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/stairs_0_mirrored", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/stairs_1_mirrored", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/stairs_2_mirrored", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/stairs_3_mirrored", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/stairs_4_mirrored", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/posts.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/posts.json new file mode 100644 index 00000000..72be6944 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/posts.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/posts/stair_post", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/posts/end_post", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/rampart_plates.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/rampart_plates.json new file mode 100644 index 00000000..2c5e9d16 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/rampart_plates.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/rampart_plates/rampart_plate_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/ramparts.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/ramparts.json new file mode 100644 index 00000000..866b742d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/ramparts.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/ramparts/ramparts_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/ramparts/ramparts_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/ramparts/ramparts_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/small_stables/inner.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/small_stables/inner.json new file mode 100644 index 00000000..f49b3d65 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/small_stables/inner.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/inner_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/inner_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/inner_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/inner_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/small_stables/outer.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/small_stables/outer.json new file mode 100644 index 00000000..c6876191 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/small_stables/outer.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/outer_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/outer_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/outer_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/small_stables/outer_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/stairs.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/stairs.json new file mode 100644 index 00000000..dffa6294 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/stairs.json @@ -0,0 +1,140 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_1_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_1_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_1_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_1_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_1_4", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_2_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_2_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_2_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_2_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_2_4", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_3_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_3_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_3_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_3_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/stairs/stairs_3_4", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/starting_pieces.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/starting_pieces.json new file mode 100644 index 00000000..fe42d672 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/starting_pieces.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/starting_stairs_0", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/starting_stairs_1", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/starting_stairs_2", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/starting_stairs_3", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/starting_pieces/starting_stairs_4", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/wall_bases.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/wall_bases.json new file mode 100644 index 00000000..857e2f57 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/wall_bases.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/walls/wall_base", + "processors": "minecraft:stable_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/walls.json b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/walls.json new file mode 100644 index 00000000..d72cfc99 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/hoglin_stable/walls.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/walls/side_wall_0", + "processors": "minecraft:side_wall_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/walls/side_wall_1", + "processors": "minecraft:side_wall_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/mobs/hoglin.json b/data/minecraft/worldgen/template_pool/bastion/mobs/hoglin.json new file mode 100644 index 00000000..80262c74 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/mobs/hoglin.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/hoglin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/empty", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/mobs/piglin.json b/data/minecraft/worldgen/template_pool/bastion/mobs/piglin.json new file mode 100644 index 00000000..49881414 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/mobs/piglin.json @@ -0,0 +1,49 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/melee_piglin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/sword_piglin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/crossbow_piglin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/empty", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/mobs/piglin_melee.json b/data/minecraft/worldgen/template_pool/bastion/mobs/piglin_melee.json new file mode 100644 index 00000000..57e8b443 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/mobs/piglin_melee.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/melee_piglin_always", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/melee_piglin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 5 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/mobs/sword_piglin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/starts.json b/data/minecraft/worldgen/template_pool/bastion/starts.json new file mode 100644 index 00000000..268da0d8 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/starts.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/air_base", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/hoglin_stable/air_base", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/big_air_full", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/bridge/starting_pieces/entrance_base", + "processors": "minecraft:bastion_generic_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/bases.json b/data/minecraft/worldgen/template_pool/bastion/treasure/bases.json new file mode 100644 index 00000000..2407bb50 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/bases.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/bases/lava_basin", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/bases/centers.json b/data/minecraft/worldgen/template_pool/bastion/treasure/bases/centers.json new file mode 100644 index 00000000..37494415 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/bases/centers.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/bases/centers/center_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/bases/centers/center_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/bases/centers/center_2", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/bases/centers/center_3", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/brains.json b/data/minecraft/worldgen/template_pool/bastion/treasure/brains.json new file mode 100644 index 00000000..0424a1a2 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/brains.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/brains/center_brain", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/connectors.json b/data/minecraft/worldgen/template_pool/bastion/treasure/connectors.json new file mode 100644 index 00000000..ee5f8435 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/connectors.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/connectors/center_to_wall_middle", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/connectors/center_to_wall_top", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/connectors/center_to_wall_top_entrance", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/corners/bottom.json b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/bottom.json new file mode 100644 index 00000000..3151ea3b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/bottom.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/bottom/corner_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/bottom/corner_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/corners/edges.json b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/edges.json new file mode 100644 index 00000000..38aaef5d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/edges.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/edges/bottom", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/edges/middle", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/edges/top", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/corners/middle.json b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/middle.json new file mode 100644 index 00000000..26ce379c --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/middle.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/middle/corner_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/middle/corner_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/corners/top.json b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/top.json new file mode 100644 index 00000000..654639fa --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/corners/top.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/top/corner_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/corners/top/corner_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/entrances.json b/data/minecraft/worldgen/template_pool/bastion/treasure/entrances.json new file mode 100644 index 00000000..efebb4cd --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/entrances.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/entrances/entrance_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/houses.json b/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/houses.json new file mode 100644 index 00000000..c7a4e02d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/houses.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/house_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/house_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/large_pool.json b/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/large_pool.json new file mode 100644 index 00000000..abb8c232 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/large_pool.json @@ -0,0 +1,86 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/empty", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/empty", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/fire_room", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/large_bridge_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/large_bridge_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/large_bridge_2", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/large_bridge_3", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/roofed_bridge", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/empty", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/small_pool.json b/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/small_pool.json new file mode 100644 index 00000000..e69a1f97 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/extensions/small_pool.json @@ -0,0 +1,68 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/empty", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/fire_room", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/empty", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/small_bridge_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/small_bridge_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/small_bridge_2", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/extensions/small_bridge_3", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/ramparts.json b/data/minecraft/worldgen/template_pool/bastion/treasure/ramparts.json new file mode 100644 index 00000000..b36db2c6 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/ramparts.json @@ -0,0 +1,59 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/ramparts/mid_wall_main", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/ramparts/mid_wall_side", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/ramparts/bottom_wall_0", + "processors": "minecraft:bottom_rampart", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/ramparts/top_wall", + "processors": "minecraft:high_rampart", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/ramparts/lava_basin_side", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/ramparts/lava_basin_main", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/roofs.json b/data/minecraft/worldgen/template_pool/bastion/treasure/roofs.json new file mode 100644 index 00000000..2a5ca133 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/roofs.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/roofs/wall_roof", + "processors": "minecraft:roof", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/roofs/corner_roof", + "processors": "minecraft:roof", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/roofs/center_roof", + "processors": "minecraft:roof", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/stairs.json b/data/minecraft/worldgen/template_pool/bastion/treasure/stairs.json new file mode 100644 index 00000000..d3cc0b98 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/stairs.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/stairs/lower_stairs", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/walls.json b/data/minecraft/worldgen/template_pool/bastion/treasure/walls.json new file mode 100644 index 00000000..2f0e66a0 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/walls.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/lava_wall", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/entrance_wall", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/walls/bottom.json b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/bottom.json new file mode 100644 index 00000000..7657ab9a --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/bottom.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/bottom/wall_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/bottom/wall_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/bottom/wall_2", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/bottom/wall_3", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/walls/mid.json b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/mid.json new file mode 100644 index 00000000..ad94c72d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/mid.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/mid/wall_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/mid/wall_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/mid/wall_2", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/walls/outer.json b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/outer.json new file mode 100644 index 00000000..51723b0b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/outer.json @@ -0,0 +1,59 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/outer/top_corner", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/outer/mid_corner", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/outer/bottom_corner", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/outer/outer_wall", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/outer/medium_outer_wall", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/outer/tall_outer_wall", + "processors": "minecraft:high_wall", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/treasure/walls/top.json b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/top.json new file mode 100644 index 00000000..d2e25690 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/treasure/walls/top.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/top/main_entrance", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/top/wall_0", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/treasure/walls/top/wall_1", + "processors": "minecraft:treasure_rooms", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/center_pieces.json b/data/minecraft/worldgen/template_pool/bastion/units/center_pieces.json new file mode 100644 index 00000000..22407c36 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/center_pieces.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/center_pieces/center_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/center_pieces/center_1", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/center_pieces/center_2", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/edge_wall_units.json b/data/minecraft/worldgen/template_pool/bastion/units/edge_wall_units.json new file mode 100644 index 00000000..e9d3d785 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/edge_wall_units.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/wall_units/edge_0_large", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/edges.json b/data/minecraft/worldgen/template_pool/bastion/units/edges.json new file mode 100644 index 00000000..86941f70 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/edges.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/edges/edge_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/fillers/stage_0.json b/data/minecraft/worldgen/template_pool/bastion/units/fillers/stage_0.json new file mode 100644 index 00000000..51a65e94 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/fillers/stage_0.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/fillers/stage_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/large_ramparts.json b/data/minecraft/worldgen/template_pool/bastion/units/large_ramparts.json new file mode 100644 index 00000000..371c1e9b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/large_ramparts.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/ramparts/ramparts_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/pathways.json b/data/minecraft/worldgen/template_pool/bastion/units/pathways.json new file mode 100644 index 00000000..e9dee7dd --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/pathways.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/pathways/pathway_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/pathways/pathway_wall_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/rampart_plates.json b/data/minecraft/worldgen/template_pool/bastion/units/rampart_plates.json new file mode 100644 index 00000000..c90df3d6 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/rampart_plates.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/rampart_plates/plate_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/ramparts.json b/data/minecraft/worldgen/template_pool/bastion/units/ramparts.json new file mode 100644 index 00000000..37f3ea6a --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/ramparts.json @@ -0,0 +1,32 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/ramparts/ramparts_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/ramparts/ramparts_1", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/ramparts/ramparts_2", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/stages/rot/stage_1.json b/data/minecraft/worldgen/template_pool/bastion/units/stages/rot/stage_1.json new file mode 100644 index 00000000..384e94d1 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/stages/rot/stage_1.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/rot/stage_1_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_0.json b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_0.json new file mode 100644 index 00000000..7f7b2389 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_0.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_0_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_0_1", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_0_2", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_0_3", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_1.json b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_1.json new file mode 100644 index 00000000..f21b16fa --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_1.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_1_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_1_1", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_1_2", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_1_3", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_2.json b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_2.json new file mode 100644 index 00000000..8f35045a --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_2.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_2_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_2_1", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_3.json b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_3.json new file mode 100644 index 00000000..03ab4efb --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/stages/stage_3.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_3_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_3_1", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_3_2", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/stages/stage_3_3", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/wall_units.json b/data/minecraft/worldgen/template_pool/bastion/units/wall_units.json new file mode 100644 index 00000000..c373888f --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/wall_units.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/wall_units/unit_0", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/bastion/units/walls/wall_bases.json b/data/minecraft/worldgen/template_pool/bastion/units/walls/wall_bases.json new file mode 100644 index 00000000..262a0275 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/bastion/units/walls/wall_bases.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/walls/wall_base", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:bastion/units/walls/connected_wall", + "processors": "minecraft:housing", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/empty.json b/data/minecraft/worldgen/template_pool/empty.json new file mode 100644 index 00000000..6bae5ad7 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/empty.json @@ -0,0 +1,4 @@ +{ + "elements": [], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/pillager_outpost/base_plates.json b/data/minecraft/worldgen/template_pool/pillager_outpost/base_plates.json new file mode 100644 index 00000000..9f7c180b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/pillager_outpost/base_plates.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/base_plate", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/pillager_outpost/feature_plates.json b/data/minecraft/worldgen/template_pool/pillager_outpost/feature_plates.json new file mode 100644 index 00000000..58540017 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/pillager_outpost/feature_plates.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_plate", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/pillager_outpost/features.json b/data/minecraft/worldgen/template_pool/pillager_outpost/features.json new file mode 100644 index 00000000..bc1d5a5e --- /dev/null +++ b/data/minecraft/worldgen/template_pool/pillager_outpost/features.json @@ -0,0 +1,88 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_cage1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_cage2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_cage_with_allays", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_logs", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_tent1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_tent2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/feature_targets", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 6 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/pillager_outpost/towers.json b/data/minecraft/worldgen/template_pool/pillager_outpost/towers.json new file mode 100644 index 00000000..0900d795 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/pillager_outpost/towers.json @@ -0,0 +1,28 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:list_pool_element", + "elements": [ + { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/watchtower", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:pillager_outpost/watchtower_overgrown", + "processors": "minecraft:outpost_rot", + "projection": "rigid" + } + ], + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trail_ruins/buildings.json b/data/minecraft/worldgen/template_pool/trail_ruins/buildings.json new file mode 100644 index 00000000..f8ad2e63 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trail_ruins/buildings.json @@ -0,0 +1,140 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_hall_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_hall_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_hall_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_hall_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_hall_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/large_room_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/large_room_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/large_room_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/large_room_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/large_room_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/one_room_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/one_room_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/one_room_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/one_room_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/one_room_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trail_ruins/buildings/grouped.json b/data/minecraft/worldgen/template_pool/trail_ruins/buildings/grouped.json new file mode 100644 index 00000000..ac3742b4 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trail_ruins/buildings/grouped.json @@ -0,0 +1,185 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_full_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_full_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_full_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_full_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_full_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_lower_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_lower_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_lower_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_lower_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_lower_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_upper_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_upper_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_upper_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_upper_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_upper_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_room_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_room_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_room_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_room_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/buildings/group_room_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trail_ruins/decor.json b/data/minecraft/worldgen/template_pool/trail_ruins/decor.json new file mode 100644 index 00000000..0e653984 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trail_ruins/decor.json @@ -0,0 +1,68 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/decor/decor_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/decor/decor_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/decor/decor_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/decor/decor_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/decor/decor_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/decor/decor_6", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/decor/decor_7", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trail_ruins/roads.json b/data/minecraft/worldgen/template_pool/trail_ruins/roads.json new file mode 100644 index 00000000..78e08201 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trail_ruins/roads.json @@ -0,0 +1,68 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/roads/long_road_end", + "processors": "minecraft:trail_ruins_roads_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/roads/road_end_1", + "processors": "minecraft:trail_ruins_roads_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/roads/road_section_1", + "processors": "minecraft:trail_ruins_roads_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/roads/road_section_2", + "processors": "minecraft:trail_ruins_roads_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/roads/road_section_3", + "processors": "minecraft:trail_ruins_roads_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/roads/road_section_4", + "processors": "minecraft:trail_ruins_roads_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/roads/road_spacer_1", + "processors": "minecraft:trail_ruins_roads_archaeology", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trail_ruins/tower.json b/data/minecraft/worldgen/template_pool/trail_ruins/tower.json new file mode 100644 index 00000000..a6616ddb --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trail_ruins/tower.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trail_ruins/tower/additions.json b/data/minecraft/worldgen/template_pool/trail_ruins/tower/additions.json new file mode 100644 index 00000000..d2cb61c5 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trail_ruins/tower/additions.json @@ -0,0 +1,230 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/hall_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/hall_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/hall_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/hall_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/hall_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/large_hall_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/large_hall_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/large_hall_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/large_hall_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/large_hall_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/one_room_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/one_room_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/one_room_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/one_room_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/one_room_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/platform_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/platform_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/platform_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/platform_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/platform_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/stable_1", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/stable_2", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/stable_3", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/stable_4", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/stable_5", + "processors": "minecraft:trail_ruins_houses_archaeology", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trail_ruins/tower/tower_top.json b/data/minecraft/worldgen/template_pool/trail_ruins/tower/tower_top.json new file mode 100644 index 00000000..1557d5f3 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trail_ruins/tower/tower_top.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_top_1", + "processors": "minecraft:trail_ruins_tower_top_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_top_2", + "processors": "minecraft:trail_ruins_tower_top_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_top_3", + "processors": "minecraft:trail_ruins_tower_top_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_top_4", + "processors": "minecraft:trail_ruins_tower_top_archaeology", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trail_ruins/tower/tower_top_5", + "processors": "minecraft:trail_ruins_tower_top_archaeology", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/atrium.json b/data/minecraft/worldgen/template_pool/trial_chambers/atrium.json new file mode 100644 index 00000000..48435ede --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/atrium.json @@ -0,0 +1,82 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium/bogged_relief", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium/breeze_relief", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium/spiral_relief", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium/spider_relief", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium/grand_staircase_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium/grand_staircase_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium/grand_staircase_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chamber/addon.json b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/addon.json new file mode 100644 index 00000000..3a169623 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/addon.json @@ -0,0 +1,115 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/full_stacked_walkway", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/full_stacked_walkway_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/full_corner_column", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/grate_bridge", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/hanging_platform", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/short_grate_platform", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/short_platform", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/lower_staircase_down", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/walkway_with_bridge_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/addon/c1_breeze", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chamber/assembly.json b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/assembly.json new file mode 100644 index 00000000..466e2c8c --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/assembly.json @@ -0,0 +1,236 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/full_column", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/cover_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/cover_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/cover_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/cover_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/cover_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/cover_6", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/cover_7", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 5 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/platform_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/spawner_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/hanging_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/hanging_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/hanging_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/hanging_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/hanging_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/left_staircase_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/left_staircase_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/left_staircase_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/right_staircase_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/right_staircase_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly/right_staircase_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chamber/end.json b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/end.json new file mode 100644 index 00000000..8f1e1944 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/end.json @@ -0,0 +1,23 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/end_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/end_2", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chamber/entrance_cap.json b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/entrance_cap.json new file mode 100644 index 00000000..bc4657bd --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/entrance_cap.json @@ -0,0 +1,14 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/entrance_cap", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:trial_chambers/chamber/entrance_cap" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chamber/eruption.json b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/eruption.json new file mode 100644 index 00000000..c566f87c --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/eruption.json @@ -0,0 +1,115 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/center_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/breeze_slice_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/slice_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/slice_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/slice_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/quadrant_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/quadrant_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/quadrant_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/quadrant_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption/quadrant_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chamber/pedestal.json b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/pedestal.json new file mode 100644 index 00000000..c08313b8 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/pedestal.json @@ -0,0 +1,159 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/center_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/slice_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/slice_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/slice_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/slice_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/slice_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/ominous_slice_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/quadrant_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/quadrant_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal/quadrant_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chamber/slanted.json b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/slanted.json new file mode 100644 index 00000000..f7027638 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chamber/slanted.json @@ -0,0 +1,170 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/center", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/hallway_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/hallway_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/hallway_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/hallway_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/hallway_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/quadrant_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/ramp_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/ramp_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/ramp_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/ramp_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted/ominous_upper_arm_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chambers/end.json b/data/minecraft/worldgen/template_pool/trial_chambers/chambers/end.json new file mode 100644 index 00000000..8a3f6c0a --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chambers/end.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/chamber_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:trial_chambers/hallway/fallback" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chests/contents/supply.json b/data/minecraft/worldgen/template_pool/trial_chambers/chests/contents/supply.json new file mode 100644 index 00000000..a903fe67 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chests/contents/supply.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chests/supply", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/chests/supply.json b/data/minecraft/worldgen/template_pool/trial_chambers/chests/supply.json new file mode 100644 index 00000000..1f4a5c7e --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/chests/supply.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chests/connectors/supply", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/corridor.json b/data/minecraft/worldgen/template_pool/trial_chambers/corridor.json new file mode 100644 index 00000000..3bc1aa08 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/corridor.json @@ -0,0 +1,90 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/second_plate", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/intersection/intersection_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/intersection/intersection_2", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/intersection/intersection_3", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/first_plate", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/atrium_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/entrance_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/entrance_2", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/entrance_3", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/corridor/slices.json b/data/minecraft/worldgen/template_pool/trial_chambers/corridor/slices.json new file mode 100644 index 00000000..33d952a0 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/corridor/slices.json @@ -0,0 +1,77 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_2", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_3", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_4", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_5", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_6", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_7", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/straight_8", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 2 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/lower.json b/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/lower.json new file mode 100644 index 00000000..21b4c2b4 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/lower.json @@ -0,0 +1,66 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 8 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/staircase", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/wall", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/ladder_to_middle", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/arrow_dispenser", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/bridge_lower", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/middle.json b/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/middle.json new file mode 100644 index 00000000..80bab521 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/middle.json @@ -0,0 +1,33 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 8 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/open_walkway", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/walled_walkway", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/middle_upper.json b/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/middle_upper.json new file mode 100644 index 00000000..b2b6f3d0 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/corridors/addon/middle_upper.json @@ -0,0 +1,66 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 6 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/open_walkway_upper", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/chandelier_upper", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/decoration_upper", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/head_upper", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/reward_upper", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/decor.json b/data/minecraft/worldgen/template_pool/trial_chambers/decor.json new file mode 100644 index 00000000..ba102020 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/decor.json @@ -0,0 +1,132 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 22 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/empty_pot", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/dead_bush_pot", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/undecorated_pot", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/flow_pot", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/guster_pot", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/scrape_pot", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/candle_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/candle_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/candle_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/candle_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/barrel", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/decor/chamber.json b/data/minecraft/worldgen/template_pool/trial_chambers/decor/chamber.json new file mode 100644 index 00000000..7b84f825 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/decor/chamber.json @@ -0,0 +1,22 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/decor/undecorated_pot", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/dispensers/chamber.json b/data/minecraft/worldgen/template_pool/trial_chambers/dispensers/chamber.json new file mode 100644 index 00000000..08309169 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/dispensers/chamber.json @@ -0,0 +1,44 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/dispensers/chamber", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/dispensers/wall_dispenser", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/dispensers/floor_dispenser", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/entrance.json b/data/minecraft/worldgen/template_pool/trial_chambers/entrance.json new file mode 100644 index 00000000..3f44df4d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/entrance.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/display_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/display_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/corridor/addon/display_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/hallway.json b/data/minecraft/worldgen/template_pool/trial_chambers/hallway.json new file mode 100644 index 00000000..3938fcc1 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/hallway.json @@ -0,0 +1,225 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/corridor_connector_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/upper_hallway_connector", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/lower_hallway_connector", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/rubble", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/chamber_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/chamber_2", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/chamber_4", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/chamber_8", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/assembly", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/eruption", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/slanted", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/chamber/pedestal", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/rubble_chamber", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 10 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/rubble_chamber_thin", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/cache_1", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/left_corner", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/right_corner", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/corner_staircase", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/corner_staircase_down", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/long_straight_staircase", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/long_straight_staircase_down", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/straight", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/straight_staircase", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/straight_staircase_down", + "processors": "minecraft:trial_chambers_copper_bulb_degradation", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:trial_chambers/hallway/fallback" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/hallway/fallback.json b/data/minecraft/worldgen/template_pool/trial_chambers/hallway/fallback.json new file mode 100644 index 00000000..06c5bf39 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/hallway/fallback.json @@ -0,0 +1,49 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/rubble", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/rubble_chamber", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/rubble_thin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/hallway/rubble_chamber_thin", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/reward/all.json b/data/minecraft/worldgen/template_pool/trial_chambers/reward/all.json new file mode 100644 index 00000000..7466e265 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/reward/all.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/reward/vault", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/reward/contents/default.json b/data/minecraft/worldgen/template_pool/trial_chambers/reward/contents/default.json new file mode 100644 index 00000000..7466e265 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/reward/contents/default.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/reward/vault", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/reward/ominous_vault.json b/data/minecraft/worldgen/template_pool/trial_chambers/reward/ominous_vault.json new file mode 100644 index 00000000..6b69ee3f --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/reward/ominous_vault.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/reward/ominous_vault", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/all.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/all.json new file mode 100644 index 00000000..23e4652c --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/all.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/ranged", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/melee", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/small_melee", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/breeze.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/breeze.json new file mode 100644 index 00000000..39b8230b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/breeze.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/breeze", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/contents/breeze.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/contents/breeze.json new file mode 100644 index 00000000..11a5dadf --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/contents/breeze.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/breeze/breeze", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee.json new file mode 100644 index 00000000..c9f06db3 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/melee", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/husk.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/husk.json new file mode 100644 index 00000000..38f6ec36 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/husk.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/melee/husk", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/spider.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/spider.json new file mode 100644 index 00000000..bba81938 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/spider.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/melee/spider", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/zombie.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/zombie.json new file mode 100644 index 00000000..11e70e3e --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/melee/zombie.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/melee/zombie", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged.json new file mode 100644 index 00000000..a4b4c4d0 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/ranged", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/poison_skeleton.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/poison_skeleton.json new file mode 100644 index 00000000..e80b3f19 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/poison_skeleton.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/ranged/poison_skeleton", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/skeleton.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/skeleton.json new file mode 100644 index 00000000..495e8616 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/skeleton.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/ranged/skeleton", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/stray.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/stray.json new file mode 100644 index 00000000..324b6c34 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/ranged/stray.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/ranged/stray", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged.json new file mode 100644 index 00000000..a0cab514 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/slow_ranged", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/poison_skeleton.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/poison_skeleton.json new file mode 100644 index 00000000..202bd0ed --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/poison_skeleton.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/slow_ranged/poison_skeleton", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/skeleton.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/skeleton.json new file mode 100644 index 00000000..626a1339 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/skeleton.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/slow_ranged/skeleton", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/stray.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/stray.json new file mode 100644 index 00000000..9a8a6c43 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/slow_ranged/stray.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/slow_ranged/stray", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee.json new file mode 100644 index 00000000..f57f8f0d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/connectors/small_melee", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/baby_zombie.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/baby_zombie.json new file mode 100644 index 00000000..d7d40458 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/baby_zombie.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/small_melee/baby_zombie", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/cave_spider.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/cave_spider.json new file mode 100644 index 00000000..8f109513 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/cave_spider.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/small_melee/cave_spider", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/silverfish.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/silverfish.json new file mode 100644 index 00000000..5ce375cc --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/silverfish.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/small_melee/silverfish", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/slime.json b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/slime.json new file mode 100644 index 00000000..d68fae82 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/trial_chambers/spawner/small_melee/slime.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:single_pool_element", + "location": "minecraft:trial_chambers/spawner/small_melee/slime", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/common/animals.json b/data/minecraft/worldgen/template_pool/village/common/animals.json new file mode 100644 index 00000000..81aa432b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/common/animals.json @@ -0,0 +1,110 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cows_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/pigs_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/horses_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/horses_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/horses_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/horses_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/horses_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/sheep_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/sheep_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 5 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/common/butcher_animals.json b/data/minecraft/worldgen/template_pool/village/common/butcher_animals.json new file mode 100644 index 00000000..c68baef8 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/common/butcher_animals.json @@ -0,0 +1,49 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cows_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/pigs_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/sheep_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/sheep_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/common/cats.json b/data/minecraft/worldgen/template_pool/village/common/cats.json new file mode 100644 index 00000000..e92f19c2 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/common/cats.json @@ -0,0 +1,121 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_black", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_british", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_calico", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_persian", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_ragdoll", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_red", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_siamese", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_tabby", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_white", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/cat_jellie", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 3 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/common/iron_golem.json b/data/minecraft/worldgen/template_pool/village/common/iron_golem.json new file mode 100644 index 00000000..7b57cfbc --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/common/iron_golem.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/iron_golem", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/common/sheep.json b/data/minecraft/worldgen/template_pool/village/common/sheep.json new file mode 100644 index 00000000..357e70c1 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/common/sheep.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/sheep_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/animals/sheep_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/common/well_bottoms.json b/data/minecraft/worldgen/template_pool/village/common/well_bottoms.json new file mode 100644 index 00000000..aaddc3f1 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/common/well_bottoms.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/common/well_bottom", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/camel.json b/data/minecraft/worldgen/template_pool/village/desert/camel.json new file mode 100644 index 00000000..c0521486 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/camel.json @@ -0,0 +1,16 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/camel_spawn", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/decor.json b/data/minecraft/worldgen/template_pool/village/desert/decor.json new file mode 100644 index 00000000..2176243c --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/decor.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/desert_lamp_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:patch_cactus", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_hay", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/houses.json b/data/minecraft/worldgen/template_pool/village/desert/houses.json new file mode 100644 index 00000000..ccd54e7e --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/houses.json @@ -0,0 +1,313 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_6", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_7", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_small_house_8", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_medium_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_medium_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_butcher_shop_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_tool_smith_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_fletcher_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_shepherd_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_armorer_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_fisher_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_tannery_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_cartographer_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_library_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_mason_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_weaponsmith_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_temple_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_temple_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_large_farm_1", + "processors": "minecraft:farm_desert", + "projection": "rigid" + }, + "weight": 11 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_farm_1", + "processors": "minecraft:farm_desert", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_farm_2", + "processors": "minecraft:farm_desert", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_animal_pen_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_animal_pen_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 5 + } + ], + "fallback": "minecraft:village/desert/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/streets.json b/data/minecraft/worldgen/template_pool/village/desert/streets.json new file mode 100644 index 00000000..18900da4 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/streets.json @@ -0,0 +1,126 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/corner_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/corner_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/straight_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/straight_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/straight_03", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/crossroad_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/crossroad_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/crossroad_03", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/square_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/square_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/streets/turn_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/desert/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/terminators.json b/data/minecraft/worldgen/template_pool/village/desert/terminators.json new file mode 100644 index 00000000..080901ca --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/terminators.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/terminators/terminator_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/terminators/terminator_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/town_centers.json b/data/minecraft/worldgen/template_pool/village/desert/town_centers.json new file mode 100644 index 00000000..ee435a4b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/town_centers.json @@ -0,0 +1,65 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/town_centers/desert_meeting_point_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 98 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/town_centers/desert_meeting_point_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 98 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/town_centers/desert_meeting_point_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 49 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/town_centers/desert_meeting_point_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/town_centers/desert_meeting_point_2", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/town_centers/desert_meeting_point_3", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/villagers.json b/data/minecraft/worldgen/template_pool/village/desert/villagers.json new file mode 100644 index 00000000..19f21603 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/villagers.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/villagers/baby", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/zombie/decor.json b/data/minecraft/worldgen/template_pool/village/desert/zombie/decor.json new file mode 100644 index 00000000..87b9b755 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/zombie/decor.json @@ -0,0 +1,36 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/desert_lamp_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 10 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:patch_cactus", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_hay", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/zombie/houses.json b/data/minecraft/worldgen/template_pool/village/desert/zombie/houses.json new file mode 100644 index 00000000..b1b8913d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/zombie/houses.json @@ -0,0 +1,263 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_2", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_3", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_4", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_5", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_6", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_7", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_small_house_8", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_medium_house_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/houses/desert_medium_house_2", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_butcher_shop_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_tool_smith_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_fletcher_house_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_shepherd_house_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_armorer_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_fisher_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_tannery_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_cartographer_house_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_library_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_mason_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_weaponsmith_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_temple_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_temple_2", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_large_farm_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_farm_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_farm_2", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_animal_pen_1", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/houses/desert_animal_pen_2", + "processors": "minecraft:zombie_desert", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 5 + } + ], + "fallback": "minecraft:village/desert/zombie/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/zombie/streets.json b/data/minecraft/worldgen/template_pool/village/desert/zombie/streets.json new file mode 100644 index 00000000..6005b0a3 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/zombie/streets.json @@ -0,0 +1,126 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/corner_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/corner_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/straight_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/straight_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/straight_03", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/crossroad_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/crossroad_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/crossroad_03", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/square_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/square_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/streets/turn_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/desert/zombie/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/zombie/terminators.json b/data/minecraft/worldgen/template_pool/village/desert/zombie/terminators.json new file mode 100644 index 00000000..5c416edc --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/zombie/terminators.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/terminators/terminator_01", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/terminators/terminator_02", + "processors": { + "processors": [] + }, + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/desert/zombie/villagers.json b/data/minecraft/worldgen/template_pool/village/desert/zombie/villagers.json new file mode 100644 index 00000000..3b4a1254 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/desert/zombie/villagers.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/desert/zombie/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/decor.json b/data/minecraft/worldgen/template_pool/village/plains/decor.json new file mode 100644 index 00000000..2ef26d19 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/decor.json @@ -0,0 +1,46 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/plains_lamp_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:oak", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:flower_plain", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_hay", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 2 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/houses.json b/data/minecraft/worldgen/template_pool/village/plains/houses.json new file mode 100644 index 00000000..583f595f --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/houses.json @@ -0,0 +1,349 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_3", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_4", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_5", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_6", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_7", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_house_8", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_medium_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_medium_house_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_big_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_butcher_shop_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_butcher_shop_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_tool_smith_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_fletcher_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_shepherds_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_armorer_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_fisher_cottage_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_tannery_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_cartographer_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_library_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 5 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_library_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_masons_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_weaponsmith_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_temple_3", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_temple_4", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_stable_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_stable_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_large_farm_1", + "processors": "minecraft:farm_plains", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_farm_1", + "processors": "minecraft:farm_plains", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_animal_pen_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_animal_pen_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_animal_pen_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 5 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_accessory_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_meeting_point_4", + "processors": "minecraft:mossify_70_percent", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_meeting_point_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 10 + } + ], + "fallback": "minecraft:village/plains/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/streets.json b/data/minecraft/worldgen/template_pool/village/plains/streets.json new file mode 100644 index 00000000..9cc0d999 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/streets.json @@ -0,0 +1,149 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/corner_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/corner_02", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/corner_03", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/straight_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/straight_02", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/straight_03", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/straight_04", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/straight_05", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/straight_06", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/crossroad_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/crossroad_02", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/crossroad_03", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/crossroad_04", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/crossroad_05", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/crossroad_06", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/streets/turn_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/plains/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/terminators.json b/data/minecraft/worldgen/template_pool/village/plains/terminators.json new file mode 100644 index 00000000..d633b01f --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/terminators.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_02", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_03", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_04", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/town_centers.json b/data/minecraft/worldgen/template_pool/village/plains/town_centers.json new file mode 100644 index 00000000..ae1f33b4 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/town_centers.json @@ -0,0 +1,79 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/town_centers/plains_fountain_01", + "processors": "minecraft:mossify_20_percent", + "projection": "rigid" + }, + "weight": 50 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/town_centers/plains_meeting_point_1", + "processors": "minecraft:mossify_20_percent", + "projection": "rigid" + }, + "weight": 50 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/town_centers/plains_meeting_point_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 50 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/town_centers/plains_meeting_point_3", + "processors": "minecraft:mossify_70_percent", + "projection": "rigid" + }, + "weight": 50 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/town_centers/plains_fountain_01", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/town_centers/plains_meeting_point_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/town_centers/plains_meeting_point_2", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/town_centers/plains_meeting_point_3", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/trees.json b/data/minecraft/worldgen/template_pool/village/plains/trees.json new file mode 100644 index 00000000..ef13b73b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/trees.json @@ -0,0 +1,13 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:oak", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/villagers.json b/data/minecraft/worldgen/template_pool/village/plains/villagers.json new file mode 100644 index 00000000..aba2e1a9 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/villagers.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/villagers/baby", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/zombie/decor.json b/data/minecraft/worldgen/template_pool/village/plains/zombie/decor.json new file mode 100644 index 00000000..0d027fc7 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/zombie/decor.json @@ -0,0 +1,44 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/plains_lamp_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:oak", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:flower_plain", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_hay", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 2 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/zombie/houses.json b/data/minecraft/worldgen/template_pool/village/plains/zombie/houses.json new file mode 100644 index 00000000..7c3bc8cc --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/zombie/houses.json @@ -0,0 +1,326 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_2", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_3", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_4", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_5", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_6", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_7", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_small_house_8", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_medium_house_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_medium_house_2", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_big_house_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_butcher_shop_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_butcher_shop_2", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_tool_smith_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_fletcher_house_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_shepherds_house_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_armorer_house_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_fisher_cottage_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_tannery_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_cartographer_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_library_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_library_2", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_masons_house_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_weaponsmith_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_temple_3", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_temple_4", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_stable_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_stable_2", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_large_farm_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_small_farm_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_animal_pen_1", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/houses/plains_animal_pen_2", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_animal_pen_3", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 5 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_meeting_point_4", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/houses/plains_meeting_point_5", + "processors": "minecraft:zombie_plains", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 10 + } + ], + "fallback": "minecraft:village/plains/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/zombie/streets.json b/data/minecraft/worldgen/template_pool/village/plains/zombie/streets.json new file mode 100644 index 00000000..ec79de21 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/zombie/streets.json @@ -0,0 +1,149 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/corner_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/corner_02", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/corner_03", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/straight_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/straight_02", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/straight_03", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/straight_04", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/straight_05", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/straight_06", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/crossroad_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/crossroad_02", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/crossroad_03", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/crossroad_04", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/crossroad_05", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/crossroad_06", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/streets/turn_01", + "processors": "minecraft:street_plains", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/plains/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/plains/zombie/villagers.json b/data/minecraft/worldgen/template_pool/village/plains/zombie/villagers.json new file mode 100644 index 00000000..07dbae1b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/plains/zombie/villagers.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/zombie/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/decor.json b/data/minecraft/worldgen/template_pool/village/savanna/decor.json new file mode 100644 index 00000000..d7a351f3 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/decor.json @@ -0,0 +1,46 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/savanna_lamp_post_01", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:acacia", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_hay", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_melon", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 4 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/houses.json b/data/minecraft/worldgen/template_pool/village/savanna/houses.json new file mode 100644 index 00000000..994666ef --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/houses.json @@ -0,0 +1,346 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_6", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_7", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_house_8", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_medium_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_medium_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_butchers_shop_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_butchers_shop_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_tool_smith_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_fletcher_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_shepherd_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_armorer_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_fisher_cottage_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_tannery_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_cartographer_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_library_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_mason_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_weaponsmith_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_weaponsmith_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_temple_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_temple_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_large_farm_1", + "processors": "minecraft:farm_savanna", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_large_farm_2", + "processors": "minecraft:farm_savanna", + "projection": "rigid" + }, + "weight": 6 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_farm", + "processors": "minecraft:farm_savanna", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_animal_pen_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_animal_pen_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_animal_pen_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 5 + } + ], + "fallback": "minecraft:village/savanna/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/streets.json b/data/minecraft/worldgen/template_pool/village/savanna/streets.json new file mode 100644 index 00000000..16eb8094 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/streets.json @@ -0,0 +1,176 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/corner_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/corner_03", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_04", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_05", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_06", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_08", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_09", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_10", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/straight_11", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/crossroad_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/crossroad_03", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/crossroad_04", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/crossroad_05", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/crossroad_06", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/crossroad_07", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/split_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/split_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/streets/turn_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/savanna/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/terminators.json b/data/minecraft/worldgen/template_pool/village/savanna/terminators.json new file mode 100644 index 00000000..96569d5d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/terminators.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_03", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_04", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/terminators/terminator_05", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/town_centers.json b/data/minecraft/worldgen/template_pool/village/savanna/town_centers.json new file mode 100644 index 00000000..98319745 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/town_centers.json @@ -0,0 +1,85 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/town_centers/savanna_meeting_point_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 100 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/town_centers/savanna_meeting_point_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 50 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/town_centers/savanna_meeting_point_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/town_centers/savanna_meeting_point_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/town_centers/savanna_meeting_point_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/town_centers/savanna_meeting_point_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/town_centers/savanna_meeting_point_3", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/town_centers/savanna_meeting_point_4", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 3 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/trees.json b/data/minecraft/worldgen/template_pool/village/savanna/trees.json new file mode 100644 index 00000000..11dc7fa0 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/trees.json @@ -0,0 +1,13 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:acacia", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/villagers.json b/data/minecraft/worldgen/template_pool/village/savanna/villagers.json new file mode 100644 index 00000000..022306b5 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/villagers.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/villagers/baby", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/zombie/decor.json b/data/minecraft/worldgen/template_pool/village/savanna/zombie/decor.json new file mode 100644 index 00000000..28310694 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/zombie/decor.json @@ -0,0 +1,44 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/savanna_lamp_post_01", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:acacia", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_hay", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_melon", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 4 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/zombie/houses.json b/data/minecraft/worldgen/template_pool/village/savanna/zombie/houses.json new file mode 100644 index 00000000..bb0ea1f0 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/zombie/houses.json @@ -0,0 +1,290 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_3", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_4", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_5", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_6", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_7", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_small_house_8", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_medium_house_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_medium_house_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_butchers_shop_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_butchers_shop_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_tool_smith_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_fletcher_house_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_shepherd_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_armorer_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_fisher_cottage_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_tannery_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_cartographer_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_library_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_mason_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_weaponsmith_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_weaponsmith_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_temple_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_temple_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_large_farm_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_large_farm_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_small_farm", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/houses/savanna_animal_pen_1", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_animal_pen_2", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/houses/savanna_animal_pen_3", + "processors": "minecraft:zombie_savanna", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 5 + } + ], + "fallback": "minecraft:village/savanna/zombie/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/zombie/streets.json b/data/minecraft/worldgen/template_pool/village/savanna/zombie/streets.json new file mode 100644 index 00000000..cd7e2812 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/zombie/streets.json @@ -0,0 +1,176 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/corner_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/corner_03", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_04", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_05", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_06", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_08", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_09", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_10", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/straight_11", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/crossroad_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/crossroad_03", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/crossroad_04", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/crossroad_05", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/crossroad_06", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/crossroad_07", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/split_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/split_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/streets/turn_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/savanna/zombie/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/zombie/terminators.json b/data/minecraft/worldgen/template_pool/village/savanna/zombie/terminators.json new file mode 100644 index 00000000..ca8b1d5b --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/zombie/terminators.json @@ -0,0 +1,50 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_01", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_02", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_03", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_04", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/terminators/terminator_05", + "processors": "minecraft:street_savanna", + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/savanna/zombie/villagers.json b/data/minecraft/worldgen/template_pool/village/savanna/zombie/villagers.json new file mode 100644 index 00000000..c8c3a5ec --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/savanna/zombie/villagers.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/savanna/zombie/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/decor.json b/data/minecraft/worldgen/template_pool/village/snowy/decor.json new file mode 100644 index 00000000..3ea5c2cd --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/decor.json @@ -0,0 +1,68 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/snowy_lamp_post_01", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/snowy_lamp_post_02", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/snowy_lamp_post_03", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:spruce", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_snow", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_ice", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 9 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/houses.json b/data/minecraft/worldgen/template_pool/village/snowy/houses.json new file mode 100644 index 00000000..a6063d67 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/houses.json @@ -0,0 +1,337 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_6", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_7", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_small_house_8", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_medium_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_medium_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_medium_house_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_butchers_shop_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_butchers_shop_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_tool_smith_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_fletcher_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_shepherds_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_armorer_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_armorer_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_fisher_cottage", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_tannery_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_cartographer_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_library_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_masons_house_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_masons_house_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_weapon_smith_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_temple_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_farm_1", + "processors": "minecraft:farm_snowy", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_farm_2", + "processors": "minecraft:farm_snowy", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_animal_pen_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_animal_pen_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 6 + } + ], + "fallback": "minecraft:village/snowy/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/streets.json b/data/minecraft/worldgen/template_pool/village/snowy/streets.json new file mode 100644 index 00000000..85215a8c --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/streets.json @@ -0,0 +1,149 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/corner_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/corner_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/corner_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/square_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/straight_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/straight_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/straight_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/straight_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/straight_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/straight_08", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/crossroad_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/crossroad_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/crossroad_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/crossroad_05", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/crossroad_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/streets/turn_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/snowy/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/terminators.json b/data/minecraft/worldgen/template_pool/village/snowy/terminators.json new file mode 100644 index 00000000..9421bd7f --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/terminators.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/town_centers.json b/data/minecraft/worldgen/template_pool/village/snowy/town_centers.json new file mode 100644 index 00000000..4768a893 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/town_centers.json @@ -0,0 +1,71 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/town_centers/snowy_meeting_point_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 100 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/town_centers/snowy_meeting_point_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 50 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/town_centers/snowy_meeting_point_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 150 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/town_centers/snowy_meeting_point_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/town_centers/snowy_meeting_point_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/town_centers/snowy_meeting_point_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 3 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/trees.json b/data/minecraft/worldgen/template_pool/village/snowy/trees.json new file mode 100644 index 00000000..e2d30848 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/trees.json @@ -0,0 +1,13 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:spruce", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/villagers.json b/data/minecraft/worldgen/template_pool/village/snowy/villagers.json new file mode 100644 index 00000000..695d2c40 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/villagers.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/villagers/baby", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/zombie/decor.json b/data/minecraft/worldgen/template_pool/village/snowy/zombie/decor.json new file mode 100644 index 00000000..89f2ab46 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/zombie/decor.json @@ -0,0 +1,62 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/snowy_lamp_post_01", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/snowy_lamp_post_02", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/snowy_lamp_post_03", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:spruce", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_snow", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_ice", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 7 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/zombie/houses.json b/data/minecraft/worldgen/template_pool/village/snowy/zombie/houses.json new file mode 100644 index 00000000..339c80d7 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/zombie/houses.json @@ -0,0 +1,281 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_2", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_3", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_4", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_5", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_6", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_7", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_small_house_8", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_medium_house_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_medium_house_2", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/houses/snowy_medium_house_3", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_butchers_shop_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_butchers_shop_2", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_tool_smith_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_fletcher_house_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_shepherds_house_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_armorer_house_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_armorer_house_2", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_fisher_cottage", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_tannery_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_cartographer_house_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_library_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_masons_house_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_masons_house_2", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_weapon_smith_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_temple_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_farm_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_farm_2", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_animal_pen_1", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/houses/snowy_animal_pen_2", + "processors": "minecraft:zombie_snowy", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 6 + } + ], + "fallback": "minecraft:village/snowy/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/zombie/streets.json b/data/minecraft/worldgen/template_pool/village/snowy/zombie/streets.json new file mode 100644 index 00000000..c96006f8 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/zombie/streets.json @@ -0,0 +1,149 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/corner_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/corner_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/corner_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/square_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/straight_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/straight_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/straight_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/straight_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/straight_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/straight_08", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/crossroad_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/crossroad_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/crossroad_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/crossroad_05", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/crossroad_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/streets/turn_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/snowy/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/snowy/zombie/villagers.json b/data/minecraft/worldgen/template_pool/village/snowy/zombie/villagers.json new file mode 100644 index 00000000..f89b780d --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/snowy/zombie/villagers.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/snowy/zombie/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/decor.json b/data/minecraft/worldgen/template_pool/village/taiga/decor.json new file mode 100644 index 00000000..36fa2e36 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/decor.json @@ -0,0 +1,128 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_lamp_post_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_5", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_6", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:spruce", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pine", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_pumpkin", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:patch_taiga_grass", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:patch_berry_bush", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 4 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/houses.json b/data/minecraft/worldgen/template_pool/village/taiga/houses.json new file mode 100644 index 00000000..008c6eee --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/houses.json @@ -0,0 +1,254 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_small_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_small_house_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_small_house_3", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_small_house_4", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_small_house_5", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_medium_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_medium_house_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_medium_house_3", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_medium_house_4", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_butcher_shop_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_tool_smith_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_fletcher_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_shepherds_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_armorer_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_armorer_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_fisher_cottage_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 3 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_tannery_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_cartographer_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_library_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_masons_house_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_weaponsmith_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_weaponsmith_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_temple_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_large_farm_1", + "processors": "minecraft:farm_taiga", + "projection": "rigid" + }, + "weight": 6 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_large_farm_2", + "processors": "minecraft:farm_taiga", + "projection": "rigid" + }, + "weight": 6 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_small_farm_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_animal_pen_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 6 + } + ], + "fallback": "minecraft:village/taiga/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/streets.json b/data/minecraft/worldgen/template_pool/village/taiga/streets.json new file mode 100644 index 00000000..937ea9b1 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/streets.json @@ -0,0 +1,149 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/corner_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/corner_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/corner_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/straight_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/straight_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/straight_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/straight_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/straight_05", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/straight_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/crossroad_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/crossroad_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/crossroad_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/crossroad_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/crossroad_05", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/crossroad_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/streets/turn_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/taiga/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/terminators.json b/data/minecraft/worldgen/template_pool/village/taiga/terminators.json new file mode 100644 index 00000000..9421bd7f --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/terminators.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/plains/terminators/terminator_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/town_centers.json b/data/minecraft/worldgen/template_pool/village/taiga/town_centers.json new file mode 100644 index 00000000..3a510bbf --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/town_centers.json @@ -0,0 +1,41 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/town_centers/taiga_meeting_point_1", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 49 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/town_centers/taiga_meeting_point_2", + "processors": "minecraft:mossify_10_percent", + "projection": "rigid" + }, + "weight": 49 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/town_centers/taiga_meeting_point_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/town_centers/taiga_meeting_point_2", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 1 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/villagers.json b/data/minecraft/worldgen/template_pool/village/taiga/villagers.json new file mode 100644 index 00000000..50cff359 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/villagers.json @@ -0,0 +1,38 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/villagers/baby", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/zombie/decor.json b/data/minecraft/worldgen/template_pool/village/taiga/zombie/decor.json new file mode 100644 index 00000000..ae913165 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/zombie/decor.json @@ -0,0 +1,95 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_1", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_2", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_3", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/taiga_decoration_4", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:spruce", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pine", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:pile_pumpkin", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:patch_taiga_grass", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:feature_pool_element", + "feature": "minecraft:patch_berry_bush", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 4 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/zombie/houses.json b/data/minecraft/worldgen/template_pool/village/taiga/zombie/houses.json new file mode 100644 index 00000000..0d953314 --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/zombie/houses.json @@ -0,0 +1,245 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_small_house_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_small_house_2", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_small_house_3", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_small_house_4", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_small_house_5", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_medium_house_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_medium_house_2", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_medium_house_3", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_medium_house_4", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_butcher_shop_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_tool_smith_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_fletcher_house_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_shepherds_house_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_armorer_house_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_fisher_cottage_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_tannery_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_cartographer_house_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_library_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_masons_house_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_weaponsmith_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_weaponsmith_2", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_temple_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_large_farm_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 6 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/houses/taiga_large_farm_2", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 6 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_small_farm_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/houses/taiga_animal_pen_1", + "processors": "minecraft:zombie_taiga", + "projection": "rigid" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:empty_pool_element" + }, + "weight": 6 + } + ], + "fallback": "minecraft:village/taiga/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/zombie/streets.json b/data/minecraft/worldgen/template_pool/village/taiga/zombie/streets.json new file mode 100644 index 00000000..0bd0fbcc --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/zombie/streets.json @@ -0,0 +1,149 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/corner_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/corner_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/corner_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/straight_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/straight_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/straight_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/straight_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/straight_05", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 7 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/straight_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 4 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/crossroad_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/crossroad_02", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/crossroad_03", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/crossroad_04", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/crossroad_05", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/crossroad_06", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 2 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/streets/turn_01", + "processors": "minecraft:street_snowy_or_taiga", + "projection": "terrain_matching" + }, + "weight": 3 + } + ], + "fallback": "minecraft:village/taiga/terminators" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/template_pool/village/taiga/zombie/villagers.json b/data/minecraft/worldgen/template_pool/village/taiga/zombie/villagers.json new file mode 100644 index 00000000..f8f144fa --- /dev/null +++ b/data/minecraft/worldgen/template_pool/village/taiga/zombie/villagers.json @@ -0,0 +1,27 @@ +{ + "elements": [ + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/villagers/nitwit", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 1 + }, + { + "element": { + "element_type": "minecraft:legacy_single_pool_element", + "location": "minecraft:village/taiga/zombie/villagers/unemployed", + "processors": { + "processors": [] + }, + "projection": "rigid" + }, + "weight": 10 + } + ], + "fallback": "minecraft:empty" +} \ No newline at end of file diff --git a/data/minecraft/worldgen/world_preset/amplified.json b/data/minecraft/worldgen/world_preset/amplified.json new file mode 100644 index 00000000..949d42f3 --- /dev/null +++ b/data/minecraft/worldgen/world_preset/amplified.json @@ -0,0 +1,36 @@ +{ + "dimensions": { + "minecraft:overworld": { + "type": "minecraft:overworld", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:overworld" + }, + "settings": "minecraft:amplified" + } + }, + "minecraft:the_end": { + "type": "minecraft:the_end", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:the_end" + }, + "settings": "minecraft:end" + } + }, + "minecraft:the_nether": { + "type": "minecraft:the_nether", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:nether" + }, + "settings": "minecraft:nether" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/world_preset/debug_all_block_states.json b/data/minecraft/worldgen/world_preset/debug_all_block_states.json new file mode 100644 index 00000000..fc2f42e5 --- /dev/null +++ b/data/minecraft/worldgen/world_preset/debug_all_block_states.json @@ -0,0 +1,31 @@ +{ + "dimensions": { + "minecraft:overworld": { + "type": "minecraft:overworld", + "generator": { + "type": "minecraft:debug" + } + }, + "minecraft:the_end": { + "type": "minecraft:the_end", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:the_end" + }, + "settings": "minecraft:end" + } + }, + "minecraft:the_nether": { + "type": "minecraft:the_nether", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:nether" + }, + "settings": "minecraft:nether" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/world_preset/flat.json b/data/minecraft/worldgen/world_preset/flat.json new file mode 100644 index 00000000..a0a96fd9 --- /dev/null +++ b/data/minecraft/worldgen/world_preset/flat.json @@ -0,0 +1,54 @@ +{ + "dimensions": { + "minecraft:overworld": { + "type": "minecraft:overworld", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "minecraft:plains", + "features": false, + "lakes": false, + "layers": [ + { + "block": "minecraft:bedrock", + "height": 1 + }, + { + "block": "minecraft:dirt", + "height": 2 + }, + { + "block": "minecraft:grass_block", + "height": 1 + } + ], + "structure_overrides": [ + "minecraft:strongholds", + "minecraft:villages" + ] + } + } + }, + "minecraft:the_end": { + "type": "minecraft:the_end", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:the_end" + }, + "settings": "minecraft:end" + } + }, + "minecraft:the_nether": { + "type": "minecraft:the_nether", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:nether" + }, + "settings": "minecraft:nether" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/world_preset/large_biomes.json b/data/minecraft/worldgen/world_preset/large_biomes.json new file mode 100644 index 00000000..261f020f --- /dev/null +++ b/data/minecraft/worldgen/world_preset/large_biomes.json @@ -0,0 +1,36 @@ +{ + "dimensions": { + "minecraft:overworld": { + "type": "minecraft:overworld", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:overworld" + }, + "settings": "minecraft:large_biomes" + } + }, + "minecraft:the_end": { + "type": "minecraft:the_end", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:the_end" + }, + "settings": "minecraft:end" + } + }, + "minecraft:the_nether": { + "type": "minecraft:the_nether", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:nether" + }, + "settings": "minecraft:nether" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/world_preset/normal.json b/data/minecraft/worldgen/world_preset/normal.json new file mode 100644 index 00000000..8087f56a --- /dev/null +++ b/data/minecraft/worldgen/world_preset/normal.json @@ -0,0 +1,36 @@ +{ + "dimensions": { + "minecraft:overworld": { + "type": "minecraft:overworld", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:overworld" + }, + "settings": "minecraft:overworld" + } + }, + "minecraft:the_end": { + "type": "minecraft:the_end", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:the_end" + }, + "settings": "minecraft:end" + } + }, + "minecraft:the_nether": { + "type": "minecraft:the_nether", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:nether" + }, + "settings": "minecraft:nether" + } + } + } +} \ No newline at end of file diff --git a/data/minecraft/worldgen/world_preset/single_biome_surface.json b/data/minecraft/worldgen/world_preset/single_biome_surface.json new file mode 100644 index 00000000..ff20e691 --- /dev/null +++ b/data/minecraft/worldgen/world_preset/single_biome_surface.json @@ -0,0 +1,36 @@ +{ + "dimensions": { + "minecraft:overworld": { + "type": "minecraft:overworld", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:fixed", + "biome": "minecraft:plains" + }, + "settings": "minecraft:overworld" + } + }, + "minecraft:the_end": { + "type": "minecraft:the_end", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:the_end" + }, + "settings": "minecraft:end" + } + }, + "minecraft:the_nether": { + "type": "minecraft:the_nether", + "generator": { + "type": "minecraft:noise", + "biome_source": { + "type": "minecraft:multi_noise", + "preset": "minecraft:nether" + }, + "settings": "minecraft:nether" + } + } + } +} \ No newline at end of file diff --git a/net/minecraft/BlockUtil.java b/net/minecraft/BlockUtil.java new file mode 100644 index 00000000..318771a0 --- /dev/null +++ b/net/minecraft/BlockUtil.java @@ -0,0 +1,184 @@ +package net.minecraft; + +import com.google.common.annotations.VisibleForTesting; +import com.mojang.datafixers.util.Pair; +import it.unimi.dsi.fastutil.ints.IntArrayList; +import it.unimi.dsi.fastutil.ints.IntStack; +import java.util.Optional; +import java.util.function.Predicate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class BlockUtil { + /** + * Finds the rectangle with the largest area containing centerPos within the blocks specified by the predicate + */ + public static BlockUtil.FoundRectangle getLargestRectangleAround( + BlockPos centerPos, Direction.Axis axis1, int max1, Direction.Axis axis2, int max2, Predicate posPredicate + ) { + BlockPos.MutableBlockPos mutableBlockPos = centerPos.mutable(); + Direction direction = Direction.get(Direction.AxisDirection.NEGATIVE, axis1); + Direction direction2 = direction.getOpposite(); + Direction direction3 = Direction.get(Direction.AxisDirection.NEGATIVE, axis2); + Direction direction4 = direction3.getOpposite(); + int i = getLimit(posPredicate, mutableBlockPos.set(centerPos), direction, max1); + int j = getLimit(posPredicate, mutableBlockPos.set(centerPos), direction2, max1); + int k = i; + BlockUtil.IntBounds[] intBoundss = new BlockUtil.IntBounds[i + 1 + j]; + intBoundss[i] = new BlockUtil.IntBounds( + getLimit(posPredicate, mutableBlockPos.set(centerPos), direction3, max2), getLimit(posPredicate, mutableBlockPos.set(centerPos), direction4, max2) + ); + int l = intBoundss[i].min; + + for (int m = 1; m <= i; m++) { + BlockUtil.IntBounds intBounds = intBoundss[k - (m - 1)]; + intBoundss[k - m] = new BlockUtil.IntBounds( + getLimit(posPredicate, mutableBlockPos.set(centerPos).move(direction, m), direction3, intBounds.min), + getLimit(posPredicate, mutableBlockPos.set(centerPos).move(direction, m), direction4, intBounds.max) + ); + } + + for (int m = 1; m <= j; m++) { + BlockUtil.IntBounds intBounds = intBoundss[k + m - 1]; + intBoundss[k + m] = new BlockUtil.IntBounds( + getLimit(posPredicate, mutableBlockPos.set(centerPos).move(direction2, m), direction3, intBounds.min), + getLimit(posPredicate, mutableBlockPos.set(centerPos).move(direction2, m), direction4, intBounds.max) + ); + } + + int m = 0; + int n = 0; + int o = 0; + int p = 0; + int[] is = new int[intBoundss.length]; + + for (int q = l; q >= 0; q--) { + for (int r = 0; r < intBoundss.length; r++) { + BlockUtil.IntBounds intBounds2 = intBoundss[r]; + int s = l - intBounds2.min; + int t = l + intBounds2.max; + is[r] = q >= s && q <= t ? t + 1 - q : 0; + } + + Pair pair = getMaxRectangleLocation(is); + BlockUtil.IntBounds intBounds2 = pair.getFirst(); + int s = 1 + intBounds2.max - intBounds2.min; + int t = pair.getSecond(); + if (s * t > o * p) { + m = intBounds2.min; + n = q; + o = s; + p = t; + } + } + + return new BlockUtil.FoundRectangle(centerPos.relative(axis1, m - k).relative(axis2, n - l), o, p); + } + + /** + * Finds the distance we can travel in the given direction while the predicate returns true + */ + private static int getLimit(Predicate posPredicate, BlockPos.MutableBlockPos centerPos, Direction direction, int max) { + int i = 0; + + while (i < max && posPredicate.test(centerPos.move(direction))) { + i++; + } + + return i; + } + + /** + * Finds the largest rectangle within the array of heights + */ + @VisibleForTesting + static Pair getMaxRectangleLocation(int[] heights) { + int i = 0; + int j = 0; + int k = 0; + IntStack intStack = new IntArrayList(); + intStack.push(0); + + for (int l = 1; l <= heights.length; l++) { + int m = l == heights.length ? 0 : heights[l]; + + while (!intStack.isEmpty()) { + int n = heights[intStack.topInt()]; + if (m >= n) { + intStack.push(l); + break; + } + + intStack.popInt(); + int o = intStack.isEmpty() ? 0 : intStack.topInt() + 1; + if (n * (l - o) > k * (j - i)) { + j = l; + i = o; + k = n; + } + } + + if (intStack.isEmpty()) { + intStack.push(l); + } + } + + return new Pair<>(new BlockUtil.IntBounds(i, j - 1), k); + } + + public static Optional getTopConnectedBlock(BlockGetter getter, BlockPos pos, Block baseBlock, Direction direction, Block endBlock) { + BlockPos.MutableBlockPos mutableBlockPos = pos.mutable(); + + BlockState blockState; + do { + mutableBlockPos.move(direction); + blockState = getter.getBlockState(mutableBlockPos); + } while (blockState.is(baseBlock)); + + return blockState.is(endBlock) ? Optional.of(mutableBlockPos) : Optional.empty(); + } + + public static class FoundRectangle { + /** + * Starting position of the rectangle represented by this result + */ + public final BlockPos minCorner; + /** + * Distance between minimum and maximum values on the first axis argument + */ + public final int axis1Size; + /** + * Distance between minimum and maximum values on the second axis argument + */ + public final int axis2Size; + + public FoundRectangle(BlockPos minCorner, int axis1Size, int axis2Size) { + this.minCorner = minCorner; + this.axis1Size = axis1Size; + this.axis2Size = axis2Size; + } + } + + public static class IntBounds { + /** + * The minimum bound + */ + public final int min; + /** + * The maximum bound + */ + public final int max; + + public IntBounds(int min, int max) { + this.min = min; + this.max = max; + } + + public String toString() { + return "IntBounds{min=" + this.min + ", max=" + this.max + "}"; + } + } +} diff --git a/net/minecraft/CharPredicate.java b/net/minecraft/CharPredicate.java new file mode 100644 index 00000000..b1ed2957 --- /dev/null +++ b/net/minecraft/CharPredicate.java @@ -0,0 +1,22 @@ +package net.minecraft; + +import java.util.Objects; + +@FunctionalInterface +public interface CharPredicate { + boolean test(char c); + + default CharPredicate and(CharPredicate predicate) { + Objects.requireNonNull(predicate); + return c -> this.test(c) && predicate.test(c); + } + + default CharPredicate negate() { + return c -> !this.test(c); + } + + default CharPredicate or(CharPredicate predicate) { + Objects.requireNonNull(predicate); + return c -> this.test(c) || predicate.test(c); + } +} diff --git a/net/minecraft/ChatFormatting.java b/net/minecraft/ChatFormatting.java new file mode 100644 index 00000000..28478ae6 --- /dev/null +++ b/net/minecraft/ChatFormatting.java @@ -0,0 +1,188 @@ +package net.minecraft; + +import com.google.common.collect.Lists; +import com.mojang.serialization.Codec; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import net.minecraft.util.StringRepresentable; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.Nullable; + +public enum ChatFormatting implements StringRepresentable { + BLACK("BLACK", '0', 0, 0), + DARK_BLUE("DARK_BLUE", '1', 1, 170), + DARK_GREEN("DARK_GREEN", '2', 2, 43520), + DARK_AQUA("DARK_AQUA", '3', 3, 43690), + DARK_RED("DARK_RED", '4', 4, 11141120), + DARK_PURPLE("DARK_PURPLE", '5', 5, 11141290), + GOLD("GOLD", '6', 6, 16755200), + GRAY("GRAY", '7', 7, 11184810), + DARK_GRAY("DARK_GRAY", '8', 8, 5592405), + BLUE("BLUE", '9', 9, 5592575), + GREEN("GREEN", 'a', 10, 5635925), + AQUA("AQUA", 'b', 11, 5636095), + RED("RED", 'c', 12, 16733525), + LIGHT_PURPLE("LIGHT_PURPLE", 'd', 13, 16733695), + YELLOW("YELLOW", 'e', 14, 16777045), + WHITE("WHITE", 'f', 15, 16777215), + OBFUSCATED("OBFUSCATED", 'k', true), + BOLD("BOLD", 'l', true), + STRIKETHROUGH("STRIKETHROUGH", 'm', true), + UNDERLINE("UNDERLINE", 'n', true), + ITALIC("ITALIC", 'o', true), + RESET("RESET", 'r', -1, null); + + public static final Codec CODEC = StringRepresentable.fromEnum(ChatFormatting::values); + public static final char PREFIX_CODE = '§'; + private static final Map FORMATTING_BY_NAME = (Map)Arrays.stream(values()) + .collect(Collectors.toMap(chatFormatting -> cleanName(chatFormatting.name), chatFormatting -> chatFormatting)); + private static final Pattern STRIP_FORMATTING_PATTERN = Pattern.compile("(?i)§[0-9A-FK-OR]"); + /** + * The name of this color/formatting + */ + private final String name; + private final char code; + private final boolean isFormat; + private final String toString; + /** + * The numerical index that represents this color + */ + private final int id; + @Nullable + private final Integer color; + + private static String cleanName(String string) { + return string.toLowerCase(Locale.ROOT).replaceAll("[^a-z]", ""); + } + + private ChatFormatting(final String name, final char code, final int id, @Nullable final Integer color) { + this(name, code, false, id, color); + } + + private ChatFormatting(final String name, final char code, final boolean isFormat) { + this(name, code, isFormat, -1, null); + } + + private ChatFormatting(final String name, final char code, final boolean isFormat, final int id, @Nullable final Integer color) { + this.name = name; + this.code = code; + this.isFormat = isFormat; + this.id = id; + this.color = color; + this.toString = "§" + code; + } + + public char getChar() { + return this.code; + } + + /** + * Returns the numerical color index that represents this formatting + */ + public int getId() { + return this.id; + } + + /** + * False if this is just changing the color or resetting true otherwise. + */ + public boolean isFormat() { + return this.isFormat; + } + + /** + * Checks if this is a color code. + */ + public boolean isColor() { + return !this.isFormat && this != RESET; + } + + @Nullable + public Integer getColor() { + return this.color; + } + + /** + * Gets the friendly name of this value. + */ + public String getName() { + return this.name().toLowerCase(Locale.ROOT); + } + + public String toString() { + return this.toString; + } + + /** + * Returns a copy of the given string, with formatting codes stripped away. + */ + @Nullable + @Contract("!null->!null;_->_") + public static String stripFormatting(@Nullable String text) { + return text == null ? null : STRIP_FORMATTING_PATTERN.matcher(text).replaceAll(""); + } + + /** + * Gets a value by its friendly name null if the given name does not map to a defined value. + */ + @Nullable + public static ChatFormatting getByName(@Nullable String friendlyName) { + return friendlyName == null ? null : (ChatFormatting)FORMATTING_BY_NAME.get(cleanName(friendlyName)); + } + + /** + * Get a TextFormatting from its color index + */ + @Nullable + public static ChatFormatting getById(int index) { + if (index < 0) { + return RESET; + } else { + for (ChatFormatting chatFormatting : values()) { + if (chatFormatting.getId() == index) { + return chatFormatting; + } + } + + return null; + } + } + + @Nullable + public static ChatFormatting getByCode(char formattingCode) { + char c = Character.toLowerCase(formattingCode); + + for (ChatFormatting chatFormatting : values()) { + if (chatFormatting.code == c) { + return chatFormatting; + } + } + + return null; + } + + /** + * Gets all the valid values. + */ + public static Collection getNames(boolean getColor, boolean getFancyStyling) { + List list = Lists.newArrayList(); + + for (ChatFormatting chatFormatting : values()) { + if ((!chatFormatting.isColor() || getColor) && (!chatFormatting.isFormat() || getFancyStyling)) { + list.add(chatFormatting.getName()); + } + } + + return list; + } + + @Override + public String getSerializedName() { + return this.getName(); + } +} diff --git a/net/minecraft/CrashReport.java b/net/minecraft/CrashReport.java new file mode 100644 index 00000000..271132ef --- /dev/null +++ b/net/minecraft/CrashReport.java @@ -0,0 +1,261 @@ +package net.minecraft; + +import com.google.common.collect.Lists; +import com.mojang.logging.LogUtils; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; +import java.util.Locale; +import java.util.concurrent.CompletionException; +import net.minecraft.util.MemoryReserve; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +public class CrashReport { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.ROOT); + private final String title; + private final Throwable exception; + private final List details = Lists.newArrayList(); + @Nullable + private Path saveFile; + private boolean trackingStackTrace = true; + private StackTraceElement[] uncategorizedStackTrace = new StackTraceElement[0]; + private final SystemReport systemReport = new SystemReport(); + + public CrashReport(String title, Throwable exception) { + this.title = title; + this.exception = exception; + } + + /** + * Returns the description of the Crash Report. + */ + public String getTitle() { + return this.title; + } + + /** + * Returns the Throwable object that is the cause for the crash and Crash Report. + */ + public Throwable getException() { + return this.exception; + } + + public String getDetails() { + StringBuilder stringBuilder = new StringBuilder(); + this.getDetails(stringBuilder); + return stringBuilder.toString(); + } + + /** + * Gets the various sections of the crash report into the given StringBuilder + */ + public void getDetails(StringBuilder builder) { + if ((this.uncategorizedStackTrace == null || this.uncategorizedStackTrace.length <= 0) && !this.details.isEmpty()) { + this.uncategorizedStackTrace = ArrayUtils.subarray(((CrashReportCategory)this.details.get(0)).getStacktrace(), 0, 1); + } + + if (this.uncategorizedStackTrace != null && this.uncategorizedStackTrace.length > 0) { + builder.append("-- Head --\n"); + builder.append("Thread: ").append(Thread.currentThread().getName()).append("\n"); + builder.append("Stacktrace:\n"); + + for (StackTraceElement stackTraceElement : this.uncategorizedStackTrace) { + builder.append("\t").append("at ").append(stackTraceElement); + builder.append("\n"); + } + + builder.append("\n"); + } + + for (CrashReportCategory crashReportCategory : this.details) { + crashReportCategory.getDetails(builder); + builder.append("\n\n"); + } + + this.systemReport.appendToCrashReportString(builder); + } + + /** + * Gets the stack trace of the Throwable that caused this crash report, or if that fails, the cause {@code .toString()}. + */ + public String getExceptionMessage() { + StringWriter stringWriter = null; + PrintWriter printWriter = null; + Throwable throwable = this.exception; + if (throwable.getMessage() == null) { + if (throwable instanceof NullPointerException) { + throwable = new NullPointerException(this.title); + } else if (throwable instanceof StackOverflowError) { + throwable = new StackOverflowError(this.title); + } else if (throwable instanceof OutOfMemoryError) { + throwable = new OutOfMemoryError(this.title); + } + + throwable.setStackTrace(this.exception.getStackTrace()); + } + + String var4; + try { + stringWriter = new StringWriter(); + printWriter = new PrintWriter(stringWriter); + throwable.printStackTrace(printWriter); + var4 = stringWriter.toString(); + } finally { + IOUtils.closeQuietly(stringWriter); + IOUtils.closeQuietly(printWriter); + } + + return var4; + } + + public String getFriendlyReport(ReportType type, List links) { + StringBuilder stringBuilder = new StringBuilder(); + type.appendHeader(stringBuilder, links); + stringBuilder.append("Time: "); + stringBuilder.append(DATE_TIME_FORMATTER.format(ZonedDateTime.now())); + stringBuilder.append("\n"); + stringBuilder.append("Description: "); + stringBuilder.append(this.title); + stringBuilder.append("\n\n"); + stringBuilder.append(this.getExceptionMessage()); + stringBuilder.append("\n\nA detailed walkthrough of the error, its code path and all known details is as follows:\n"); + + for (int i = 0; i < 87; i++) { + stringBuilder.append("-"); + } + + stringBuilder.append("\n\n"); + this.getDetails(stringBuilder); + return stringBuilder.toString(); + } + + public String getFriendlyReport(ReportType type) { + return this.getFriendlyReport(type, List.of()); + } + + @Nullable + public Path getSaveFile() { + return this.saveFile; + } + + public boolean saveToFile(Path path, ReportType type, List links) { + if (this.saveFile != null) { + return false; + } else { + try { + if (path.getParent() != null) { + FileUtil.createDirectoriesSafe(path.getParent()); + } + + Writer writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8); + + try { + writer.write(this.getFriendlyReport(type, links)); + } catch (Throwable var8) { + if (writer != null) { + try { + writer.close(); + } catch (Throwable var7) { + var8.addSuppressed(var7); + } + } + + throw var8; + } + + if (writer != null) { + writer.close(); + } + + this.saveFile = path; + return true; + } catch (Throwable var9) { + LOGGER.error("Could not save crash report to {}", path, var9); + return false; + } + } + } + + public boolean saveToFile(Path path, ReportType type) { + return this.saveToFile(path, type, List.of()); + } + + public SystemReport getSystemReport() { + return this.systemReport; + } + + /** + * Creates a CrashReportCategory + */ + public CrashReportCategory addCategory(String name) { + return this.addCategory(name, 1); + } + + /** + * Creates a CrashReportCategory for the given stack trace depth + */ + public CrashReportCategory addCategory(String categoryName, int stacktraceLength) { + CrashReportCategory crashReportCategory = new CrashReportCategory(categoryName); + if (this.trackingStackTrace) { + int i = crashReportCategory.fillInStackTrace(stacktraceLength); + StackTraceElement[] stackTraceElements = this.exception.getStackTrace(); + StackTraceElement stackTraceElement = null; + StackTraceElement stackTraceElement2 = null; + int j = stackTraceElements.length - i; + if (j < 0) { + LOGGER.error("Negative index in crash report handler ({}/{})", stackTraceElements.length, i); + } + + if (stackTraceElements != null && 0 <= j && j < stackTraceElements.length) { + stackTraceElement = stackTraceElements[j]; + if (stackTraceElements.length + 1 - i < stackTraceElements.length) { + stackTraceElement2 = stackTraceElements[stackTraceElements.length + 1 - i]; + } + } + + this.trackingStackTrace = crashReportCategory.validateStackTrace(stackTraceElement, stackTraceElement2); + if (stackTraceElements != null && stackTraceElements.length >= i && 0 <= j && j < stackTraceElements.length) { + this.uncategorizedStackTrace = new StackTraceElement[j]; + System.arraycopy(stackTraceElements, 0, this.uncategorizedStackTrace, 0, this.uncategorizedStackTrace.length); + } else { + this.trackingStackTrace = false; + } + } + + this.details.add(crashReportCategory); + return crashReportCategory; + } + + /** + * Creates a crash report for the exception + */ + public static CrashReport forThrowable(Throwable cause, String description) { + while (cause instanceof CompletionException && cause.getCause() != null) { + cause = cause.getCause(); + } + + CrashReport crashReport; + if (cause instanceof ReportedException reportedException) { + crashReport = reportedException.getReport(); + } else { + crashReport = new CrashReport(description, cause); + } + + return crashReport; + } + + public static void preload() { + MemoryReserve.allocate(); + new CrashReport("Don't panic!", new Throwable()).getFriendlyReport(ReportType.CRASH); + } +} diff --git a/net/minecraft/CrashReportCategory.java b/net/minecraft/CrashReportCategory.java new file mode 100644 index 00000000..47e9ff46 --- /dev/null +++ b/net/minecraft/CrashReportCategory.java @@ -0,0 +1,220 @@ +package net.minecraft; + +import com.google.common.collect.Lists; +import java.util.List; +import java.util.Locale; +import net.minecraft.core.BlockPos; +import net.minecraft.core.SectionPos; +import net.minecraft.world.level.LevelHeightAccessor; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; + +public class CrashReportCategory { + private final String title; + private final List entries = Lists.newArrayList(); + private StackTraceElement[] stackTrace = new StackTraceElement[0]; + + public CrashReportCategory(String title) { + this.title = title; + } + + public static String formatLocation(LevelHeightAccessor levelHeightAccess, double x, double y, double z) { + return String.format(Locale.ROOT, "%.2f,%.2f,%.2f - %s", x, y, z, formatLocation(levelHeightAccess, BlockPos.containing(x, y, z))); + } + + public static String formatLocation(LevelHeightAccessor levelHeightAccess, BlockPos pos) { + return formatLocation(levelHeightAccess, pos.getX(), pos.getY(), pos.getZ()); + } + + public static String formatLocation(LevelHeightAccessor levelHeightAccess, int x, int y, int z) { + StringBuilder stringBuilder = new StringBuilder(); + + try { + stringBuilder.append(String.format(Locale.ROOT, "World: (%d,%d,%d)", x, y, z)); + } catch (Throwable var19) { + stringBuilder.append("(Error finding world loc)"); + } + + stringBuilder.append(", "); + + try { + int i = SectionPos.blockToSectionCoord(x); + int j = SectionPos.blockToSectionCoord(y); + int k = SectionPos.blockToSectionCoord(z); + int l = x & 15; + int m = y & 15; + int n = z & 15; + int o = SectionPos.sectionToBlockCoord(i); + int p = levelHeightAccess.getMinBuildHeight(); + int q = SectionPos.sectionToBlockCoord(k); + int r = SectionPos.sectionToBlockCoord(i + 1) - 1; + int s = levelHeightAccess.getMaxBuildHeight() - 1; + int t = SectionPos.sectionToBlockCoord(k + 1) - 1; + stringBuilder.append( + String.format(Locale.ROOT, "Section: (at %d,%d,%d in %d,%d,%d; chunk contains blocks %d,%d,%d to %d,%d,%d)", l, m, n, i, j, k, o, p, q, r, s, t) + ); + } catch (Throwable var18) { + stringBuilder.append("(Error finding chunk loc)"); + } + + stringBuilder.append(", "); + + try { + int i = x >> 9; + int j = z >> 9; + int k = i << 5; + int l = j << 5; + int m = (i + 1 << 5) - 1; + int n = (j + 1 << 5) - 1; + int o = i << 9; + int p = levelHeightAccess.getMinBuildHeight(); + int q = j << 9; + int r = (i + 1 << 9) - 1; + int s = levelHeightAccess.getMaxBuildHeight() - 1; + int t = (j + 1 << 9) - 1; + stringBuilder.append( + String.format(Locale.ROOT, "Region: (%d,%d; contains chunks %d,%d to %d,%d, blocks %d,%d,%d to %d,%d,%d)", i, j, k, l, m, n, o, p, q, r, s, t) + ); + } catch (Throwable var17) { + stringBuilder.append("(Error finding world loc)"); + } + + return stringBuilder.toString(); + } + + /** + * Adds a section to this crash report category, resolved by calling the given callable. + * + * If the given callable throws an exception, a detail containing that exception will be created instead. + */ + public CrashReportCategory setDetail(String name, CrashReportDetail detail) { + try { + this.setDetail(name, detail.call()); + } catch (Throwable var4) { + this.setDetailError(name, var4); + } + + return this; + } + + /** + * Adds a Crashreport section with the given name with the given value (converted {@code .toString()}) + */ + public CrashReportCategory setDetail(String sectionName, Object value) { + this.entries.add(new CrashReportCategory.Entry(sectionName, value)); + return this; + } + + /** + * Adds a Crashreport section with the given name with the given Throwable + */ + public void setDetailError(String sectionName, Throwable throwable) { + this.setDetail(sectionName, throwable); + } + + /** + * Resets our stack trace according to the current trace, pruning the deepest 3 entries. The parameter indicates how many additional deepest entries to prune. Returns the number of entries in the resulting pruned stack trace. + */ + public int fillInStackTrace(int size) { + StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); + if (stackTraceElements.length <= 0) { + return 0; + } else { + this.stackTrace = new StackTraceElement[stackTraceElements.length - 3 - size]; + System.arraycopy(stackTraceElements, 3 + size, this.stackTrace, 0, this.stackTrace.length); + return this.stackTrace.length; + } + } + + /** + * Do the deepest two elements of our saved stack trace match the given elements, in order from the deepest? + */ + public boolean validateStackTrace(StackTraceElement s1, StackTraceElement s2) { + if (this.stackTrace.length != 0 && s1 != null) { + StackTraceElement stackTraceElement = this.stackTrace[0]; + if (stackTraceElement.isNativeMethod() == s1.isNativeMethod() + && stackTraceElement.getClassName().equals(s1.getClassName()) + && stackTraceElement.getFileName().equals(s1.getFileName()) + && stackTraceElement.getMethodName().equals(s1.getMethodName())) { + if (s2 != null != this.stackTrace.length > 1) { + return false; + } else if (s2 != null && !this.stackTrace[1].equals(s2)) { + return false; + } else { + this.stackTrace[0] = s1; + return true; + } + } else { + return false; + } + } else { + return false; + } + } + + /** + * Removes the given number entries from the bottom of the stack trace. + */ + public void trimStacktrace(int amount) { + StackTraceElement[] stackTraceElements = new StackTraceElement[this.stackTrace.length - amount]; + System.arraycopy(this.stackTrace, 0, stackTraceElements, 0, stackTraceElements.length); + this.stackTrace = stackTraceElements; + } + + public void getDetails(StringBuilder builder) { + builder.append("-- ").append(this.title).append(" --\n"); + builder.append("Details:"); + + for (CrashReportCategory.Entry entry : this.entries) { + builder.append("\n\t"); + builder.append(entry.getKey()); + builder.append(": "); + builder.append(entry.getValue()); + } + + if (this.stackTrace != null && this.stackTrace.length > 0) { + builder.append("\nStacktrace:"); + + for (StackTraceElement stackTraceElement : this.stackTrace) { + builder.append("\n\tat "); + builder.append(stackTraceElement); + } + } + } + + public StackTraceElement[] getStacktrace() { + return this.stackTrace; + } + + public static void populateBlockDetails(CrashReportCategory category, LevelHeightAccessor levelHeightAccessor, BlockPos pos, @Nullable BlockState state) { + if (state != null) { + category.setDetail("Block", state::toString); + } + + category.setDetail("Block location", (CrashReportDetail)(() -> formatLocation(levelHeightAccessor, pos))); + } + + static class Entry { + private final String key; + private final String value; + + public Entry(String key, @Nullable Object value) { + this.key = key; + if (value == null) { + this.value = "~~NULL~~"; + } else if (value instanceof Throwable throwable) { + this.value = "~~ERROR~~ " + throwable.getClass().getSimpleName() + ": " + throwable.getMessage(); + } else { + this.value = value.toString(); + } + } + + public String getKey() { + return this.key; + } + + public String getValue() { + return this.value; + } + } +} diff --git a/net/minecraft/CrashReportDetail.java b/net/minecraft/CrashReportDetail.java new file mode 100644 index 00000000..cbfcc9b9 --- /dev/null +++ b/net/minecraft/CrashReportDetail.java @@ -0,0 +1,6 @@ +package net.minecraft; + +import java.util.concurrent.Callable; + +public interface CrashReportDetail extends Callable { +} diff --git a/net/minecraft/DefaultUncaughtExceptionHandler.java b/net/minecraft/DefaultUncaughtExceptionHandler.java new file mode 100644 index 00000000..9bee587c --- /dev/null +++ b/net/minecraft/DefaultUncaughtExceptionHandler.java @@ -0,0 +1,16 @@ +package net.minecraft; + +import java.lang.Thread.UncaughtExceptionHandler; +import org.slf4j.Logger; + +public class DefaultUncaughtExceptionHandler implements UncaughtExceptionHandler { + private final Logger logger; + + public DefaultUncaughtExceptionHandler(Logger logger) { + this.logger = logger; + } + + public void uncaughtException(Thread thread, Throwable throwable) { + this.logger.error("Caught previously unhandled exception :", throwable); + } +} diff --git a/net/minecraft/DefaultUncaughtExceptionHandlerWithName.java b/net/minecraft/DefaultUncaughtExceptionHandlerWithName.java new file mode 100644 index 00000000..1b828a7a --- /dev/null +++ b/net/minecraft/DefaultUncaughtExceptionHandlerWithName.java @@ -0,0 +1,17 @@ +package net.minecraft; + +import java.lang.Thread.UncaughtExceptionHandler; +import org.slf4j.Logger; + +public class DefaultUncaughtExceptionHandlerWithName implements UncaughtExceptionHandler { + private final Logger logger; + + public DefaultUncaughtExceptionHandlerWithName(Logger logger) { + this.logger = logger; + } + + public void uncaughtException(Thread thread, Throwable throwable) { + this.logger.error("Caught previously unhandled exception :"); + this.logger.error(thread.getName(), throwable); + } +} diff --git a/net/minecraft/DetectedVersion.java b/net/minecraft/DetectedVersion.java new file mode 100644 index 00000000..f67ca2e2 --- /dev/null +++ b/net/minecraft/DetectedVersion.java @@ -0,0 +1,149 @@ +package net.minecraft; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.mojang.logging.LogUtils; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.time.ZonedDateTime; +import java.util.Date; +import java.util.UUID; +import net.minecraft.server.packs.PackType; +import net.minecraft.util.GsonHelper; +import net.minecraft.world.level.storage.DataVersion; +import org.slf4j.Logger; + +public class DetectedVersion implements WorldVersion { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final WorldVersion BUILT_IN = new DetectedVersion(); + private final String id; + private final String name; + private final boolean stable; + private final DataVersion worldVersion; + private final int protocolVersion; + private final int resourcePackVersion; + private final int dataPackVersion; + private final Date buildTime; + + private DetectedVersion() { + this.id = UUID.randomUUID().toString().replaceAll("-", ""); + this.name = "1.21.1"; + this.stable = true; + this.worldVersion = new DataVersion(3955, "main"); + this.protocolVersion = SharedConstants.getProtocolVersion(); + this.resourcePackVersion = 34; + this.dataPackVersion = 48; + this.buildTime = new Date(); + } + + private DetectedVersion(JsonObject json) { + this.id = GsonHelper.getAsString(json, "id"); + this.name = GsonHelper.getAsString(json, "name"); + this.stable = GsonHelper.getAsBoolean(json, "stable"); + this.worldVersion = new DataVersion(GsonHelper.getAsInt(json, "world_version"), GsonHelper.getAsString(json, "series_id", DataVersion.MAIN_SERIES)); + this.protocolVersion = GsonHelper.getAsInt(json, "protocol_version"); + JsonObject jsonObject = GsonHelper.getAsJsonObject(json, "pack_version"); + this.resourcePackVersion = GsonHelper.getAsInt(jsonObject, "resource"); + this.dataPackVersion = GsonHelper.getAsInt(jsonObject, "data"); + this.buildTime = Date.from(ZonedDateTime.parse(GsonHelper.getAsString(json, "build_time")).toInstant()); + } + + /** + * Creates a new instance containing world version data from version.json (or fallback data if necessary). + * + * For getting data, use {@link SharedConstants#getCurrentVersion} instead, as that is cached. + */ + public static WorldVersion tryDetectVersion() { + try { + InputStream inputStream = DetectedVersion.class.getResourceAsStream("/version.json"); + + WorldVersion var9; + label63: { + DetectedVersion var2; + try { + if (inputStream == null) { + LOGGER.warn("Missing version information!"); + var9 = BUILT_IN; + break label63; + } + + InputStreamReader inputStreamReader = new InputStreamReader(inputStream); + + try { + var2 = new DetectedVersion(GsonHelper.parse(inputStreamReader)); + } catch (Throwable var6) { + try { + inputStreamReader.close(); + } catch (Throwable var5) { + var6.addSuppressed(var5); + } + + throw var6; + } + + inputStreamReader.close(); + } catch (Throwable var7) { + if (inputStream != null) { + try { + inputStream.close(); + } catch (Throwable var4) { + var7.addSuppressed(var4); + } + } + + throw var7; + } + + if (inputStream != null) { + inputStream.close(); + } + + return var2; + } + + if (inputStream != null) { + inputStream.close(); + } + + return var9; + } catch (JsonParseException | IOException var8) { + throw new IllegalStateException("Game version information is corrupt", var8); + } + } + + @Override + public String getId() { + return this.id; + } + + @Override + public String getName() { + return this.name; + } + + @Override + public DataVersion getDataVersion() { + return this.worldVersion; + } + + @Override + public int getProtocolVersion() { + return this.protocolVersion; + } + + @Override + public int getPackVersion(PackType packType) { + return packType == PackType.SERVER_DATA ? this.dataPackVersion : this.resourcePackVersion; + } + + @Override + public Date getBuildTime() { + return this.buildTime; + } + + @Override + public boolean isStable() { + return this.stable; + } +} diff --git a/net/minecraft/FieldsAreNonnullByDefault.java b/net/minecraft/FieldsAreNonnullByDefault.java new file mode 100644 index 00000000..8d081383 --- /dev/null +++ b/net/minecraft/FieldsAreNonnullByDefault.java @@ -0,0 +1,13 @@ +package net.minecraft; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.annotation.meta.TypeQualifierDefault; +import org.jetbrains.annotations.NotNull; + +@NotNull +@TypeQualifierDefault({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface FieldsAreNonnullByDefault { +} diff --git a/net/minecraft/FileUtil.java b/net/minecraft/FileUtil.java new file mode 100644 index 00000000..c113ce3a --- /dev/null +++ b/net/minecraft/FileUtil.java @@ -0,0 +1,185 @@ +package net.minecraft; + +import com.mojang.serialization.DataResult; +import java.io.File; +import java.io.IOException; +import java.nio.file.FileAlreadyExistsException; +import java.nio.file.Files; +import java.nio.file.InvalidPathException; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.apache.commons.io.FilenameUtils; + +public class FileUtil { + private static final Pattern COPY_COUNTER_PATTERN = Pattern.compile("(.*) \\((\\d*)\\)", 66); + private static final int MAX_FILE_NAME = 255; + private static final Pattern RESERVED_WINDOWS_FILENAMES = Pattern.compile(".*\\.|(?:COM|CLOCK\\$|CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\\..*)?", 2); + private static final Pattern STRICT_PATH_SEGMENT_CHECK = Pattern.compile("[-._a-z0-9]+"); + + public static String sanitizeName(String name) { + for (char c : SharedConstants.ILLEGAL_FILE_CHARACTERS) { + name = name.replace(c, '_'); + } + + return name.replaceAll("[./\"]", "_"); + } + + public static String findAvailableName(Path dirPath, String fileName, String fileFormat) throws IOException { + fileName = sanitizeName(fileName); + if (RESERVED_WINDOWS_FILENAMES.matcher(fileName).matches()) { + fileName = "_" + fileName + "_"; + } + + Matcher matcher = COPY_COUNTER_PATTERN.matcher(fileName); + int i = 0; + if (matcher.matches()) { + fileName = matcher.group("name"); + i = Integer.parseInt(matcher.group("count")); + } + + if (fileName.length() > 255 - fileFormat.length()) { + fileName = fileName.substring(0, 255 - fileFormat.length()); + } + + while (true) { + String string = fileName; + if (i != 0) { + String string2 = " (" + i + ")"; + int j = 255 - string2.length(); + if (fileName.length() > j) { + string = fileName.substring(0, j); + } + + string = string + string2; + } + + string = string + fileFormat; + Path path = dirPath.resolve(string); + + try { + Path path2 = Files.createDirectory(path); + Files.deleteIfExists(path2); + return dirPath.relativize(path2).toString(); + } catch (FileAlreadyExistsException var8) { + i++; + } + } + } + + public static boolean isPathNormalized(Path path) { + Path path2 = path.normalize(); + return path2.equals(path); + } + + public static boolean isPathPortable(Path path) { + for (Path path2 : path) { + if (RESERVED_WINDOWS_FILENAMES.matcher(path2.toString()).matches()) { + return false; + } + } + + return true; + } + + public static Path createPathToResource(Path dirPath, String locationPath, String fileFormat) { + String string = locationPath + fileFormat; + Path path = Paths.get(string); + if (path.endsWith(fileFormat)) { + throw new InvalidPathException(string, "empty resource name"); + } else { + return dirPath.resolve(path); + } + } + + public static String getFullResourcePath(String path) { + return FilenameUtils.getFullPath(path).replace(File.separator, "/"); + } + + public static String normalizeResourcePath(String path) { + return FilenameUtils.normalize(path).replace(File.separator, "/"); + } + + public static DataResult> decomposePath(String path) { + int i = path.indexOf(47); + if (i == -1) { + return switch (path) { + case "", ".", ".." -> DataResult.error(() -> "Invalid path '" + path + "'"); + default -> !isValidStrictPathSegment(path) ? DataResult.error(() -> "Invalid path '" + path + "'") : DataResult.success(List.of(path)); + }; + } else { + List list = new ArrayList(); + int j = 0; + boolean bl = false; + + while (true) { + String string = path.substring(j, i); + switch (string) { + case "": + case ".": + case "..": + return DataResult.error(() -> "Invalid segment '" + string + "' in path '" + path + "'"); + } + + if (!isValidStrictPathSegment(string)) { + return DataResult.error(() -> "Invalid segment '" + string + "' in path '" + path + "'"); + } + + list.add(string); + if (bl) { + return DataResult.success(list); + } + + j = i + 1; + i = path.indexOf(47, j); + if (i == -1) { + i = path.length(); + bl = true; + } + } + } + } + + public static Path resolvePath(Path path, List subdirectories) { + int i = subdirectories.size(); + + return switch (i) { + case 0 -> path; + case 1 -> path.resolve((String)subdirectories.get(0)); + default -> { + String[] strings = new String[i - 1]; + + for (int j = 1; j < i; j++) { + strings[j - 1] = (String)subdirectories.get(j); + } + + yield path.resolve(path.getFileSystem().getPath((String)subdirectories.get(0), strings)); + } + }; + } + + public static boolean isValidStrictPathSegment(String segment) { + return STRICT_PATH_SEGMENT_CHECK.matcher(segment).matches(); + } + + public static void validatePath(String... elements) { + if (elements.length == 0) { + throw new IllegalArgumentException("Path must have at least one element"); + } else { + for (String string : elements) { + if (string.equals("..") || string.equals(".") || !isValidStrictPathSegment(string)) { + throw new IllegalArgumentException("Illegal segment " + string + " in path " + Arrays.toString(elements)); + } + } + } + } + + public static void createDirectoriesSafe(Path path) throws IOException { + Files.createDirectories(Files.exists(path, new LinkOption[0]) ? path.toRealPath() : path); + } +} diff --git a/net/minecraft/MethodsReturnNonnullByDefault.java b/net/minecraft/MethodsReturnNonnullByDefault.java new file mode 100644 index 00000000..7c814e18 --- /dev/null +++ b/net/minecraft/MethodsReturnNonnullByDefault.java @@ -0,0 +1,13 @@ +package net.minecraft; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.annotation.meta.TypeQualifierDefault; +import org.jetbrains.annotations.NotNull; + +@NotNull +@TypeQualifierDefault({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface MethodsReturnNonnullByDefault { +} diff --git a/net/minecraft/Optionull.java b/net/minecraft/Optionull.java new file mode 100644 index 00000000..f0b2f26b --- /dev/null +++ b/net/minecraft/Optionull.java @@ -0,0 +1,74 @@ +package net.minecraft; + +import java.util.Collection; +import java.util.Iterator; +import java.util.function.Function; +import java.util.function.Supplier; +import org.jetbrains.annotations.Nullable; + +public class Optionull { + @Nullable + public static R map(@Nullable T value, Function mapper) { + return (R)(value == null ? null : mapper.apply(value)); + } + + public static R mapOrDefault(@Nullable T value, Function mapper, R defaultValue) { + return (R)(value == null ? defaultValue : mapper.apply(value)); + } + + public static R mapOrElse(@Nullable T value, Function mapper, Supplier supplier) { + return (R)(value == null ? supplier.get() : mapper.apply(value)); + } + + @Nullable + public static T first(Collection collection) { + Iterator iterator = collection.iterator(); + return (T)(iterator.hasNext() ? iterator.next() : null); + } + + public static T firstOrDefault(Collection collection, T defaultValue) { + Iterator iterator = collection.iterator(); + return (T)(iterator.hasNext() ? iterator.next() : defaultValue); + } + + public static T firstOrElse(Collection collection, Supplier supplier) { + Iterator iterator = collection.iterator(); + return (T)(iterator.hasNext() ? iterator.next() : supplier.get()); + } + + public static boolean isNullOrEmpty(@Nullable T[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable boolean[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable byte[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable char[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable short[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable int[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable long[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable float[] array) { + return array == null || array.length == 0; + } + + public static boolean isNullOrEmpty(@Nullable double[] array) { + return array == null || array.length == 0; + } +} diff --git a/net/minecraft/ReportType.java b/net/minecraft/ReportType.java new file mode 100644 index 00000000..5e0ec030 --- /dev/null +++ b/net/minecraft/ReportType.java @@ -0,0 +1,146 @@ +package net.minecraft; + +import java.util.List; + +public record ReportType(String header, List nuggets) { + public static final ReportType CRASH = new ReportType( + "Minecraft Crash Report", + List.of( + "Who set us up the TNT?", + "Everything's going to plan. No, really, that was supposed to happen.", + "Uh... Did I do that?", + "Oops.", + "Why did you do that?", + "I feel sad now :(", + "My bad.", + "I'm sorry, Dave.", + "I let you down. Sorry :(", + "On the bright side, I bought you a teddy bear!", + "Daisy, daisy...", + "Oh - I know what I did wrong!", + "Hey, that tickles! Hehehe!", + "I blame Dinnerbone.", + "You should try our sister game, Minceraft!", + "Don't be sad. I'll do better next time, I promise!", + "Don't be sad, have a hug! <3", + "I just don't know what went wrong :(", + "Shall we play a game?", + "Quite honestly, I wouldn't worry myself about that.", + "I bet Cylons wouldn't have this problem.", + "Sorry :(", + "Surprise! Haha. Well, this is awkward.", + "Would you like a cupcake?", + "Hi. I'm Minecraft, and I'm a crashaholic.", + "Ooh. Shiny.", + "This doesn't make any sense!", + "Why is it breaking :(", + "Don't do that.", + "Ouch. That hurt :(", + "You're mean.", + "This is a token for 1 free hug. Redeem at your nearest Mojangsta: [~~HUG~~]", + "There are four lights!", + "But it works on my machine." + ) + ); + public static final ReportType PROFILE = new ReportType( + "Minecraft Profiler Results", + List.of( + "I'd Rather Be Surfing", + "Shiny numbers!", + "Am I not running fast enough? :(", + "I'm working as hard as I can!", + "Will I ever be good enough for you? :(", + "Speedy. Zoooooom!", + "Hello world", + "40% better than a crash report.", + "Now with extra numbers", + "Now with less numbers", + "Now with the same numbers", + "You should add flames to things, it makes them go faster!", + "Do you feel the need for... optimization?", + "*cracks redstone whip*", + "Maybe if you treated it better then it'll have more motivation to work faster! Poor server." + ) + ); + public static final ReportType TEST = new ReportType( + "Minecraft Test Report", + List.of( + "Don't mind me", + "One day I will be a real crash!", + "Booo! Haha, did I scare you?", + "Help, I'm trapped in a report factory!", + "Have I answered your question?", + "No hugs here, sorry", + "I Can't Believe It's Not A Crash Report!", + "Where's the kaboom!?" + ) + ); + public static final ReportType NETWORK_PROTOCOL_ERROR = new ReportType( + "Minecraft Network Protocol Error Report", + List.of( + "0xBADF00D", + "+'${`%&NO CARRIER", + "Please insert The Internet CD #4", + "Sabotage!", + "Are you sure you are not moving wrongly?", + "This time is not my fault, I promise!", + "All lines are down!", + "Maybe a shark bit some cable", + "404", + "I'm sorry, I don't speak that language", + "What we've got here is failure to communicate", + "It's the tubes, they're clogged!", + "Abort, Retry, Ignore?", + "Could be worse, I guess", + "Wait, was the last bit one or zero?", + "Too many suspicious packets", + "Don't worry, I'll be fine", + "Maybe this time it will work!", + "I heard pigeons are more reliable" + ) + ); + public static final ReportType CHUNK_IO_ERROR = new ReportType( + "Minecraft Chunk IO Error Report", + List.of( + "I have failed you!", + "Let's not do it again...", + "Worst magic trick ever!", + "Remember to backup your worlds regularly", + "Pirates stole your chunk!", + "Ker-chunk!", + "Ideally, this shouldn't be here", + "Let's hope it wasn't anything important", + "Computers were a mistake", + "Welp", + "Not my proudest moment", + "Who needs blocks in a block game, right?", + "This chunk is no more...it has ceased to be...this is an EX-chunk", + "loss.mca" + ) + ); + + public String getErrorComment() { + try { + return (String)this.nuggets.get((int)(Util.getNanos() % this.nuggets.size())); + } catch (Throwable var2) { + return "Witty comment unavailable :("; + } + } + + public void appendHeader(StringBuilder builder, List links) { + builder.append("---- "); + builder.append(this.header()); + builder.append(" ----\n"); + builder.append("// "); + builder.append(this.getErrorComment()); + builder.append('\n'); + + for (String string : links) { + builder.append("// "); + builder.append(string); + builder.append('\n'); + } + + builder.append('\n'); + } +} diff --git a/net/minecraft/ReportedException.java b/net/minecraft/ReportedException.java new file mode 100644 index 00000000..8673b4f7 --- /dev/null +++ b/net/minecraft/ReportedException.java @@ -0,0 +1,24 @@ +package net.minecraft; + +public class ReportedException extends RuntimeException { + private final CrashReport report; + + public ReportedException(CrashReport report) { + this.report = report; + } + + /** + * Gets the CrashReport wrapped by this exception. + */ + public CrashReport getReport() { + return this.report; + } + + public Throwable getCause() { + return this.report.getException(); + } + + public String getMessage() { + return this.report.getTitle(); + } +} diff --git a/net/minecraft/ResourceLocationException.java b/net/minecraft/ResourceLocationException.java new file mode 100644 index 00000000..96d97cf6 --- /dev/null +++ b/net/minecraft/ResourceLocationException.java @@ -0,0 +1,13 @@ +package net.minecraft; + +import org.apache.commons.lang3.StringEscapeUtils; + +public class ResourceLocationException extends RuntimeException { + public ResourceLocationException(String message) { + super(StringEscapeUtils.escapeJava(message)); + } + + public ResourceLocationException(String message, Throwable cause) { + super(StringEscapeUtils.escapeJava(message), cause); + } +} diff --git a/net/minecraft/SharedConstants.java b/net/minecraft/SharedConstants.java new file mode 100644 index 00000000..2ecc8976 --- /dev/null +++ b/net/minecraft/SharedConstants.java @@ -0,0 +1,295 @@ +package net.minecraft; + +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import io.netty.util.ResourceLeakDetector; +import io.netty.util.ResourceLeakDetector.Level; +import java.time.Duration; +import net.minecraft.commands.BrigadierExceptions; +import net.minecraft.world.level.ChunkPos; +import org.jetbrains.annotations.Nullable; + +/** + * Shared global constants. + * + *

Note: The majority of the fields within this class are {@code public static final} with constant expressions (constants), and are inlined by the Java compiler at all places which reference these constant fields. Therefore, changing the value of these constant fields will have no effect on already compiled code.

+ * + *

In addition, it is presumed that a large portion of these constant fields (such as those prefixed with {@code DEBUG_} are used as 'flags', for manually toggling code meant for use by Mojang developers in debugging. Therefore, optimizing compilers (which include the Java compiler) may omit the code hidden behind disabled flags, and will result in these flags having no apparent use in the code (when in reality, the optimizing compiler has removed the code which uses them).

+ * + * @see
The Java® Language Specification, Java SE 16 Edition, § 15.29. "Constant Expressions" + * @see The Java® Language Specification, Java SE 16 Edition, § 14.22. "Unreachable Statements" + */ +public class SharedConstants { + /** + * Indicates whether the currently running game version is a snapshot version. + * + * @see com.mojang.bridge.game.GameVersion#isStable() + * @deprecated Use {@link #getCurrentVersion()} and {@link com.mojang.bridge.game.GameVersion#isStable()} instead. + */ + @Deprecated + public static final boolean SNAPSHOT = false; + /** + * The numeric format number for worlds used by this game version. + * + * @see com.mojang.bridge.game.GameVersion#getWorldVersion() + * @deprecated Use {@link #getCurrentVersion()} and {@link com.mojang.bridge.game.GameVersion#getWorldVersion()} instead. + */ + @Deprecated + public static final int WORLD_VERSION = 3955; + @Deprecated + public static final String SERIES = "main"; + /** + * The human readable name of this game version. + * + * @see com.mojang.bridge.game.GameVersion#getName() + * @deprecated Use {@link #getCurrentVersion()} and {@link com.mojang.bridge.game.GameVersion#getName()} instead. + */ + @Deprecated + public static final String VERSION_STRING = "1.21.1"; + /** + * The numeric format number for the networking protocol used by the release target of this game version. + * + *

This protocol version is used when this game version is a release version, not a {@linkplain #SNAPSHOT snapshots}. For snapshots, see {@link #SNAPSHOT_NETWORK_PROTOCOL_VERSION}.

+ * + * @see #getProtocolVersion() + * @deprecated Use {@link #getProtocolVersion()} instead. + */ + @Deprecated + public static final int RELEASE_NETWORK_PROTOCOL_VERSION = 767; + /** + * The numeric format number for the networking protocol used by the snapshot of this game version. + * + *

This protocol version is used when this game version is a {@linkplain #SNAPSHOT snapshot version}. For releases, see {@link #RELEASE_NETWORK_PROTOCOL_VERSION}.

+ * + *

The actual networking protocol version used in snapshot versions is the combination (bitwise OR) of this number and the bit at the position marked by {@link #SNAPSHOT_PROTOCOL_BIT}.

+ * + * @see #getProtocolVersion() + * @deprecated Use {@link #getProtocolVersion()} instead. + */ + @Deprecated + public static final int SNAPSHOT_NETWORK_PROTOCOL_VERSION = 204; + public static final int SNBT_NAG_VERSION = 3937; + /** + * The bit in the networking protocol version for denoting {@linkplain #SNAPSHOT snapshot versions}. + * + * @see #SNAPSHOT_NETWORK_PROTOCOL_VERSION + */ + private static final int SNAPSHOT_PROTOCOL_BIT = 30; + public static final boolean CRASH_EAGERLY = false; + /** + * The format of the resource packs used by this game version. Resource packs contain client-side assets, such as translation files, models, and textures. + * + * @see com.mojang.bridge.game.GameVersion#getPackVersion(com.mojang.bridge.game.PackType) + * @deprecated Use {@link #getCurrentVersion()}, {@link com.mojang.bridge.game.GameVersion#com.mojang.bridge.game.GameVersion#getPackVersion(com.mojang.bridge.game.PackType)}, and com.mojang.bridge.game.PackType#RESOURCE instead. + */ + @Deprecated + public static final int RESOURCE_PACK_FORMAT = 34; + /** + * The format of the data packs used by this game version. Data packs contain server-side data such as recipes, loot tables, and tags. + * + * @see com.mojang.bridge.game.GameVersion#getPackVersion(com.mojang.bridge.game.PackType) + * @deprecated Use {@link #getCurrentVersion()}, {@link com.mojang.bridge.game.GameVersion#com.mojang.bridge.game.GameVersion#getPackVersion(com.mojang.bridge.game.PackType)}, and com.mojang.bridge.game.PackType#DATA instead. + */ + @Deprecated + public static final int DATA_PACK_FORMAT = 48; + @Deprecated + public static final int LANGUAGE_FORMAT = 1; + public static final int REPORT_FORMAT_VERSION = 1; + /** + * The key for the NBT tag which contains the data version of some data, for use in datafixing. + * + *

For various objects, their stored data in a {@link net.minecraft.nbt.CompoundTag} will usually contain a {@link net.minecraft.nbt.IntTag} indexed with this key, which stores the data version when the data for that object was written out. This is used by the datafixer system to determine which fixers needs to be applied to the data.

+ * + * @see com.mojang.bridge.game.GameVersion#getWorldVersion() + */ + public static final String DATA_VERSION_TAG = "DataVersion"; + public static final boolean FIX_TNT_DUPE = false; + public static final boolean FIX_SAND_DUPE = false; + public static final boolean USE_DEBUG_FEATURES = false; + public static final boolean DEBUG_OPEN_INCOMPATIBLE_WORLDS = false; + public static final boolean DEBUG_ALLOW_LOW_SIM_DISTANCE = false; + public static final boolean DEBUG_HOTKEYS = false; + public static final boolean DEBUG_UI_NARRATION = false; + public static final boolean DEBUG_RENDER = false; + public static final boolean DEBUG_PATHFINDING = false; + public static final boolean DEBUG_WATER = false; + public static final boolean DEBUG_HEIGHTMAP = false; + public static final boolean DEBUG_COLLISION = false; + public static final boolean DEBUG_SHOW_LOCAL_SERVER_ENTITY_HIT_BOXES = false; + public static final boolean DEBUG_SUPPORT_BLOCKS = false; + public static final boolean DEBUG_SHAPES = false; + public static final boolean DEBUG_NEIGHBORSUPDATE = false; + public static final boolean DEBUG_STRUCTURES = false; + public static final boolean DEBUG_LIGHT = false; + public static final boolean DEBUG_SKY_LIGHT_SECTIONS = false; + public static final boolean DEBUG_WORLDGENATTEMPT = false; + public static final boolean DEBUG_SOLID_FACE = false; + public static final boolean DEBUG_CHUNKS = false; + public static final boolean DEBUG_GAME_EVENT_LISTENERS = false; + public static final boolean DEBUG_DUMP_TEXTURE_ATLAS = false; + public static final boolean DEBUG_DUMP_INTERPOLATED_TEXTURE_FRAMES = false; + public static final boolean DEBUG_STRUCTURE_EDIT_MODE = false; + public static final boolean DEBUG_SAVE_STRUCTURES_AS_SNBT = false; + public static final boolean DEBUG_SYNCHRONOUS_GL_LOGS = false; + public static final boolean DEBUG_VERBOSE_SERVER_EVENTS = false; + public static final boolean DEBUG_NAMED_RUNNABLES = false; + public static final boolean DEBUG_GOAL_SELECTOR = false; + public static final boolean DEBUG_VILLAGE_SECTIONS = false; + public static final boolean DEBUG_BRAIN = false; + public static final boolean DEBUG_BEES = false; + public static final boolean DEBUG_RAIDS = false; + public static final boolean DEBUG_BLOCK_BREAK = false; + public static final boolean DEBUG_RESOURCE_LOAD_TIMES = false; + public static final boolean DEBUG_MONITOR_TICK_TIMES = false; + public static final boolean DEBUG_KEEP_JIGSAW_BLOCKS_DURING_STRUCTURE_GEN = false; + public static final boolean DEBUG_DONT_SAVE_WORLD = false; + public static final boolean DEBUG_LARGE_DRIPSTONE = false; + public static final boolean DEBUG_CARVERS = false; + public static final boolean DEBUG_ORE_VEINS = false; + public static final boolean DEBUG_SCULK_CATALYST = false; + public static final boolean DEBUG_BYPASS_REALMS_VERSION_CHECK = false; + public static final boolean DEBUG_SOCIAL_INTERACTIONS = false; + public static final boolean DEBUG_VALIDATE_RESOURCE_PATH_CASE = false; + public static final boolean DEBUG_UNLOCK_ALL_TRADES = false; + public static final boolean DEBUG_BREEZE_MOB = false; + public static final boolean DEBUG_TRIAL_SPAWNER_DETECTS_SHEEP_AS_PLAYERS = false; + public static final boolean DEBUG_VAULT_DETECTS_SHEEP_AS_PLAYERS = false; + public static final boolean DEBUG_FORCE_ONBOARDING_SCREEN = false; + public static final boolean DEBUG_IGNORE_LOCAL_MOB_CAP = false; + public static final boolean DEBUG_DISABLE_LIQUID_SPREADING = false; + public static final boolean DEBUG_AQUIFERS = false; + public static final boolean DEBUG_JFR_PROFILING_ENABLE_LEVEL_LOADING = false; + public static boolean debugGenerateSquareTerrainWithoutNoise = false; + public static boolean debugGenerateStripedTerrainWithoutNoise = false; + public static final boolean DEBUG_ONLY_GENERATE_HALF_THE_WORLD = false; + public static final boolean DEBUG_DISABLE_FLUID_GENERATION = false; + public static final boolean DEBUG_DISABLE_AQUIFERS = false; + public static final boolean DEBUG_DISABLE_SURFACE = false; + public static final boolean DEBUG_DISABLE_CARVERS = false; + public static final boolean DEBUG_DISABLE_STRUCTURES = false; + public static final boolean DEBUG_DISABLE_FEATURES = false; + public static final boolean DEBUG_DISABLE_ORE_VEINS = false; + public static final boolean DEBUG_DISABLE_BLENDING = false; + public static final boolean DEBUG_DISABLE_BELOW_ZERO_RETROGENERATION = false; + /** + * The default port used by Minecraft for communication between servers and clients. + * + *

This is not a registered port at the Internet Assigned Numbers Authority, and therefore may conflict with existing applications. Minecraft servers may be hosted at other ports, in which case the clients must supply the correct port when connecting to the server.

+ * + * @see https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?&page=128 Internet Assigned Numbers Authority, Internet Service Name and Transport Protocol Port Number Registry + */ + public static final int DEFAULT_MINECRAFT_PORT = 25565; + public static final boolean INGAME_DEBUG_OUTPUT = false; + public static final boolean DEBUG_SUBTITLES = false; + public static final int FAKE_MS_LATENCY = 0; + public static final int FAKE_MS_JITTER = 0; + public static final Level NETTY_LEAK_DETECTION = Level.DISABLED; + public static final boolean COMMAND_STACK_TRACES = false; + public static final boolean DEBUG_WORLD_RECREATE = false; + public static final boolean DEBUG_SHOW_SERVER_DEBUG_VALUES = false; + public static final boolean DEBUG_FEATURE_COUNT = false; + public static final boolean DEBUG_RESOURCE_GENERATION_OVERRIDE = false; + public static final boolean DEBUG_FORCE_TELEMETRY = false; + public static final boolean DEBUG_DONT_SEND_TELEMETRY_TO_BACKEND = false; + public static final long MAXIMUM_TICK_TIME_NANOS = Duration.ofMillis(300L).toNanos(); + public static final float MAXIMUM_BLOCK_EXPLOSION_RESISTANCE = 3600000.0F; + public static final boolean USE_WORKFLOWS_HOOKS = false; + public static final boolean USE_DEVONLY = false; + public static boolean CHECK_DATA_FIXER_SCHEMA = true; + public static boolean IS_RUNNING_IN_IDE; + public static final int WORLD_RESOLUTION = 16; + /** + * The maximum length of a chat message that can be typed by a player. + */ + public static final int MAX_CHAT_LENGTH = 256; + public static final int MAX_USER_INPUT_COMMAND_LENGTH = 32500; + public static final int MAX_FUNCTION_COMMAND_LENGTH = 2000000; + public static final int MAX_PLAYER_NAME_LENGTH = 16; + public static final int MAX_CHAINED_NEIGHBOR_UPDATES = 1000000; + public static final int MAX_RENDER_DISTANCE = 32; + /** + * The characters which may not form part of a file's name. Used in various file processing methods to replace these illegal characters with valid characters, such as the underscore "{@code _}". + * + *

This collection of characters is a subset of the forbidden characters listed in the documentation for Microsoft Windows, with the addition of the backtick ({@code `}). + * + * @see Microsoft Corporation, "Naming Files, Paths, and Namespaces", § Naming Conventions + */ + public static final char[] ILLEGAL_FILE_CHARACTERS = new char[]{'/', '\n', '\r', '\t', '\u0000', '\f', '`', '?', '*', '\\', '<', '>', '|', '"', ':'}; + /** + * The amount of game ticks within a real-life second. + * + *

This is not guaranteed by a running server to be an accurate measurement of real-life seconds. Heavy load on the server may cause the actual tick-to-second ratio to go below this defined ratio.

+ */ + public static final int TICKS_PER_SECOND = 20; + public static final int MILLIS_PER_TICK = 50; + /** + * The amount of game ticks within a real-life minute. This is equal to {@code TICKS_PER_SECOND * 60}, and falls under the same guarantees and restrictions as {@link #TICKS_PER_SECOND}. + * + * @see #TICKS_PER_SECOND + */ + public static final int TICKS_PER_MINUTE = 1200; + /** + * The amount of game ticks within a game day. A game day is defined as 20 real-life minutes, so this is equal to {@code TICKS_PER_MINUTE * 20}. This falls under the same guarantees and restrictions as {@link #TICKS_PER_SECOND}. + */ + public static final int TICKS_PER_GAME_DAY = 24000; + public static final float AVERAGE_GAME_TICKS_PER_RANDOM_TICK_PER_BLOCK = 1365.3334F; + public static final float AVERAGE_RANDOM_TICKS_PER_BLOCK_PER_MINUTE = 0.87890625F; + public static final float AVERAGE_RANDOM_TICKS_PER_BLOCK_PER_GAME_DAY = 17.578125F; + public static final int WORLD_ICON_SIZE = 64; + @Nullable + private static WorldVersion CURRENT_VERSION; + + /** + * Sets the world version, failing if a different world version is already present. + * + * @throws IllegalStateException if a different world version has already been set previously + * + * @param version the world version to set + */ + public static void setVersion(WorldVersion version) { + if (CURRENT_VERSION == null) { + CURRENT_VERSION = version; + } else if (version != CURRENT_VERSION) { + throw new IllegalStateException("Cannot override the current game version!"); + } + } + + public static void tryDetectVersion() { + if (CURRENT_VERSION == null) { + CURRENT_VERSION = DetectedVersion.tryDetectVersion(); + } + } + + /** + * {@return the {@link WorldVersion world version}} + * + * @throws IllegalStateException if a world version has not been set previously + */ + public static WorldVersion getCurrentVersion() { + if (CURRENT_VERSION == null) { + throw new IllegalStateException("Game version not set"); + } else { + return CURRENT_VERSION; + } + } + + /** + * {@return the networking protocol version in use by this game version} + * + *

For releases, this will be equivalent to {@link #RELEASE_NETWORK_PROTOCOL_VERSION}. For snapshot versions, this will be the combination (bitwise OR) of {@link #SNAPSHOT_NETWORK_PROTOCOL_VERSION} and the bit marked by {@link #SNAPSHOT_PROTOCOL_BIT}.

+ */ + public static int getProtocolVersion() { + return 767; + } + + public static boolean debugVoidTerrain(ChunkPos chunkPos) { + int i = chunkPos.getMinBlockX(); + int j = chunkPos.getMinBlockZ(); + return !debugGenerateSquareTerrainWithoutNoise ? false : i > 8192 || i < 0 || j > 1024 || j < 0; + } + + static { + ResourceLeakDetector.setLevel(NETTY_LEAK_DETECTION); + CommandSyntaxException.ENABLE_COMMAND_STACK_TRACES = false; + CommandSyntaxException.BUILT_IN_EXCEPTIONS = new BrigadierExceptions(); + } +} diff --git a/net/minecraft/SystemReport.java b/net/minecraft/SystemReport.java new file mode 100644 index 00000000..c0ddd101 --- /dev/null +++ b/net/minecraft/SystemReport.java @@ -0,0 +1,199 @@ +package net.minecraft; + +import com.google.common.collect.Maps; +import com.mojang.logging.LogUtils; +import java.nio.file.FileStore; +import java.nio.file.Files; +import java.nio.file.InvalidPathException; +import java.nio.file.Path; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import org.slf4j.Logger; +import oshi.SystemInfo; +import oshi.hardware.CentralProcessor; +import oshi.hardware.GlobalMemory; +import oshi.hardware.GraphicsCard; +import oshi.hardware.HardwareAbstractionLayer; +import oshi.hardware.PhysicalMemory; +import oshi.hardware.VirtualMemory; +import oshi.hardware.CentralProcessor.ProcessorIdentifier; + +public class SystemReport { + public static final long BYTES_PER_MEBIBYTE = 1048576L; + private static final long ONE_GIGA = 1000000000L; + private static final Logger LOGGER = LogUtils.getLogger(); + private static final String OPERATING_SYSTEM = System.getProperty("os.name") + + " (" + + System.getProperty("os.arch") + + ") version " + + System.getProperty("os.version"); + private static final String JAVA_VERSION = System.getProperty("java.version") + ", " + System.getProperty("java.vendor"); + private static final String JAVA_VM_VERSION = System.getProperty("java.vm.name") + + " (" + + System.getProperty("java.vm.info") + + "), " + + System.getProperty("java.vm.vendor"); + private final Map entries = Maps.newLinkedHashMap(); + + public SystemReport() { + this.setDetail("Minecraft Version", SharedConstants.getCurrentVersion().getName()); + this.setDetail("Minecraft Version ID", SharedConstants.getCurrentVersion().getId()); + this.setDetail("Operating System", OPERATING_SYSTEM); + this.setDetail("Java Version", JAVA_VERSION); + this.setDetail("Java VM Version", JAVA_VM_VERSION); + this.setDetail("Memory", (Supplier)(() -> { + Runtime runtime = Runtime.getRuntime(); + long l = runtime.maxMemory(); + long m = runtime.totalMemory(); + long n = runtime.freeMemory(); + long o = l / 1048576L; + long p = m / 1048576L; + long q = n / 1048576L; + return n + " bytes (" + q + " MiB) / " + m + " bytes (" + p + " MiB) up to " + l + " bytes (" + o + " MiB)"; + })); + this.setDetail("CPUs", (Supplier)(() -> String.valueOf(Runtime.getRuntime().availableProcessors()))); + this.ignoreErrors("hardware", () -> this.putHardware(new SystemInfo())); + this.setDetail("JVM Flags", (Supplier)(() -> { + List list = (List)Util.getVmArguments().collect(Collectors.toList()); + return String.format(Locale.ROOT, "%d total; %s", list.size(), String.join(" ", list)); + })); + } + + public void setDetail(String identifier, String value) { + this.entries.put(identifier, value); + } + + public void setDetail(String identifier, Supplier valueSupplier) { + try { + this.setDetail(identifier, (String)valueSupplier.get()); + } catch (Exception var4) { + LOGGER.warn("Failed to get system info for {}", identifier, var4); + this.setDetail(identifier, "ERR"); + } + } + + private void putHardware(SystemInfo info) { + HardwareAbstractionLayer hardwareAbstractionLayer = info.getHardware(); + this.ignoreErrors("processor", () -> this.putProcessor(hardwareAbstractionLayer.getProcessor())); + this.ignoreErrors("graphics", () -> this.putGraphics(hardwareAbstractionLayer.getGraphicsCards())); + this.ignoreErrors("memory", () -> this.putMemory(hardwareAbstractionLayer.getMemory())); + this.ignoreErrors("storage", this::putStorage); + } + + private void ignoreErrors(String groupIdentifier, Runnable executor) { + try { + executor.run(); + } catch (Throwable var4) { + LOGGER.warn("Failed retrieving info for group {}", groupIdentifier, var4); + } + } + + public static float sizeInMiB(long bytes) { + return (float)bytes / 1048576.0F; + } + + private void putPhysicalMemory(List memorySlots) { + int i = 0; + + for (PhysicalMemory physicalMemory : memorySlots) { + String string = String.format(Locale.ROOT, "Memory slot #%d ", i++); + this.setDetail(string + "capacity (MiB)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", sizeInMiB(physicalMemory.getCapacity())))); + this.setDetail(string + "clockSpeed (GHz)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", (float)physicalMemory.getClockSpeed() / 1.0E9F))); + this.setDetail(string + "type", physicalMemory::getMemoryType); + } + } + + private void putVirtualMemory(VirtualMemory memory) { + this.setDetail("Virtual memory max (MiB)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", sizeInMiB(memory.getVirtualMax())))); + this.setDetail("Virtual memory used (MiB)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", sizeInMiB(memory.getVirtualInUse())))); + this.setDetail("Swap memory total (MiB)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", sizeInMiB(memory.getSwapTotal())))); + this.setDetail("Swap memory used (MiB)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", sizeInMiB(memory.getSwapUsed())))); + } + + private void putMemory(GlobalMemory memory) { + this.ignoreErrors("physical memory", () -> this.putPhysicalMemory(memory.getPhysicalMemory())); + this.ignoreErrors("virtual memory", () -> this.putVirtualMemory(memory.getVirtualMemory())); + } + + private void putGraphics(List gpus) { + int i = 0; + + for (GraphicsCard graphicsCard : gpus) { + String string = String.format(Locale.ROOT, "Graphics card #%d ", i++); + this.setDetail(string + "name", graphicsCard::getName); + this.setDetail(string + "vendor", graphicsCard::getVendor); + this.setDetail(string + "VRAM (MiB)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", sizeInMiB(graphicsCard.getVRam())))); + this.setDetail(string + "deviceId", graphicsCard::getDeviceId); + this.setDetail(string + "versionInfo", graphicsCard::getVersionInfo); + } + } + + private void putProcessor(CentralProcessor cpu) { + ProcessorIdentifier processorIdentifier = cpu.getProcessorIdentifier(); + this.setDetail("Processor Vendor", processorIdentifier::getVendor); + this.setDetail("Processor Name", processorIdentifier::getName); + this.setDetail("Identifier", processorIdentifier::getIdentifier); + this.setDetail("Microarchitecture", processorIdentifier::getMicroarchitecture); + this.setDetail("Frequency (GHz)", (Supplier)(() -> String.format(Locale.ROOT, "%.2f", (float)processorIdentifier.getVendorFreq() / 1.0E9F))); + this.setDetail("Number of physical packages", (Supplier)(() -> String.valueOf(cpu.getPhysicalPackageCount()))); + this.setDetail("Number of physical CPUs", (Supplier)(() -> String.valueOf(cpu.getPhysicalProcessorCount()))); + this.setDetail("Number of logical CPUs", (Supplier)(() -> String.valueOf(cpu.getLogicalProcessorCount()))); + } + + private void putStorage() { + this.putSpaceForProperty("jna.tmpdir"); + this.putSpaceForProperty("org.lwjgl.system.SharedLibraryExtractPath"); + this.putSpaceForProperty("io.netty.native.workdir"); + this.putSpaceForProperty("java.io.tmpdir"); + this.putSpaceForPath("workdir", () -> ""); + } + + private void putSpaceForProperty(String property) { + this.putSpaceForPath(property, () -> System.getProperty(property)); + } + + private void putSpaceForPath(String property, Supplier valueSupplier) { + String string = "Space in storage for " + property + " (MiB)"; + + try { + String string2 = (String)valueSupplier.get(); + if (string2 == null) { + this.setDetail(string, ""); + return; + } + + FileStore fileStore = Files.getFileStore(Path.of(string2)); + this.setDetail( + string, String.format(Locale.ROOT, "available: %.2f, total: %.2f", sizeInMiB(fileStore.getUsableSpace()), sizeInMiB(fileStore.getTotalSpace())) + ); + } catch (InvalidPathException var6) { + LOGGER.warn("{} is not a path", property, var6); + this.setDetail(string, ""); + } catch (Exception var7) { + LOGGER.warn("Failed retrieving storage space for {}", property, var7); + this.setDetail(string, "ERR"); + } + } + + public void appendToCrashReportString(StringBuilder reportAppender) { + reportAppender.append("-- ").append("System Details").append(" --\n"); + reportAppender.append("Details:"); + this.entries.forEach((string, string2) -> { + reportAppender.append("\n\t"); + reportAppender.append(string); + reportAppender.append(": "); + reportAppender.append(string2); + }); + } + + public String toLineSeparatedString() { + return (String)this.entries + .entrySet() + .stream() + .map(entry -> (String)entry.getKey() + ": " + (String)entry.getValue()) + .collect(Collectors.joining(System.lineSeparator())); + } +} diff --git a/net/minecraft/Util.java b/net/minecraft/Util.java new file mode 100644 index 00000000..8ac2b57e --- /dev/null +++ b/net/minecraft/Util.java @@ -0,0 +1,1004 @@ +package net.minecraft; + +import com.google.common.base.Ticker; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterators; +import com.google.common.collect.Lists; +import com.google.common.util.concurrent.MoreExecutors; +import com.mojang.datafixers.DataFixUtils; +import com.mojang.datafixers.Typed; +import com.mojang.datafixers.DSL.TypeReference; +import com.mojang.datafixers.types.Type; +import com.mojang.datafixers.util.Pair; +import com.mojang.logging.LogUtils; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.Dynamic; +import it.unimi.dsi.fastutil.ints.IntArrayList; +import it.unimi.dsi.fastutil.objects.Object2IntMap; +import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import it.unimi.dsi.fastutil.objects.Reference2IntMap; +import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap; +import it.unimi.dsi.fastutil.objects.ReferenceImmutableList; +import it.unimi.dsi.fastutil.objects.ReferenceList; +import java.io.File; +import java.io.IOException; +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.nio.file.spi.FileSystemProvider; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.time.Duration; +import java.time.Instant; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.Map.Entry; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionException; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ForkJoinPool; +import java.util.concurrent.ForkJoinWorkerThread; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.BiFunction; +import java.util.function.BooleanSupplier; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.Supplier; +import java.util.function.ToIntFunction; +import java.util.function.UnaryOperator; +import java.util.stream.Collector; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.LongStream; +import java.util.stream.Stream; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.Bootstrap; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.util.SingleKeyCache; +import net.minecraft.util.TimeSource; +import net.minecraft.util.datafix.DataFixers; +import net.minecraft.world.level.block.state.properties.Property; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +public class Util { + static final Logger LOGGER = LogUtils.getLogger(); + private static final int DEFAULT_MAX_THREADS = 255; + private static final int DEFAULT_SAFE_FILE_OPERATION_RETRIES = 10; + private static final String MAX_THREADS_SYSTEM_PROPERTY = "max.bg.threads"; + private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main"); + private static final ExecutorService IO_POOL = makeIoExecutor("IO-Worker-", false); + private static final ExecutorService DOWNLOAD_POOL = makeIoExecutor("Download-", true); + private static final DateTimeFormatter FILENAME_DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH.mm.ss", Locale.ROOT); + public static final int LINEAR_LOOKUP_THRESHOLD = 8; + private static final Set ALLOWED_UNTRUSTED_LINK_PROTOCOLS = Set.of("http", "https"); + public static final long NANOS_PER_MILLI = 1000000L; + public static TimeSource.NanoTimeSource timeSource = System::nanoTime; + public static final Ticker TICKER = new Ticker() { + @Override + public long read() { + return Util.timeSource.getAsLong(); + } + }; + public static final UUID NIL_UUID = new UUID(0L, 0L); + public static final FileSystemProvider ZIP_FILE_SYSTEM_PROVIDER = (FileSystemProvider)FileSystemProvider.installedProviders() + .stream() + .filter(fileSystemProvider -> fileSystemProvider.getScheme().equalsIgnoreCase("jar")) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No jar file system provider found")); + private static Consumer thePauser = string -> {}; + + public static Collector, ?, Map> toMap() { + return Collectors.toMap(Entry::getKey, Entry::getValue); + } + + public static Collector> toMutableList() { + return Collectors.toCollection(Lists::newArrayList); + } + + public static > String getPropertyName(Property property, Object value) { + return property.getName((T)value); + } + + public static String makeDescriptionId(String type, @Nullable ResourceLocation id) { + return id == null ? type + ".unregistered_sadface" : type + "." + id.getNamespace() + "." + id.getPath().replace('/', '.'); + } + + public static long getMillis() { + return getNanos() / 1000000L; + } + + public static long getNanos() { + return timeSource.getAsLong(); + } + + public static long getEpochMillis() { + return Instant.now().toEpochMilli(); + } + + public static String getFilenameFormattedDateTime() { + return FILENAME_DATE_TIME_FORMATTER.format(ZonedDateTime.now()); + } + + private static ExecutorService makeExecutor(String serviceName) { + int i = Mth.clamp(Runtime.getRuntime().availableProcessors() - 1, 1, getMaxThreads()); + ExecutorService executorService; + if (i <= 0) { + executorService = MoreExecutors.newDirectExecutorService(); + } else { + AtomicInteger atomicInteger = new AtomicInteger(1); + executorService = new ForkJoinPool(i, forkJoinPool -> { + ForkJoinWorkerThread forkJoinWorkerThread = new ForkJoinWorkerThread(forkJoinPool) { + protected void onTermination(Throwable throwable) { + if (throwable != null) { + Util.LOGGER.warn("{} died", this.getName(), throwable); + } else { + Util.LOGGER.debug("{} shutdown", this.getName()); + } + + super.onTermination(throwable); + } + }; + forkJoinWorkerThread.setName("Worker-" + serviceName + "-" + atomicInteger.getAndIncrement()); + return forkJoinWorkerThread; + }, Util::onThreadException, true); + } + + return executorService; + } + + private static int getMaxThreads() { + String string = System.getProperty("max.bg.threads"); + if (string != null) { + try { + int i = Integer.parseInt(string); + if (i >= 1 && i <= 255) { + return i; + } + + LOGGER.error("Wrong {} property value '{}'. Should be an integer value between 1 and {}.", "max.bg.threads", string, 255); + } catch (NumberFormatException var2) { + LOGGER.error("Could not parse {} property value '{}'. Should be an integer value between 1 and {}.", "max.bg.threads", string, 255); + } + } + + return 255; + } + + public static ExecutorService backgroundExecutor() { + return BACKGROUND_EXECUTOR; + } + + public static ExecutorService ioPool() { + return IO_POOL; + } + + public static ExecutorService nonCriticalIoPool() { + return DOWNLOAD_POOL; + } + + public static void shutdownExecutors() { + shutdownExecutor(BACKGROUND_EXECUTOR); + shutdownExecutor(IO_POOL); + } + + private static void shutdownExecutor(ExecutorService service) { + service.shutdown(); + + boolean bl; + try { + bl = service.awaitTermination(3L, TimeUnit.SECONDS); + } catch (InterruptedException var3) { + bl = false; + } + + if (!bl) { + service.shutdownNow(); + } + } + + private static ExecutorService makeIoExecutor(String name, boolean daemon) { + AtomicInteger atomicInteger = new AtomicInteger(1); + return Executors.newCachedThreadPool(runnable -> { + Thread thread = new Thread(runnable); + thread.setName(name + atomicInteger.getAndIncrement()); + thread.setDaemon(daemon); + thread.setUncaughtExceptionHandler(Util::onThreadException); + return thread; + }); + } + + public static void throwAsRuntime(Throwable throwable) { + throw throwable instanceof RuntimeException ? (RuntimeException)throwable : new RuntimeException(throwable); + } + + private static void onThreadException(Thread thread, Throwable throwable) { + pauseInIde(throwable); + if (throwable instanceof CompletionException) { + throwable = throwable.getCause(); + } + + if (throwable instanceof ReportedException reportedException) { + Bootstrap.realStdoutPrintln(reportedException.getReport().getFriendlyReport(ReportType.CRASH)); + System.exit(-1); + } + + LOGGER.error(String.format(Locale.ROOT, "Caught exception in thread %s", thread), throwable); + } + + @Nullable + public static Type fetchChoiceType(TypeReference type, String choiceName) { + return !SharedConstants.CHECK_DATA_FIXER_SCHEMA ? null : doFetchChoiceType(type, choiceName); + } + + @Nullable + private static Type doFetchChoiceType(TypeReference type, String choiceName) { + Type type2 = null; + + try { + type2 = DataFixers.getDataFixer() + .getSchema(DataFixUtils.makeKey(SharedConstants.getCurrentVersion().getDataVersion().getVersion())) + .getChoiceType(type, choiceName); + } catch (IllegalArgumentException var4) { + LOGGER.error("No data fixer registered for {}", choiceName); + if (SharedConstants.IS_RUNNING_IN_IDE) { + throw var4; + } + } + + return type2; + } + + public static Runnable wrapThreadWithTaskName(String name, Runnable task) { + return SharedConstants.IS_RUNNING_IN_IDE ? () -> { + Thread thread = Thread.currentThread(); + String string2 = thread.getName(); + thread.setName(name); + + try { + task.run(); + } finally { + thread.setName(string2); + } + } : task; + } + + public static Supplier wrapThreadWithTaskName(String name, Supplier task) { + return SharedConstants.IS_RUNNING_IN_IDE ? () -> { + Thread thread = Thread.currentThread(); + String string2 = thread.getName(); + thread.setName(name); + + Object var4; + try { + var4 = task.get(); + } finally { + thread.setName(string2); + } + + return var4; + } : task; + } + + public static String getRegisteredName(Registry registry, T value) { + ResourceLocation resourceLocation = registry.getKey(value); + return resourceLocation == null ? "[unregistered]" : resourceLocation.toString(); + } + + public static Predicate allOf(List> predicates) { + return switch (predicates.size()) { + case 0 -> object -> true; + case 1 -> (Predicate)predicates.get(0); + case 2 -> ((Predicate)predicates.get(0)).and((Predicate)predicates.get(1)); + default -> { + Predicate[] predicates2 = (Predicate[])predicates.toArray(Predicate[]::new); + yield object -> { + for (Predicate predicate : predicates2) { + if (!predicate.test(object)) { + return false; + } + } + + return true; + }; + } + }; + } + + public static Predicate anyOf(List> predicates) { + return switch (predicates.size()) { + case 0 -> object -> false; + case 1 -> (Predicate)predicates.get(0); + case 2 -> ((Predicate)predicates.get(0)).or((Predicate)predicates.get(1)); + default -> { + Predicate[] predicates2 = (Predicate[])predicates.toArray(Predicate[]::new); + yield object -> { + for (Predicate predicate : predicates2) { + if (predicate.test(object)) { + return true; + } + } + + return false; + }; + } + }; + } + + public static boolean isSymmetrical(int width, int height, List list) { + if (width == 1) { + return true; + } else { + int i = width / 2; + + for (int j = 0; j < height; j++) { + for (int k = 0; k < i; k++) { + int l = width - 1 - k; + T object = (T)list.get(k + j * width); + T object2 = (T)list.get(l + j * width); + if (!object.equals(object2)) { + return false; + } + } + } + + return true; + } + } + + public static Util.OS getPlatform() { + String string = System.getProperty("os.name").toLowerCase(Locale.ROOT); + if (string.contains("win")) { + return Util.OS.WINDOWS; + } else if (string.contains("mac")) { + return Util.OS.OSX; + } else if (string.contains("solaris")) { + return Util.OS.SOLARIS; + } else if (string.contains("sunos")) { + return Util.OS.SOLARIS; + } else if (string.contains("linux")) { + return Util.OS.LINUX; + } else { + return string.contains("unix") ? Util.OS.LINUX : Util.OS.UNKNOWN; + } + } + + public static URI parseAndValidateUntrustedUri(String uri) throws URISyntaxException { + URI uRI = new URI(uri); + String string = uRI.getScheme(); + if (string == null) { + throw new URISyntaxException(uri, "Missing protocol in URI: " + uri); + } else { + String string2 = string.toLowerCase(Locale.ROOT); + if (!ALLOWED_UNTRUSTED_LINK_PROTOCOLS.contains(string2)) { + throw new URISyntaxException(uri, "Unsupported protocol in URI: " + uri); + } else { + return uRI; + } + } + } + + public static Stream getVmArguments() { + RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + return runtimeMXBean.getInputArguments().stream().filter(string -> string.startsWith("-X")); + } + + public static T lastOf(List list) { + return (T)list.get(list.size() - 1); + } + + public static T findNextInIterable(Iterable iterable, @Nullable T element) { + Iterator iterator = iterable.iterator(); + T object = (T)iterator.next(); + if (element != null) { + T object2 = object; + + while (object2 != element) { + if (iterator.hasNext()) { + object2 = (T)iterator.next(); + } + } + + if (iterator.hasNext()) { + return (T)iterator.next(); + } + } + + return object; + } + + public static T findPreviousInIterable(Iterable iterable, @Nullable T current) { + Iterator iterator = iterable.iterator(); + T object = null; + + while (iterator.hasNext()) { + T object2 = (T)iterator.next(); + if (object2 == current) { + if (object == null) { + object = iterator.hasNext() ? Iterators.getLast(iterator) : current; + } + break; + } + + object = object2; + } + + return object; + } + + public static T make(Supplier supplier) { + return (T)supplier.get(); + } + + public static T make(T object, Consumer consumer) { + consumer.accept(object); + return object; + } + + /** + * Takes a list of futures and returns a future of list that completes when all of them succeed or any of them error, + */ + public static CompletableFuture> sequence(List> futures) { + if (futures.isEmpty()) { + return CompletableFuture.completedFuture(List.of()); + } else if (futures.size() == 1) { + return ((CompletableFuture)futures.get(0)).thenApply(List::of); + } else { + CompletableFuture completableFuture = CompletableFuture.allOf((CompletableFuture[])futures.toArray(new CompletableFuture[0])); + return completableFuture.thenApply(void_ -> futures.stream().map(CompletableFuture::join).toList()); + } + } + + public static CompletableFuture> sequenceFailFast(List> completableFutures) { + CompletableFuture> completableFuture = new CompletableFuture(); + return fallibleSequence(completableFutures, completableFuture::completeExceptionally).applyToEither(completableFuture, Function.identity()); + } + + public static CompletableFuture> sequenceFailFastAndCancel(List> completableFutures) { + CompletableFuture> completableFuture = new CompletableFuture(); + return fallibleSequence(completableFutures, throwable -> { + if (completableFuture.completeExceptionally(throwable)) { + for (CompletableFuture completableFuture2 : completableFutures) { + completableFuture2.cancel(true); + } + } + }).applyToEither(completableFuture, Function.identity()); + } + + private static CompletableFuture> fallibleSequence( + List> completableFutures, Consumer throwableConsumer + ) { + List list = Lists.newArrayListWithCapacity(completableFutures.size()); + CompletableFuture[] completableFutures2 = new CompletableFuture[completableFutures.size()]; + completableFutures.forEach(completableFuture -> { + int i = list.size(); + list.add(null); + completableFutures2[i] = completableFuture.whenComplete((object, throwable) -> { + if (throwable != null) { + throwableConsumer.accept(throwable); + } else { + list.set(i, object); + } + }); + }); + return CompletableFuture.allOf(completableFutures2).thenApply(void_ -> list); + } + + public static Optional ifElse(Optional opt, Consumer consumer, Runnable orElse) { + if (opt.isPresent()) { + consumer.accept(opt.get()); + } else { + orElse.run(); + } + + return opt; + } + + public static Supplier name(Supplier item, Supplier nameSupplier) { + return item; + } + + public static Runnable name(Runnable item, Supplier nameSupplier) { + return item; + } + + public static void logAndPauseIfInIde(String error) { + LOGGER.error(error); + if (SharedConstants.IS_RUNNING_IN_IDE) { + doPause(error); + } + } + + public static void logAndPauseIfInIde(String message, Throwable error) { + LOGGER.error(message, error); + if (SharedConstants.IS_RUNNING_IN_IDE) { + doPause(message); + } + } + + public static T pauseInIde(T throwable) { + if (SharedConstants.IS_RUNNING_IN_IDE) { + LOGGER.error("Trying to throw a fatal exception, pausing in IDE", throwable); + doPause(throwable.getMessage()); + } + + return throwable; + } + + public static void setPause(Consumer thePauser) { + Util.thePauser = thePauser; + } + + private static void doPause(String message) { + Instant instant = Instant.now(); + LOGGER.warn("Did you remember to set a breakpoint here?"); + boolean bl = Duration.between(instant, Instant.now()).toMillis() > 500L; + if (!bl) { + thePauser.accept(message); + } + } + + public static String describeError(Throwable throwable) { + if (throwable.getCause() != null) { + return describeError(throwable.getCause()); + } else { + return throwable.getMessage() != null ? throwable.getMessage() : throwable.toString(); + } + } + + public static T getRandom(T[] selections, RandomSource random) { + return selections[random.nextInt(selections.length)]; + } + + public static int getRandom(int[] selections, RandomSource random) { + return selections[random.nextInt(selections.length)]; + } + + public static T getRandom(List selections, RandomSource random) { + return (T)selections.get(random.nextInt(selections.size())); + } + + public static Optional getRandomSafe(List selections, RandomSource random) { + return selections.isEmpty() ? Optional.empty() : Optional.of(getRandom(selections, random)); + } + + private static BooleanSupplier createRenamer(Path filePath, Path newName) { + return new BooleanSupplier() { + public boolean getAsBoolean() { + try { + Files.move(filePath, newName); + return true; + } catch (IOException var2) { + Util.LOGGER.error("Failed to rename", (Throwable)var2); + return false; + } + } + + public String toString() { + return "rename " + filePath + " to " + newName; + } + }; + } + + private static BooleanSupplier createDeleter(Path filePath) { + return new BooleanSupplier() { + public boolean getAsBoolean() { + try { + Files.deleteIfExists(filePath); + return true; + } catch (IOException var2) { + Util.LOGGER.warn("Failed to delete", (Throwable)var2); + return false; + } + } + + public String toString() { + return "delete old " + filePath; + } + }; + } + + private static BooleanSupplier createFileDeletedCheck(Path filePath) { + return new BooleanSupplier() { + public boolean getAsBoolean() { + return !Files.exists(filePath, new LinkOption[0]); + } + + public String toString() { + return "verify that " + filePath + " is deleted"; + } + }; + } + + private static BooleanSupplier createFileCreatedCheck(Path filePath) { + return new BooleanSupplier() { + public boolean getAsBoolean() { + return Files.isRegularFile(filePath, new LinkOption[0]); + } + + public String toString() { + return "verify that " + filePath + " is present"; + } + }; + } + + private static boolean executeInSequence(BooleanSupplier... suppliers) { + for (BooleanSupplier booleanSupplier : suppliers) { + if (!booleanSupplier.getAsBoolean()) { + LOGGER.warn("Failed to execute {}", booleanSupplier); + return false; + } + } + + return true; + } + + private static boolean runWithRetries(int maxTries, String actionName, BooleanSupplier... suppliers) { + for (int i = 0; i < maxTries; i++) { + if (executeInSequence(suppliers)) { + return true; + } + + LOGGER.error("Failed to {}, retrying {}/{}", actionName, i, maxTries); + } + + LOGGER.error("Failed to {}, aborting, progress might be lost", actionName); + return false; + } + + public static void safeReplaceFile(Path current, Path latest, Path oldBackup) { + safeReplaceOrMoveFile(current, latest, oldBackup, false); + } + + public static boolean safeReplaceOrMoveFile(Path current, Path latest, Path oldBackup, boolean bl) { + if (Files.exists(current, new LinkOption[0]) + && !runWithRetries(10, "create backup " + oldBackup, createDeleter(oldBackup), createRenamer(current, oldBackup), createFileCreatedCheck(oldBackup))) { + return false; + } else if (!runWithRetries(10, "remove old " + current, createDeleter(current), createFileDeletedCheck(current))) { + return false; + } else if (!runWithRetries(10, "replace " + current + " with " + latest, createRenamer(latest, current), createFileCreatedCheck(current)) && !bl) { + runWithRetries(10, "restore " + current + " from " + oldBackup, createRenamer(oldBackup, current), createFileCreatedCheck(current)); + return false; + } else { + return true; + } + } + + public static int offsetByCodepoints(String text, int cursorPos, int direction) { + int i = text.length(); + if (direction >= 0) { + for (int j = 0; cursorPos < i && j < direction; j++) { + if (Character.isHighSurrogate(text.charAt(cursorPos++)) && cursorPos < i && Character.isLowSurrogate(text.charAt(cursorPos))) { + cursorPos++; + } + } + } else { + for (int jx = direction; cursorPos > 0 && jx < 0; jx++) { + cursorPos--; + if (Character.isLowSurrogate(text.charAt(cursorPos)) && cursorPos > 0 && Character.isHighSurrogate(text.charAt(cursorPos - 1))) { + cursorPos--; + } + } + } + + return cursorPos; + } + + public static Consumer prefix(String prefix, Consumer expectedSize) { + return string2 -> expectedSize.accept(prefix + string2); + } + + public static DataResult fixedSize(IntStream stream, int size) { + int[] is = stream.limit(size + 1).toArray(); + if (is.length != size) { + Supplier supplier = () -> "Input is not a list of " + size + " ints"; + return is.length >= size ? DataResult.error(supplier, Arrays.copyOf(is, size)) : DataResult.error(supplier); + } else { + return DataResult.success(is); + } + } + + public static DataResult fixedSize(LongStream stream, int expectedSize) { + long[] ls = stream.limit(expectedSize + 1).toArray(); + if (ls.length != expectedSize) { + Supplier supplier = () -> "Input is not a list of " + expectedSize + " longs"; + return ls.length >= expectedSize ? DataResult.error(supplier, Arrays.copyOf(ls, expectedSize)) : DataResult.error(supplier); + } else { + return DataResult.success(ls); + } + } + + public static DataResult> fixedSize(List list, int expectedSize) { + if (list.size() != expectedSize) { + Supplier supplier = () -> "Input is not a list of " + expectedSize + " elements"; + return list.size() >= expectedSize ? DataResult.error(supplier, list.subList(0, expectedSize)) : DataResult.error(supplier); + } else { + return DataResult.success(list); + } + } + + public static void startTimerHackThread() { + Thread thread = new Thread("Timer hack thread") { + public void run() { + while (true) { + try { + Thread.sleep(2147483647L); + } catch (InterruptedException var2) { + Util.LOGGER.warn("Timer hack thread interrupted, that really should not happen"); + return; + } + } + } + }; + thread.setDaemon(true); + thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(LOGGER)); + thread.start(); + } + + public static void copyBetweenDirs(Path fromDirectory, Path toDirectory, Path filePath) throws IOException { + Path path = fromDirectory.relativize(filePath); + Path path2 = toDirectory.resolve(path); + Files.copy(filePath, path2); + } + + public static String sanitizeName(String fileName, CharPredicate characterValidator) { + return (String)fileName.toLowerCase(Locale.ROOT) + .chars() + .mapToObj(i -> characterValidator.test((char)i) ? Character.toString((char)i) : "_") + .collect(Collectors.joining()); + } + + public static SingleKeyCache singleKeyCache(Function computeValue) { + return new SingleKeyCache<>(computeValue); + } + + public static Function memoize(Function memoFunction) { + return new Function() { + private final Map cache = new ConcurrentHashMap(); + + public R apply(T object) { + return (R)this.cache.computeIfAbsent(object, memoFunction); + } + + public String toString() { + return "memoize/1[function=" + memoFunction + ", size=" + this.cache.size() + "]"; + } + }; + } + + public static BiFunction memoize(BiFunction memoBiFunction) { + return new BiFunction() { + private final Map, R> cache = new ConcurrentHashMap(); + + public R apply(T object, U object2) { + return (R)this.cache.computeIfAbsent(Pair.of(object, object2), pair -> memoBiFunction.apply(pair.getFirst(), pair.getSecond())); + } + + public String toString() { + return "memoize/2[function=" + memoBiFunction + ", size=" + this.cache.size() + "]"; + } + }; + } + + public static List toShuffledList(Stream stream, RandomSource random) { + ObjectArrayList objectArrayList = (ObjectArrayList)stream.collect(ObjectArrayList.toList()); + shuffle(objectArrayList, random); + return objectArrayList; + } + + public static IntArrayList toShuffledList(IntStream stream, RandomSource random) { + IntArrayList intArrayList = IntArrayList.wrap(stream.toArray()); + int i = intArrayList.size(); + + for (int j = i; j > 1; j--) { + int k = random.nextInt(j); + intArrayList.set(j - 1, intArrayList.set(k, intArrayList.getInt(j - 1))); + } + + return intArrayList; + } + + public static List shuffledCopy(T[] array, RandomSource random) { + ObjectArrayList objectArrayList = new ObjectArrayList<>(array); + shuffle(objectArrayList, random); + return objectArrayList; + } + + public static List shuffledCopy(ObjectArrayList list, RandomSource random) { + ObjectArrayList objectArrayList = new ObjectArrayList<>(list); + shuffle(objectArrayList, random); + return objectArrayList; + } + + public static void shuffle(List list, RandomSource random) { + int i = list.size(); + + for (int j = i; j > 1; j--) { + int k = random.nextInt(j); + list.set(j - 1, list.set(k, list.get(j - 1))); + } + } + + public static CompletableFuture blockUntilDone(Function> task) { + return blockUntilDone(task, CompletableFuture::isDone); + } + + public static T blockUntilDone(Function task, Predicate donePredicate) { + BlockingQueue blockingQueue = new LinkedBlockingQueue(); + T object = (T)task.apply(blockingQueue::add); + + while (!donePredicate.test(object)) { + try { + Runnable runnable = (Runnable)blockingQueue.poll(100L, TimeUnit.MILLISECONDS); + if (runnable != null) { + runnable.run(); + } + } catch (InterruptedException var5) { + LOGGER.warn("Interrupted wait"); + break; + } + } + + int i = blockingQueue.size(); + if (i > 0) { + LOGGER.warn("Tasks left in queue: {}", i); + } + + return object; + } + + public static ToIntFunction createIndexLookup(List list) { + int i = list.size(); + if (i < 8) { + return list::indexOf; + } else { + Object2IntMap object2IntMap = new Object2IntOpenHashMap<>(i); + object2IntMap.defaultReturnValue(-1); + + for (int j = 0; j < i; j++) { + object2IntMap.put((T)list.get(j), j); + } + + return object2IntMap; + } + } + + public static ToIntFunction createIndexIdentityLookup(List list) { + int i = list.size(); + if (i < 8) { + ReferenceList referenceList = new ReferenceImmutableList<>(list); + return referenceList::indexOf; + } else { + Reference2IntMap reference2IntMap = new Reference2IntOpenHashMap<>(i); + reference2IntMap.defaultReturnValue(-1); + + for (int j = 0; j < i; j++) { + reference2IntMap.put((T)list.get(j), j); + } + + return reference2IntMap; + } + } + + public static Typed writeAndReadTypedOrThrow(Typed typed, Type type, UnaryOperator> operator) { + Dynamic dynamic = (Dynamic)typed.write().getOrThrow(); + return readTypedOrThrow(type, (Dynamic)operator.apply(dynamic), true); + } + + public static Typed readTypedOrThrow(Type type, Dynamic data) { + return readTypedOrThrow(type, data, false); + } + + public static Typed readTypedOrThrow(Type type, Dynamic data, boolean partial) { + DataResult> dataResult = type.readTyped(data).map(Pair::getFirst); + + try { + return partial ? dataResult.getPartialOrThrow(IllegalStateException::new) : dataResult.getOrThrow(IllegalStateException::new); + } catch (IllegalStateException var7) { + CrashReport crashReport = CrashReport.forThrowable(var7, "Reading type"); + CrashReportCategory crashReportCategory = crashReport.addCategory("Info"); + crashReportCategory.setDetail("Data", data); + crashReportCategory.setDetail("Type", type); + throw new ReportedException(crashReport); + } + } + + public static List copyAndAdd(List list, T value) { + return ImmutableList.builderWithExpectedSize(list.size() + 1).addAll(list).add(value).build(); + } + + public static List copyAndAdd(T value, List list) { + return ImmutableList.builderWithExpectedSize(list.size() + 1).add(value).addAll(list).build(); + } + + public static Map copyAndPut(Map map, K key, V value) { + return ImmutableMap.builderWithExpectedSize(map.size() + 1).putAll(map).put(key, value).buildKeepingLast(); + } + + public static enum OS { + LINUX("linux"), + SOLARIS("solaris"), + WINDOWS("windows") { + @Override + protected String[] getOpenUriArguments(URI uri) { + return new String[]{"rundll32", "url.dll,FileProtocolHandler", uri.toString()}; + } + }, + OSX("mac") { + @Override + protected String[] getOpenUriArguments(URI uri) { + return new String[]{"open", uri.toString()}; + } + }, + UNKNOWN("unknown"); + + private final String telemetryName; + + OS(final String telemetryName) { + this.telemetryName = telemetryName; + } + + public void openUri(URI uri) { + try { + Process process = (Process)AccessController.doPrivileged(() -> Runtime.getRuntime().exec(this.getOpenUriArguments(uri))); + process.getInputStream().close(); + process.getErrorStream().close(); + process.getOutputStream().close(); + } catch (IOException | PrivilegedActionException var3) { + Util.LOGGER.error("Couldn't open location '{}'", uri, var3); + } + } + + public void openFile(File file) { + this.openUri(file.toURI()); + } + + public void openPath(Path path) { + this.openUri(path.toUri()); + } + + protected String[] getOpenUriArguments(URI uri) { + String string = uri.toString(); + if ("file".equals(uri.getScheme())) { + string = string.replace("file:", "file://"); + } + + return new String[]{"xdg-open", string}; + } + + public void openUri(String uri) { + try { + this.openUri(new URI(uri)); + } catch (IllegalArgumentException | URISyntaxException var3) { + Util.LOGGER.error("Couldn't open uri '{}'", uri, var3); + } + } + + public String telemetryName() { + return this.telemetryName; + } + } +} diff --git a/net/minecraft/WorldVersion.java b/net/minecraft/WorldVersion.java new file mode 100644 index 00000000..575d0298 --- /dev/null +++ b/net/minecraft/WorldVersion.java @@ -0,0 +1,21 @@ +package net.minecraft; + +import java.util.Date; +import net.minecraft.server.packs.PackType; +import net.minecraft.world.level.storage.DataVersion; + +public interface WorldVersion { + DataVersion getDataVersion(); + + String getId(); + + String getName(); + + int getProtocolVersion(); + + int getPackVersion(PackType packType); + + Date getBuildTime(); + + boolean isStable(); +} diff --git a/net/minecraft/advancements/Advancement.java b/net/minecraft/advancements/Advancement.java new file mode 100644 index 00000000..d1641e60 --- /dev/null +++ b/net/minecraft/advancements/Advancement.java @@ -0,0 +1,215 @@ +package net.minecraft.advancements; + +import com.google.common.collect.ImmutableMap; +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Map; +import java.util.Optional; +import java.util.function.Consumer; +import net.minecraft.ChatFormatting; +import net.minecraft.advancements.critereon.CriterionValidator; +import net.minecraft.core.HolderGetter; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentUtils; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.Style; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.ProblemReporter; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; +import org.jetbrains.annotations.Nullable; + +public record Advancement( + Optional parent, + Optional display, + AdvancementRewards rewards, + Map> criteria, + AdvancementRequirements requirements, + boolean sendsTelemetryEvent, + Optional name +) { + private static final Codec>> CRITERIA_CODEC = Codec.unboundedMap(Codec.STRING, Criterion.CODEC) + .validate(map -> map.isEmpty() ? DataResult.error(() -> "Advancement criteria cannot be empty") : DataResult.success(map)); + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + ResourceLocation.CODEC.optionalFieldOf("parent").forGetter(Advancement::parent), + DisplayInfo.CODEC.optionalFieldOf("display").forGetter(Advancement::display), + AdvancementRewards.CODEC.optionalFieldOf("rewards", AdvancementRewards.EMPTY).forGetter(Advancement::rewards), + CRITERIA_CODEC.fieldOf("criteria").forGetter(Advancement::criteria), + AdvancementRequirements.CODEC.optionalFieldOf("requirements").forGetter(advancement -> Optional.of(advancement.requirements())), + Codec.BOOL.optionalFieldOf("sends_telemetry_event", false).forGetter(Advancement::sendsTelemetryEvent) + ) + .apply(instance, (optional, optional2, advancementRewards, map, optional3, boolean_) -> { + AdvancementRequirements advancementRequirements = (AdvancementRequirements)optional3.orElseGet(() -> AdvancementRequirements.allOf(map.keySet())); + return new Advancement(optional, optional2, advancementRewards, map, advancementRequirements, boolean_); + }) + ) + .validate(Advancement::validate); + public static final StreamCodec STREAM_CODEC = StreamCodec.ofMember(Advancement::write, Advancement::read); + + public Advancement( + Optional parent, + Optional display, + AdvancementRewards rewards, + Map> criteria, + AdvancementRequirements requirements, + boolean sendsTelemetryEvent + ) { + this(parent, display, rewards, Map.copyOf(criteria), requirements, sendsTelemetryEvent, display.map(Advancement::decorateName)); + } + + private static DataResult validate(Advancement advancement) { + return advancement.requirements().validate(advancement.criteria().keySet()).map(advancementRequirements -> advancement); + } + + private static Component decorateName(DisplayInfo display) { + Component component = display.getTitle(); + ChatFormatting chatFormatting = display.getType().getChatColor(); + Component component2 = ComponentUtils.mergeStyles(component.copy(), Style.EMPTY.withColor(chatFormatting)).append("\n").append(display.getDescription()); + Component component3 = component.copy().withStyle(style -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, component2))); + return ComponentUtils.wrapInSquareBrackets(component3).withStyle(chatFormatting); + } + + public static Component name(AdvancementHolder advancement) { + return (Component)advancement.value().name().orElseGet(() -> Component.literal(advancement.id().toString())); + } + + private void write(RegistryFriendlyByteBuf buffer) { + buffer.writeOptional(this.parent, FriendlyByteBuf::writeResourceLocation); + DisplayInfo.STREAM_CODEC.apply(ByteBufCodecs::optional).encode(buffer, this.display); + this.requirements.write(buffer); + buffer.writeBoolean(this.sendsTelemetryEvent); + } + + private static Advancement read(RegistryFriendlyByteBuf buffer) { + return new Advancement( + buffer.readOptional(FriendlyByteBuf::readResourceLocation), + (Optional)DisplayInfo.STREAM_CODEC.apply(ByteBufCodecs::optional).decode(buffer), + AdvancementRewards.EMPTY, + Map.of(), + new AdvancementRequirements(buffer), + buffer.readBoolean() + ); + } + + public boolean isRoot() { + return this.parent.isEmpty(); + } + + public void validate(ProblemReporter reporter, HolderGetter.Provider lootData) { + this.criteria.forEach((string, criterion) -> { + CriterionValidator criterionValidator = new CriterionValidator(reporter.forChild(string), lootData); + criterion.triggerInstance().validate(criterionValidator); + }); + } + + public static class Builder { + private Optional parent = Optional.empty(); + private Optional display = Optional.empty(); + private AdvancementRewards rewards = AdvancementRewards.EMPTY; + private final ImmutableMap.Builder> criteria = ImmutableMap.builder(); + private Optional requirements = Optional.empty(); + private AdvancementRequirements.Strategy requirementsStrategy = AdvancementRequirements.Strategy.AND; + private boolean sendsTelemetryEvent; + + public static Advancement.Builder advancement() { + return new Advancement.Builder().sendsTelemetryEvent(); + } + + public static Advancement.Builder recipeAdvancement() { + return new Advancement.Builder(); + } + + public Advancement.Builder parent(AdvancementHolder parent) { + this.parent = Optional.of(parent.id()); + return this; + } + + @Deprecated( + forRemoval = true + ) + public Advancement.Builder parent(ResourceLocation parentId) { + this.parent = Optional.of(parentId); + return this; + } + + public Advancement.Builder display( + ItemStack icon, + Component title, + Component description, + @Nullable ResourceLocation background, + AdvancementType type, + boolean showToast, + boolean announceChat, + boolean hidden + ) { + return this.display(new DisplayInfo(icon, title, description, Optional.ofNullable(background), type, showToast, announceChat, hidden)); + } + + public Advancement.Builder display( + ItemLike icon, + Component title, + Component description, + @Nullable ResourceLocation background, + AdvancementType type, + boolean showToast, + boolean announceChat, + boolean hidden + ) { + return this.display( + new DisplayInfo(new ItemStack(icon.asItem()), title, description, Optional.ofNullable(background), type, showToast, announceChat, hidden) + ); + } + + public Advancement.Builder display(DisplayInfo display) { + this.display = Optional.of(display); + return this; + } + + public Advancement.Builder rewards(AdvancementRewards.Builder rewardsBuilder) { + return this.rewards(rewardsBuilder.build()); + } + + public Advancement.Builder rewards(AdvancementRewards rewards) { + this.rewards = rewards; + return this; + } + + public Advancement.Builder addCriterion(String key, Criterion criterion) { + this.criteria.put(key, criterion); + return this; + } + + public Advancement.Builder requirements(AdvancementRequirements.Strategy requirementsStrategy) { + this.requirementsStrategy = requirementsStrategy; + return this; + } + + public Advancement.Builder requirements(AdvancementRequirements requirements) { + this.requirements = Optional.of(requirements); + return this; + } + + public Advancement.Builder sendsTelemetryEvent() { + this.sendsTelemetryEvent = true; + return this; + } + + public AdvancementHolder build(ResourceLocation id) { + Map> map = this.criteria.buildOrThrow(); + AdvancementRequirements advancementRequirements = (AdvancementRequirements)this.requirements.orElseGet(() -> this.requirementsStrategy.create(map.keySet())); + return new AdvancementHolder(id, new Advancement(this.parent, this.display, this.rewards, map, advancementRequirements, this.sendsTelemetryEvent)); + } + + public AdvancementHolder save(Consumer output, String id) { + AdvancementHolder advancementHolder = this.build(ResourceLocation.parse(id)); + output.accept(advancementHolder); + return advancementHolder; + } + } +} diff --git a/net/minecraft/advancements/AdvancementHolder.java b/net/minecraft/advancements/AdvancementHolder.java new file mode 100644 index 00000000..4f06bff3 --- /dev/null +++ b/net/minecraft/advancements/AdvancementHolder.java @@ -0,0 +1,26 @@ +package net.minecraft.advancements; + +import java.util.List; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceLocation; + +public record AdvancementHolder(ResourceLocation id, Advancement value) { + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ResourceLocation.STREAM_CODEC, AdvancementHolder::id, Advancement.STREAM_CODEC, AdvancementHolder::value, AdvancementHolder::new + ); + public static final StreamCodec> LIST_STREAM_CODEC = STREAM_CODEC.apply(ByteBufCodecs.list()); + + public boolean equals(Object object) { + return this == object ? true : object instanceof AdvancementHolder advancementHolder && this.id.equals(advancementHolder.id); + } + + public int hashCode() { + return this.id.hashCode(); + } + + public String toString() { + return this.id.toString(); + } +} diff --git a/net/minecraft/advancements/AdvancementNode.java b/net/minecraft/advancements/AdvancementNode.java new file mode 100644 index 00000000..c824b1c6 --- /dev/null +++ b/net/minecraft/advancements/AdvancementNode.java @@ -0,0 +1,70 @@ +package net.minecraft.advancements; + +import com.google.common.annotations.VisibleForTesting; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; +import java.util.Set; +import org.jetbrains.annotations.Nullable; + +public class AdvancementNode { + private final AdvancementHolder holder; + @Nullable + private final AdvancementNode parent; + private final Set children = new ReferenceOpenHashSet<>(); + + @VisibleForTesting + public AdvancementNode(AdvancementHolder holder, @Nullable AdvancementNode parent) { + this.holder = holder; + this.parent = parent; + } + + public Advancement advancement() { + return this.holder.value(); + } + + public AdvancementHolder holder() { + return this.holder; + } + + @Nullable + public AdvancementNode parent() { + return this.parent; + } + + public AdvancementNode root() { + return getRoot(this); + } + + public static AdvancementNode getRoot(AdvancementNode node) { + AdvancementNode advancementNode = node; + + while (true) { + AdvancementNode advancementNode2 = advancementNode.parent(); + if (advancementNode2 == null) { + return advancementNode; + } + + advancementNode = advancementNode2; + } + } + + public Iterable children() { + return this.children; + } + + @VisibleForTesting + public void addChild(AdvancementNode child) { + this.children.add(child); + } + + public boolean equals(Object object) { + return this == object ? true : object instanceof AdvancementNode advancementNode && this.holder.equals(advancementNode.holder); + } + + public int hashCode() { + return this.holder.hashCode(); + } + + public String toString() { + return this.holder.id().toString(); + } +} diff --git a/net/minecraft/advancements/AdvancementProgress.java b/net/minecraft/advancements/AdvancementProgress.java new file mode 100644 index 00000000..0ee174cc --- /dev/null +++ b/net/minecraft/advancements/AdvancementProgress.java @@ -0,0 +1,191 @@ +package net.minecraft.advancements; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.Map.Entry; +import java.util.stream.Collectors; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.util.ExtraCodecs; +import org.jetbrains.annotations.Nullable; + +public class AdvancementProgress implements Comparable { + private static final DateTimeFormatter OBTAINED_TIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss Z", Locale.ROOT); + private static final Codec OBTAINED_TIME_CODEC = ExtraCodecs.temporalCodec(OBTAINED_TIME_FORMAT) + .xmap(Instant::from, instant -> instant.atZone(ZoneId.systemDefault())); + private static final Codec> CRITERIA_CODEC = Codec.unboundedMap(Codec.STRING, OBTAINED_TIME_CODEC) + .xmap( + map -> (Map)map.entrySet().stream().collect(Collectors.toMap(Entry::getKey, entry -> new CriterionProgress((Instant)entry.getValue()))), + map -> (Map)map.entrySet() + .stream() + .filter(entry -> ((CriterionProgress)entry.getValue()).isDone()) + .collect(Collectors.toMap(Entry::getKey, entry -> (Instant)Objects.requireNonNull(((CriterionProgress)entry.getValue()).getObtained()))) + ); + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + CRITERIA_CODEC.optionalFieldOf("criteria", Map.of()).forGetter(advancementProgress -> advancementProgress.criteria), + Codec.BOOL.fieldOf("done").orElse(true).forGetter(AdvancementProgress::isDone) + ) + .apply(instance, (map, boolean_) -> new AdvancementProgress(new HashMap(map))) + ); + private final Map criteria; + private AdvancementRequirements requirements = AdvancementRequirements.EMPTY; + + private AdvancementProgress(Map criteria) { + this.criteria = criteria; + } + + public AdvancementProgress() { + this.criteria = Maps.newHashMap(); + } + + public void update(AdvancementRequirements requirements) { + Set set = requirements.names(); + this.criteria.entrySet().removeIf(entry -> !set.contains(entry.getKey())); + + for (String string : set) { + this.criteria.putIfAbsent(string, new CriterionProgress()); + } + + this.requirements = requirements; + } + + public boolean isDone() { + return this.requirements.test(this::isCriterionDone); + } + + public boolean hasProgress() { + for (CriterionProgress criterionProgress : this.criteria.values()) { + if (criterionProgress.isDone()) { + return true; + } + } + + return false; + } + + public boolean grantProgress(String criterionName) { + CriterionProgress criterionProgress = (CriterionProgress)this.criteria.get(criterionName); + if (criterionProgress != null && !criterionProgress.isDone()) { + criterionProgress.grant(); + return true; + } else { + return false; + } + } + + public boolean revokeProgress(String criterionName) { + CriterionProgress criterionProgress = (CriterionProgress)this.criteria.get(criterionName); + if (criterionProgress != null && criterionProgress.isDone()) { + criterionProgress.revoke(); + return true; + } else { + return false; + } + } + + public String toString() { + return "AdvancementProgress{criteria=" + this.criteria + ", requirements=" + this.requirements + "}"; + } + + public void serializeToNetwork(FriendlyByteBuf buffer) { + buffer.writeMap(this.criteria, FriendlyByteBuf::writeUtf, (friendlyByteBuf, criterionProgress) -> criterionProgress.serializeToNetwork(friendlyByteBuf)); + } + + public static AdvancementProgress fromNetwork(FriendlyByteBuf buffer) { + Map map = buffer.readMap(FriendlyByteBuf::readUtf, CriterionProgress::fromNetwork); + return new AdvancementProgress(map); + } + + @Nullable + public CriterionProgress getCriterion(String criterionName) { + return (CriterionProgress)this.criteria.get(criterionName); + } + + private boolean isCriterionDone(String criterionName) { + CriterionProgress criterionProgress = this.getCriterion(criterionName); + return criterionProgress != null && criterionProgress.isDone(); + } + + public float getPercent() { + if (this.criteria.isEmpty()) { + return 0.0F; + } else { + float f = this.requirements.size(); + float g = this.countCompletedRequirements(); + return g / f; + } + } + + @Nullable + public Component getProgressText() { + if (this.criteria.isEmpty()) { + return null; + } else { + int i = this.requirements.size(); + if (i <= 1) { + return null; + } else { + int j = this.countCompletedRequirements(); + return Component.translatable("advancements.progress", j, i); + } + } + } + + private int countCompletedRequirements() { + return this.requirements.count(this::isCriterionDone); + } + + public Iterable getRemainingCriteria() { + List list = Lists.newArrayList(); + + for (Entry entry : this.criteria.entrySet()) { + if (!((CriterionProgress)entry.getValue()).isDone()) { + list.add((String)entry.getKey()); + } + } + + return list; + } + + public Iterable getCompletedCriteria() { + List list = Lists.newArrayList(); + + for (Entry entry : this.criteria.entrySet()) { + if (((CriterionProgress)entry.getValue()).isDone()) { + list.add((String)entry.getKey()); + } + } + + return list; + } + + @Nullable + public Instant getFirstProgressDate() { + return (Instant)this.criteria.values().stream().map(CriterionProgress::getObtained).filter(Objects::nonNull).min(Comparator.naturalOrder()).orElse(null); + } + + public int compareTo(AdvancementProgress other) { + Instant instant = this.getFirstProgressDate(); + Instant instant2 = other.getFirstProgressDate(); + if (instant == null && instant2 != null) { + return 1; + } else if (instant != null && instant2 == null) { + return -1; + } else { + return instant == null && instant2 == null ? 0 : instant.compareTo(instant2); + } + } +} diff --git a/net/minecraft/advancements/AdvancementRequirements.java b/net/minecraft/advancements/AdvancementRequirements.java new file mode 100644 index 00000000..f062f8a7 --- /dev/null +++ b/net/minecraft/advancements/AdvancementRequirements.java @@ -0,0 +1,120 @@ +package net.minecraft.advancements; + +import com.google.common.collect.Sets; +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; +import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.function.Predicate; +import net.minecraft.network.FriendlyByteBuf; + +public record AdvancementRequirements(List> requirements) { + public static final Codec CODEC = Codec.STRING + .listOf() + .listOf() + .xmap(AdvancementRequirements::new, AdvancementRequirements::requirements); + public static final AdvancementRequirements EMPTY = new AdvancementRequirements(List.of()); + + public AdvancementRequirements(FriendlyByteBuf buffer) { + this(buffer.readList(friendlyByteBuf -> friendlyByteBuf.readList(FriendlyByteBuf::readUtf))); + } + + public void write(FriendlyByteBuf buffer) { + buffer.writeCollection(this.requirements, (friendlyByteBuf, list) -> friendlyByteBuf.writeCollection(list, FriendlyByteBuf::writeUtf)); + } + + public static AdvancementRequirements allOf(Collection requirements) { + return new AdvancementRequirements(requirements.stream().map(List::of).toList()); + } + + public static AdvancementRequirements anyOf(Collection criteria) { + return new AdvancementRequirements(List.of(List.copyOf(criteria))); + } + + public int size() { + return this.requirements.size(); + } + + public boolean test(Predicate predicate) { + if (this.requirements.isEmpty()) { + return false; + } else { + for (List list : this.requirements) { + if (!anyMatch(list, predicate)) { + return false; + } + } + + return true; + } + } + + public int count(Predicate filter) { + int i = 0; + + for (List list : this.requirements) { + if (anyMatch(list, filter)) { + i++; + } + } + + return i; + } + + private static boolean anyMatch(List requirements, Predicate predicate) { + for (String string : requirements) { + if (predicate.test(string)) { + return true; + } + } + + return false; + } + + public DataResult validate(Set requirements) { + Set set = new ObjectOpenHashSet<>(); + + for (List list : this.requirements) { + if (list.isEmpty() && requirements.isEmpty()) { + return DataResult.error(() -> "Requirement entry cannot be empty"); + } + + set.addAll(list); + } + + if (!requirements.equals(set)) { + Set set2 = Sets.difference(requirements, set); + Set set3 = Sets.difference(set, requirements); + return DataResult.error(() -> "Advancement completion requirements did not exactly match specified criteria. Missing: " + set2 + ". Unknown: " + set3); + } else { + return DataResult.success(this); + } + } + + public boolean isEmpty() { + return this.requirements.isEmpty(); + } + + public String toString() { + return this.requirements.toString(); + } + + public Set names() { + Set set = new ObjectOpenHashSet<>(); + + for (List list : this.requirements) { + set.addAll(list); + } + + return set; + } + + public interface Strategy { + AdvancementRequirements.Strategy AND = AdvancementRequirements::allOf; + AdvancementRequirements.Strategy OR = AdvancementRequirements::anyOf; + + AdvancementRequirements create(Collection collection); + } +} diff --git a/net/minecraft/advancements/AdvancementRewards.java b/net/minecraft/advancements/AdvancementRewards.java new file mode 100644 index 00000000..4320b17d --- /dev/null +++ b/net/minecraft/advancements/AdvancementRewards.java @@ -0,0 +1,142 @@ +package net.minecraft.advancements; + +import com.google.common.collect.ImmutableList; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.List; +import java.util.Optional; +import net.minecraft.commands.CacheableFunction; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; + +public record AdvancementRewards(int experience, List> loot, List recipes, Optional function) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + Codec.INT.optionalFieldOf("experience", 0).forGetter(AdvancementRewards::experience), + ResourceKey.codec(Registries.LOOT_TABLE).listOf().optionalFieldOf("loot", List.of()).forGetter(AdvancementRewards::loot), + ResourceLocation.CODEC.listOf().optionalFieldOf("recipes", List.of()).forGetter(AdvancementRewards::recipes), + CacheableFunction.CODEC.optionalFieldOf("function").forGetter(AdvancementRewards::function) + ) + .apply(instance, AdvancementRewards::new) + ); + public static final AdvancementRewards EMPTY = new AdvancementRewards(0, List.of(), List.of(), Optional.empty()); + + public void grant(ServerPlayer player) { + player.giveExperiencePoints(this.experience); + LootParams lootParams = new LootParams.Builder(player.serverLevel()) + .withParameter(LootContextParams.THIS_ENTITY, player) + .withParameter(LootContextParams.ORIGIN, player.position()) + .create(LootContextParamSets.ADVANCEMENT_REWARD); + boolean bl = false; + + for (ResourceKey resourceKey : this.loot) { + for (ItemStack itemStack : player.server.reloadableRegistries().getLootTable(resourceKey).getRandomItems(lootParams)) { + if (player.addItem(itemStack)) { + player.level() + .playSound( + null, + player.getX(), + player.getY(), + player.getZ(), + SoundEvents.ITEM_PICKUP, + SoundSource.PLAYERS, + 0.2F, + ((player.getRandom().nextFloat() - player.getRandom().nextFloat()) * 0.7F + 1.0F) * 2.0F + ); + bl = true; + } else { + ItemEntity itemEntity = player.drop(itemStack, false); + if (itemEntity != null) { + itemEntity.setNoPickUpDelay(); + itemEntity.setTarget(player.getUUID()); + } + } + } + } + + if (bl) { + player.containerMenu.broadcastChanges(); + } + + if (!this.recipes.isEmpty()) { + player.awardRecipesByKey(this.recipes); + } + + MinecraftServer minecraftServer = player.server; + this.function + .flatMap(cacheableFunction -> cacheableFunction.get(minecraftServer.getFunctions())) + .ifPresent( + commandFunction -> minecraftServer.getFunctions().execute(commandFunction, player.createCommandSourceStack().withSuppressedOutput().withPermission(2)) + ); + } + + public static class Builder { + private int experience; + private final ImmutableList.Builder> loot = ImmutableList.builder(); + private final ImmutableList.Builder recipes = ImmutableList.builder(); + private Optional function = Optional.empty(); + + /** + * Creates a new builder with the given amount of experience as a reward + */ + public static AdvancementRewards.Builder experience(int experience) { + return new AdvancementRewards.Builder().addExperience(experience); + } + + /** + * Adds the given amount of experience. (Not a direct setter) + */ + public AdvancementRewards.Builder addExperience(int experience) { + this.experience += experience; + return this; + } + + public static AdvancementRewards.Builder loot(ResourceKey lootTable) { + return new AdvancementRewards.Builder().addLootTable(lootTable); + } + + public AdvancementRewards.Builder addLootTable(ResourceKey lootTable) { + this.loot.add(lootTable); + return this; + } + + /** + * Creates a new builder with the given recipe as a reward. + */ + public static AdvancementRewards.Builder recipe(ResourceLocation recipeId) { + return new AdvancementRewards.Builder().addRecipe(recipeId); + } + + /** + * Adds the given recipe to the rewards. + */ + public AdvancementRewards.Builder addRecipe(ResourceLocation recipeId) { + this.recipes.add(recipeId); + return this; + } + + public static AdvancementRewards.Builder function(ResourceLocation functionId) { + return new AdvancementRewards.Builder().runs(functionId); + } + + public AdvancementRewards.Builder runs(ResourceLocation functionId) { + this.function = Optional.of(functionId); + return this; + } + + public AdvancementRewards build() { + return new AdvancementRewards(this.experience, this.loot.build(), this.recipes.build(), this.function.map(CacheableFunction::new)); + } + } +} diff --git a/net/minecraft/advancements/AdvancementTree.java b/net/minecraft/advancements/AdvancementTree.java new file mode 100644 index 00000000..8aa32fae --- /dev/null +++ b/net/minecraft/advancements/AdvancementTree.java @@ -0,0 +1,147 @@ +package net.minecraft.advancements; + +import com.mojang.logging.LogUtils; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +public class AdvancementTree { + private static final Logger LOGGER = LogUtils.getLogger(); + private final Map nodes = new Object2ObjectOpenHashMap<>(); + private final Set roots = new ObjectLinkedOpenHashSet<>(); + private final Set tasks = new ObjectLinkedOpenHashSet<>(); + @Nullable + private AdvancementTree.Listener listener; + + private void remove(AdvancementNode node) { + for (AdvancementNode advancementNode : node.children()) { + this.remove(advancementNode); + } + + LOGGER.info("Forgot about advancement {}", node.holder()); + this.nodes.remove(node.holder().id()); + if (node.parent() == null) { + this.roots.remove(node); + if (this.listener != null) { + this.listener.onRemoveAdvancementRoot(node); + } + } else { + this.tasks.remove(node); + if (this.listener != null) { + this.listener.onRemoveAdvancementTask(node); + } + } + } + + public void remove(Set advancements) { + for (ResourceLocation resourceLocation : advancements) { + AdvancementNode advancementNode = (AdvancementNode)this.nodes.get(resourceLocation); + if (advancementNode == null) { + LOGGER.warn("Told to remove advancement {} but I don't know what that is", resourceLocation); + } else { + this.remove(advancementNode); + } + } + } + + public void addAll(Collection advancements) { + List list = new ArrayList(advancements); + + while (!list.isEmpty()) { + if (!list.removeIf(this::tryInsert)) { + LOGGER.error("Couldn't load advancements: {}", list); + break; + } + } + + LOGGER.info("Loaded {} advancements", this.nodes.size()); + } + + private boolean tryInsert(AdvancementHolder advancement) { + Optional optional = advancement.value().parent(); + AdvancementNode advancementNode = (AdvancementNode)optional.map(this.nodes::get).orElse(null); + if (advancementNode == null && optional.isPresent()) { + return false; + } else { + AdvancementNode advancementNode2 = new AdvancementNode(advancement, advancementNode); + if (advancementNode != null) { + advancementNode.addChild(advancementNode2); + } + + this.nodes.put(advancement.id(), advancementNode2); + if (advancementNode == null) { + this.roots.add(advancementNode2); + if (this.listener != null) { + this.listener.onAddAdvancementRoot(advancementNode2); + } + } else { + this.tasks.add(advancementNode2); + if (this.listener != null) { + this.listener.onAddAdvancementTask(advancementNode2); + } + } + + return true; + } + } + + public void clear() { + this.nodes.clear(); + this.roots.clear(); + this.tasks.clear(); + if (this.listener != null) { + this.listener.onAdvancementsCleared(); + } + } + + public Iterable roots() { + return this.roots; + } + + public Collection nodes() { + return this.nodes.values(); + } + + @Nullable + public AdvancementNode get(ResourceLocation id) { + return (AdvancementNode)this.nodes.get(id); + } + + @Nullable + public AdvancementNode get(AdvancementHolder advancement) { + return (AdvancementNode)this.nodes.get(advancement.id()); + } + + public void setListener(@Nullable AdvancementTree.Listener listener) { + this.listener = listener; + if (listener != null) { + for (AdvancementNode advancementNode : this.roots) { + listener.onAddAdvancementRoot(advancementNode); + } + + for (AdvancementNode advancementNode : this.tasks) { + listener.onAddAdvancementTask(advancementNode); + } + } + } + + public interface Listener { + void onAddAdvancementRoot(AdvancementNode advancement); + + void onRemoveAdvancementRoot(AdvancementNode advancement); + + void onAddAdvancementTask(AdvancementNode advancement); + + void onRemoveAdvancementTask(AdvancementNode advancement); + + void onAdvancementsCleared(); + } +} diff --git a/net/minecraft/advancements/AdvancementType.java b/net/minecraft/advancements/AdvancementType.java new file mode 100644 index 00000000..6ade56ee --- /dev/null +++ b/net/minecraft/advancements/AdvancementType.java @@ -0,0 +1,42 @@ +package net.minecraft.advancements; + +import com.mojang.serialization.Codec; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.util.StringRepresentable; + +public enum AdvancementType implements StringRepresentable { + TASK("task", ChatFormatting.GREEN), + CHALLENGE("challenge", ChatFormatting.DARK_PURPLE), + GOAL("goal", ChatFormatting.GREEN); + + public static final Codec CODEC = StringRepresentable.fromEnum(AdvancementType::values); + private final String name; + private final ChatFormatting chatColor; + private final Component displayName; + + private AdvancementType(final String name, final ChatFormatting chatColor) { + this.name = name; + this.chatColor = chatColor; + this.displayName = Component.translatable("advancements.toast." + name); + } + + public ChatFormatting getChatColor() { + return this.chatColor; + } + + public Component getDisplayName() { + return this.displayName; + } + + @Override + public String getSerializedName() { + return this.name; + } + + public MutableComponent createAnnouncement(AdvancementHolder advancement, ServerPlayer player) { + return Component.translatable("chat.type.advancement." + this.name, player.getDisplayName(), Advancement.name(advancement)); + } +} diff --git a/net/minecraft/advancements/CriteriaTriggers.java b/net/minecraft/advancements/CriteriaTriggers.java new file mode 100644 index 00000000..1a86f6c9 --- /dev/null +++ b/net/minecraft/advancements/CriteriaTriggers.java @@ -0,0 +1,116 @@ +package net.minecraft.advancements; + +import com.mojang.serialization.Codec; +import net.minecraft.advancements.critereon.AnyBlockInteractionTrigger; +import net.minecraft.advancements.critereon.BeeNestDestroyedTrigger; +import net.minecraft.advancements.critereon.BredAnimalsTrigger; +import net.minecraft.advancements.critereon.BrewedPotionTrigger; +import net.minecraft.advancements.critereon.ChangeDimensionTrigger; +import net.minecraft.advancements.critereon.ChanneledLightningTrigger; +import net.minecraft.advancements.critereon.ConstructBeaconTrigger; +import net.minecraft.advancements.critereon.ConsumeItemTrigger; +import net.minecraft.advancements.critereon.CuredZombieVillagerTrigger; +import net.minecraft.advancements.critereon.DefaultBlockInteractionTrigger; +import net.minecraft.advancements.critereon.DistanceTrigger; +import net.minecraft.advancements.critereon.EffectsChangedTrigger; +import net.minecraft.advancements.critereon.EnchantedItemTrigger; +import net.minecraft.advancements.critereon.EnterBlockTrigger; +import net.minecraft.advancements.critereon.EntityHurtPlayerTrigger; +import net.minecraft.advancements.critereon.FallAfterExplosionTrigger; +import net.minecraft.advancements.critereon.FilledBucketTrigger; +import net.minecraft.advancements.critereon.FishingRodHookedTrigger; +import net.minecraft.advancements.critereon.ImpossibleTrigger; +import net.minecraft.advancements.critereon.InventoryChangeTrigger; +import net.minecraft.advancements.critereon.ItemDurabilityTrigger; +import net.minecraft.advancements.critereon.ItemUsedOnLocationTrigger; +import net.minecraft.advancements.critereon.KilledByCrossbowTrigger; +import net.minecraft.advancements.critereon.KilledTrigger; +import net.minecraft.advancements.critereon.LevitationTrigger; +import net.minecraft.advancements.critereon.LightningStrikeTrigger; +import net.minecraft.advancements.critereon.LootTableTrigger; +import net.minecraft.advancements.critereon.PickedUpItemTrigger; +import net.minecraft.advancements.critereon.PlayerHurtEntityTrigger; +import net.minecraft.advancements.critereon.PlayerInteractTrigger; +import net.minecraft.advancements.critereon.PlayerTrigger; +import net.minecraft.advancements.critereon.RecipeCraftedTrigger; +import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; +import net.minecraft.advancements.critereon.ShotCrossbowTrigger; +import net.minecraft.advancements.critereon.SlideDownBlockTrigger; +import net.minecraft.advancements.critereon.StartRidingTrigger; +import net.minecraft.advancements.critereon.SummonedEntityTrigger; +import net.minecraft.advancements.critereon.TameAnimalTrigger; +import net.minecraft.advancements.critereon.TargetBlockTrigger; +import net.minecraft.advancements.critereon.TradeTrigger; +import net.minecraft.advancements.critereon.UsedEnderEyeTrigger; +import net.minecraft.advancements.critereon.UsedTotemTrigger; +import net.minecraft.advancements.critereon.UsingItemTrigger; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; + +public class CriteriaTriggers { + public static final Codec> CODEC = BuiltInRegistries.TRIGGER_TYPES.byNameCodec(); + public static final ImpossibleTrigger IMPOSSIBLE = register("impossible", new ImpossibleTrigger()); + public static final KilledTrigger PLAYER_KILLED_ENTITY = register("player_killed_entity", new KilledTrigger()); + public static final KilledTrigger ENTITY_KILLED_PLAYER = register("entity_killed_player", new KilledTrigger()); + public static final EnterBlockTrigger ENTER_BLOCK = register("enter_block", new EnterBlockTrigger()); + public static final InventoryChangeTrigger INVENTORY_CHANGED = register("inventory_changed", new InventoryChangeTrigger()); + public static final RecipeUnlockedTrigger RECIPE_UNLOCKED = register("recipe_unlocked", new RecipeUnlockedTrigger()); + public static final PlayerHurtEntityTrigger PLAYER_HURT_ENTITY = register("player_hurt_entity", new PlayerHurtEntityTrigger()); + public static final EntityHurtPlayerTrigger ENTITY_HURT_PLAYER = register("entity_hurt_player", new EntityHurtPlayerTrigger()); + public static final EnchantedItemTrigger ENCHANTED_ITEM = register("enchanted_item", new EnchantedItemTrigger()); + public static final FilledBucketTrigger FILLED_BUCKET = register("filled_bucket", new FilledBucketTrigger()); + public static final BrewedPotionTrigger BREWED_POTION = register("brewed_potion", new BrewedPotionTrigger()); + public static final ConstructBeaconTrigger CONSTRUCT_BEACON = register("construct_beacon", new ConstructBeaconTrigger()); + public static final UsedEnderEyeTrigger USED_ENDER_EYE = register("used_ender_eye", new UsedEnderEyeTrigger()); + public static final SummonedEntityTrigger SUMMONED_ENTITY = register("summoned_entity", new SummonedEntityTrigger()); + public static final BredAnimalsTrigger BRED_ANIMALS = register("bred_animals", new BredAnimalsTrigger()); + public static final PlayerTrigger LOCATION = register("location", new PlayerTrigger()); + public static final PlayerTrigger SLEPT_IN_BED = register("slept_in_bed", new PlayerTrigger()); + public static final CuredZombieVillagerTrigger CURED_ZOMBIE_VILLAGER = register("cured_zombie_villager", new CuredZombieVillagerTrigger()); + public static final TradeTrigger TRADE = register("villager_trade", new TradeTrigger()); + public static final ItemDurabilityTrigger ITEM_DURABILITY_CHANGED = register("item_durability_changed", new ItemDurabilityTrigger()); + public static final LevitationTrigger LEVITATION = register("levitation", new LevitationTrigger()); + public static final ChangeDimensionTrigger CHANGED_DIMENSION = register("changed_dimension", new ChangeDimensionTrigger()); + public static final PlayerTrigger TICK = register("tick", new PlayerTrigger()); + public static final TameAnimalTrigger TAME_ANIMAL = register("tame_animal", new TameAnimalTrigger()); + public static final ItemUsedOnLocationTrigger PLACED_BLOCK = register("placed_block", new ItemUsedOnLocationTrigger()); + public static final ConsumeItemTrigger CONSUME_ITEM = register("consume_item", new ConsumeItemTrigger()); + public static final EffectsChangedTrigger EFFECTS_CHANGED = register("effects_changed", new EffectsChangedTrigger()); + public static final UsedTotemTrigger USED_TOTEM = register("used_totem", new UsedTotemTrigger()); + public static final DistanceTrigger NETHER_TRAVEL = register("nether_travel", new DistanceTrigger()); + public static final FishingRodHookedTrigger FISHING_ROD_HOOKED = register("fishing_rod_hooked", new FishingRodHookedTrigger()); + public static final ChanneledLightningTrigger CHANNELED_LIGHTNING = register("channeled_lightning", new ChanneledLightningTrigger()); + public static final ShotCrossbowTrigger SHOT_CROSSBOW = register("shot_crossbow", new ShotCrossbowTrigger()); + public static final KilledByCrossbowTrigger KILLED_BY_CROSSBOW = register("killed_by_crossbow", new KilledByCrossbowTrigger()); + public static final PlayerTrigger RAID_WIN = register("hero_of_the_village", new PlayerTrigger()); + public static final PlayerTrigger RAID_OMEN = register("voluntary_exile", new PlayerTrigger()); + public static final SlideDownBlockTrigger HONEY_BLOCK_SLIDE = register("slide_down_block", new SlideDownBlockTrigger()); + public static final BeeNestDestroyedTrigger BEE_NEST_DESTROYED = register("bee_nest_destroyed", new BeeNestDestroyedTrigger()); + public static final TargetBlockTrigger TARGET_BLOCK_HIT = register("target_hit", new TargetBlockTrigger()); + public static final ItemUsedOnLocationTrigger ITEM_USED_ON_BLOCK = register("item_used_on_block", new ItemUsedOnLocationTrigger()); + public static final DefaultBlockInteractionTrigger DEFAULT_BLOCK_USE = register("default_block_use", new DefaultBlockInteractionTrigger()); + public static final AnyBlockInteractionTrigger ANY_BLOCK_USE = register("any_block_use", new AnyBlockInteractionTrigger()); + public static final LootTableTrigger GENERATE_LOOT = register("player_generates_container_loot", new LootTableTrigger()); + public static final PickedUpItemTrigger THROWN_ITEM_PICKED_UP_BY_ENTITY = register("thrown_item_picked_up_by_entity", new PickedUpItemTrigger()); + public static final PickedUpItemTrigger THROWN_ITEM_PICKED_UP_BY_PLAYER = register("thrown_item_picked_up_by_player", new PickedUpItemTrigger()); + public static final PlayerInteractTrigger PLAYER_INTERACTED_WITH_ENTITY = register("player_interacted_with_entity", new PlayerInteractTrigger()); + public static final StartRidingTrigger START_RIDING_TRIGGER = register("started_riding", new StartRidingTrigger()); + public static final LightningStrikeTrigger LIGHTNING_STRIKE = register("lightning_strike", new LightningStrikeTrigger()); + public static final UsingItemTrigger USING_ITEM = register("using_item", new UsingItemTrigger()); + public static final DistanceTrigger FALL_FROM_HEIGHT = register("fall_from_height", new DistanceTrigger()); + public static final DistanceTrigger RIDE_ENTITY_IN_LAVA_TRIGGER = register("ride_entity_in_lava", new DistanceTrigger()); + public static final KilledTrigger KILL_MOB_NEAR_SCULK_CATALYST = register("kill_mob_near_sculk_catalyst", new KilledTrigger()); + public static final ItemUsedOnLocationTrigger ALLAY_DROP_ITEM_ON_BLOCK = register("allay_drop_item_on_block", new ItemUsedOnLocationTrigger()); + public static final PlayerTrigger AVOID_VIBRATION = register("avoid_vibration", new PlayerTrigger()); + public static final RecipeCraftedTrigger RECIPE_CRAFTED = register("recipe_crafted", new RecipeCraftedTrigger()); + public static final RecipeCraftedTrigger CRAFTER_RECIPE_CRAFTED = register("crafter_recipe_crafted", new RecipeCraftedTrigger()); + public static final FallAfterExplosionTrigger FALL_AFTER_EXPLOSION = register("fall_after_explosion", new FallAfterExplosionTrigger()); + + private static > T register(String name, T trigger) { + return Registry.register(BuiltInRegistries.TRIGGER_TYPES, name, trigger); + } + + public static CriterionTrigger bootstrap(Registry> registry) { + return IMPOSSIBLE; + } +} diff --git a/net/minecraft/advancements/Criterion.java b/net/minecraft/advancements/Criterion.java new file mode 100644 index 00000000..3d2bcaa1 --- /dev/null +++ b/net/minecraft/advancements/Criterion.java @@ -0,0 +1,16 @@ +package net.minecraft.advancements; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import net.minecraft.util.ExtraCodecs; + +public record Criterion(CriterionTrigger trigger, T triggerInstance) { + private static final MapCodec> MAP_CODEC = ExtraCodecs.dispatchOptionalValue( + "trigger", "conditions", CriteriaTriggers.CODEC, Criterion::trigger, Criterion::criterionCodec + ); + public static final Codec> CODEC = MAP_CODEC.codec(); + + private static Codec> criterionCodec(CriterionTrigger trigger) { + return trigger.codec().xmap(criterionTriggerInstance -> new Criterion<>(trigger, (T)criterionTriggerInstance), Criterion::triggerInstance); + } +} diff --git a/net/minecraft/advancements/CriterionProgress.java b/net/minecraft/advancements/CriterionProgress.java new file mode 100644 index 00000000..6d0b79b5 --- /dev/null +++ b/net/minecraft/advancements/CriterionProgress.java @@ -0,0 +1,48 @@ +package net.minecraft.advancements; + +import java.time.Instant; +import net.minecraft.network.FriendlyByteBuf; +import org.jetbrains.annotations.Nullable; + +public class CriterionProgress { + @Nullable + private Instant obtained; + + public CriterionProgress() { + } + + public CriterionProgress(Instant obtained) { + this.obtained = obtained; + } + + public boolean isDone() { + return this.obtained != null; + } + + public void grant() { + this.obtained = Instant.now(); + } + + public void revoke() { + this.obtained = null; + } + + @Nullable + public Instant getObtained() { + return this.obtained; + } + + public String toString() { + return "CriterionProgress{obtained=" + (this.obtained == null ? "false" : this.obtained) + "}"; + } + + public void serializeToNetwork(FriendlyByteBuf buffer) { + buffer.writeNullable(this.obtained, FriendlyByteBuf::writeInstant); + } + + public static CriterionProgress fromNetwork(FriendlyByteBuf buffer) { + CriterionProgress criterionProgress = new CriterionProgress(); + criterionProgress.obtained = buffer.readNullable(FriendlyByteBuf::readInstant); + return criterionProgress; + } +} diff --git a/net/minecraft/advancements/CriterionTrigger.java b/net/minecraft/advancements/CriterionTrigger.java new file mode 100644 index 00000000..b792a906 --- /dev/null +++ b/net/minecraft/advancements/CriterionTrigger.java @@ -0,0 +1,24 @@ +package net.minecraft.advancements; + +import com.mojang.serialization.Codec; +import net.minecraft.server.PlayerAdvancements; + +public interface CriterionTrigger { + void addPlayerListener(PlayerAdvancements playerAdvancements, CriterionTrigger.Listener listener); + + void removePlayerListener(PlayerAdvancements playerAdvancements, CriterionTrigger.Listener listener); + + void removePlayerListeners(PlayerAdvancements playerAdvancements); + + Codec codec(); + + default Criterion createCriterion(T triggerInstance) { + return new Criterion<>(this, triggerInstance); + } + + public record Listener(T trigger, AdvancementHolder advancement, String criterion) { + public void run(PlayerAdvancements playerAdvancements) { + playerAdvancements.award(this.advancement, this.criterion); + } + } +} diff --git a/net/minecraft/advancements/CriterionTriggerInstance.java b/net/minecraft/advancements/CriterionTriggerInstance.java new file mode 100644 index 00000000..191d96d2 --- /dev/null +++ b/net/minecraft/advancements/CriterionTriggerInstance.java @@ -0,0 +1,7 @@ +package net.minecraft.advancements; + +import net.minecraft.advancements.critereon.CriterionValidator; + +public interface CriterionTriggerInstance { + void validate(CriterionValidator validator); +} diff --git a/net/minecraft/advancements/DisplayInfo.java b/net/minecraft/advancements/DisplayInfo.java new file mode 100644 index 00000000..bcb67f3b --- /dev/null +++ b/net/minecraft/advancements/DisplayInfo.java @@ -0,0 +1,143 @@ +package net.minecraft.advancements; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; + +public class DisplayInfo { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + ItemStack.STRICT_CODEC.fieldOf("icon").forGetter(DisplayInfo::getIcon), + ComponentSerialization.CODEC.fieldOf("title").forGetter(DisplayInfo::getTitle), + ComponentSerialization.CODEC.fieldOf("description").forGetter(DisplayInfo::getDescription), + ResourceLocation.CODEC.optionalFieldOf("background").forGetter(DisplayInfo::getBackground), + AdvancementType.CODEC.optionalFieldOf("frame", AdvancementType.TASK).forGetter(DisplayInfo::getType), + Codec.BOOL.optionalFieldOf("show_toast", true).forGetter(DisplayInfo::shouldShowToast), + Codec.BOOL.optionalFieldOf("announce_to_chat", true).forGetter(DisplayInfo::shouldAnnounceChat), + Codec.BOOL.optionalFieldOf("hidden", false).forGetter(DisplayInfo::isHidden) + ) + .apply(instance, DisplayInfo::new) + ); + public static final StreamCodec STREAM_CODEC = StreamCodec.ofMember( + DisplayInfo::serializeToNetwork, DisplayInfo::fromNetwork + ); + private final Component title; + private final Component description; + private final ItemStack icon; + private final Optional background; + private final AdvancementType type; + private final boolean showToast; + private final boolean announceChat; + private final boolean hidden; + private float x; + private float y; + + public DisplayInfo( + ItemStack icon, + Component title, + Component description, + Optional background, + AdvancementType type, + boolean showToast, + boolean announceChat, + boolean hidden + ) { + this.title = title; + this.description = description; + this.icon = icon; + this.background = background; + this.type = type; + this.showToast = showToast; + this.announceChat = announceChat; + this.hidden = hidden; + } + + public void setLocation(float x, float y) { + this.x = x; + this.y = y; + } + + public Component getTitle() { + return this.title; + } + + public Component getDescription() { + return this.description; + } + + public ItemStack getIcon() { + return this.icon; + } + + public Optional getBackground() { + return this.background; + } + + public AdvancementType getType() { + return this.type; + } + + public float getX() { + return this.x; + } + + public float getY() { + return this.y; + } + + public boolean shouldShowToast() { + return this.showToast; + } + + public boolean shouldAnnounceChat() { + return this.announceChat; + } + + public boolean isHidden() { + return this.hidden; + } + + private void serializeToNetwork(RegistryFriendlyByteBuf buffer) { + ComponentSerialization.TRUSTED_STREAM_CODEC.encode(buffer, this.title); + ComponentSerialization.TRUSTED_STREAM_CODEC.encode(buffer, this.description); + ItemStack.STREAM_CODEC.encode(buffer, this.icon); + buffer.writeEnum(this.type); + int i = 0; + if (this.background.isPresent()) { + i |= 1; + } + + if (this.showToast) { + i |= 2; + } + + if (this.hidden) { + i |= 4; + } + + buffer.writeInt(i); + this.background.ifPresent(buffer::writeResourceLocation); + buffer.writeFloat(this.x); + buffer.writeFloat(this.y); + } + + private static DisplayInfo fromNetwork(RegistryFriendlyByteBuf buffer) { + Component component = ComponentSerialization.TRUSTED_STREAM_CODEC.decode(buffer); + Component component2 = ComponentSerialization.TRUSTED_STREAM_CODEC.decode(buffer); + ItemStack itemStack = ItemStack.STREAM_CODEC.decode(buffer); + AdvancementType advancementType = buffer.readEnum(AdvancementType.class); + int i = buffer.readInt(); + Optional optional = (i & 1) != 0 ? Optional.of(buffer.readResourceLocation()) : Optional.empty(); + boolean bl = (i & 2) != 0; + boolean bl2 = (i & 4) != 0; + DisplayInfo displayInfo = new DisplayInfo(itemStack, component, component2, optional, advancementType, bl, false, bl2); + displayInfo.setLocation(buffer.readFloat(), buffer.readFloat()); + return displayInfo; + } +} diff --git a/net/minecraft/advancements/TreeNodePosition.java b/net/minecraft/advancements/TreeNodePosition.java new file mode 100644 index 00000000..29231b4f --- /dev/null +++ b/net/minecraft/advancements/TreeNodePosition.java @@ -0,0 +1,222 @@ +package net.minecraft.advancements; + +import com.google.common.collect.Lists; +import java.util.List; +import org.jetbrains.annotations.Nullable; + +public class TreeNodePosition { + private final AdvancementNode node; + @Nullable + private final TreeNodePosition parent; + @Nullable + private final TreeNodePosition previousSibling; + private final int childIndex; + private final List children = Lists.newArrayList(); + private TreeNodePosition ancestor; + @Nullable + private TreeNodePosition thread; + private int x; + private float y; + private float mod; + private float change; + private float shift; + + public TreeNodePosition(AdvancementNode node, @Nullable TreeNodePosition parent, @Nullable TreeNodePosition previousSibling, int childIndex, int x) { + if (node.advancement().display().isEmpty()) { + throw new IllegalArgumentException("Can't position an invisible advancement!"); + } else { + this.node = node; + this.parent = parent; + this.previousSibling = previousSibling; + this.childIndex = childIndex; + this.ancestor = this; + this.x = x; + this.y = -1.0F; + TreeNodePosition treeNodePosition = null; + + for (AdvancementNode advancementNode : node.children()) { + treeNodePosition = this.addChild(advancementNode, treeNodePosition); + } + } + } + + @Nullable + private TreeNodePosition addChild(AdvancementNode child, @Nullable TreeNodePosition previousSibling) { + if (child.advancement().display().isPresent()) { + previousSibling = new TreeNodePosition(child, this, previousSibling, this.children.size() + 1, this.x + 1); + this.children.add(previousSibling); + } else { + for (AdvancementNode advancementNode : child.children()) { + previousSibling = this.addChild(advancementNode, previousSibling); + } + } + + return previousSibling; + } + + private void firstWalk() { + if (this.children.isEmpty()) { + if (this.previousSibling != null) { + this.y = this.previousSibling.y + 1.0F; + } else { + this.y = 0.0F; + } + } else { + TreeNodePosition treeNodePosition = null; + + for (TreeNodePosition treeNodePosition2 : this.children) { + treeNodePosition2.firstWalk(); + treeNodePosition = treeNodePosition2.apportion(treeNodePosition == null ? treeNodePosition2 : treeNodePosition); + } + + this.executeShifts(); + float f = (((TreeNodePosition)this.children.get(0)).y + ((TreeNodePosition)this.children.get(this.children.size() - 1)).y) / 2.0F; + if (this.previousSibling != null) { + this.y = this.previousSibling.y + 1.0F; + this.mod = this.y - f; + } else { + this.y = f; + } + } + } + + private float secondWalk(float offsetY, int columnX, float subtreeTopY) { + this.y += offsetY; + this.x = columnX; + if (this.y < subtreeTopY) { + subtreeTopY = this.y; + } + + for (TreeNodePosition treeNodePosition : this.children) { + subtreeTopY = treeNodePosition.secondWalk(offsetY + this.mod, columnX + 1, subtreeTopY); + } + + return subtreeTopY; + } + + private void thirdWalk(float y) { + this.y += y; + + for (TreeNodePosition treeNodePosition : this.children) { + treeNodePosition.thirdWalk(y); + } + } + + private void executeShifts() { + float f = 0.0F; + float g = 0.0F; + + for (int i = this.children.size() - 1; i >= 0; i--) { + TreeNodePosition treeNodePosition = (TreeNodePosition)this.children.get(i); + treeNodePosition.y += f; + treeNodePosition.mod += f; + g += treeNodePosition.change; + f += treeNodePosition.shift + g; + } + } + + @Nullable + private TreeNodePosition previousOrThread() { + if (this.thread != null) { + return this.thread; + } else { + return !this.children.isEmpty() ? (TreeNodePosition)this.children.get(0) : null; + } + } + + @Nullable + private TreeNodePosition nextOrThread() { + if (this.thread != null) { + return this.thread; + } else { + return !this.children.isEmpty() ? (TreeNodePosition)this.children.get(this.children.size() - 1) : null; + } + } + + private TreeNodePosition apportion(TreeNodePosition node) { + if (this.previousSibling == null) { + return node; + } else { + TreeNodePosition treeNodePosition = this; + TreeNodePosition treeNodePosition2 = this; + TreeNodePosition treeNodePosition3 = this.previousSibling; + TreeNodePosition treeNodePosition4 = (TreeNodePosition)this.parent.children.get(0); + float f = this.mod; + float g = this.mod; + float h = treeNodePosition3.mod; + + float i; + for (i = treeNodePosition4.mod; treeNodePosition3.nextOrThread() != null && treeNodePosition.previousOrThread() != null; g += treeNodePosition2.mod) { + treeNodePosition3 = treeNodePosition3.nextOrThread(); + treeNodePosition = treeNodePosition.previousOrThread(); + treeNodePosition4 = treeNodePosition4.previousOrThread(); + treeNodePosition2 = treeNodePosition2.nextOrThread(); + treeNodePosition2.ancestor = this; + float j = treeNodePosition3.y + h - (treeNodePosition.y + f) + 1.0F; + if (j > 0.0F) { + treeNodePosition3.getAncestor(this, node).moveSubtree(this, j); + f += j; + g += j; + } + + h += treeNodePosition3.mod; + f += treeNodePosition.mod; + i += treeNodePosition4.mod; + } + + if (treeNodePosition3.nextOrThread() != null && treeNodePosition2.nextOrThread() == null) { + treeNodePosition2.thread = treeNodePosition3.nextOrThread(); + treeNodePosition2.mod += h - g; + } else { + if (treeNodePosition.previousOrThread() != null && treeNodePosition4.previousOrThread() == null) { + treeNodePosition4.thread = treeNodePosition.previousOrThread(); + treeNodePosition4.mod += f - i; + } + + node = this; + } + + return node; + } + } + + private void moveSubtree(TreeNodePosition node, float shift) { + float f = node.childIndex - this.childIndex; + if (f != 0.0F) { + node.change -= shift / f; + this.change += shift / f; + } + + node.shift += shift; + node.y += shift; + node.mod += shift; + } + + private TreeNodePosition getAncestor(TreeNodePosition self, TreeNodePosition other) { + return this.ancestor != null && self.parent.children.contains(this.ancestor) ? this.ancestor : other; + } + + private void finalizePosition() { + this.node.advancement().display().ifPresent(displayInfo -> displayInfo.setLocation(this.x, this.y)); + if (!this.children.isEmpty()) { + for (TreeNodePosition treeNodePosition : this.children) { + treeNodePosition.finalizePosition(); + } + } + } + + public static void run(AdvancementNode rootNode) { + if (rootNode.advancement().display().isEmpty()) { + throw new IllegalArgumentException("Can't position children of an invisible root!"); + } else { + TreeNodePosition treeNodePosition = new TreeNodePosition(rootNode, null, null, 1, 0); + treeNodePosition.firstWalk(); + float f = treeNodePosition.secondWalk(0.0F, 0, treeNodePosition.y); + if (f < 0.0F) { + treeNodePosition.thirdWalk(-f); + } + + treeNodePosition.finalizePosition(); + } + } +} diff --git a/net/minecraft/advancements/critereon/AnyBlockInteractionTrigger.java b/net/minecraft/advancements/critereon/AnyBlockInteractionTrigger.java new file mode 100644 index 00000000..9b0606f4 --- /dev/null +++ b/net/minecraft/advancements/critereon/AnyBlockInteractionTrigger.java @@ -0,0 +1,55 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; + +public class AnyBlockInteractionTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return AnyBlockInteractionTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, BlockPos pos, ItemStack stack) { + ServerLevel serverLevel = player.serverLevel(); + BlockState blockState = serverLevel.getBlockState(pos); + LootParams lootParams = new LootParams.Builder(serverLevel) + .withParameter(LootContextParams.ORIGIN, pos.getCenter()) + .withParameter(LootContextParams.THIS_ENTITY, player) + .withParameter(LootContextParams.BLOCK_STATE, blockState) + .withParameter(LootContextParams.TOOL, stack) + .create(LootContextParamSets.ADVANCEMENT_LOCATION); + LootContext lootContext = new LootContext.Builder(lootParams).create(Optional.empty()); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext)); + } + + public record TriggerInstance(Optional player, Optional location) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(AnyBlockInteractionTrigger.TriggerInstance::player), + ContextAwarePredicate.CODEC.optionalFieldOf("location").forGetter(AnyBlockInteractionTrigger.TriggerInstance::location) + ) + .apply(instance, AnyBlockInteractionTrigger.TriggerInstance::new) + ); + + public boolean matches(LootContext context) { + return this.location.isEmpty() || ((ContextAwarePredicate)this.location.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + this.location.ifPresent(contextAwarePredicate -> validator.validate(contextAwarePredicate, LootContextParamSets.ADVANCEMENT_LOCATION, ".location")); + } + } +} diff --git a/net/minecraft/advancements/critereon/BeeNestDestroyedTrigger.java b/net/minecraft/advancements/critereon/BeeNestDestroyedTrigger.java new file mode 100644 index 00000000..5ba3fe66 --- /dev/null +++ b/net/minecraft/advancements/critereon/BeeNestDestroyedTrigger.java @@ -0,0 +1,53 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class BeeNestDestroyedTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return BeeNestDestroyedTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, BlockState state, ItemStack stack, int numBees) { + this.trigger(player, triggerInstance -> triggerInstance.matches(state, stack, numBees)); + } + + public record TriggerInstance( + Optional player, Optional> block, Optional item, MinMaxBounds.Ints beesInside + ) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(BeeNestDestroyedTrigger.TriggerInstance::player), + BuiltInRegistries.BLOCK.holderByNameCodec().optionalFieldOf("block").forGetter(BeeNestDestroyedTrigger.TriggerInstance::block), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(BeeNestDestroyedTrigger.TriggerInstance::item), + MinMaxBounds.Ints.CODEC.optionalFieldOf("num_bees_inside", MinMaxBounds.Ints.ANY).forGetter(BeeNestDestroyedTrigger.TriggerInstance::beesInside) + ) + .apply(instance, BeeNestDestroyedTrigger.TriggerInstance::new) + ); + + public static Criterion destroyedBeeNest(Block block, ItemPredicate.Builder item, MinMaxBounds.Ints numBees) { + return CriteriaTriggers.BEE_NEST_DESTROYED + .createCriterion( + new BeeNestDestroyedTrigger.TriggerInstance(Optional.empty(), Optional.of(block.builtInRegistryHolder()), Optional.of(item.build()), numBees) + ); + } + + public boolean matches(BlockState state, ItemStack stack, int numBees) { + if (this.block.isPresent() && !state.is((Holder)this.block.get())) { + return false; + } else { + return this.item.isPresent() && !((ItemPredicate)this.item.get()).test(stack) ? false : this.beesInside.matches(numBees); + } + } + } +} diff --git a/net/minecraft/advancements/critereon/BlockPredicate.java b/net/minecraft/advancements/critereon/BlockPredicate.java new file mode 100644 index 00000000..603be9bf --- /dev/null +++ b/net/minecraft/advancements/critereon/BlockPredicate.java @@ -0,0 +1,115 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Collection; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.TagKey; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.pattern.BlockInWorld; +import org.jetbrains.annotations.Nullable; + +public record BlockPredicate(Optional> blocks, Optional properties, Optional nbt) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + RegistryCodecs.homogeneousList(Registries.BLOCK).optionalFieldOf("blocks").forGetter(BlockPredicate::blocks), + StatePropertiesPredicate.CODEC.optionalFieldOf("state").forGetter(BlockPredicate::properties), + NbtPredicate.CODEC.optionalFieldOf("nbt").forGetter(BlockPredicate::nbt) + ) + .apply(instance, BlockPredicate::new) + ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.optional(ByteBufCodecs.holderSet(Registries.BLOCK)), + BlockPredicate::blocks, + ByteBufCodecs.optional(StatePropertiesPredicate.STREAM_CODEC), + BlockPredicate::properties, + ByteBufCodecs.optional(NbtPredicate.STREAM_CODEC), + BlockPredicate::nbt, + BlockPredicate::new + ); + + public boolean matches(ServerLevel level, BlockPos pos) { + if (!level.isLoaded(pos)) { + return false; + } else { + return !this.matchesState(level.getBlockState(pos)) + ? false + : !this.nbt.isPresent() || matchesBlockEntity(level, level.getBlockEntity(pos), (NbtPredicate)this.nbt.get()); + } + } + + public boolean matches(BlockInWorld block) { + return !this.matchesState(block.getState()) + ? false + : !this.nbt.isPresent() || matchesBlockEntity(block.getLevel(), block.getEntity(), (NbtPredicate)this.nbt.get()); + } + + private boolean matchesState(BlockState state) { + return this.blocks.isPresent() && !state.is((HolderSet)this.blocks.get()) + ? false + : !this.properties.isPresent() || ((StatePropertiesPredicate)this.properties.get()).matches(state); + } + + private static boolean matchesBlockEntity(LevelReader level, @Nullable BlockEntity blockEntity, NbtPredicate nbtPredicate) { + return blockEntity != null && nbtPredicate.matches(blockEntity.saveWithFullMetadata(level.registryAccess())); + } + + public boolean requiresNbt() { + return this.nbt.isPresent(); + } + + public static class Builder { + private Optional> blocks = Optional.empty(); + private Optional properties = Optional.empty(); + private Optional nbt = Optional.empty(); + + private Builder() { + } + + public static BlockPredicate.Builder block() { + return new BlockPredicate.Builder(); + } + + public BlockPredicate.Builder of(Block... blocks) { + this.blocks = Optional.of(HolderSet.direct(Block::builtInRegistryHolder, blocks)); + return this; + } + + public BlockPredicate.Builder of(Collection blocks) { + this.blocks = Optional.of(HolderSet.direct(Block::builtInRegistryHolder, blocks)); + return this; + } + + public BlockPredicate.Builder of(TagKey tag) { + this.blocks = Optional.of(BuiltInRegistries.BLOCK.getOrCreateTag(tag)); + return this; + } + + public BlockPredicate.Builder hasNbt(CompoundTag nbt) { + this.nbt = Optional.of(new NbtPredicate(nbt)); + return this; + } + + public BlockPredicate.Builder setProperties(StatePropertiesPredicate.Builder properties) { + this.properties = properties.build(); + return this; + } + + public BlockPredicate build() { + return new BlockPredicate(this.blocks, this.properties, this.nbt); + } + } +} diff --git a/net/minecraft/advancements/critereon/BredAnimalsTrigger.java b/net/minecraft/advancements/critereon/BredAnimalsTrigger.java new file mode 100644 index 00000000..d22b1d08 --- /dev/null +++ b/net/minecraft/advancements/critereon/BredAnimalsTrigger.java @@ -0,0 +1,81 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.AgeableMob; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.level.storage.loot.LootContext; +import org.jetbrains.annotations.Nullable; + +public class BredAnimalsTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return BredAnimalsTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Animal parent, Animal partner, @Nullable AgeableMob child) { + LootContext lootContext = EntityPredicate.createContext(player, parent); + LootContext lootContext2 = EntityPredicate.createContext(player, partner); + LootContext lootContext3 = child != null ? EntityPredicate.createContext(player, child) : null; + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext, lootContext2, lootContext3)); + } + + public record TriggerInstance( + Optional player, + Optional parent, + Optional partner, + Optional child + ) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(BredAnimalsTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("parent").forGetter(BredAnimalsTrigger.TriggerInstance::parent), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("partner").forGetter(BredAnimalsTrigger.TriggerInstance::partner), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("child").forGetter(BredAnimalsTrigger.TriggerInstance::child) + ) + .apply(instance, BredAnimalsTrigger.TriggerInstance::new) + ); + + public static Criterion bredAnimals() { + return CriteriaTriggers.BRED_ANIMALS + .createCriterion(new BredAnimalsTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty())); + } + + public static Criterion bredAnimals(EntityPredicate.Builder child) { + return CriteriaTriggers.BRED_ANIMALS + .createCriterion(new BredAnimalsTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty(), Optional.of(EntityPredicate.wrap(child)))); + } + + public static Criterion bredAnimals( + Optional parent, Optional partner, Optional child + ) { + return CriteriaTriggers.BRED_ANIMALS + .createCriterion( + new BredAnimalsTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(parent), EntityPredicate.wrap(partner), EntityPredicate.wrap(child)) + ); + } + + public boolean matches(LootContext parentContext, LootContext partnerContext, @Nullable LootContext childContext) { + return !this.child.isPresent() || childContext != null && ((ContextAwarePredicate)this.child.get()).matches(childContext) + ? matches(this.parent, parentContext) && matches(this.partner, partnerContext) + || matches(this.parent, partnerContext) && matches(this.partner, parentContext) + : false; + } + + private static boolean matches(Optional predicate, LootContext context) { + return predicate.isEmpty() || ((ContextAwarePredicate)predicate.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.parent, ".parent"); + validator.validateEntity(this.partner, ".partner"); + validator.validateEntity(this.child, ".child"); + } + } +} diff --git a/net/minecraft/advancements/critereon/BrewedPotionTrigger.java b/net/minecraft/advancements/critereon/BrewedPotionTrigger.java new file mode 100644 index 00000000..dcfb56c9 --- /dev/null +++ b/net/minecraft/advancements/critereon/BrewedPotionTrigger.java @@ -0,0 +1,39 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.Holder; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.alchemy.Potion; + +public class BrewedPotionTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return BrewedPotionTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Holder potion) { + this.trigger(player, triggerInstance -> triggerInstance.matches(potion)); + } + + public record TriggerInstance(Optional player, Optional> potion) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(BrewedPotionTrigger.TriggerInstance::player), + Potion.CODEC.optionalFieldOf("potion").forGetter(BrewedPotionTrigger.TriggerInstance::potion) + ) + .apply(instance, BrewedPotionTrigger.TriggerInstance::new) + ); + + public static Criterion brewedPotion() { + return CriteriaTriggers.BREWED_POTION.createCriterion(new BrewedPotionTrigger.TriggerInstance(Optional.empty(), Optional.empty())); + } + + public boolean matches(Holder potion) { + return !this.potion.isPresent() || ((Holder)this.potion.get()).equals(potion); + } + } +} diff --git a/net/minecraft/advancements/critereon/ChangeDimensionTrigger.java b/net/minecraft/advancements/critereon/ChangeDimensionTrigger.java new file mode 100644 index 00000000..4fd1d302 --- /dev/null +++ b/net/minecraft/advancements/critereon/ChangeDimensionTrigger.java @@ -0,0 +1,54 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; + +public class ChangeDimensionTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return ChangeDimensionTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ResourceKey fromLevel, ResourceKey toLevel) { + this.trigger(player, triggerInstance -> triggerInstance.matches(fromLevel, toLevel)); + } + + public record TriggerInstance(Optional player, Optional> from, Optional> to) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(ChangeDimensionTrigger.TriggerInstance::player), + ResourceKey.codec(Registries.DIMENSION).optionalFieldOf("from").forGetter(ChangeDimensionTrigger.TriggerInstance::from), + ResourceKey.codec(Registries.DIMENSION).optionalFieldOf("to").forGetter(ChangeDimensionTrigger.TriggerInstance::to) + ) + .apply(instance, ChangeDimensionTrigger.TriggerInstance::new) + ); + + public static Criterion changedDimension() { + return CriteriaTriggers.CHANGED_DIMENSION.createCriterion(new ChangeDimensionTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty())); + } + + public static Criterion changedDimension(ResourceKey from, ResourceKey to) { + return CriteriaTriggers.CHANGED_DIMENSION.createCriterion(new ChangeDimensionTrigger.TriggerInstance(Optional.empty(), Optional.of(from), Optional.of(to))); + } + + public static Criterion changedDimensionTo(ResourceKey to) { + return CriteriaTriggers.CHANGED_DIMENSION.createCriterion(new ChangeDimensionTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.of(to))); + } + + public static Criterion changedDimensionFrom(ResourceKey from) { + return CriteriaTriggers.CHANGED_DIMENSION.createCriterion(new ChangeDimensionTrigger.TriggerInstance(Optional.empty(), Optional.of(from), Optional.empty())); + } + + public boolean matches(ResourceKey fromLevel, ResourceKey toLevel) { + return this.from.isPresent() && this.from.get() != fromLevel ? false : !this.to.isPresent() || this.to.get() == toLevel; + } + } +} diff --git a/net/minecraft/advancements/critereon/ChanneledLightningTrigger.java b/net/minecraft/advancements/critereon/ChanneledLightningTrigger.java new file mode 100644 index 00000000..6cdf17c3 --- /dev/null +++ b/net/minecraft/advancements/critereon/ChanneledLightningTrigger.java @@ -0,0 +1,66 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.storage.loot.LootContext; + +public class ChanneledLightningTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return ChanneledLightningTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Collection entityTriggered) { + List list = (List)entityTriggered.stream() + .map(entity -> EntityPredicate.createContext(player, entity)) + .collect(Collectors.toList()); + this.trigger(player, triggerInstance -> triggerInstance.matches(list)); + } + + public record TriggerInstance(Optional player, List victims) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(ChanneledLightningTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.listOf().optionalFieldOf("victims", List.of()).forGetter(ChanneledLightningTrigger.TriggerInstance::victims) + ) + .apply(instance, ChanneledLightningTrigger.TriggerInstance::new) + ); + + public static Criterion channeledLightning(EntityPredicate.Builder... victims) { + return CriteriaTriggers.CHANNELED_LIGHTNING.createCriterion(new ChanneledLightningTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(victims))); + } + + public boolean matches(Collection victims) { + for (ContextAwarePredicate contextAwarePredicate : this.victims) { + boolean bl = false; + + for (LootContext lootContext : victims) { + if (contextAwarePredicate.matches(lootContext)) { + bl = true; + break; + } + } + + if (!bl) { + return false; + } + } + + return true; + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntities(this.victims, ".victims"); + } + } +} diff --git a/net/minecraft/advancements/critereon/CollectionContentsPredicate.java b/net/minecraft/advancements/critereon/CollectionContentsPredicate.java new file mode 100644 index 00000000..e7c90761 --- /dev/null +++ b/net/minecraft/advancements/critereon/CollectionContentsPredicate.java @@ -0,0 +1,75 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; + +public interface CollectionContentsPredicate> extends Predicate> { + List

unpack(); + + static > Codec> codec(Codec

testCodec) { + return testCodec.listOf().xmap(CollectionContentsPredicate::of, CollectionContentsPredicate::unpack); + } + + @SafeVarargs + static > CollectionContentsPredicate of(P... tests) { + return of(List.of(tests)); + } + + static > CollectionContentsPredicate of(List

tests) { + return (CollectionContentsPredicate)(switch (tests.size()) { + case 0 -> new CollectionContentsPredicate.Zero(); + case 1 -> new CollectionContentsPredicate.Single((P)tests.getFirst()); + default -> new CollectionContentsPredicate.Multiple(tests); + }); + } + + public record Multiple>(List

tests) implements CollectionContentsPredicate { + public boolean test(Iterable contents) { + List> list = new ArrayList(this.tests); + + for (T object : contents) { + list.removeIf(predicate -> predicate.test(object)); + if (list.isEmpty()) { + return true; + } + } + + return false; + } + + @Override + public List

unpack() { + return this.tests; + } + } + + public record Single>(P test) implements CollectionContentsPredicate { + public boolean test(Iterable contents) { + for (T object : contents) { + if (this.test.test(object)) { + return true; + } + } + + return false; + } + + @Override + public List

unpack() { + return List.of(this.test); + } + } + + public static class Zero> implements CollectionContentsPredicate { + public boolean test(Iterable contents) { + return true; + } + + @Override + public List

unpack() { + return List.of(); + } + } +} diff --git a/net/minecraft/advancements/critereon/CollectionCountsPredicate.java b/net/minecraft/advancements/critereon/CollectionCountsPredicate.java new file mode 100644 index 00000000..68ad3050 --- /dev/null +++ b/net/minecraft/advancements/critereon/CollectionCountsPredicate.java @@ -0,0 +1,90 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.List; +import java.util.function.Predicate; + +public interface CollectionCountsPredicate> extends Predicate> { + List> unpack(); + + static > Codec> codec(Codec

testCodec) { + return CollectionCountsPredicate.Entry.codec(testCodec).listOf().xmap(CollectionCountsPredicate::of, CollectionCountsPredicate::unpack); + } + + @SafeVarargs + static > CollectionCountsPredicate of(CollectionCountsPredicate.Entry... entries) { + return of(List.of(entries)); + } + + static > CollectionCountsPredicate of(List> entries) { + return (CollectionCountsPredicate)(switch (entries.size()) { + case 0 -> new CollectionCountsPredicate.Zero(); + case 1 -> new CollectionCountsPredicate.Single((CollectionCountsPredicate.Entry)entries.getFirst()); + default -> new CollectionCountsPredicate.Multiple(entries); + }); + } + + public record Entry>(P test, MinMaxBounds.Ints count) { + public static > Codec> codec(Codec

testCodec) { + return RecordCodecBuilder.create( + instance -> instance.group( + testCodec.fieldOf("test").forGetter(CollectionCountsPredicate.Entry::test), + MinMaxBounds.Ints.CODEC.fieldOf("count").forGetter(CollectionCountsPredicate.Entry::count) + ) + .apply(instance, CollectionCountsPredicate.Entry::new) + ); + } + + public boolean test(Iterable collection) { + int i = 0; + + for (T object : collection) { + if (this.test.test(object)) { + i++; + } + } + + return this.count.matches(i); + } + } + + public record Multiple>(List> entries) implements CollectionCountsPredicate { + public boolean test(Iterable collection) { + for (CollectionCountsPredicate.Entry entry : this.entries) { + if (!entry.test(collection)) { + return false; + } + } + + return true; + } + + @Override + public List> unpack() { + return this.entries; + } + } + + public record Single>(CollectionCountsPredicate.Entry entry) implements CollectionCountsPredicate { + public boolean test(Iterable collection) { + return this.entry.test(collection); + } + + @Override + public List> unpack() { + return List.of(this.entry); + } + } + + public static class Zero> implements CollectionCountsPredicate { + public boolean test(Iterable collection) { + return true; + } + + @Override + public List> unpack() { + return List.of(); + } + } +} diff --git a/net/minecraft/advancements/critereon/CollectionPredicate.java b/net/minecraft/advancements/critereon/CollectionPredicate.java new file mode 100644 index 00000000..89886a19 --- /dev/null +++ b/net/minecraft/advancements/critereon/CollectionPredicate.java @@ -0,0 +1,32 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.collect.Iterables; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import java.util.function.Predicate; + +public record CollectionPredicate>( + Optional> contains, Optional> counts, Optional size +) implements Predicate> { + public static > Codec> codec(Codec

testCodec) { + return RecordCodecBuilder.create( + instance -> instance.group( + CollectionContentsPredicate.codec(testCodec).optionalFieldOf("contains").forGetter(CollectionPredicate::contains), + CollectionCountsPredicate.codec(testCodec).optionalFieldOf("count").forGetter(CollectionPredicate::counts), + MinMaxBounds.Ints.CODEC.optionalFieldOf("size").forGetter(CollectionPredicate::size) + ) + .apply(instance, CollectionPredicate::new) + ); + } + + public boolean test(Iterable collection) { + if (this.contains.isPresent() && !((CollectionContentsPredicate)this.contains.get()).test(collection)) { + return false; + } else { + return this.counts.isPresent() && !((CollectionCountsPredicate)this.counts.get()).test(collection) + ? false + : !this.size.isPresent() || ((MinMaxBounds.Ints)this.size.get()).matches(Iterables.size(collection)); + } + } +} diff --git a/net/minecraft/advancements/critereon/ConstructBeaconTrigger.java b/net/minecraft/advancements/critereon/ConstructBeaconTrigger.java new file mode 100644 index 00000000..da1d5f57 --- /dev/null +++ b/net/minecraft/advancements/critereon/ConstructBeaconTrigger.java @@ -0,0 +1,41 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; + +public class ConstructBeaconTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return ConstructBeaconTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, int level) { + this.trigger(player, triggerInstance -> triggerInstance.matches(level)); + } + + public record TriggerInstance(Optional player, MinMaxBounds.Ints level) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(ConstructBeaconTrigger.TriggerInstance::player), + MinMaxBounds.Ints.CODEC.optionalFieldOf("level", MinMaxBounds.Ints.ANY).forGetter(ConstructBeaconTrigger.TriggerInstance::level) + ) + .apply(instance, ConstructBeaconTrigger.TriggerInstance::new) + ); + + public static Criterion constructedBeacon() { + return CriteriaTriggers.CONSTRUCT_BEACON.createCriterion(new ConstructBeaconTrigger.TriggerInstance(Optional.empty(), MinMaxBounds.Ints.ANY)); + } + + public static Criterion constructedBeacon(MinMaxBounds.Ints level) { + return CriteriaTriggers.CONSTRUCT_BEACON.createCriterion(new ConstructBeaconTrigger.TriggerInstance(Optional.empty(), level)); + } + + public boolean matches(int level) { + return this.level.matches(level); + } + } +} diff --git a/net/minecraft/advancements/critereon/ConsumeItemTrigger.java b/net/minecraft/advancements/critereon/ConsumeItemTrigger.java new file mode 100644 index 00000000..7e7c537f --- /dev/null +++ b/net/minecraft/advancements/critereon/ConsumeItemTrigger.java @@ -0,0 +1,47 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; + +public class ConsumeItemTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return ConsumeItemTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack item) { + this.trigger(player, triggerInstance -> triggerInstance.matches(item)); + } + + public record TriggerInstance(Optional player, Optional item) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(ConsumeItemTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(ConsumeItemTrigger.TriggerInstance::item) + ) + .apply(instance, ConsumeItemTrigger.TriggerInstance::new) + ); + + public static Criterion usedItem() { + return CriteriaTriggers.CONSUME_ITEM.createCriterion(new ConsumeItemTrigger.TriggerInstance(Optional.empty(), Optional.empty())); + } + + public static Criterion usedItem(ItemLike item) { + return usedItem(ItemPredicate.Builder.item().of(item.asItem())); + } + + public static Criterion usedItem(ItemPredicate.Builder item) { + return CriteriaTriggers.CONSUME_ITEM.createCriterion(new ConsumeItemTrigger.TriggerInstance(Optional.empty(), Optional.of(item.build()))); + } + + public boolean matches(ItemStack item) { + return this.item.isEmpty() || ((ItemPredicate)this.item.get()).test(item); + } + } +} diff --git a/net/minecraft/advancements/critereon/ContextAwarePredicate.java b/net/minecraft/advancements/critereon/ContextAwarePredicate.java new file mode 100644 index 00000000..91fc4de6 --- /dev/null +++ b/net/minecraft/advancements/critereon/ContextAwarePredicate.java @@ -0,0 +1,37 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import java.util.List; +import java.util.function.Predicate; +import net.minecraft.Util; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.ValidationContext; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; + +public class ContextAwarePredicate { + public static final Codec CODEC = LootItemCondition.DIRECT_CODEC + .listOf() + .xmap(ContextAwarePredicate::new, contextAwarePredicate -> contextAwarePredicate.conditions); + private final List conditions; + private final Predicate compositePredicates; + + ContextAwarePredicate(List conditions) { + this.conditions = conditions; + this.compositePredicates = Util.allOf(conditions); + } + + public static ContextAwarePredicate create(LootItemCondition... conditions) { + return new ContextAwarePredicate(List.of(conditions)); + } + + public boolean matches(LootContext context) { + return this.compositePredicates.test(context); + } + + public void validate(ValidationContext validationContext) { + for (int i = 0; i < this.conditions.size(); i++) { + LootItemCondition lootItemCondition = (LootItemCondition)this.conditions.get(i); + lootItemCondition.validate(validationContext.forChild("[" + i + "]")); + } + } +} diff --git a/net/minecraft/advancements/critereon/CriterionValidator.java b/net/minecraft/advancements/critereon/CriterionValidator.java new file mode 100644 index 00000000..113dd019 --- /dev/null +++ b/net/minecraft/advancements/critereon/CriterionValidator.java @@ -0,0 +1,42 @@ +package net.minecraft.advancements.critereon; + +import java.util.List; +import java.util.Optional; +import net.minecraft.core.HolderGetter; +import net.minecraft.util.ProblemReporter; +import net.minecraft.world.level.storage.loot.ValidationContext; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; + +public class CriterionValidator { + private final ProblemReporter reporter; + private final HolderGetter.Provider lootData; + + public CriterionValidator(ProblemReporter reporter, HolderGetter.Provider lootData) { + this.reporter = reporter; + this.lootData = lootData; + } + + public void validateEntity(Optional entity, String name) { + entity.ifPresent(contextAwarePredicate -> this.validateEntity(contextAwarePredicate, name)); + } + + public void validateEntities(List entities, String name) { + this.validate(entities, LootContextParamSets.ADVANCEMENT_ENTITY, name); + } + + public void validateEntity(ContextAwarePredicate entity, String name) { + this.validate(entity, LootContextParamSets.ADVANCEMENT_ENTITY, name); + } + + public void validate(ContextAwarePredicate entity, LootContextParamSet contextParams, String name) { + entity.validate(new ValidationContext(this.reporter.forChild(name), contextParams, this.lootData)); + } + + public void validate(List entities, LootContextParamSet contextParams, String name) { + for (int i = 0; i < entities.size(); i++) { + ContextAwarePredicate contextAwarePredicate = (ContextAwarePredicate)entities.get(i); + contextAwarePredicate.validate(new ValidationContext(this.reporter.forChild(name + "[" + i + "]"), contextParams, this.lootData)); + } + } +} diff --git a/net/minecraft/advancements/critereon/CuredZombieVillagerTrigger.java b/net/minecraft/advancements/critereon/CuredZombieVillagerTrigger.java new file mode 100644 index 00000000..6a0fdb89 --- /dev/null +++ b/net/minecraft/advancements/critereon/CuredZombieVillagerTrigger.java @@ -0,0 +1,54 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.monster.Zombie; +import net.minecraft.world.entity.npc.Villager; +import net.minecraft.world.level.storage.loot.LootContext; + +public class CuredZombieVillagerTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return CuredZombieVillagerTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Zombie zombie, Villager villager) { + LootContext lootContext = EntityPredicate.createContext(player, zombie); + LootContext lootContext2 = EntityPredicate.createContext(player, villager); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext, lootContext2)); + } + + public record TriggerInstance(Optional player, Optional zombie, Optional villager) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(CuredZombieVillagerTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("zombie").forGetter(CuredZombieVillagerTrigger.TriggerInstance::zombie), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("villager").forGetter(CuredZombieVillagerTrigger.TriggerInstance::villager) + ) + .apply(instance, CuredZombieVillagerTrigger.TriggerInstance::new) + ); + + public static Criterion curedZombieVillager() { + return CriteriaTriggers.CURED_ZOMBIE_VILLAGER + .createCriterion(new CuredZombieVillagerTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty())); + } + + public boolean matches(LootContext zombie, LootContext villager) { + return this.zombie.isPresent() && !((ContextAwarePredicate)this.zombie.get()).matches(zombie) + ? false + : !this.villager.isPresent() || ((ContextAwarePredicate)this.villager.get()).matches(villager); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.zombie, ".zombie"); + validator.validateEntity(this.villager, ".villager"); + } + } +} diff --git a/net/minecraft/advancements/critereon/DamagePredicate.java b/net/minecraft/advancements/critereon/DamagePredicate.java new file mode 100644 index 00000000..6be06f67 --- /dev/null +++ b/net/minecraft/advancements/critereon/DamagePredicate.java @@ -0,0 +1,86 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.damagesource.DamageSource; + +public record DamagePredicate( + MinMaxBounds.Doubles dealtDamage, + MinMaxBounds.Doubles takenDamage, + Optional sourceEntity, + Optional blocked, + Optional type +) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + MinMaxBounds.Doubles.CODEC.optionalFieldOf("dealt", MinMaxBounds.Doubles.ANY).forGetter(DamagePredicate::dealtDamage), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("taken", MinMaxBounds.Doubles.ANY).forGetter(DamagePredicate::takenDamage), + EntityPredicate.CODEC.optionalFieldOf("source_entity").forGetter(DamagePredicate::sourceEntity), + Codec.BOOL.optionalFieldOf("blocked").forGetter(DamagePredicate::blocked), + DamageSourcePredicate.CODEC.optionalFieldOf("type").forGetter(DamagePredicate::type) + ) + .apply(instance, DamagePredicate::new) + ); + + public boolean matches(ServerPlayer player, DamageSource source, float dealtDamage, float takenDamage, boolean blocked) { + if (!this.dealtDamage.matches(dealtDamage)) { + return false; + } else if (!this.takenDamage.matches(takenDamage)) { + return false; + } else if (this.sourceEntity.isPresent() && !((EntityPredicate)this.sourceEntity.get()).matches(player, source.getEntity())) { + return false; + } else { + return this.blocked.isPresent() && this.blocked.get() != blocked + ? false + : !this.type.isPresent() || ((DamageSourcePredicate)this.type.get()).matches(player, source); + } + } + + public static class Builder { + private MinMaxBounds.Doubles dealtDamage = MinMaxBounds.Doubles.ANY; + private MinMaxBounds.Doubles takenDamage = MinMaxBounds.Doubles.ANY; + private Optional sourceEntity = Optional.empty(); + private Optional blocked = Optional.empty(); + private Optional type = Optional.empty(); + + public static DamagePredicate.Builder damageInstance() { + return new DamagePredicate.Builder(); + } + + public DamagePredicate.Builder dealtDamage(MinMaxBounds.Doubles dealtDamage) { + this.dealtDamage = dealtDamage; + return this; + } + + public DamagePredicate.Builder takenDamage(MinMaxBounds.Doubles takenDamage) { + this.takenDamage = takenDamage; + return this; + } + + public DamagePredicate.Builder sourceEntity(EntityPredicate sourceEntity) { + this.sourceEntity = Optional.of(sourceEntity); + return this; + } + + public DamagePredicate.Builder blocked(Boolean blocked) { + this.blocked = Optional.of(blocked); + return this; + } + + public DamagePredicate.Builder type(DamageSourcePredicate type) { + this.type = Optional.of(type); + return this; + } + + public DamagePredicate.Builder type(DamageSourcePredicate.Builder typeBuilder) { + this.type = Optional.of(typeBuilder.build()); + return this; + } + + public DamagePredicate build() { + return new DamagePredicate(this.dealtDamage, this.takenDamage, this.sourceEntity, this.blocked, this.type); + } + } +} diff --git a/net/minecraft/advancements/critereon/DamageSourcePredicate.java b/net/minecraft/advancements/critereon/DamageSourcePredicate.java new file mode 100644 index 00000000..e9592ebc --- /dev/null +++ b/net/minecraft/advancements/critereon/DamageSourcePredicate.java @@ -0,0 +1,82 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.collect.ImmutableList; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.List; +import java.util.Optional; +import net.minecraft.core.registries.Registries; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageType; +import net.minecraft.world.phys.Vec3; + +public record DamageSourcePredicate( + List> tags, Optional directEntity, Optional sourceEntity, Optional isDirect +) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + TagPredicate.codec(Registries.DAMAGE_TYPE).listOf().optionalFieldOf("tags", List.of()).forGetter(DamageSourcePredicate::tags), + EntityPredicate.CODEC.optionalFieldOf("direct_entity").forGetter(DamageSourcePredicate::directEntity), + EntityPredicate.CODEC.optionalFieldOf("source_entity").forGetter(DamageSourcePredicate::sourceEntity), + Codec.BOOL.optionalFieldOf("is_direct").forGetter(DamageSourcePredicate::isDirect) + ) + .apply(instance, DamageSourcePredicate::new) + ); + + public boolean matches(ServerPlayer player, DamageSource source) { + return this.matches(player.serverLevel(), player.position(), source); + } + + public boolean matches(ServerLevel level, Vec3 position, DamageSource source) { + for (TagPredicate tagPredicate : this.tags) { + if (!tagPredicate.matches(source.typeHolder())) { + return false; + } + } + + if (this.directEntity.isPresent() && !((EntityPredicate)this.directEntity.get()).matches(level, position, source.getDirectEntity())) { + return false; + } else { + return this.sourceEntity.isPresent() && !((EntityPredicate)this.sourceEntity.get()).matches(level, position, source.getEntity()) + ? false + : !this.isDirect.isPresent() || (Boolean)this.isDirect.get() == source.isDirect(); + } + } + + public static class Builder { + private final ImmutableList.Builder> tags = ImmutableList.builder(); + private Optional directEntity = Optional.empty(); + private Optional sourceEntity = Optional.empty(); + private Optional isDirect = Optional.empty(); + + public static DamageSourcePredicate.Builder damageType() { + return new DamageSourcePredicate.Builder(); + } + + public DamageSourcePredicate.Builder tag(TagPredicate tag) { + this.tags.add(tag); + return this; + } + + public DamageSourcePredicate.Builder direct(EntityPredicate.Builder directEntity) { + this.directEntity = Optional.of(directEntity.build()); + return this; + } + + public DamageSourcePredicate.Builder source(EntityPredicate.Builder sourceEntity) { + this.sourceEntity = Optional.of(sourceEntity.build()); + return this; + } + + public DamageSourcePredicate.Builder isDirect(boolean isDirect) { + this.isDirect = Optional.of(isDirect); + return this; + } + + public DamageSourcePredicate build() { + return new DamageSourcePredicate(this.tags.build(), this.directEntity, this.sourceEntity, this.isDirect); + } + } +} diff --git a/net/minecraft/advancements/critereon/DefaultBlockInteractionTrigger.java b/net/minecraft/advancements/critereon/DefaultBlockInteractionTrigger.java new file mode 100644 index 00000000..c8c35245 --- /dev/null +++ b/net/minecraft/advancements/critereon/DefaultBlockInteractionTrigger.java @@ -0,0 +1,53 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; + +public class DefaultBlockInteractionTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return DefaultBlockInteractionTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, BlockPos pos) { + ServerLevel serverLevel = player.serverLevel(); + BlockState blockState = serverLevel.getBlockState(pos); + LootParams lootParams = new LootParams.Builder(serverLevel) + .withParameter(LootContextParams.ORIGIN, pos.getCenter()) + .withParameter(LootContextParams.THIS_ENTITY, player) + .withParameter(LootContextParams.BLOCK_STATE, blockState) + .create(LootContextParamSets.BLOCK_USE); + LootContext lootContext = new LootContext.Builder(lootParams).create(Optional.empty()); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext)); + } + + public record TriggerInstance(Optional player, Optional location) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(DefaultBlockInteractionTrigger.TriggerInstance::player), + ContextAwarePredicate.CODEC.optionalFieldOf("location").forGetter(DefaultBlockInteractionTrigger.TriggerInstance::location) + ) + .apply(instance, DefaultBlockInteractionTrigger.TriggerInstance::new) + ); + + public boolean matches(LootContext context) { + return this.location.isEmpty() || ((ContextAwarePredicate)this.location.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + this.location.ifPresent(contextAwarePredicate -> validator.validate(contextAwarePredicate, LootContextParamSets.BLOCK_USE, ".location")); + } + } +} diff --git a/net/minecraft/advancements/critereon/DistancePredicate.java b/net/minecraft/advancements/critereon/DistancePredicate.java new file mode 100644 index 00000000..a60485e0 --- /dev/null +++ b/net/minecraft/advancements/critereon/DistancePredicate.java @@ -0,0 +1,43 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.Mth; + +public record DistancePredicate( + MinMaxBounds.Doubles x, MinMaxBounds.Doubles y, MinMaxBounds.Doubles z, MinMaxBounds.Doubles horizontal, MinMaxBounds.Doubles absolute +) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + MinMaxBounds.Doubles.CODEC.optionalFieldOf("x", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::x), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("y", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::y), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("z", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::z), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("horizontal", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::horizontal), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("absolute", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::absolute) + ) + .apply(instance, DistancePredicate::new) + ); + + public static DistancePredicate horizontal(MinMaxBounds.Doubles horizontal) { + return new DistancePredicate(MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, horizontal, MinMaxBounds.Doubles.ANY); + } + + public static DistancePredicate vertical(MinMaxBounds.Doubles vertical) { + return new DistancePredicate(MinMaxBounds.Doubles.ANY, vertical, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY); + } + + public static DistancePredicate absolute(MinMaxBounds.Doubles absolute) { + return new DistancePredicate(MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, absolute); + } + + public boolean matches(double x1, double y1, double z1, double x2, double y2, double z2) { + float f = (float)(x1 - x2); + float g = (float)(y1 - y2); + float h = (float)(z1 - z2); + if (!this.x.matches(Mth.abs(f)) || !this.y.matches(Mth.abs(g)) || !this.z.matches(Mth.abs(h))) { + return false; + } else { + return !this.horizontal.matchesSqr(f * f + h * h) ? false : this.absolute.matchesSqr(f * f + g * g + h * h); + } + } +} diff --git a/net/minecraft/advancements/critereon/DistanceTrigger.java b/net/minecraft/advancements/critereon/DistanceTrigger.java new file mode 100644 index 00000000..18ed1078 --- /dev/null +++ b/net/minecraft/advancements/critereon/DistanceTrigger.java @@ -0,0 +1,58 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.phys.Vec3; + +public class DistanceTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return DistanceTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Vec3 position) { + Vec3 vec3 = player.position(); + this.trigger(player, triggerInstance -> triggerInstance.matches(player.serverLevel(), position, vec3)); + } + + public record TriggerInstance(Optional player, Optional startPosition, Optional distance) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(DistanceTrigger.TriggerInstance::player), + LocationPredicate.CODEC.optionalFieldOf("start_position").forGetter(DistanceTrigger.TriggerInstance::startPosition), + DistancePredicate.CODEC.optionalFieldOf("distance").forGetter(DistanceTrigger.TriggerInstance::distance) + ) + .apply(instance, DistanceTrigger.TriggerInstance::new) + ); + + public static Criterion fallFromHeight( + EntityPredicate.Builder player, DistancePredicate distance, LocationPredicate.Builder startPosition + ) { + return CriteriaTriggers.FALL_FROM_HEIGHT + .createCriterion(new DistanceTrigger.TriggerInstance(Optional.of(EntityPredicate.wrap(player)), Optional.of(startPosition.build()), Optional.of(distance))); + } + + public static Criterion rideEntityInLava(EntityPredicate.Builder player, DistancePredicate distance) { + return CriteriaTriggers.RIDE_ENTITY_IN_LAVA_TRIGGER + .createCriterion(new DistanceTrigger.TriggerInstance(Optional.of(EntityPredicate.wrap(player)), Optional.empty(), Optional.of(distance))); + } + + public static Criterion travelledThroughNether(DistancePredicate distance) { + return CriteriaTriggers.NETHER_TRAVEL.createCriterion(new DistanceTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.of(distance))); + } + + public boolean matches(ServerLevel level, Vec3 startPosition, Vec3 currentPosition) { + return this.startPosition.isPresent() && !((LocationPredicate)this.startPosition.get()).matches(level, startPosition.x, startPosition.y, startPosition.z) + ? false + : !this.distance.isPresent() + || ((DistancePredicate)this.distance.get()) + .matches(startPosition.x, startPosition.y, startPosition.z, currentPosition.x, currentPosition.y, currentPosition.z); + } + } +} diff --git a/net/minecraft/advancements/critereon/EffectsChangedTrigger.java b/net/minecraft/advancements/critereon/EffectsChangedTrigger.java new file mode 100644 index 00000000..c2afbbe2 --- /dev/null +++ b/net/minecraft/advancements/critereon/EffectsChangedTrigger.java @@ -0,0 +1,57 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.storage.loot.LootContext; +import org.jetbrains.annotations.Nullable; + +public class EffectsChangedTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return EffectsChangedTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, @Nullable Entity source) { + LootContext lootContext = source != null ? EntityPredicate.createContext(player, source) : null; + this.trigger(player, triggerInstance -> triggerInstance.matches(player, lootContext)); + } + + public record TriggerInstance(Optional player, Optional effects, Optional source) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(EffectsChangedTrigger.TriggerInstance::player), + MobEffectsPredicate.CODEC.optionalFieldOf("effects").forGetter(EffectsChangedTrigger.TriggerInstance::effects), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("source").forGetter(EffectsChangedTrigger.TriggerInstance::source) + ) + .apply(instance, EffectsChangedTrigger.TriggerInstance::new) + ); + + public static Criterion hasEffects(MobEffectsPredicate.Builder effects) { + return CriteriaTriggers.EFFECTS_CHANGED.createCriterion(new EffectsChangedTrigger.TriggerInstance(Optional.empty(), effects.build(), Optional.empty())); + } + + public static Criterion gotEffectsFrom(EntityPredicate.Builder source) { + return CriteriaTriggers.EFFECTS_CHANGED + .createCriterion(new EffectsChangedTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.of(EntityPredicate.wrap(source.build())))); + } + + public boolean matches(ServerPlayer player, @Nullable LootContext lootContext) { + return this.effects.isPresent() && !((MobEffectsPredicate)this.effects.get()).matches((LivingEntity)player) + ? false + : !this.source.isPresent() || lootContext != null && ((ContextAwarePredicate)this.source.get()).matches(lootContext); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.source, ".source"); + } + } +} diff --git a/net/minecraft/advancements/critereon/EnchantedItemTrigger.java b/net/minecraft/advancements/critereon/EnchantedItemTrigger.java new file mode 100644 index 00000000..a83d7257 --- /dev/null +++ b/net/minecraft/advancements/critereon/EnchantedItemTrigger.java @@ -0,0 +1,40 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; + +public class EnchantedItemTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return EnchantedItemTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack item, int levelsSpent) { + this.trigger(player, triggerInstance -> triggerInstance.matches(item, levelsSpent)); + } + + public record TriggerInstance(Optional player, Optional item, MinMaxBounds.Ints levels) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(EnchantedItemTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(EnchantedItemTrigger.TriggerInstance::item), + MinMaxBounds.Ints.CODEC.optionalFieldOf("levels", MinMaxBounds.Ints.ANY).forGetter(EnchantedItemTrigger.TriggerInstance::levels) + ) + .apply(instance, EnchantedItemTrigger.TriggerInstance::new) + ); + + public static Criterion enchantedItem() { + return CriteriaTriggers.ENCHANTED_ITEM.createCriterion(new EnchantedItemTrigger.TriggerInstance(Optional.empty(), Optional.empty(), MinMaxBounds.Ints.ANY)); + } + + public boolean matches(ItemStack item, int levels) { + return this.item.isPresent() && !((ItemPredicate)this.item.get()).test(item) ? false : this.levels.matches(levels); + } + } +} diff --git a/net/minecraft/advancements/critereon/EnchantmentPredicate.java b/net/minecraft/advancements/critereon/EnchantmentPredicate.java new file mode 100644 index 00000000..c9e11336 --- /dev/null +++ b/net/minecraft/advancements/critereon/EnchantmentPredicate.java @@ -0,0 +1,61 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import it.unimi.dsi.fastutil.objects.Object2IntMap.Entry; +import java.util.Optional; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.ItemEnchantments; + +public record EnchantmentPredicate(Optional> enchantments, MinMaxBounds.Ints level) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + RegistryCodecs.homogeneousList(Registries.ENCHANTMENT).optionalFieldOf("enchantments").forGetter(EnchantmentPredicate::enchantments), + MinMaxBounds.Ints.CODEC.optionalFieldOf("levels", MinMaxBounds.Ints.ANY).forGetter(EnchantmentPredicate::level) + ) + .apply(instance, EnchantmentPredicate::new) + ); + + public EnchantmentPredicate(Holder enchantment, MinMaxBounds.Ints level) { + this(Optional.of(HolderSet.direct(enchantment)), level); + } + + public EnchantmentPredicate(HolderSet enchantments, MinMaxBounds.Ints level) { + this(Optional.of(enchantments), level); + } + + public boolean containedIn(ItemEnchantments enchantments) { + if (this.enchantments.isPresent()) { + for (Holder holder : (HolderSet)this.enchantments.get()) { + if (this.matchesEnchantment(enchantments, holder)) { + return true; + } + } + + return false; + } else if (this.level != MinMaxBounds.Ints.ANY) { + for (Entry> entry : enchantments.entrySet()) { + if (this.level.matches(entry.getIntValue())) { + return true; + } + } + + return false; + } else { + return !enchantments.isEmpty(); + } + } + + private boolean matchesEnchantment(ItemEnchantments itemEnchantments, Holder enchantment) { + int i = itemEnchantments.getLevel(enchantment); + if (i == 0) { + return false; + } else { + return this.level == MinMaxBounds.Ints.ANY ? true : this.level.matches(i); + } + } +} diff --git a/net/minecraft/advancements/critereon/EnterBlockTrigger.java b/net/minecraft/advancements/critereon/EnterBlockTrigger.java new file mode 100644 index 00000000..8a43f2bf --- /dev/null +++ b/net/minecraft/advancements/critereon/EnterBlockTrigger.java @@ -0,0 +1,58 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class EnterBlockTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return EnterBlockTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, BlockState state) { + this.trigger(player, triggerInstance -> triggerInstance.matches(state)); + } + + public record TriggerInstance(Optional player, Optional> block, Optional state) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(EnterBlockTrigger.TriggerInstance::player), + BuiltInRegistries.BLOCK.holderByNameCodec().optionalFieldOf("block").forGetter(EnterBlockTrigger.TriggerInstance::block), + StatePropertiesPredicate.CODEC.optionalFieldOf("state").forGetter(EnterBlockTrigger.TriggerInstance::state) + ) + .apply(instance, EnterBlockTrigger.TriggerInstance::new) + ) + .validate(EnterBlockTrigger.TriggerInstance::validate); + + private static DataResult validate(EnterBlockTrigger.TriggerInstance triggerInstance) { + return (DataResult)triggerInstance.block + .flatMap( + holder -> triggerInstance.state + .flatMap(statePropertiesPredicate -> statePropertiesPredicate.checkState(((Block)holder.value()).getStateDefinition())) + .map(string -> DataResult.error(() -> "Block" + holder + " has no property " + string)) + ) + .orElseGet(() -> DataResult.success(triggerInstance)); + } + + public static Criterion entersBlock(Block block) { + return CriteriaTriggers.ENTER_BLOCK + .createCriterion(new EnterBlockTrigger.TriggerInstance(Optional.empty(), Optional.of(block.builtInRegistryHolder()), Optional.empty())); + } + + public boolean matches(BlockState state) { + return this.block.isPresent() && !state.is((Holder)this.block.get()) + ? false + : !this.state.isPresent() || ((StatePropertiesPredicate)this.state.get()).matches(state); + } + } +} diff --git a/net/minecraft/advancements/critereon/EntityEquipmentPredicate.java b/net/minecraft/advancements/critereon/EntityEquipmentPredicate.java new file mode 100644 index 00000000..0393b8fa --- /dev/null +++ b/net/minecraft/advancements/critereon/EntityEquipmentPredicate.java @@ -0,0 +1,122 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.HolderGetter; +import net.minecraft.core.component.DataComponentPredicate; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.raid.Raid; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.entity.BannerPattern; +import org.jetbrains.annotations.Nullable; + +public record EntityEquipmentPredicate( + Optional head, + Optional chest, + Optional legs, + Optional feet, + Optional body, + Optional mainhand, + Optional offhand +) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + ItemPredicate.CODEC.optionalFieldOf("head").forGetter(EntityEquipmentPredicate::head), + ItemPredicate.CODEC.optionalFieldOf("chest").forGetter(EntityEquipmentPredicate::chest), + ItemPredicate.CODEC.optionalFieldOf("legs").forGetter(EntityEquipmentPredicate::legs), + ItemPredicate.CODEC.optionalFieldOf("feet").forGetter(EntityEquipmentPredicate::feet), + ItemPredicate.CODEC.optionalFieldOf("body").forGetter(EntityEquipmentPredicate::body), + ItemPredicate.CODEC.optionalFieldOf("mainhand").forGetter(EntityEquipmentPredicate::mainhand), + ItemPredicate.CODEC.optionalFieldOf("offhand").forGetter(EntityEquipmentPredicate::offhand) + ) + .apply(instance, EntityEquipmentPredicate::new) + ); + + public static EntityEquipmentPredicate captainPredicate(HolderGetter patternRegistry) { + return EntityEquipmentPredicate.Builder.equipment() + .head( + ItemPredicate.Builder.item() + .of(Items.WHITE_BANNER) + .hasComponents(DataComponentPredicate.allOf(Raid.getLeaderBannerInstance(patternRegistry).getComponents())) + ) + .build(); + } + + public boolean matches(@Nullable Entity entity) { + if (entity instanceof LivingEntity livingEntity) { + if (this.head.isPresent() && !((ItemPredicate)this.head.get()).test(livingEntity.getItemBySlot(EquipmentSlot.HEAD))) { + return false; + } else if (this.chest.isPresent() && !((ItemPredicate)this.chest.get()).test(livingEntity.getItemBySlot(EquipmentSlot.CHEST))) { + return false; + } else if (this.legs.isPresent() && !((ItemPredicate)this.legs.get()).test(livingEntity.getItemBySlot(EquipmentSlot.LEGS))) { + return false; + } else if (this.feet.isPresent() && !((ItemPredicate)this.feet.get()).test(livingEntity.getItemBySlot(EquipmentSlot.FEET))) { + return false; + } else if (this.body.isPresent() && !((ItemPredicate)this.body.get()).test(livingEntity.getItemBySlot(EquipmentSlot.BODY))) { + return false; + } else { + return this.mainhand.isPresent() && !((ItemPredicate)this.mainhand.get()).test(livingEntity.getItemBySlot(EquipmentSlot.MAINHAND)) + ? false + : !this.offhand.isPresent() || ((ItemPredicate)this.offhand.get()).test(livingEntity.getItemBySlot(EquipmentSlot.OFFHAND)); + } + } else { + return false; + } + } + + public static class Builder { + private Optional head = Optional.empty(); + private Optional chest = Optional.empty(); + private Optional legs = Optional.empty(); + private Optional feet = Optional.empty(); + private Optional body = Optional.empty(); + private Optional mainhand = Optional.empty(); + private Optional offhand = Optional.empty(); + + public static EntityEquipmentPredicate.Builder equipment() { + return new EntityEquipmentPredicate.Builder(); + } + + public EntityEquipmentPredicate.Builder head(ItemPredicate.Builder head) { + this.head = Optional.of(head.build()); + return this; + } + + public EntityEquipmentPredicate.Builder chest(ItemPredicate.Builder chest) { + this.chest = Optional.of(chest.build()); + return this; + } + + public EntityEquipmentPredicate.Builder legs(ItemPredicate.Builder legs) { + this.legs = Optional.of(legs.build()); + return this; + } + + public EntityEquipmentPredicate.Builder feet(ItemPredicate.Builder feet) { + this.feet = Optional.of(feet.build()); + return this; + } + + public EntityEquipmentPredicate.Builder body(ItemPredicate.Builder body) { + this.body = Optional.of(body.build()); + return this; + } + + public EntityEquipmentPredicate.Builder mainhand(ItemPredicate.Builder mainhand) { + this.mainhand = Optional.of(mainhand.build()); + return this; + } + + public EntityEquipmentPredicate.Builder offhand(ItemPredicate.Builder offhand) { + this.offhand = Optional.of(offhand.build()); + return this; + } + + public EntityEquipmentPredicate build() { + return new EntityEquipmentPredicate(this.head, this.chest, this.legs, this.feet, this.body, this.mainhand, this.offhand); + } + } +} diff --git a/net/minecraft/advancements/critereon/EntityFlagsPredicate.java b/net/minecraft/advancements/critereon/EntityFlagsPredicate.java new file mode 100644 index 00000000..db17a942 --- /dev/null +++ b/net/minecraft/advancements/critereon/EntityFlagsPredicate.java @@ -0,0 +1,108 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; + +public record EntityFlagsPredicate( + Optional isOnGround, + Optional isOnFire, + Optional isCrouching, + Optional isSprinting, + Optional isSwimming, + Optional isFlying, + Optional isBaby +) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + Codec.BOOL.optionalFieldOf("is_on_ground").forGetter(EntityFlagsPredicate::isOnGround), + Codec.BOOL.optionalFieldOf("is_on_fire").forGetter(EntityFlagsPredicate::isOnFire), + Codec.BOOL.optionalFieldOf("is_sneaking").forGetter(EntityFlagsPredicate::isCrouching), + Codec.BOOL.optionalFieldOf("is_sprinting").forGetter(EntityFlagsPredicate::isSprinting), + Codec.BOOL.optionalFieldOf("is_swimming").forGetter(EntityFlagsPredicate::isSwimming), + Codec.BOOL.optionalFieldOf("is_flying").forGetter(EntityFlagsPredicate::isFlying), + Codec.BOOL.optionalFieldOf("is_baby").forGetter(EntityFlagsPredicate::isBaby) + ) + .apply(instance, EntityFlagsPredicate::new) + ); + + public boolean matches(Entity entity) { + if (this.isOnGround.isPresent() && entity.onGround() != (Boolean)this.isOnGround.get()) { + return false; + } else if (this.isOnFire.isPresent() && entity.isOnFire() != (Boolean)this.isOnFire.get()) { + return false; + } else if (this.isCrouching.isPresent() && entity.isCrouching() != (Boolean)this.isCrouching.get()) { + return false; + } else if (this.isSprinting.isPresent() && entity.isSprinting() != (Boolean)this.isSprinting.get()) { + return false; + } else if (this.isSwimming.isPresent() && entity.isSwimming() != (Boolean)this.isSwimming.get()) { + return false; + } else { + if (this.isFlying.isPresent()) { + boolean bl = entity instanceof LivingEntity livingEntity + && (livingEntity.isFallFlying() || livingEntity instanceof Player player && player.getAbilities().flying); + if (bl != (Boolean)this.isFlying.get()) { + return false; + } + } + + return !(this.isBaby.isPresent() && entity instanceof LivingEntity livingEntity2) || livingEntity2.isBaby() == (Boolean)this.isBaby.get(); + } + } + + public static class Builder { + private Optional isOnGround = Optional.empty(); + private Optional isOnFire = Optional.empty(); + private Optional isCrouching = Optional.empty(); + private Optional isSprinting = Optional.empty(); + private Optional isSwimming = Optional.empty(); + private Optional isFlying = Optional.empty(); + private Optional isBaby = Optional.empty(); + + public static EntityFlagsPredicate.Builder flags() { + return new EntityFlagsPredicate.Builder(); + } + + public EntityFlagsPredicate.Builder setOnGround(Boolean onGround) { + this.isOnGround = Optional.of(onGround); + return this; + } + + public EntityFlagsPredicate.Builder setOnFire(Boolean onFire) { + this.isOnFire = Optional.of(onFire); + return this; + } + + public EntityFlagsPredicate.Builder setCrouching(Boolean isCrouching) { + this.isCrouching = Optional.of(isCrouching); + return this; + } + + public EntityFlagsPredicate.Builder setSprinting(Boolean isSprinting) { + this.isSprinting = Optional.of(isSprinting); + return this; + } + + public EntityFlagsPredicate.Builder setSwimming(Boolean isSwimming) { + this.isSwimming = Optional.of(isSwimming); + return this; + } + + public EntityFlagsPredicate.Builder setIsFlying(Boolean isFlying) { + this.isFlying = Optional.of(isFlying); + return this; + } + + public EntityFlagsPredicate.Builder setIsBaby(Boolean isBaby) { + this.isBaby = Optional.of(isBaby); + return this; + } + + public EntityFlagsPredicate build() { + return new EntityFlagsPredicate(this.isOnGround, this.isOnFire, this.isCrouching, this.isSprinting, this.isSwimming, this.isFlying, this.isBaby); + } + } +} diff --git a/net/minecraft/advancements/critereon/EntityHurtPlayerTrigger.java b/net/minecraft/advancements/critereon/EntityHurtPlayerTrigger.java new file mode 100644 index 00000000..16a250cd --- /dev/null +++ b/net/minecraft/advancements/critereon/EntityHurtPlayerTrigger.java @@ -0,0 +1,46 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.damagesource.DamageSource; + +public class EntityHurtPlayerTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return EntityHurtPlayerTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, DamageSource source, float dealtDamage, float takenDamage, boolean blocked) { + this.trigger(player, triggerInstance -> triggerInstance.matches(player, source, dealtDamage, takenDamage, blocked)); + } + + public record TriggerInstance(Optional player, Optional damage) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(EntityHurtPlayerTrigger.TriggerInstance::player), + DamagePredicate.CODEC.optionalFieldOf("damage").forGetter(EntityHurtPlayerTrigger.TriggerInstance::damage) + ) + .apply(instance, EntityHurtPlayerTrigger.TriggerInstance::new) + ); + + public static Criterion entityHurtPlayer() { + return CriteriaTriggers.ENTITY_HURT_PLAYER.createCriterion(new EntityHurtPlayerTrigger.TriggerInstance(Optional.empty(), Optional.empty())); + } + + public static Criterion entityHurtPlayer(DamagePredicate damage) { + return CriteriaTriggers.ENTITY_HURT_PLAYER.createCriterion(new EntityHurtPlayerTrigger.TriggerInstance(Optional.empty(), Optional.of(damage))); + } + + public static Criterion entityHurtPlayer(DamagePredicate.Builder damage) { + return CriteriaTriggers.ENTITY_HURT_PLAYER.createCriterion(new EntityHurtPlayerTrigger.TriggerInstance(Optional.empty(), Optional.of(damage.build()))); + } + + public boolean matches(ServerPlayer player, DamageSource source, float dealtDamage, float takenDamage, boolean blocked) { + return !this.damage.isPresent() || ((DamagePredicate)this.damage.get()).matches(player, source, dealtDamage, takenDamage, blocked); + } + } +} diff --git a/net/minecraft/advancements/critereon/EntityPredicate.java b/net/minecraft/advancements/critereon/EntityPredicate.java new file mode 100644 index 00000000..46930dce --- /dev/null +++ b/net/minecraft/advancements/critereon/EntityPredicate.java @@ -0,0 +1,327 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.tags.TagKey; +import net.minecraft.util.ExtraCodecs; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; +import net.minecraft.world.level.storage.loot.predicates.LootItemEntityPropertyCondition; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.scores.Team; +import org.jetbrains.annotations.Nullable; + +public record EntityPredicate( + Optional entityType, + Optional distanceToPlayer, + Optional movement, + EntityPredicate.LocationWrapper location, + Optional effects, + Optional nbt, + Optional flags, + Optional equipment, + Optional subPredicate, + Optional periodicTick, + Optional vehicle, + Optional passenger, + Optional targetedEntity, + Optional team, + Optional slots +) { + public static final Codec CODEC = Codec.recursive( + "EntityPredicate", + codec -> RecordCodecBuilder.create( + instance -> instance.group( + EntityTypePredicate.CODEC.optionalFieldOf("type").forGetter(EntityPredicate::entityType), + DistancePredicate.CODEC.optionalFieldOf("distance").forGetter(EntityPredicate::distanceToPlayer), + MovementPredicate.CODEC.optionalFieldOf("movement").forGetter(EntityPredicate::movement), + EntityPredicate.LocationWrapper.CODEC.forGetter(EntityPredicate::location), + MobEffectsPredicate.CODEC.optionalFieldOf("effects").forGetter(EntityPredicate::effects), + NbtPredicate.CODEC.optionalFieldOf("nbt").forGetter(EntityPredicate::nbt), + EntityFlagsPredicate.CODEC.optionalFieldOf("flags").forGetter(EntityPredicate::flags), + EntityEquipmentPredicate.CODEC.optionalFieldOf("equipment").forGetter(EntityPredicate::equipment), + EntitySubPredicate.CODEC.optionalFieldOf("type_specific").forGetter(EntityPredicate::subPredicate), + ExtraCodecs.POSITIVE_INT.optionalFieldOf("periodic_tick").forGetter(EntityPredicate::periodicTick), + codec.optionalFieldOf("vehicle").forGetter(EntityPredicate::vehicle), + codec.optionalFieldOf("passenger").forGetter(EntityPredicate::passenger), + codec.optionalFieldOf("targeted_entity").forGetter(EntityPredicate::targetedEntity), + Codec.STRING.optionalFieldOf("team").forGetter(EntityPredicate::team), + SlotsPredicate.CODEC.optionalFieldOf("slots").forGetter(EntityPredicate::slots) + ) + .apply(instance, EntityPredicate::new) + ) + ); + public static final Codec ADVANCEMENT_CODEC = Codec.withAlternative(ContextAwarePredicate.CODEC, CODEC, EntityPredicate::wrap); + + public static ContextAwarePredicate wrap(EntityPredicate.Builder builder) { + return wrap(builder.build()); + } + + public static Optional wrap(Optional predicate) { + return predicate.map(EntityPredicate::wrap); + } + + public static List wrap(EntityPredicate.Builder... builders) { + return Stream.of(builders).map(EntityPredicate::wrap).toList(); + } + + public static ContextAwarePredicate wrap(EntityPredicate predicate) { + LootItemCondition lootItemCondition = LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.THIS, predicate).build(); + return new ContextAwarePredicate(List.of(lootItemCondition)); + } + + public boolean matches(ServerPlayer player, @Nullable Entity entity) { + return this.matches(player.serverLevel(), player.position(), entity); + } + + public boolean matches(ServerLevel level, @Nullable Vec3 position, @Nullable Entity entity) { + if (entity == null) { + return false; + } else if (this.entityType.isPresent() && !((EntityTypePredicate)this.entityType.get()).matches(entity.getType())) { + return false; + } else { + if (position == null) { + if (this.distanceToPlayer.isPresent()) { + return false; + } + } else if (this.distanceToPlayer.isPresent() + && !((DistancePredicate)this.distanceToPlayer.get()).matches(position.x, position.y, position.z, entity.getX(), entity.getY(), entity.getZ())) { + return false; + } + + if (this.movement.isPresent()) { + Vec3 vec3 = entity.getKnownMovement(); + Vec3 vec32 = vec3.scale(20.0); + if (!((MovementPredicate)this.movement.get()).matches(vec32.x, vec32.y, vec32.z, entity.fallDistance)) { + return false; + } + } + + if (this.location.located.isPresent() && !((LocationPredicate)this.location.located.get()).matches(level, entity.getX(), entity.getY(), entity.getZ())) { + return false; + } else { + if (this.location.steppingOn.isPresent()) { + Vec3 vec3 = Vec3.atCenterOf(entity.getOnPos()); + if (!((LocationPredicate)this.location.steppingOn.get()).matches(level, vec3.x(), vec3.y(), vec3.z())) { + return false; + } + } + + if (this.location.affectsMovement.isPresent()) { + Vec3 vec3 = Vec3.atCenterOf(entity.getBlockPosBelowThatAffectsMyMovement()); + if (!((LocationPredicate)this.location.affectsMovement.get()).matches(level, vec3.x(), vec3.y(), vec3.z())) { + return false; + } + } + + if (this.effects.isPresent() && !((MobEffectsPredicate)this.effects.get()).matches(entity)) { + return false; + } else if (this.flags.isPresent() && !((EntityFlagsPredicate)this.flags.get()).matches(entity)) { + return false; + } else if (this.equipment.isPresent() && !((EntityEquipmentPredicate)this.equipment.get()).matches(entity)) { + return false; + } else if (this.subPredicate.isPresent() && !((EntitySubPredicate)this.subPredicate.get()).matches(entity, level, position)) { + return false; + } else if (this.vehicle.isPresent() && !((EntityPredicate)this.vehicle.get()).matches(level, position, entity.getVehicle())) { + return false; + } else if (this.passenger.isPresent() + && entity.getPassengers().stream().noneMatch(entityx -> ((EntityPredicate)this.passenger.get()).matches(level, position, entityx))) { + return false; + } else if (this.targetedEntity.isPresent() + && !((EntityPredicate)this.targetedEntity.get()).matches(level, position, entity instanceof Mob ? ((Mob)entity).getTarget() : null)) { + return false; + } else if (this.periodicTick.isPresent() && entity.tickCount % (Integer)this.periodicTick.get() != 0) { + return false; + } else { + if (this.team.isPresent()) { + Team team = entity.getTeam(); + if (team == null || !((String)this.team.get()).equals(team.getName())) { + return false; + } + } + + return this.slots.isPresent() && !((SlotsPredicate)this.slots.get()).matches(entity) + ? false + : !this.nbt.isPresent() || ((NbtPredicate)this.nbt.get()).matches(entity); + } + } + } + } + + public static LootContext createContext(ServerPlayer player, Entity entity) { + LootParams lootParams = new LootParams.Builder(player.serverLevel()) + .withParameter(LootContextParams.THIS_ENTITY, entity) + .withParameter(LootContextParams.ORIGIN, player.position()) + .create(LootContextParamSets.ADVANCEMENT_ENTITY); + return new LootContext.Builder(lootParams).create(Optional.empty()); + } + + public static class Builder { + private Optional entityType = Optional.empty(); + private Optional distanceToPlayer = Optional.empty(); + private Optional fallDistance = Optional.empty(); + private Optional movement = Optional.empty(); + private Optional location = Optional.empty(); + private Optional located = Optional.empty(); + private Optional steppingOnLocation = Optional.empty(); + private Optional movementAffectedBy = Optional.empty(); + private Optional effects = Optional.empty(); + private Optional nbt = Optional.empty(); + private Optional flags = Optional.empty(); + private Optional equipment = Optional.empty(); + private Optional subPredicate = Optional.empty(); + private Optional periodicTick = Optional.empty(); + private Optional vehicle = Optional.empty(); + private Optional passenger = Optional.empty(); + private Optional targetedEntity = Optional.empty(); + private Optional team = Optional.empty(); + private Optional slots = Optional.empty(); + + public static EntityPredicate.Builder entity() { + return new EntityPredicate.Builder(); + } + + public EntityPredicate.Builder of(EntityType entityType) { + this.entityType = Optional.of(EntityTypePredicate.of(entityType)); + return this; + } + + public EntityPredicate.Builder of(TagKey> entityTypeTag) { + this.entityType = Optional.of(EntityTypePredicate.of(entityTypeTag)); + return this; + } + + public EntityPredicate.Builder entityType(EntityTypePredicate entityType) { + this.entityType = Optional.of(entityType); + return this; + } + + public EntityPredicate.Builder distance(DistancePredicate distanceToPlayer) { + this.distanceToPlayer = Optional.of(distanceToPlayer); + return this; + } + + public EntityPredicate.Builder moving(MovementPredicate movement) { + this.movement = Optional.of(movement); + return this; + } + + public EntityPredicate.Builder located(LocationPredicate.Builder location) { + this.located = Optional.of(location.build()); + return this; + } + + public EntityPredicate.Builder steppingOn(LocationPredicate.Builder steppingOnLocation) { + this.steppingOnLocation = Optional.of(steppingOnLocation.build()); + return this; + } + + public EntityPredicate.Builder movementAffectedBy(LocationPredicate.Builder movementAffectedBy) { + this.movementAffectedBy = Optional.of(movementAffectedBy.build()); + return this; + } + + public EntityPredicate.Builder effects(MobEffectsPredicate.Builder effects) { + this.effects = effects.build(); + return this; + } + + public EntityPredicate.Builder nbt(NbtPredicate nbt) { + this.nbt = Optional.of(nbt); + return this; + } + + public EntityPredicate.Builder flags(EntityFlagsPredicate.Builder flags) { + this.flags = Optional.of(flags.build()); + return this; + } + + public EntityPredicate.Builder equipment(EntityEquipmentPredicate.Builder equipment) { + this.equipment = Optional.of(equipment.build()); + return this; + } + + public EntityPredicate.Builder equipment(EntityEquipmentPredicate equipment) { + this.equipment = Optional.of(equipment); + return this; + } + + public EntityPredicate.Builder subPredicate(EntitySubPredicate subPredicate) { + this.subPredicate = Optional.of(subPredicate); + return this; + } + + public EntityPredicate.Builder periodicTick(int periodicTick) { + this.periodicTick = Optional.of(periodicTick); + return this; + } + + public EntityPredicate.Builder vehicle(EntityPredicate.Builder vehicle) { + this.vehicle = Optional.of(vehicle.build()); + return this; + } + + public EntityPredicate.Builder passenger(EntityPredicate.Builder passenger) { + this.passenger = Optional.of(passenger.build()); + return this; + } + + public EntityPredicate.Builder targetedEntity(EntityPredicate.Builder targetedEntity) { + this.targetedEntity = Optional.of(targetedEntity.build()); + return this; + } + + public EntityPredicate.Builder team(String team) { + this.team = Optional.of(team); + return this; + } + + public EntityPredicate.Builder slots(SlotsPredicate slots) { + this.slots = Optional.of(slots); + return this; + } + + public EntityPredicate build() { + return new EntityPredicate( + this.entityType, + this.distanceToPlayer, + this.movement, + new EntityPredicate.LocationWrapper(this.located, this.steppingOnLocation, this.movementAffectedBy), + this.effects, + this.nbt, + this.flags, + this.equipment, + this.subPredicate, + this.periodicTick, + this.vehicle, + this.passenger, + this.targetedEntity, + this.team, + this.slots + ); + } + } + + public record LocationWrapper(Optional located, Optional steppingOn, Optional affectsMovement) { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group( + LocationPredicate.CODEC.optionalFieldOf("location").forGetter(EntityPredicate.LocationWrapper::located), + LocationPredicate.CODEC.optionalFieldOf("stepping_on").forGetter(EntityPredicate.LocationWrapper::steppingOn), + LocationPredicate.CODEC.optionalFieldOf("movement_affected_by").forGetter(EntityPredicate.LocationWrapper::affectsMovement) + ) + .apply(instance, EntityPredicate.LocationWrapper::new) + ); + } +} diff --git a/net/minecraft/advancements/critereon/EntitySubPredicate.java b/net/minecraft/advancements/critereon/EntitySubPredicate.java new file mode 100644 index 00000000..cc7d85d8 --- /dev/null +++ b/net/minecraft/advancements/critereon/EntitySubPredicate.java @@ -0,0 +1,18 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import java.util.function.Function; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public interface EntitySubPredicate { + Codec CODEC = BuiltInRegistries.ENTITY_SUB_PREDICATE_TYPE.byNameCodec().dispatch(EntitySubPredicate::codec, Function.identity()); + + MapCodec codec(); + + boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position); +} diff --git a/net/minecraft/advancements/critereon/EntitySubPredicates.java b/net/minecraft/advancements/critereon/EntitySubPredicates.java new file mode 100644 index 00000000..908be306 --- /dev/null +++ b/net/minecraft/advancements/critereon/EntitySubPredicates.java @@ -0,0 +1,245 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import java.util.function.Function; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.animal.Cat; +import net.minecraft.world.entity.animal.CatVariant; +import net.minecraft.world.entity.animal.Fox; +import net.minecraft.world.entity.animal.FrogVariant; +import net.minecraft.world.entity.animal.MushroomCow; +import net.minecraft.world.entity.animal.Parrot; +import net.minecraft.world.entity.animal.Rabbit; +import net.minecraft.world.entity.animal.TropicalFish; +import net.minecraft.world.entity.animal.Wolf; +import net.minecraft.world.entity.animal.WolfVariant; +import net.minecraft.world.entity.animal.axolotl.Axolotl; +import net.minecraft.world.entity.animal.frog.Frog; +import net.minecraft.world.entity.animal.horse.Horse; +import net.minecraft.world.entity.animal.horse.Llama; +import net.minecraft.world.entity.animal.horse.Variant; +import net.minecraft.world.entity.decoration.Painting; +import net.minecraft.world.entity.decoration.PaintingVariant; +import net.minecraft.world.entity.npc.VillagerDataHolder; +import net.minecraft.world.entity.npc.VillagerType; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public class EntitySubPredicates { + public static final MapCodec LIGHTNING = register("lightning", LightningBoltPredicate.CODEC); + public static final MapCodec FISHING_HOOK = register("fishing_hook", FishingHookPredicate.CODEC); + public static final MapCodec PLAYER = register("player", PlayerPredicate.CODEC); + public static final MapCodec SLIME = register("slime", SlimePredicate.CODEC); + public static final MapCodec RAIDER = register("raider", RaiderPredicate.CODEC); + public static final EntitySubPredicates.EntityVariantPredicateType AXOLOTL = register( + "axolotl", + EntitySubPredicates.EntityVariantPredicateType.create( + Axolotl.Variant.CODEC, entity -> entity instanceof Axolotl axolotl ? Optional.of(axolotl.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType BOAT = register( + "boat", + EntitySubPredicates.EntityVariantPredicateType.create( + Boat.Type.CODEC, entity -> entity instanceof Boat boat ? Optional.of(boat.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType FOX = register( + "fox", + EntitySubPredicates.EntityVariantPredicateType.create(Fox.Type.CODEC, entity -> entity instanceof Fox fox ? Optional.of(fox.getVariant()) : Optional.empty()) + ); + public static final EntitySubPredicates.EntityVariantPredicateType MOOSHROOM = register( + "mooshroom", + EntitySubPredicates.EntityVariantPredicateType.create( + MushroomCow.MushroomType.CODEC, entity -> entity instanceof MushroomCow mushroomCow ? Optional.of(mushroomCow.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType RABBIT = register( + "rabbit", + EntitySubPredicates.EntityVariantPredicateType.create( + Rabbit.Variant.CODEC, entity -> entity instanceof Rabbit rabbit ? Optional.of(rabbit.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType HORSE = register( + "horse", + EntitySubPredicates.EntityVariantPredicateType.create( + Variant.CODEC, entity -> entity instanceof Horse horse ? Optional.of(horse.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType LLAMA = register( + "llama", + EntitySubPredicates.EntityVariantPredicateType.create( + Llama.Variant.CODEC, entity -> entity instanceof Llama llama ? Optional.of(llama.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType VILLAGER = register( + "villager", + EntitySubPredicates.EntityVariantPredicateType.create( + BuiltInRegistries.VILLAGER_TYPE.byNameCodec(), + entity -> entity instanceof VillagerDataHolder villagerDataHolder ? Optional.of(villagerDataHolder.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType PARROT = register( + "parrot", + EntitySubPredicates.EntityVariantPredicateType.create( + Parrot.Variant.CODEC, entity -> entity instanceof Parrot parrot ? Optional.of(parrot.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityVariantPredicateType TROPICAL_FISH = register( + "tropical_fish", + EntitySubPredicates.EntityVariantPredicateType.create( + TropicalFish.Pattern.CODEC, entity -> entity instanceof TropicalFish tropicalFish ? Optional.of(tropicalFish.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityHolderVariantPredicateType PAINTING = register( + "painting", + EntitySubPredicates.EntityHolderVariantPredicateType.create( + Registries.PAINTING_VARIANT, entity -> entity instanceof Painting painting ? Optional.of(painting.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityHolderVariantPredicateType CAT = register( + "cat", + EntitySubPredicates.EntityHolderVariantPredicateType.create( + Registries.CAT_VARIANT, entity -> entity instanceof Cat cat ? Optional.of(cat.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityHolderVariantPredicateType FROG = register( + "frog", + EntitySubPredicates.EntityHolderVariantPredicateType.create( + Registries.FROG_VARIANT, entity -> entity instanceof Frog frog ? Optional.of(frog.getVariant()) : Optional.empty() + ) + ); + public static final EntitySubPredicates.EntityHolderVariantPredicateType WOLF = register( + "wolf", + EntitySubPredicates.EntityHolderVariantPredicateType.create( + Registries.WOLF_VARIANT, entity -> entity instanceof Wolf wolf ? Optional.of(wolf.getVariant()) : Optional.empty() + ) + ); + + private static MapCodec register(String name, MapCodec codec) { + return Registry.register(BuiltInRegistries.ENTITY_SUB_PREDICATE_TYPE, name, codec); + } + + private static EntitySubPredicates.EntityVariantPredicateType register(String name, EntitySubPredicates.EntityVariantPredicateType predicateType) { + Registry.register(BuiltInRegistries.ENTITY_SUB_PREDICATE_TYPE, name, predicateType.codec); + return predicateType; + } + + private static EntitySubPredicates.EntityHolderVariantPredicateType register( + String name, EntitySubPredicates.EntityHolderVariantPredicateType predicateType + ) { + Registry.register(BuiltInRegistries.ENTITY_SUB_PREDICATE_TYPE, name, predicateType.codec); + return predicateType; + } + + public static MapCodec bootstrap(Registry> registry) { + return LIGHTNING; + } + + public static EntitySubPredicate catVariant(Holder catVariant) { + return CAT.createPredicate(HolderSet.direct(catVariant)); + } + + public static EntitySubPredicate frogVariant(Holder frogVariant) { + return FROG.createPredicate(HolderSet.direct(frogVariant)); + } + + public static EntitySubPredicate wolfVariant(HolderSet wolfVariant) { + return WOLF.createPredicate(wolfVariant); + } + + public static class EntityHolderVariantPredicateType { + final MapCodec.Instance> codec; + final Function>> getter; + + public static EntitySubPredicates.EntityHolderVariantPredicateType create( + ResourceKey> registryKey, Function>> getter + ) { + return new EntitySubPredicates.EntityHolderVariantPredicateType<>(registryKey, getter); + } + + public EntityHolderVariantPredicateType(ResourceKey> registryKey, Function>> getter) { + this.getter = getter; + this.codec = RecordCodecBuilder.mapCodec( + instance -> instance.group(RegistryCodecs.homogeneousList(registryKey).fieldOf("variant").forGetter(instancex -> instancex.variants)) + .apply(instance, holderSet -> new EntitySubPredicates.EntityHolderVariantPredicateType.Instance(holderSet)) + ); + } + + public EntitySubPredicate createPredicate(HolderSet variants) { + return new EntitySubPredicates.EntityHolderVariantPredicateType.Instance(variants); + } + + class Instance implements EntitySubPredicate { + final HolderSet variants; + + Instance(final HolderSet variants) { + this.variants = variants; + } + + @Override + public MapCodec.Instance> codec() { + return EntityHolderVariantPredicateType.this.codec; + } + + @Override + public boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position) { + return ((Optional)EntityHolderVariantPredicateType.this.getter.apply(entity)).filter(this.variants::contains).isPresent(); + } + } + } + + public static class EntityVariantPredicateType { + final MapCodec.Instance> codec; + final Function> getter; + + public static EntitySubPredicates.EntityVariantPredicateType create(Registry variantRegistry, Function> getter) { + return new EntitySubPredicates.EntityVariantPredicateType<>(variantRegistry.byNameCodec(), getter); + } + + public static EntitySubPredicates.EntityVariantPredicateType create(Codec codec, Function> getter) { + return new EntitySubPredicates.EntityVariantPredicateType<>(codec, getter); + } + + public EntityVariantPredicateType(Codec codec, Function> getter) { + this.getter = getter; + this.codec = RecordCodecBuilder.mapCodec( + instance -> instance.group(codec.fieldOf("variant").forGetter(instancex -> instancex.variant)) + .apply(instance, object -> new EntitySubPredicates.EntityVariantPredicateType.Instance(object)) + ); + } + + public EntitySubPredicate createPredicate(V variant) { + return new EntitySubPredicates.EntityVariantPredicateType.Instance(variant); + } + + class Instance implements EntitySubPredicate { + final V variant; + + Instance(final V variant) { + this.variant = variant; + } + + @Override + public MapCodec.Instance> codec() { + return EntityVariantPredicateType.this.codec; + } + + @Override + public boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position) { + return ((Optional)EntityVariantPredicateType.this.getter.apply(entity)).filter(this.variant::equals).isPresent(); + } + } + } +} diff --git a/net/minecraft/advancements/critereon/EntityTypePredicate.java b/net/minecraft/advancements/critereon/EntityTypePredicate.java new file mode 100644 index 00000000..932c0f96 --- /dev/null +++ b/net/minecraft/advancements/critereon/EntityTypePredicate.java @@ -0,0 +1,26 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.EntityType; + +public record EntityTypePredicate(HolderSet> types) { + public static final Codec CODEC = RegistryCodecs.homogeneousList(Registries.ENTITY_TYPE) + .xmap(EntityTypePredicate::new, EntityTypePredicate::types); + + public static EntityTypePredicate of(EntityType type) { + return new EntityTypePredicate(HolderSet.direct(type.builtInRegistryHolder())); + } + + public static EntityTypePredicate of(TagKey> tag) { + return new EntityTypePredicate(BuiltInRegistries.ENTITY_TYPE.getOrCreateTag(tag)); + } + + public boolean matches(EntityType type) { + return type.is(this.types); + } +} diff --git a/net/minecraft/advancements/critereon/FallAfterExplosionTrigger.java b/net/minecraft/advancements/critereon/FallAfterExplosionTrigger.java new file mode 100644 index 00000000..8524e8a3 --- /dev/null +++ b/net/minecraft/advancements/critereon/FallAfterExplosionTrigger.java @@ -0,0 +1,67 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public class FallAfterExplosionTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return FallAfterExplosionTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Vec3 pos, @Nullable Entity entity) { + Vec3 vec3 = player.position(); + LootContext lootContext = entity != null ? EntityPredicate.createContext(player, entity) : null; + this.trigger(player, triggerInstance -> triggerInstance.matches(player.serverLevel(), pos, vec3, lootContext)); + } + + public record TriggerInstance( + Optional player, + Optional startPosition, + Optional distance, + Optional cause + ) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(FallAfterExplosionTrigger.TriggerInstance::player), + LocationPredicate.CODEC.optionalFieldOf("start_position").forGetter(FallAfterExplosionTrigger.TriggerInstance::startPosition), + DistancePredicate.CODEC.optionalFieldOf("distance").forGetter(FallAfterExplosionTrigger.TriggerInstance::distance), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("cause").forGetter(FallAfterExplosionTrigger.TriggerInstance::cause) + ) + .apply(instance, FallAfterExplosionTrigger.TriggerInstance::new) + ); + + public static Criterion fallAfterExplosion(DistancePredicate distance, EntityPredicate.Builder cause) { + return CriteriaTriggers.FALL_AFTER_EXPLOSION + .createCriterion( + new FallAfterExplosionTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.of(distance), Optional.of(EntityPredicate.wrap(cause))) + ); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.cause(), ".cause"); + } + + public boolean matches(ServerLevel level, Vec3 startPosition, Vec3 endPosition, @Nullable LootContext context) { + if (this.startPosition.isPresent() && !((LocationPredicate)this.startPosition.get()).matches(level, startPosition.x, startPosition.y, startPosition.z)) { + return false; + } else { + return this.distance.isPresent() + && !((DistancePredicate)this.distance.get()).matches(startPosition.x, startPosition.y, startPosition.z, endPosition.x, endPosition.y, endPosition.z) + ? false + : !this.cause.isPresent() || context != null && ((ContextAwarePredicate)this.cause.get()).matches(context); + } + } + } +} diff --git a/net/minecraft/advancements/critereon/FilledBucketTrigger.java b/net/minecraft/advancements/critereon/FilledBucketTrigger.java new file mode 100644 index 00000000..f4d79881 --- /dev/null +++ b/net/minecraft/advancements/critereon/FilledBucketTrigger.java @@ -0,0 +1,38 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; + +public class FilledBucketTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return FilledBucketTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack stack) { + this.trigger(player, triggerInstance -> triggerInstance.matches(stack)); + } + + public record TriggerInstance(Optional player, Optional item) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(FilledBucketTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(FilledBucketTrigger.TriggerInstance::item) + ) + .apply(instance, FilledBucketTrigger.TriggerInstance::new) + ); + + public static Criterion filledBucket(ItemPredicate.Builder item) { + return CriteriaTriggers.FILLED_BUCKET.createCriterion(new FilledBucketTrigger.TriggerInstance(Optional.empty(), Optional.of(item.build()))); + } + + public boolean matches(ItemStack stack) { + return !this.item.isPresent() || ((ItemPredicate)this.item.get()).test(stack); + } + } +} diff --git a/net/minecraft/advancements/critereon/FishingHookPredicate.java b/net/minecraft/advancements/critereon/FishingHookPredicate.java new file mode 100644 index 00000000..5cea9128 --- /dev/null +++ b/net/minecraft/advancements/critereon/FishingHookPredicate.java @@ -0,0 +1,37 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.projectile.FishingHook; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public record FishingHookPredicate(Optional inOpenWater) implements EntitySubPredicate { + public static final FishingHookPredicate ANY = new FishingHookPredicate(Optional.empty()); + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group(Codec.BOOL.optionalFieldOf("in_open_water").forGetter(FishingHookPredicate::inOpenWater)) + .apply(instance, FishingHookPredicate::new) + ); + + public static FishingHookPredicate inOpenWater(boolean inOpenWater) { + return new FishingHookPredicate(Optional.of(inOpenWater)); + } + + @Override + public MapCodec codec() { + return EntitySubPredicates.FISHING_HOOK; + } + + @Override + public boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position) { + if (this.inOpenWater.isEmpty()) { + return true; + } else { + return entity instanceof FishingHook fishingHook ? (Boolean)this.inOpenWater.get() == fishingHook.isOpenWaterFishing() : false; + } + } +} diff --git a/net/minecraft/advancements/critereon/FishingRodHookedTrigger.java b/net/minecraft/advancements/critereon/FishingRodHookedTrigger.java new file mode 100644 index 00000000..f592aaa1 --- /dev/null +++ b/net/minecraft/advancements/critereon/FishingRodHookedTrigger.java @@ -0,0 +1,83 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Collection; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.projectile.FishingHook; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; + +public class FishingRodHookedTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return FishingRodHookedTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack rod, FishingHook entity, Collection stacks) { + LootContext lootContext = EntityPredicate.createContext(player, (Entity)(entity.getHookedIn() != null ? entity.getHookedIn() : entity)); + this.trigger(player, triggerInstance -> triggerInstance.matches(rod, lootContext, stacks)); + } + + public record TriggerInstance( + Optional player, Optional rod, Optional entity, Optional item + ) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(FishingRodHookedTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("rod").forGetter(FishingRodHookedTrigger.TriggerInstance::rod), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(FishingRodHookedTrigger.TriggerInstance::entity), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(FishingRodHookedTrigger.TriggerInstance::item) + ) + .apply(instance, FishingRodHookedTrigger.TriggerInstance::new) + ); + + public static Criterion fishedItem( + Optional rod, Optional entity, Optional item + ) { + return CriteriaTriggers.FISHING_ROD_HOOKED + .createCriterion(new FishingRodHookedTrigger.TriggerInstance(Optional.empty(), rod, EntityPredicate.wrap(entity), item)); + } + + public boolean matches(ItemStack rod, LootContext context, Collection stacks) { + if (this.rod.isPresent() && !((ItemPredicate)this.rod.get()).test(rod)) { + return false; + } else if (this.entity.isPresent() && !((ContextAwarePredicate)this.entity.get()).matches(context)) { + return false; + } else { + if (this.item.isPresent()) { + boolean bl = false; + Entity entity = context.getParamOrNull(LootContextParams.THIS_ENTITY); + if (entity instanceof ItemEntity itemEntity && ((ItemPredicate)this.item.get()).test(itemEntity.getItem())) { + bl = true; + } + + for (ItemStack itemStack : stacks) { + if (((ItemPredicate)this.item.get()).test(itemStack)) { + bl = true; + break; + } + } + + if (!bl) { + return false; + } + } + + return true; + } + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.entity, ".entity"); + } + } +} diff --git a/net/minecraft/advancements/critereon/FluidPredicate.java b/net/minecraft/advancements/critereon/FluidPredicate.java new file mode 100644 index 00000000..ed0e6ada --- /dev/null +++ b/net/minecraft/advancements/critereon/FluidPredicate.java @@ -0,0 +1,64 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.registries.Registries; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.FluidState; + +public record FluidPredicate(Optional> fluids, Optional properties) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + RegistryCodecs.homogeneousList(Registries.FLUID).optionalFieldOf("fluids").forGetter(FluidPredicate::fluids), + StatePropertiesPredicate.CODEC.optionalFieldOf("state").forGetter(FluidPredicate::properties) + ) + .apply(instance, FluidPredicate::new) + ); + + public boolean matches(ServerLevel level, BlockPos pos) { + if (!level.isLoaded(pos)) { + return false; + } else { + FluidState fluidState = level.getFluidState(pos); + return this.fluids.isPresent() && !fluidState.is((HolderSet)this.fluids.get()) + ? false + : !this.properties.isPresent() || ((StatePropertiesPredicate)this.properties.get()).matches(fluidState); + } + } + + public static class Builder { + private Optional> fluids = Optional.empty(); + private Optional properties = Optional.empty(); + + private Builder() { + } + + public static FluidPredicate.Builder fluid() { + return new FluidPredicate.Builder(); + } + + public FluidPredicate.Builder of(Fluid fluid) { + this.fluids = Optional.of(HolderSet.direct(fluid.builtInRegistryHolder())); + return this; + } + + public FluidPredicate.Builder of(HolderSet holderSet) { + this.fluids = Optional.of(holderSet); + return this; + } + + public FluidPredicate.Builder setProperties(StatePropertiesPredicate properties) { + this.properties = Optional.of(properties); + return this; + } + + public FluidPredicate build() { + return new FluidPredicate(this.fluids, this.properties); + } + } +} diff --git a/net/minecraft/advancements/critereon/GameTypePredicate.java b/net/minecraft/advancements/critereon/GameTypePredicate.java new file mode 100644 index 00000000..623c0d62 --- /dev/null +++ b/net/minecraft/advancements/critereon/GameTypePredicate.java @@ -0,0 +1,20 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import java.util.Arrays; +import java.util.List; +import net.minecraft.world.level.GameType; + +public record GameTypePredicate(List types) { + public static final GameTypePredicate ANY = of(GameType.values()); + public static final GameTypePredicate SURVIVAL_LIKE = of(GameType.SURVIVAL, GameType.ADVENTURE); + public static final Codec CODEC = GameType.CODEC.listOf().xmap(GameTypePredicate::new, GameTypePredicate::types); + + public static GameTypePredicate of(GameType... types) { + return new GameTypePredicate(Arrays.stream(types).toList()); + } + + public boolean matches(GameType type) { + return this.types.contains(type); + } +} diff --git a/net/minecraft/advancements/critereon/ImpossibleTrigger.java b/net/minecraft/advancements/critereon/ImpossibleTrigger.java new file mode 100644 index 00000000..49ed6a1e --- /dev/null +++ b/net/minecraft/advancements/critereon/ImpossibleTrigger.java @@ -0,0 +1,33 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import net.minecraft.advancements.CriterionTrigger; +import net.minecraft.advancements.CriterionTriggerInstance; +import net.minecraft.server.PlayerAdvancements; + +public class ImpossibleTrigger implements CriterionTrigger { + @Override + public void addPlayerListener(PlayerAdvancements playerAdvancements, CriterionTrigger.Listener listener) { + } + + @Override + public void removePlayerListener(PlayerAdvancements playerAdvancements, CriterionTrigger.Listener listener) { + } + + @Override + public void removePlayerListeners(PlayerAdvancements playerAdvancements) { + } + + @Override + public Codec codec() { + return ImpossibleTrigger.TriggerInstance.CODEC; + } + + public record TriggerInstance() implements CriterionTriggerInstance { + public static final Codec CODEC = Codec.unit(new ImpossibleTrigger.TriggerInstance()); + + @Override + public void validate(CriterionValidator validator) { + } + } +} diff --git a/net/minecraft/advancements/critereon/InventoryChangeTrigger.java b/net/minecraft/advancements/critereon/InventoryChangeTrigger.java new file mode 100644 index 00000000..fe1c6928 --- /dev/null +++ b/net/minecraft/advancements/critereon/InventoryChangeTrigger.java @@ -0,0 +1,131 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Stream; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.HolderSet; +import net.minecraft.core.component.DataComponentPredicate; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; + +public class InventoryChangeTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return InventoryChangeTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Inventory inventory, ItemStack stack) { + int i = 0; + int j = 0; + int k = 0; + + for (int l = 0; l < inventory.getContainerSize(); l++) { + ItemStack itemStack = inventory.getItem(l); + if (itemStack.isEmpty()) { + j++; + } else { + k++; + if (itemStack.getCount() >= itemStack.getMaxStackSize()) { + i++; + } + } + } + + this.trigger(player, inventory, stack, i, j, k); + } + + private void trigger(ServerPlayer player, Inventory inventory, ItemStack stack, int full, int empty, int occupied) { + this.trigger(player, triggerInstance -> triggerInstance.matches(inventory, stack, full, empty, occupied)); + } + + public record TriggerInstance(Optional player, InventoryChangeTrigger.TriggerInstance.Slots slots, List items) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(InventoryChangeTrigger.TriggerInstance::player), + InventoryChangeTrigger.TriggerInstance.Slots.CODEC + .optionalFieldOf("slots", InventoryChangeTrigger.TriggerInstance.Slots.ANY) + .forGetter(InventoryChangeTrigger.TriggerInstance::slots), + ItemPredicate.CODEC.listOf().optionalFieldOf("items", List.of()).forGetter(InventoryChangeTrigger.TriggerInstance::items) + ) + .apply(instance, InventoryChangeTrigger.TriggerInstance::new) + ); + + public static Criterion hasItems(ItemPredicate.Builder... items) { + return hasItems((ItemPredicate[])Stream.of(items).map(ItemPredicate.Builder::build).toArray(ItemPredicate[]::new)); + } + + public static Criterion hasItems(ItemPredicate... items) { + return CriteriaTriggers.INVENTORY_CHANGED + .createCriterion(new InventoryChangeTrigger.TriggerInstance(Optional.empty(), InventoryChangeTrigger.TriggerInstance.Slots.ANY, List.of(items))); + } + + public static Criterion hasItems(ItemLike... items) { + ItemPredicate[] itemPredicates = new ItemPredicate[items.length]; + + for (int i = 0; i < items.length; i++) { + itemPredicates[i] = new ItemPredicate( + Optional.of(HolderSet.direct(items[i].asItem().builtInRegistryHolder())), MinMaxBounds.Ints.ANY, DataComponentPredicate.EMPTY, Map.of() + ); + } + + return hasItems(itemPredicates); + } + + public boolean matches(Inventory inventory, ItemStack stack, int full, int empty, int occupied) { + if (!this.slots.matches(full, empty, occupied)) { + return false; + } else if (this.items.isEmpty()) { + return true; + } else if (this.items.size() != 1) { + List list = new ObjectArrayList<>(this.items); + int i = inventory.getContainerSize(); + + for (int j = 0; j < i; j++) { + if (list.isEmpty()) { + return true; + } + + ItemStack itemStack = inventory.getItem(j); + if (!itemStack.isEmpty()) { + list.removeIf(itemPredicate -> itemPredicate.test(itemStack)); + } + } + + return list.isEmpty(); + } else { + return !stack.isEmpty() && ((ItemPredicate)this.items.get(0)).test(stack); + } + } + + public record Slots(MinMaxBounds.Ints occupied, MinMaxBounds.Ints full, MinMaxBounds.Ints empty) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + MinMaxBounds.Ints.CODEC.optionalFieldOf("occupied", MinMaxBounds.Ints.ANY).forGetter(InventoryChangeTrigger.TriggerInstance.Slots::occupied), + MinMaxBounds.Ints.CODEC.optionalFieldOf("full", MinMaxBounds.Ints.ANY).forGetter(InventoryChangeTrigger.TriggerInstance.Slots::full), + MinMaxBounds.Ints.CODEC.optionalFieldOf("empty", MinMaxBounds.Ints.ANY).forGetter(InventoryChangeTrigger.TriggerInstance.Slots::empty) + ) + .apply(instance, InventoryChangeTrigger.TriggerInstance.Slots::new) + ); + public static final InventoryChangeTrigger.TriggerInstance.Slots ANY = new InventoryChangeTrigger.TriggerInstance.Slots( + MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY + ); + + public boolean matches(int full, int empty, int occupied) { + if (!this.full.matches(full)) { + return false; + } else { + return !this.empty.matches(empty) ? false : this.occupied.matches(occupied); + } + } + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemAttributeModifiersPredicate.java b/net/minecraft/advancements/critereon/ItemAttributeModifiersPredicate.java new file mode 100644 index 00000000..0c7667b1 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemAttributeModifiersPredicate.java @@ -0,0 +1,72 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import java.util.function.Predicate; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EquipmentSlotGroup; +import net.minecraft.world.entity.ai.attributes.Attribute; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.ItemAttributeModifiers; + +public record ItemAttributeModifiersPredicate( + Optional> modifiers +) implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + CollectionPredicate.codec(ItemAttributeModifiersPredicate.EntryPredicate.CODEC) + .optionalFieldOf("modifiers") + .forGetter(ItemAttributeModifiersPredicate::modifiers) + ) + .apply(instance, ItemAttributeModifiersPredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.ATTRIBUTE_MODIFIERS; + } + + public boolean matches(ItemStack stack, ItemAttributeModifiers value) { + return !this.modifiers.isPresent() || ((CollectionPredicate)this.modifiers.get()).test((Iterable)value.modifiers()); + } + + public record EntryPredicate( + Optional> attribute, + Optional id, + MinMaxBounds.Doubles amount, + Optional operation, + Optional slot + ) implements Predicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + RegistryCodecs.homogeneousList(Registries.ATTRIBUTE).optionalFieldOf("attribute").forGetter(ItemAttributeModifiersPredicate.EntryPredicate::attribute), + ResourceLocation.CODEC.optionalFieldOf("id").forGetter(ItemAttributeModifiersPredicate.EntryPredicate::id), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("amount", MinMaxBounds.Doubles.ANY).forGetter(ItemAttributeModifiersPredicate.EntryPredicate::amount), + AttributeModifier.Operation.CODEC.optionalFieldOf("operation").forGetter(ItemAttributeModifiersPredicate.EntryPredicate::operation), + EquipmentSlotGroup.CODEC.optionalFieldOf("slot").forGetter(ItemAttributeModifiersPredicate.EntryPredicate::slot) + ) + .apply(instance, ItemAttributeModifiersPredicate.EntryPredicate::new) + ); + + public boolean test(ItemAttributeModifiers.Entry entry) { + if (this.attribute.isPresent() && !((HolderSet)this.attribute.get()).contains(entry.attribute())) { + return false; + } else if (this.id.isPresent() && !((ResourceLocation)this.id.get()).equals(entry.modifier().id())) { + return false; + } else if (!this.amount.matches(entry.modifier().amount())) { + return false; + } else { + return this.operation.isPresent() && this.operation.get() != entry.modifier().operation() + ? false + : !this.slot.isPresent() || this.slot.get() == entry.slot(); + } + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemBundlePredicate.java b/net/minecraft/advancements/critereon/ItemBundlePredicate.java new file mode 100644 index 00000000..e0a5707a --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemBundlePredicate.java @@ -0,0 +1,25 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.BundleContents; + +public record ItemBundlePredicate(Optional> items) implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group(CollectionPredicate.codec(ItemPredicate.CODEC).optionalFieldOf("items").forGetter(ItemBundlePredicate::items)) + .apply(instance, ItemBundlePredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.BUNDLE_CONTENTS; + } + + public boolean matches(ItemStack stack, BundleContents value) { + return !this.items.isPresent() || ((CollectionPredicate)this.items.get()).test(value.items()); + } +} diff --git a/net/minecraft/advancements/critereon/ItemContainerPredicate.java b/net/minecraft/advancements/critereon/ItemContainerPredicate.java new file mode 100644 index 00000000..7782142f --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemContainerPredicate.java @@ -0,0 +1,26 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.ItemContainerContents; + +public record ItemContainerPredicate(Optional> items) + implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group(CollectionPredicate.codec(ItemPredicate.CODEC).optionalFieldOf("items").forGetter(ItemContainerPredicate::items)) + .apply(instance, ItemContainerPredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.CONTAINER; + } + + public boolean matches(ItemStack stack, ItemContainerContents value) { + return !this.items.isPresent() || ((CollectionPredicate)this.items.get()).test(value.nonEmptyItems()); + } +} diff --git a/net/minecraft/advancements/critereon/ItemCustomDataPredicate.java b/net/minecraft/advancements/critereon/ItemCustomDataPredicate.java new file mode 100644 index 00000000..33ed2c48 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemCustomDataPredicate.java @@ -0,0 +1,17 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import net.minecraft.world.item.ItemStack; + +public record ItemCustomDataPredicate(NbtPredicate value) implements ItemSubPredicate { + public static final Codec CODEC = NbtPredicate.CODEC.xmap(ItemCustomDataPredicate::new, ItemCustomDataPredicate::value); + + @Override + public boolean matches(ItemStack stack) { + return this.value.matches(stack); + } + + public static ItemCustomDataPredicate customData(NbtPredicate value) { + return new ItemCustomDataPredicate(value); + } +} diff --git a/net/minecraft/advancements/critereon/ItemDamagePredicate.java b/net/minecraft/advancements/critereon/ItemDamagePredicate.java new file mode 100644 index 00000000..2a2c6d39 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemDamagePredicate.java @@ -0,0 +1,30 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.item.ItemStack; + +public record ItemDamagePredicate(MinMaxBounds.Ints durability, MinMaxBounds.Ints damage) implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + MinMaxBounds.Ints.CODEC.optionalFieldOf("durability", MinMaxBounds.Ints.ANY).forGetter(ItemDamagePredicate::durability), + MinMaxBounds.Ints.CODEC.optionalFieldOf("damage", MinMaxBounds.Ints.ANY).forGetter(ItemDamagePredicate::damage) + ) + .apply(instance, ItemDamagePredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.DAMAGE; + } + + public boolean matches(ItemStack stack, Integer value) { + return !this.durability.matches(stack.getMaxDamage() - value) ? false : this.damage.matches(value); + } + + public static ItemDamagePredicate durability(MinMaxBounds.Ints damage) { + return new ItemDamagePredicate(damage, MinMaxBounds.Ints.ANY); + } +} diff --git a/net/minecraft/advancements/critereon/ItemDurabilityTrigger.java b/net/minecraft/advancements/critereon/ItemDurabilityTrigger.java new file mode 100644 index 00000000..b21c2b2e --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemDurabilityTrigger.java @@ -0,0 +1,51 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; + +public class ItemDurabilityTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return ItemDurabilityTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack item, int newDurability) { + this.trigger(player, triggerInstance -> triggerInstance.matches(item, newDurability)); + } + + public record TriggerInstance(Optional player, Optional item, MinMaxBounds.Ints durability, MinMaxBounds.Ints delta) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(ItemDurabilityTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(ItemDurabilityTrigger.TriggerInstance::item), + MinMaxBounds.Ints.CODEC.optionalFieldOf("durability", MinMaxBounds.Ints.ANY).forGetter(ItemDurabilityTrigger.TriggerInstance::durability), + MinMaxBounds.Ints.CODEC.optionalFieldOf("delta", MinMaxBounds.Ints.ANY).forGetter(ItemDurabilityTrigger.TriggerInstance::delta) + ) + .apply(instance, ItemDurabilityTrigger.TriggerInstance::new) + ); + + public static Criterion changedDurability(Optional item, MinMaxBounds.Ints durability) { + return changedDurability(Optional.empty(), item, durability); + } + + public static Criterion changedDurability( + Optional player, Optional item, MinMaxBounds.Ints durability + ) { + return CriteriaTriggers.ITEM_DURABILITY_CHANGED.createCriterion(new ItemDurabilityTrigger.TriggerInstance(player, item, durability, MinMaxBounds.Ints.ANY)); + } + + public boolean matches(ItemStack item, int durability) { + if (this.item.isPresent() && !((ItemPredicate)this.item.get()).test(item)) { + return false; + } else { + return !this.durability.matches(item.getMaxDamage() - durability) ? false : this.delta.matches(item.getDamageValue() - durability); + } + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemEnchantmentsPredicate.java b/net/minecraft/advancements/critereon/ItemEnchantmentsPredicate.java new file mode 100644 index 00000000..03b755b9 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemEnchantmentsPredicate.java @@ -0,0 +1,69 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import java.util.List; +import java.util.function.Function; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.ItemEnchantments; + +public abstract class ItemEnchantmentsPredicate implements SingleComponentItemPredicate { + private final List enchantments; + + protected ItemEnchantmentsPredicate(List enchantments) { + this.enchantments = enchantments; + } + + public static Codec codec(Function, T> predicateFactory) { + return EnchantmentPredicate.CODEC.listOf().xmap(predicateFactory, ItemEnchantmentsPredicate::enchantments); + } + + protected List enchantments() { + return this.enchantments; + } + + public boolean matches(ItemStack stack, ItemEnchantments enchantments) { + for (EnchantmentPredicate enchantmentPredicate : this.enchantments) { + if (!enchantmentPredicate.containedIn(enchantments)) { + return false; + } + } + + return true; + } + + public static ItemEnchantmentsPredicate.Enchantments enchantments(List enchantments) { + return new ItemEnchantmentsPredicate.Enchantments(enchantments); + } + + public static ItemEnchantmentsPredicate.StoredEnchantments storedEnchantments(List enchantments) { + return new ItemEnchantmentsPredicate.StoredEnchantments(enchantments); + } + + public static class Enchantments extends ItemEnchantmentsPredicate { + public static final Codec CODEC = codec(ItemEnchantmentsPredicate.Enchantments::new); + + protected Enchantments(List list) { + super(list); + } + + @Override + public DataComponentType componentType() { + return DataComponents.ENCHANTMENTS; + } + } + + public static class StoredEnchantments extends ItemEnchantmentsPredicate { + public static final Codec CODEC = codec(ItemEnchantmentsPredicate.StoredEnchantments::new); + + protected StoredEnchantments(List list) { + super(list); + } + + @Override + public DataComponentType componentType() { + return DataComponents.STORED_ENCHANTMENTS; + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemFireworkExplosionPredicate.java b/net/minecraft/advancements/critereon/ItemFireworkExplosionPredicate.java new file mode 100644 index 00000000..7c80d35e --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemFireworkExplosionPredicate.java @@ -0,0 +1,47 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import java.util.function.Predicate; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.FireworkExplosion; + +public record ItemFireworkExplosionPredicate(ItemFireworkExplosionPredicate.FireworkPredicate predicate) + implements SingleComponentItemPredicate { + public static final Codec CODEC = ItemFireworkExplosionPredicate.FireworkPredicate.CODEC + .xmap(ItemFireworkExplosionPredicate::new, ItemFireworkExplosionPredicate::predicate); + + @Override + public DataComponentType componentType() { + return DataComponents.FIREWORK_EXPLOSION; + } + + public boolean matches(ItemStack stack, FireworkExplosion value) { + return this.predicate.test(value); + } + + public record FireworkPredicate(Optional shape, Optional twinkle, Optional trail) + implements Predicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + FireworkExplosion.Shape.CODEC.optionalFieldOf("shape").forGetter(ItemFireworkExplosionPredicate.FireworkPredicate::shape), + Codec.BOOL.optionalFieldOf("has_twinkle").forGetter(ItemFireworkExplosionPredicate.FireworkPredicate::twinkle), + Codec.BOOL.optionalFieldOf("has_trail").forGetter(ItemFireworkExplosionPredicate.FireworkPredicate::trail) + ) + .apply(instance, ItemFireworkExplosionPredicate.FireworkPredicate::new) + ); + + public boolean test(FireworkExplosion explosion) { + if (this.shape.isPresent() && this.shape.get() != explosion.shape()) { + return false; + } else { + return this.twinkle.isPresent() && this.twinkle.get() != explosion.hasTwinkle() + ? false + : !this.trail.isPresent() || (Boolean)this.trail.get() == explosion.hasTrail(); + } + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemFireworksPredicate.java b/net/minecraft/advancements/critereon/ItemFireworksPredicate.java new file mode 100644 index 00000000..c2bc1ab6 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemFireworksPredicate.java @@ -0,0 +1,35 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.FireworkExplosion; +import net.minecraft.world.item.component.Fireworks; + +public record ItemFireworksPredicate( + Optional> explosions, MinMaxBounds.Ints flightDuration +) implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + CollectionPredicate.codec(ItemFireworkExplosionPredicate.FireworkPredicate.CODEC) + .optionalFieldOf("explosions") + .forGetter(ItemFireworksPredicate::explosions), + MinMaxBounds.Ints.CODEC.optionalFieldOf("flight_duration", MinMaxBounds.Ints.ANY).forGetter(ItemFireworksPredicate::flightDuration) + ) + .apply(instance, ItemFireworksPredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.FIREWORKS; + } + + public boolean matches(ItemStack stack, Fireworks value) { + return this.explosions.isPresent() && !((CollectionPredicate)this.explosions.get()).test((Iterable)value.explosions()) + ? false + : this.flightDuration.matches(value.flightDuration()); + } +} diff --git a/net/minecraft/advancements/critereon/ItemJukeboxPlayablePredicate.java b/net/minecraft/advancements/critereon/ItemJukeboxPlayablePredicate.java new file mode 100644 index 00000000..5ee1767b --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemJukeboxPlayablePredicate.java @@ -0,0 +1,49 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.JukeboxPlayable; +import net.minecraft.world.item.JukeboxSong; + +public record ItemJukeboxPlayablePredicate(Optional> song) implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group(RegistryCodecs.homogeneousList(Registries.JUKEBOX_SONG).optionalFieldOf("song").forGetter(ItemJukeboxPlayablePredicate::song)) + .apply(instance, ItemJukeboxPlayablePredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.JUKEBOX_PLAYABLE; + } + + public boolean matches(ItemStack stack, JukeboxPlayable value) { + if (!this.song.isPresent()) { + return true; + } else { + boolean bl = false; + + for (Holder holder : (HolderSet)this.song.get()) { + Optional> optional = holder.unwrapKey(); + if (!optional.isEmpty() && optional.get() == value.song().key()) { + bl = true; + break; + } + } + + return bl; + } + } + + public static ItemJukeboxPlayablePredicate any() { + return new ItemJukeboxPlayablePredicate(Optional.empty()); + } +} diff --git a/net/minecraft/advancements/critereon/ItemPotionsPredicate.java b/net/minecraft/advancements/critereon/ItemPotionsPredicate.java new file mode 100644 index 00000000..e6c29c45 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemPotionsPredicate.java @@ -0,0 +1,32 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import java.util.Optional; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.alchemy.Potion; +import net.minecraft.world.item.alchemy.PotionContents; + +public record ItemPotionsPredicate(HolderSet potions) implements SingleComponentItemPredicate { + public static final Codec CODEC = RegistryCodecs.homogeneousList(Registries.POTION) + .xmap(ItemPotionsPredicate::new, ItemPotionsPredicate::potions); + + @Override + public DataComponentType componentType() { + return DataComponents.POTION_CONTENTS; + } + + public boolean matches(ItemStack stack, PotionContents value) { + Optional> optional = value.potion(); + return !optional.isEmpty() && this.potions.contains((Holder)optional.get()); + } + + public static ItemSubPredicate potions(HolderSet potions) { + return new ItemPotionsPredicate(potions); + } +} diff --git a/net/minecraft/advancements/critereon/ItemPredicate.java b/net/minecraft/advancements/critereon/ItemPredicate.java new file mode 100644 index 00000000..99e63586 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemPredicate.java @@ -0,0 +1,93 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.collect.ImmutableMap; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Map; +import java.util.Optional; +import java.util.function.Predicate; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.component.DataComponentHolder; +import net.minecraft.core.component.DataComponentPredicate; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; + +public record ItemPredicate( + Optional> items, MinMaxBounds.Ints count, DataComponentPredicate components, Map, ItemSubPredicate> subPredicates +) implements Predicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + RegistryCodecs.homogeneousList(Registries.ITEM).optionalFieldOf("items").forGetter(ItemPredicate::items), + MinMaxBounds.Ints.CODEC.optionalFieldOf("count", MinMaxBounds.Ints.ANY).forGetter(ItemPredicate::count), + DataComponentPredicate.CODEC.optionalFieldOf("components", DataComponentPredicate.EMPTY).forGetter(ItemPredicate::components), + ItemSubPredicate.CODEC.optionalFieldOf("predicates", Map.of()).forGetter(ItemPredicate::subPredicates) + ) + .apply(instance, ItemPredicate::new) + ); + + public boolean test(ItemStack itemStack) { + if (this.items.isPresent() && !itemStack.is((HolderSet)this.items.get())) { + return false; + } else if (!this.count.matches(itemStack.getCount())) { + return false; + } else if (!this.components.test((DataComponentHolder)itemStack)) { + return false; + } else { + for (ItemSubPredicate itemSubPredicate : this.subPredicates.values()) { + if (!itemSubPredicate.matches(itemStack)) { + return false; + } + } + + return true; + } + } + + public static class Builder { + private Optional> items = Optional.empty(); + private MinMaxBounds.Ints count = MinMaxBounds.Ints.ANY; + private DataComponentPredicate components = DataComponentPredicate.EMPTY; + private final ImmutableMap.Builder, ItemSubPredicate> subPredicates = ImmutableMap.builder(); + + private Builder() { + } + + public static ItemPredicate.Builder item() { + return new ItemPredicate.Builder(); + } + + public ItemPredicate.Builder of(ItemLike... items) { + this.items = Optional.of(HolderSet.direct(itemLike -> itemLike.asItem().builtInRegistryHolder(), items)); + return this; + } + + public ItemPredicate.Builder of(TagKey tag) { + this.items = Optional.of(BuiltInRegistries.ITEM.getOrCreateTag(tag)); + return this; + } + + public ItemPredicate.Builder withCount(MinMaxBounds.Ints count) { + this.count = count; + return this; + } + + public ItemPredicate.Builder withSubPredicate(ItemSubPredicate.Type type, T itemSubPredicate) { + this.subPredicates.put(type, itemSubPredicate); + return this; + } + + public ItemPredicate.Builder hasComponents(DataComponentPredicate components) { + this.components = components; + return this; + } + + public ItemPredicate build() { + return new ItemPredicate(this.items, this.count, this.components, this.subPredicates.build()); + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemSubPredicate.java b/net/minecraft/advancements/critereon/ItemSubPredicate.java new file mode 100644 index 00000000..04778af1 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemSubPredicate.java @@ -0,0 +1,17 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import java.util.Map; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.item.ItemStack; + +public interface ItemSubPredicate { + Codec, ItemSubPredicate>> CODEC = Codec.dispatchedMap( + BuiltInRegistries.ITEM_SUB_PREDICATE_TYPE.byNameCodec(), ItemSubPredicate.Type::codec + ); + + boolean matches(ItemStack stack); + + public record Type(Codec codec) { + } +} diff --git a/net/minecraft/advancements/critereon/ItemSubPredicates.java b/net/minecraft/advancements/critereon/ItemSubPredicates.java new file mode 100644 index 00000000..248eef45 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemSubPredicates.java @@ -0,0 +1,38 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; + +public class ItemSubPredicates { + public static final ItemSubPredicate.Type DAMAGE = register("damage", ItemDamagePredicate.CODEC); + public static final ItemSubPredicate.Type ENCHANTMENTS = register( + "enchantments", ItemEnchantmentsPredicate.Enchantments.CODEC + ); + public static final ItemSubPredicate.Type STORED_ENCHANTMENTS = register( + "stored_enchantments", ItemEnchantmentsPredicate.StoredEnchantments.CODEC + ); + public static final ItemSubPredicate.Type POTIONS = register("potion_contents", ItemPotionsPredicate.CODEC); + public static final ItemSubPredicate.Type CUSTOM_DATA = register("custom_data", ItemCustomDataPredicate.CODEC); + public static final ItemSubPredicate.Type CONTAINER = register("container", ItemContainerPredicate.CODEC); + public static final ItemSubPredicate.Type BUNDLE_CONTENTS = register("bundle_contents", ItemBundlePredicate.CODEC); + public static final ItemSubPredicate.Type FIREWORK_EXPLOSION = register( + "firework_explosion", ItemFireworkExplosionPredicate.CODEC + ); + public static final ItemSubPredicate.Type FIREWORKS = register("fireworks", ItemFireworksPredicate.CODEC); + public static final ItemSubPredicate.Type WRITABLE_BOOK = register("writable_book_content", ItemWritableBookPredicate.CODEC); + public static final ItemSubPredicate.Type WRITTEN_BOOK = register("written_book_content", ItemWrittenBookPredicate.CODEC); + public static final ItemSubPredicate.Type ATTRIBUTE_MODIFIERS = register( + "attribute_modifiers", ItemAttributeModifiersPredicate.CODEC + ); + public static final ItemSubPredicate.Type ARMOR_TRIM = register("trim", ItemTrimPredicate.CODEC); + public static final ItemSubPredicate.Type JUKEBOX_PLAYABLE = register("jukebox_playable", ItemJukeboxPlayablePredicate.CODEC); + + private static ItemSubPredicate.Type register(String name, Codec codec) { + return Registry.register(BuiltInRegistries.ITEM_SUB_PREDICATE_TYPE, name, new ItemSubPredicate.Type<>(codec)); + } + + public static ItemSubPredicate.Type bootstrap(Registry> registry) { + return DAMAGE; + } +} diff --git a/net/minecraft/advancements/critereon/ItemTrimPredicate.java b/net/minecraft/advancements/critereon/ItemTrimPredicate.java new file mode 100644 index 00000000..fbaefcdd --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemTrimPredicate.java @@ -0,0 +1,36 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.armortrim.ArmorTrim; +import net.minecraft.world.item.armortrim.TrimMaterial; +import net.minecraft.world.item.armortrim.TrimPattern; + +public record ItemTrimPredicate(Optional> material, Optional> pattern) + implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + RegistryCodecs.homogeneousList(Registries.TRIM_MATERIAL).optionalFieldOf("material").forGetter(ItemTrimPredicate::material), + RegistryCodecs.homogeneousList(Registries.TRIM_PATTERN).optionalFieldOf("pattern").forGetter(ItemTrimPredicate::pattern) + ) + .apply(instance, ItemTrimPredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.TRIM; + } + + public boolean matches(ItemStack stack, ArmorTrim value) { + return this.material.isPresent() && !((HolderSet)this.material.get()).contains(value.material()) + ? false + : !this.pattern.isPresent() || ((HolderSet)this.pattern.get()).contains(value.pattern()); + } +} diff --git a/net/minecraft/advancements/critereon/ItemUsedOnLocationTrigger.java b/net/minecraft/advancements/critereon/ItemUsedOnLocationTrigger.java new file mode 100644 index 00000000..da9cefb6 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemUsedOnLocationTrigger.java @@ -0,0 +1,90 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Arrays; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.level.storage.loot.predicates.LocationCheck; +import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; +import net.minecraft.world.level.storage.loot.predicates.MatchTool; + +public class ItemUsedOnLocationTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return ItemUsedOnLocationTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, BlockPos pos, ItemStack stack) { + ServerLevel serverLevel = player.serverLevel(); + BlockState blockState = serverLevel.getBlockState(pos); + LootParams lootParams = new LootParams.Builder(serverLevel) + .withParameter(LootContextParams.ORIGIN, pos.getCenter()) + .withParameter(LootContextParams.THIS_ENTITY, player) + .withParameter(LootContextParams.BLOCK_STATE, blockState) + .withParameter(LootContextParams.TOOL, stack) + .create(LootContextParamSets.ADVANCEMENT_LOCATION); + LootContext lootContext = new LootContext.Builder(lootParams).create(Optional.empty()); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext)); + } + + public record TriggerInstance(Optional player, Optional location) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(ItemUsedOnLocationTrigger.TriggerInstance::player), + ContextAwarePredicate.CODEC.optionalFieldOf("location").forGetter(ItemUsedOnLocationTrigger.TriggerInstance::location) + ) + .apply(instance, ItemUsedOnLocationTrigger.TriggerInstance::new) + ); + + public static Criterion placedBlock(Block block) { + ContextAwarePredicate contextAwarePredicate = ContextAwarePredicate.create(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block).build()); + return CriteriaTriggers.PLACED_BLOCK.createCriterion(new ItemUsedOnLocationTrigger.TriggerInstance(Optional.empty(), Optional.of(contextAwarePredicate))); + } + + public static Criterion placedBlock(LootItemCondition.Builder... conditions) { + ContextAwarePredicate contextAwarePredicate = ContextAwarePredicate.create( + (LootItemCondition[])Arrays.stream(conditions).map(LootItemCondition.Builder::build).toArray(LootItemCondition[]::new) + ); + return CriteriaTriggers.PLACED_BLOCK.createCriterion(new ItemUsedOnLocationTrigger.TriggerInstance(Optional.empty(), Optional.of(contextAwarePredicate))); + } + + private static ItemUsedOnLocationTrigger.TriggerInstance itemUsedOnLocation(LocationPredicate.Builder location, ItemPredicate.Builder tool) { + ContextAwarePredicate contextAwarePredicate = ContextAwarePredicate.create( + LocationCheck.checkLocation(location).build(), MatchTool.toolMatches(tool).build() + ); + return new ItemUsedOnLocationTrigger.TriggerInstance(Optional.empty(), Optional.of(contextAwarePredicate)); + } + + public static Criterion itemUsedOnBlock(LocationPredicate.Builder location, ItemPredicate.Builder tool) { + return CriteriaTriggers.ITEM_USED_ON_BLOCK.createCriterion(itemUsedOnLocation(location, tool)); + } + + public static Criterion allayDropItemOnBlock(LocationPredicate.Builder location, ItemPredicate.Builder tool) { + return CriteriaTriggers.ALLAY_DROP_ITEM_ON_BLOCK.createCriterion(itemUsedOnLocation(location, tool)); + } + + public boolean matches(LootContext context) { + return this.location.isEmpty() || ((ContextAwarePredicate)this.location.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + this.location.ifPresent(contextAwarePredicate -> validator.validate(contextAwarePredicate, LootContextParamSets.ADVANCEMENT_LOCATION, ".location")); + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemWritableBookPredicate.java b/net/minecraft/advancements/critereon/ItemWritableBookPredicate.java new file mode 100644 index 00000000..6ec9da2b --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemWritableBookPredicate.java @@ -0,0 +1,39 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import java.util.function.Predicate; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.server.network.Filterable; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.WritableBookContent; + +public record ItemWritableBookPredicate(Optional, ItemWritableBookPredicate.PagePredicate>> pages) + implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + CollectionPredicate.codec(ItemWritableBookPredicate.PagePredicate.CODEC).optionalFieldOf("pages").forGetter(ItemWritableBookPredicate::pages) + ) + .apply(instance, ItemWritableBookPredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.WRITABLE_BOOK_CONTENT; + } + + public boolean matches(ItemStack stack, WritableBookContent value) { + return !this.pages.isPresent() || ((CollectionPredicate)this.pages.get()).test((Iterable)value.pages()); + } + + public record PagePredicate(String contents) implements Predicate> { + public static final Codec CODEC = Codec.STRING + .xmap(ItemWritableBookPredicate.PagePredicate::new, ItemWritableBookPredicate.PagePredicate::contents); + + public boolean test(Filterable contents) { + return contents.raw().equals(this.contents); + } + } +} diff --git a/net/minecraft/advancements/critereon/ItemWrittenBookPredicate.java b/net/minecraft/advancements/critereon/ItemWrittenBookPredicate.java new file mode 100644 index 00000000..1b179df5 --- /dev/null +++ b/net/minecraft/advancements/critereon/ItemWrittenBookPredicate.java @@ -0,0 +1,60 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import java.util.function.Predicate; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.server.network.Filterable; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.WrittenBookContent; + +public record ItemWrittenBookPredicate( + Optional, ItemWrittenBookPredicate.PagePredicate>> pages, + Optional author, + Optional title, + MinMaxBounds.Ints generation, + Optional resolved +) implements SingleComponentItemPredicate { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + CollectionPredicate.codec(ItemWrittenBookPredicate.PagePredicate.CODEC).optionalFieldOf("pages").forGetter(ItemWrittenBookPredicate::pages), + Codec.STRING.optionalFieldOf("author").forGetter(ItemWrittenBookPredicate::author), + Codec.STRING.optionalFieldOf("title").forGetter(ItemWrittenBookPredicate::title), + MinMaxBounds.Ints.CODEC.optionalFieldOf("generation", MinMaxBounds.Ints.ANY).forGetter(ItemWrittenBookPredicate::generation), + Codec.BOOL.optionalFieldOf("resolved").forGetter(ItemWrittenBookPredicate::resolved) + ) + .apply(instance, ItemWrittenBookPredicate::new) + ); + + @Override + public DataComponentType componentType() { + return DataComponents.WRITTEN_BOOK_CONTENT; + } + + public boolean matches(ItemStack stack, WrittenBookContent value) { + if (this.author.isPresent() && !((String)this.author.get()).equals(value.author())) { + return false; + } else if (this.title.isPresent() && !((String)this.title.get()).equals(value.title().raw())) { + return false; + } else if (!this.generation.matches(value.generation())) { + return false; + } else { + return this.resolved.isPresent() && this.resolved.get() != value.resolved() + ? false + : !this.pages.isPresent() || ((CollectionPredicate)this.pages.get()).test((Iterable)value.pages()); + } + } + + public record PagePredicate(Component contents) implements Predicate> { + public static final Codec CODEC = ComponentSerialization.CODEC + .xmap(ItemWrittenBookPredicate.PagePredicate::new, ItemWrittenBookPredicate.PagePredicate::contents); + + public boolean test(Filterable contents) { + return contents.raw().equals(this.contents); + } + } +} diff --git a/net/minecraft/advancements/critereon/KilledByCrossbowTrigger.java b/net/minecraft/advancements/critereon/KilledByCrossbowTrigger.java new file mode 100644 index 00000000..d7471242 --- /dev/null +++ b/net/minecraft/advancements/critereon/KilledByCrossbowTrigger.java @@ -0,0 +1,91 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.storage.loot.LootContext; + +public class KilledByCrossbowTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return KilledByCrossbowTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Collection entities) { + List list = Lists.newArrayList(); + Set> set = Sets.>newHashSet(); + + for (Entity entity : entities) { + set.add(entity.getType()); + list.add(EntityPredicate.createContext(player, entity)); + } + + this.trigger(player, triggerInstance -> triggerInstance.matches(list, set.size())); + } + + public record TriggerInstance(Optional player, List victims, MinMaxBounds.Ints uniqueEntityTypes) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(KilledByCrossbowTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.listOf().optionalFieldOf("victims", List.of()).forGetter(KilledByCrossbowTrigger.TriggerInstance::victims), + MinMaxBounds.Ints.CODEC + .optionalFieldOf("unique_entity_types", MinMaxBounds.Ints.ANY) + .forGetter(KilledByCrossbowTrigger.TriggerInstance::uniqueEntityTypes) + ) + .apply(instance, KilledByCrossbowTrigger.TriggerInstance::new) + ); + + public static Criterion crossbowKilled(EntityPredicate.Builder... victims) { + return CriteriaTriggers.KILLED_BY_CROSSBOW + .createCriterion(new KilledByCrossbowTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(victims), MinMaxBounds.Ints.ANY)); + } + + public static Criterion crossbowKilled(MinMaxBounds.Ints uniqueEntityTypes) { + return CriteriaTriggers.KILLED_BY_CROSSBOW.createCriterion(new KilledByCrossbowTrigger.TriggerInstance(Optional.empty(), List.of(), uniqueEntityTypes)); + } + + public boolean matches(Collection contexts, int bounds) { + if (!this.victims.isEmpty()) { + List list = Lists.newArrayList(contexts); + + for (ContextAwarePredicate contextAwarePredicate : this.victims) { + boolean bl = false; + Iterator iterator = list.iterator(); + + while (iterator.hasNext()) { + LootContext lootContext = (LootContext)iterator.next(); + if (contextAwarePredicate.matches(lootContext)) { + iterator.remove(); + bl = true; + break; + } + } + + if (!bl) { + return false; + } + } + } + + return this.uniqueEntityTypes.matches(bounds); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntities(this.victims, ".victims"); + } + } +} diff --git a/net/minecraft/advancements/critereon/KilledTrigger.java b/net/minecraft/advancements/critereon/KilledTrigger.java new file mode 100644 index 00000000..b5fa65f9 --- /dev/null +++ b/net/minecraft/advancements/critereon/KilledTrigger.java @@ -0,0 +1,133 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.storage.loot.LootContext; + +public class KilledTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return KilledTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Entity entity, DamageSource source) { + LootContext lootContext = EntityPredicate.createContext(player, entity); + this.trigger(player, triggerInstance -> triggerInstance.matches(player, lootContext, source)); + } + + public record TriggerInstance( + Optional player, Optional entityPredicate, Optional killingBlow + ) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(KilledTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(KilledTrigger.TriggerInstance::entityPredicate), + DamageSourcePredicate.CODEC.optionalFieldOf("killing_blow").forGetter(KilledTrigger.TriggerInstance::killingBlow) + ) + .apply(instance, KilledTrigger.TriggerInstance::new) + ); + + public static Criterion playerKilledEntity(Optional entityPredicate) { + return CriteriaTriggers.PLAYER_KILLED_ENTITY + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(entityPredicate), Optional.empty())); + } + + public static Criterion playerKilledEntity(EntityPredicate.Builder entityPredicate) { + return CriteriaTriggers.PLAYER_KILLED_ENTITY + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entityPredicate)), Optional.empty())); + } + + public static Criterion playerKilledEntity() { + return CriteriaTriggers.PLAYER_KILLED_ENTITY.createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty())); + } + + public static Criterion playerKilledEntity( + Optional entityPredicate, Optional killingBlow + ) { + return CriteriaTriggers.PLAYER_KILLED_ENTITY + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(entityPredicate), killingBlow)); + } + + public static Criterion playerKilledEntity( + EntityPredicate.Builder entityPredicate, Optional killingBlow + ) { + return CriteriaTriggers.PLAYER_KILLED_ENTITY + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entityPredicate)), killingBlow)); + } + + public static Criterion playerKilledEntity( + Optional entityPredicate, DamageSourcePredicate.Builder killingBlow + ) { + return CriteriaTriggers.PLAYER_KILLED_ENTITY + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(entityPredicate), Optional.of(killingBlow.build()))); + } + + public static Criterion playerKilledEntity(EntityPredicate.Builder entityPredicate, DamageSourcePredicate.Builder killingBlow) { + return CriteriaTriggers.PLAYER_KILLED_ENTITY + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entityPredicate)), Optional.of(killingBlow.build()))); + } + + public static Criterion playerKilledEntityNearSculkCatalyst() { + return CriteriaTriggers.KILL_MOB_NEAR_SCULK_CATALYST + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty())); + } + + public static Criterion entityKilledPlayer(Optional entityPredicate) { + return CriteriaTriggers.ENTITY_KILLED_PLAYER + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(entityPredicate), Optional.empty())); + } + + public static Criterion entityKilledPlayer(EntityPredicate.Builder entityPredicate) { + return CriteriaTriggers.ENTITY_KILLED_PLAYER + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entityPredicate)), Optional.empty())); + } + + public static Criterion entityKilledPlayer() { + return CriteriaTriggers.ENTITY_KILLED_PLAYER.createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty())); + } + + public static Criterion entityKilledPlayer( + Optional entityPredicate, Optional killingBlow + ) { + return CriteriaTriggers.ENTITY_KILLED_PLAYER + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(entityPredicate), killingBlow)); + } + + public static Criterion entityKilledPlayer( + EntityPredicate.Builder entityPredicate, Optional killingBlow + ) { + return CriteriaTriggers.ENTITY_KILLED_PLAYER + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entityPredicate)), killingBlow)); + } + + public static Criterion entityKilledPlayer( + Optional entityPredicate, DamageSourcePredicate.Builder killingBlow + ) { + return CriteriaTriggers.ENTITY_KILLED_PLAYER + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(entityPredicate), Optional.of(killingBlow.build()))); + } + + public static Criterion entityKilledPlayer(EntityPredicate.Builder entityPredicate, DamageSourcePredicate.Builder killingBlow) { + return CriteriaTriggers.ENTITY_KILLED_PLAYER + .createCriterion(new KilledTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entityPredicate)), Optional.of(killingBlow.build()))); + } + + public boolean matches(ServerPlayer player, LootContext context, DamageSource source) { + return this.killingBlow.isPresent() && !((DamageSourcePredicate)this.killingBlow.get()).matches(player, source) + ? false + : this.entityPredicate.isEmpty() || ((ContextAwarePredicate)this.entityPredicate.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.entityPredicate, ".entity"); + } + } +} diff --git a/net/minecraft/advancements/critereon/LevitationTrigger.java b/net/minecraft/advancements/critereon/LevitationTrigger.java new file mode 100644 index 00000000..1ec34462 --- /dev/null +++ b/net/minecraft/advancements/critereon/LevitationTrigger.java @@ -0,0 +1,43 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.phys.Vec3; + +public class LevitationTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return LevitationTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Vec3 startPos, int duration) { + this.trigger(player, triggerInstance -> triggerInstance.matches(player, startPos, duration)); + } + + public record TriggerInstance(Optional player, Optional distance, MinMaxBounds.Ints duration) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(LevitationTrigger.TriggerInstance::player), + DistancePredicate.CODEC.optionalFieldOf("distance").forGetter(LevitationTrigger.TriggerInstance::distance), + MinMaxBounds.Ints.CODEC.optionalFieldOf("duration", MinMaxBounds.Ints.ANY).forGetter(LevitationTrigger.TriggerInstance::duration) + ) + .apply(instance, LevitationTrigger.TriggerInstance::new) + ); + + public static Criterion levitated(DistancePredicate distance) { + return CriteriaTriggers.LEVITATION.createCriterion(new LevitationTrigger.TriggerInstance(Optional.empty(), Optional.of(distance), MinMaxBounds.Ints.ANY)); + } + + public boolean matches(ServerPlayer player, Vec3 startPos, int duration) { + return this.distance.isPresent() + && !((DistancePredicate)this.distance.get()).matches(startPos.x, startPos.y, startPos.z, player.getX(), player.getY(), player.getZ()) + ? false + : this.duration.matches(duration); + } + } +} diff --git a/net/minecraft/advancements/critereon/LightPredicate.java b/net/minecraft/advancements/critereon/LightPredicate.java new file mode 100644 index 00000000..18779bee --- /dev/null +++ b/net/minecraft/advancements/critereon/LightPredicate.java @@ -0,0 +1,34 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; + +public record LightPredicate(MinMaxBounds.Ints composite) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group(MinMaxBounds.Ints.CODEC.optionalFieldOf("light", MinMaxBounds.Ints.ANY).forGetter(LightPredicate::composite)) + .apply(instance, LightPredicate::new) + ); + + public boolean matches(ServerLevel level, BlockPos pos) { + return !level.isLoaded(pos) ? false : this.composite.matches(level.getMaxLocalRawBrightness(pos)); + } + + public static class Builder { + private MinMaxBounds.Ints composite = MinMaxBounds.Ints.ANY; + + public static LightPredicate.Builder light() { + return new LightPredicate.Builder(); + } + + public LightPredicate.Builder setComposite(MinMaxBounds.Ints composite) { + this.composite = composite; + return this; + } + + public LightPredicate build() { + return new LightPredicate(this.composite); + } + } +} diff --git a/net/minecraft/advancements/critereon/LightningBoltPredicate.java b/net/minecraft/advancements/critereon/LightningBoltPredicate.java new file mode 100644 index 00000000..553b628e --- /dev/null +++ b/net/minecraft/advancements/critereon/LightningBoltPredicate.java @@ -0,0 +1,40 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LightningBolt; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public record LightningBoltPredicate(MinMaxBounds.Ints blocksSetOnFire, Optional entityStruck) implements EntitySubPredicate { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group( + MinMaxBounds.Ints.CODEC.optionalFieldOf("blocks_set_on_fire", MinMaxBounds.Ints.ANY).forGetter(LightningBoltPredicate::blocksSetOnFire), + EntityPredicate.CODEC.optionalFieldOf("entity_struck").forGetter(LightningBoltPredicate::entityStruck) + ) + .apply(instance, LightningBoltPredicate::new) + ); + + public static LightningBoltPredicate blockSetOnFire(MinMaxBounds.Ints blocksSetOnFire) { + return new LightningBoltPredicate(blocksSetOnFire, Optional.empty()); + } + + @Override + public MapCodec codec() { + return EntitySubPredicates.LIGHTNING; + } + + @Override + public boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position) { + return !(entity instanceof LightningBolt lightningBolt) + ? false + : this.blocksSetOnFire.matches(lightningBolt.getBlocksSetOnFire()) + && ( + this.entityStruck.isEmpty() + || lightningBolt.getHitEntities().anyMatch(entityx -> ((EntityPredicate)this.entityStruck.get()).matches(level, position, entityx)) + ); + } +} diff --git a/net/minecraft/advancements/critereon/LightningStrikeTrigger.java b/net/minecraft/advancements/critereon/LightningStrikeTrigger.java new file mode 100644 index 00000000..5765e8cd --- /dev/null +++ b/net/minecraft/advancements/critereon/LightningStrikeTrigger.java @@ -0,0 +1,56 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LightningBolt; +import net.minecraft.world.level.storage.loot.LootContext; + +public class LightningStrikeTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return LightningStrikeTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, LightningBolt lightning, List nearbyEntities) { + List list = (List)nearbyEntities.stream().map(entity -> EntityPredicate.createContext(player, entity)).collect(Collectors.toList()); + LootContext lootContext = EntityPredicate.createContext(player, lightning); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext, list)); + } + + public record TriggerInstance(Optional player, Optional lightning, Optional bystander) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(LightningStrikeTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("lightning").forGetter(LightningStrikeTrigger.TriggerInstance::lightning), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("bystander").forGetter(LightningStrikeTrigger.TriggerInstance::bystander) + ) + .apply(instance, LightningStrikeTrigger.TriggerInstance::new) + ); + + public static Criterion lightningStrike(Optional lightning, Optional bystander) { + return CriteriaTriggers.LIGHTNING_STRIKE + .createCriterion(new LightningStrikeTrigger.TriggerInstance(Optional.empty(), EntityPredicate.wrap(lightning), EntityPredicate.wrap(bystander))); + } + + public boolean matches(LootContext playerContext, List entityContexts) { + return this.lightning.isPresent() && !((ContextAwarePredicate)this.lightning.get()).matches(playerContext) + ? false + : !this.bystander.isPresent() || !entityContexts.stream().noneMatch(((ContextAwarePredicate)this.bystander.get())::matches); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.lightning, ".lightning"); + validator.validateEntity(this.bystander, ".bystander"); + } + } +} diff --git a/net/minecraft/advancements/critereon/LocationPredicate.java b/net/minecraft/advancements/critereon/LocationPredicate.java new file mode 100644 index 00000000..e89ed128 --- /dev/null +++ b/net/minecraft/advancements/critereon/LocationPredicate.java @@ -0,0 +1,190 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.CampfireBlock; +import net.minecraft.world.level.levelgen.structure.Structure; + +public record LocationPredicate( + Optional position, + Optional> biomes, + Optional> structures, + Optional> dimension, + Optional smokey, + Optional light, + Optional block, + Optional fluid, + Optional canSeeSky +) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + LocationPredicate.PositionPredicate.CODEC.optionalFieldOf("position").forGetter(LocationPredicate::position), + RegistryCodecs.homogeneousList(Registries.BIOME).optionalFieldOf("biomes").forGetter(LocationPredicate::biomes), + RegistryCodecs.homogeneousList(Registries.STRUCTURE).optionalFieldOf("structures").forGetter(LocationPredicate::structures), + ResourceKey.codec(Registries.DIMENSION).optionalFieldOf("dimension").forGetter(LocationPredicate::dimension), + Codec.BOOL.optionalFieldOf("smokey").forGetter(LocationPredicate::smokey), + LightPredicate.CODEC.optionalFieldOf("light").forGetter(LocationPredicate::light), + BlockPredicate.CODEC.optionalFieldOf("block").forGetter(LocationPredicate::block), + FluidPredicate.CODEC.optionalFieldOf("fluid").forGetter(LocationPredicate::fluid), + Codec.BOOL.optionalFieldOf("can_see_sky").forGetter(LocationPredicate::canSeeSky) + ) + .apply(instance, LocationPredicate::new) + ); + + public boolean matches(ServerLevel level, double x, double y, double z) { + if (this.position.isPresent() && !((LocationPredicate.PositionPredicate)this.position.get()).matches(x, y, z)) { + return false; + } else if (this.dimension.isPresent() && this.dimension.get() != level.dimension()) { + return false; + } else { + BlockPos blockPos = BlockPos.containing(x, y, z); + boolean bl = level.isLoaded(blockPos); + if (!this.biomes.isPresent() || bl && ((HolderSet)this.biomes.get()).contains(level.getBiome(blockPos))) { + if (!this.structures.isPresent() || bl && level.structureManager().getStructureWithPieceAt(blockPos, (HolderSet)this.structures.get()).isValid() + ) + { + if (!this.smokey.isPresent() || bl && (Boolean)this.smokey.get() == CampfireBlock.isSmokeyPos(level, blockPos)) { + if (this.light.isPresent() && !((LightPredicate)this.light.get()).matches(level, blockPos)) { + return false; + } else if (this.block.isPresent() && !((BlockPredicate)this.block.get()).matches(level, blockPos)) { + return false; + } else { + return this.fluid.isPresent() && !((FluidPredicate)this.fluid.get()).matches(level, blockPos) + ? false + : !this.canSeeSky.isPresent() || (Boolean)this.canSeeSky.get() == level.canSeeSky(blockPos); + } + } else { + return false; + } + } else { + return false; + } + } else { + return false; + } + } + } + + public static class Builder { + private MinMaxBounds.Doubles x = MinMaxBounds.Doubles.ANY; + private MinMaxBounds.Doubles y = MinMaxBounds.Doubles.ANY; + private MinMaxBounds.Doubles z = MinMaxBounds.Doubles.ANY; + private Optional> biomes = Optional.empty(); + private Optional> structures = Optional.empty(); + private Optional> dimension = Optional.empty(); + private Optional smokey = Optional.empty(); + private Optional light = Optional.empty(); + private Optional block = Optional.empty(); + private Optional fluid = Optional.empty(); + private Optional canSeeSky = Optional.empty(); + + public static LocationPredicate.Builder location() { + return new LocationPredicate.Builder(); + } + + public static LocationPredicate.Builder inBiome(Holder biome) { + return location().setBiomes(HolderSet.direct(biome)); + } + + public static LocationPredicate.Builder inDimension(ResourceKey dimension) { + return location().setDimension(dimension); + } + + public static LocationPredicate.Builder inStructure(Holder structure) { + return location().setStructures(HolderSet.direct(structure)); + } + + public static LocationPredicate.Builder atYLocation(MinMaxBounds.Doubles y) { + return location().setY(y); + } + + public LocationPredicate.Builder setX(MinMaxBounds.Doubles x) { + this.x = x; + return this; + } + + public LocationPredicate.Builder setY(MinMaxBounds.Doubles y) { + this.y = y; + return this; + } + + public LocationPredicate.Builder setZ(MinMaxBounds.Doubles z) { + this.z = z; + return this; + } + + public LocationPredicate.Builder setBiomes(HolderSet biomes) { + this.biomes = Optional.of(biomes); + return this; + } + + public LocationPredicate.Builder setStructures(HolderSet structures) { + this.structures = Optional.of(structures); + return this; + } + + public LocationPredicate.Builder setDimension(ResourceKey dimension) { + this.dimension = Optional.of(dimension); + return this; + } + + public LocationPredicate.Builder setLight(LightPredicate.Builder light) { + this.light = Optional.of(light.build()); + return this; + } + + public LocationPredicate.Builder setBlock(BlockPredicate.Builder block) { + this.block = Optional.of(block.build()); + return this; + } + + public LocationPredicate.Builder setFluid(FluidPredicate.Builder fluid) { + this.fluid = Optional.of(fluid.build()); + return this; + } + + public LocationPredicate.Builder setSmokey(boolean smokey) { + this.smokey = Optional.of(smokey); + return this; + } + + public LocationPredicate.Builder setCanSeeSky(boolean canSeeSky) { + this.canSeeSky = Optional.of(canSeeSky); + return this; + } + + public LocationPredicate build() { + Optional optional = LocationPredicate.PositionPredicate.of(this.x, this.y, this.z); + return new LocationPredicate(optional, this.biomes, this.structures, this.dimension, this.smokey, this.light, this.block, this.fluid, this.canSeeSky); + } + } + + record PositionPredicate(MinMaxBounds.Doubles x, MinMaxBounds.Doubles y, MinMaxBounds.Doubles z) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + MinMaxBounds.Doubles.CODEC.optionalFieldOf("x", MinMaxBounds.Doubles.ANY).forGetter(LocationPredicate.PositionPredicate::x), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("y", MinMaxBounds.Doubles.ANY).forGetter(LocationPredicate.PositionPredicate::y), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("z", MinMaxBounds.Doubles.ANY).forGetter(LocationPredicate.PositionPredicate::z) + ) + .apply(instance, LocationPredicate.PositionPredicate::new) + ); + + static Optional of(MinMaxBounds.Doubles x, MinMaxBounds.Doubles y, MinMaxBounds.Doubles z) { + return x.isAny() && y.isAny() && z.isAny() ? Optional.empty() : Optional.of(new LocationPredicate.PositionPredicate(x, y, z)); + } + + public boolean matches(double x, double y, double z) { + return this.x.matches(x) && this.y.matches(y) && this.z.matches(z); + } + } +} diff --git a/net/minecraft/advancements/critereon/LootTableTrigger.java b/net/minecraft/advancements/critereon/LootTableTrigger.java new file mode 100644 index 00000000..519ad795 --- /dev/null +++ b/net/minecraft/advancements/critereon/LootTableTrigger.java @@ -0,0 +1,40 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.storage.loot.LootTable; + +public class LootTableTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return LootTableTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ResourceKey lootTable) { + this.trigger(player, triggerInstance -> triggerInstance.matches(lootTable)); + } + + public record TriggerInstance(Optional player, ResourceKey lootTable) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(LootTableTrigger.TriggerInstance::player), + ResourceKey.codec(Registries.LOOT_TABLE).fieldOf("loot_table").forGetter(LootTableTrigger.TriggerInstance::lootTable) + ) + .apply(instance, LootTableTrigger.TriggerInstance::new) + ); + + public static Criterion lootTableUsed(ResourceKey lootTable) { + return CriteriaTriggers.GENERATE_LOOT.createCriterion(new LootTableTrigger.TriggerInstance(Optional.empty(), lootTable)); + } + + public boolean matches(ResourceKey lootTable) { + return this.lootTable == lootTable; + } + } +} diff --git a/net/minecraft/advancements/critereon/MinMaxBounds.java b/net/minecraft/advancements/critereon/MinMaxBounds.java new file mode 100644 index 00000000..eacd7248 --- /dev/null +++ b/net/minecraft/advancements/critereon/MinMaxBounds.java @@ -0,0 +1,232 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; +import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import com.mojang.datafixers.util.Either; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Supplier; +import net.minecraft.network.chat.Component; + +public interface MinMaxBounds { + SimpleCommandExceptionType ERROR_EMPTY = new SimpleCommandExceptionType(Component.translatable("argument.range.empty")); + SimpleCommandExceptionType ERROR_SWAPPED = new SimpleCommandExceptionType(Component.translatable("argument.range.swapped")); + + Optional min(); + + Optional max(); + + default boolean isAny() { + return this.min().isEmpty() && this.max().isEmpty(); + } + + default Optional unwrapPoint() { + Optional optional = this.min(); + Optional optional2 = this.max(); + return optional.equals(optional2) ? optional : Optional.empty(); + } + + static > Codec createCodec(Codec codec, MinMaxBounds.BoundsFactory boundsFactory) { + Codec codec2 = RecordCodecBuilder.create( + instance -> instance.group(codec.optionalFieldOf("min").forGetter(MinMaxBounds::min), codec.optionalFieldOf("max").forGetter(MinMaxBounds::max)) + .apply(instance, boundsFactory::create) + ); + return Codec.either(codec2, codec) + .xmap(either -> either.map(minMaxBounds -> minMaxBounds, number -> boundsFactory.create(Optional.of(number), Optional.of(number))), minMaxBounds -> { + Optional optional = minMaxBounds.unwrapPoint(); + return optional.isPresent() ? Either.right((Number)optional.get()) : Either.left(minMaxBounds); + }); + } + + static > R fromReader( + StringReader reader, + MinMaxBounds.BoundsFromReaderFactory boundedFactory, + Function valueFactory, + Supplier commandExceptionSupplier, + Function formatter + ) throws CommandSyntaxException { + if (!reader.canRead()) { + throw ERROR_EMPTY.createWithContext(reader); + } else { + int i = reader.getCursor(); + + try { + Optional optional = readNumber(reader, valueFactory, commandExceptionSupplier).map(formatter); + Optional optional2; + if (reader.canRead(2) && reader.peek() == '.' && reader.peek(1) == '.') { + reader.skip(); + reader.skip(); + optional2 = readNumber(reader, valueFactory, commandExceptionSupplier).map(formatter); + if (optional.isEmpty() && optional2.isEmpty()) { + throw ERROR_EMPTY.createWithContext(reader); + } + } else { + optional2 = optional; + } + + if (optional.isEmpty() && optional2.isEmpty()) { + throw ERROR_EMPTY.createWithContext(reader); + } else { + return boundedFactory.create(reader, optional, optional2); + } + } catch (CommandSyntaxException var8) { + reader.setCursor(i); + throw new CommandSyntaxException(var8.getType(), var8.getRawMessage(), var8.getInput(), i); + } + } + } + + private static Optional readNumber( + StringReader reader, Function stringToValueFunction, Supplier commandExceptionSupplier + ) throws CommandSyntaxException { + int i = reader.getCursor(); + + while (reader.canRead() && isAllowedInputChat(reader)) { + reader.skip(); + } + + String string = reader.getString().substring(i, reader.getCursor()); + if (string.isEmpty()) { + return Optional.empty(); + } else { + try { + return Optional.of((Number)stringToValueFunction.apply(string)); + } catch (NumberFormatException var6) { + throw ((DynamicCommandExceptionType)commandExceptionSupplier.get()).createWithContext(reader, string); + } + } + } + + private static boolean isAllowedInputChat(StringReader reader) { + char c = reader.peek(); + if ((c < '0' || c > '9') && c != '-') { + return c != '.' ? false : !reader.canRead(2) || reader.peek(1) != '.'; + } else { + return true; + } + } + + @FunctionalInterface + public interface BoundsFactory> { + R create(Optional optional, Optional optional2); + } + + @FunctionalInterface + public interface BoundsFromReaderFactory> { + R create(StringReader stringReader, Optional optional, Optional optional2) throws CommandSyntaxException; + } + + public record Doubles(Optional min, Optional max, Optional minSq, Optional maxSq) implements MinMaxBounds { + public static final MinMaxBounds.Doubles ANY = new MinMaxBounds.Doubles(Optional.empty(), Optional.empty()); + public static final Codec CODEC = MinMaxBounds.createCodec((Codec)Codec.DOUBLE, MinMaxBounds.Doubles::new); + + private Doubles(Optional min, Optional max) { + this(min, max, squareOpt(min), squareOpt(max)); + } + + private static MinMaxBounds.Doubles create(StringReader reader, Optional min, Optional max) throws CommandSyntaxException { + if (min.isPresent() && max.isPresent() && (Double)min.get() > (Double)max.get()) { + throw ERROR_SWAPPED.createWithContext(reader); + } else { + return new MinMaxBounds.Doubles(min, max); + } + } + + private static Optional squareOpt(Optional value) { + return value.map(double_ -> double_ * double_); + } + + public static MinMaxBounds.Doubles exactly(double value) { + return new MinMaxBounds.Doubles(Optional.of(value), Optional.of(value)); + } + + public static MinMaxBounds.Doubles between(double min, double max) { + return new MinMaxBounds.Doubles(Optional.of(min), Optional.of(max)); + } + + public static MinMaxBounds.Doubles atLeast(double min) { + return new MinMaxBounds.Doubles(Optional.of(min), Optional.empty()); + } + + public static MinMaxBounds.Doubles atMost(double max) { + return new MinMaxBounds.Doubles(Optional.empty(), Optional.of(max)); + } + + public boolean matches(double value) { + return this.min.isPresent() && this.min.get() > value ? false : this.max.isEmpty() || !((Double)this.max.get() < value); + } + + public boolean matchesSqr(double value) { + return this.minSq.isPresent() && this.minSq.get() > value ? false : this.maxSq.isEmpty() || !((Double)this.maxSq.get() < value); + } + + public static MinMaxBounds.Doubles fromReader(StringReader reader) throws CommandSyntaxException { + return fromReader(reader, double_ -> double_); + } + + public static MinMaxBounds.Doubles fromReader(StringReader reader, Function formatter) throws CommandSyntaxException { + return MinMaxBounds.fromReader( + reader, MinMaxBounds.Doubles::create, Double::parseDouble, CommandSyntaxException.BUILT_IN_EXCEPTIONS::readerInvalidDouble, (Function)formatter + ); + } + } + + public record Ints(Optional min, Optional max, Optional minSq, Optional maxSq) implements MinMaxBounds { + public static final MinMaxBounds.Ints ANY = new MinMaxBounds.Ints(Optional.empty(), Optional.empty()); + public static final Codec CODEC = MinMaxBounds.createCodec((Codec)Codec.INT, MinMaxBounds.Ints::new); + + private Ints(Optional min, Optional max) { + this(min, max, min.map(integer -> integer.longValue() * integer.longValue()), squareOpt(max)); + } + + private static MinMaxBounds.Ints create(StringReader reader, Optional min, Optional max) throws CommandSyntaxException { + if (min.isPresent() && max.isPresent() && (Integer)min.get() > (Integer)max.get()) { + throw ERROR_SWAPPED.createWithContext(reader); + } else { + return new MinMaxBounds.Ints(min, max); + } + } + + private static Optional squareOpt(Optional value) { + return value.map(integer -> integer.longValue() * integer.longValue()); + } + + public static MinMaxBounds.Ints exactly(int value) { + return new MinMaxBounds.Ints(Optional.of(value), Optional.of(value)); + } + + public static MinMaxBounds.Ints between(int min, int max) { + return new MinMaxBounds.Ints(Optional.of(min), Optional.of(max)); + } + + public static MinMaxBounds.Ints atLeast(int min) { + return new MinMaxBounds.Ints(Optional.of(min), Optional.empty()); + } + + public static MinMaxBounds.Ints atMost(int max) { + return new MinMaxBounds.Ints(Optional.empty(), Optional.of(max)); + } + + public boolean matches(int value) { + return this.min.isPresent() && this.min.get() > value ? false : this.max.isEmpty() || (Integer)this.max.get() >= value; + } + + public boolean matchesSqr(long value) { + return this.minSq.isPresent() && this.minSq.get() > value ? false : this.maxSq.isEmpty() || (Long)this.maxSq.get() >= value; + } + + public static MinMaxBounds.Ints fromReader(StringReader reader) throws CommandSyntaxException { + return fromReader(reader, integer -> integer); + } + + public static MinMaxBounds.Ints fromReader(StringReader reader, Function valueFunction) throws CommandSyntaxException { + return MinMaxBounds.fromReader( + reader, MinMaxBounds.Ints::create, Integer::parseInt, CommandSyntaxException.BUILT_IN_EXCEPTIONS::readerInvalidInt, (Function)valueFunction + ); + } + } +} diff --git a/net/minecraft/advancements/critereon/MobEffectsPredicate.java b/net/minecraft/advancements/critereon/MobEffectsPredicate.java new file mode 100644 index 00000000..6e07e327 --- /dev/null +++ b/net/minecraft/advancements/critereon/MobEffectsPredicate.java @@ -0,0 +1,90 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.collect.ImmutableMap; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Map; +import java.util.Optional; +import java.util.Map.Entry; +import net.minecraft.core.Holder; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import org.jetbrains.annotations.Nullable; + +public record MobEffectsPredicate(Map, MobEffectsPredicate.MobEffectInstancePredicate> effectMap) { + public static final Codec CODEC = Codec.unboundedMap(MobEffect.CODEC, MobEffectsPredicate.MobEffectInstancePredicate.CODEC) + .xmap(MobEffectsPredicate::new, MobEffectsPredicate::effectMap); + + public boolean matches(Entity entity) { + return entity instanceof LivingEntity livingEntity && this.matches(livingEntity.getActiveEffectsMap()); + } + + public boolean matches(LivingEntity entity) { + return this.matches(entity.getActiveEffectsMap()); + } + + public boolean matches(Map, MobEffectInstance> effects) { + for (Entry, MobEffectsPredicate.MobEffectInstancePredicate> entry : this.effectMap.entrySet()) { + MobEffectInstance mobEffectInstance = (MobEffectInstance)effects.get(entry.getKey()); + if (!((MobEffectsPredicate.MobEffectInstancePredicate)entry.getValue()).matches(mobEffectInstance)) { + return false; + } + } + + return true; + } + + public static class Builder { + private final ImmutableMap.Builder, MobEffectsPredicate.MobEffectInstancePredicate> effectMap = ImmutableMap.builder(); + + public static MobEffectsPredicate.Builder effects() { + return new MobEffectsPredicate.Builder(); + } + + public MobEffectsPredicate.Builder and(Holder effect) { + this.effectMap.put(effect, new MobEffectsPredicate.MobEffectInstancePredicate()); + return this; + } + + public MobEffectsPredicate.Builder and(Holder effect, MobEffectsPredicate.MobEffectInstancePredicate predicate) { + this.effectMap.put(effect, predicate); + return this; + } + + public Optional build() { + return Optional.of(new MobEffectsPredicate(this.effectMap.build())); + } + } + + public record MobEffectInstancePredicate(MinMaxBounds.Ints amplifier, MinMaxBounds.Ints duration, Optional ambient, Optional visible) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + MinMaxBounds.Ints.CODEC.optionalFieldOf("amplifier", MinMaxBounds.Ints.ANY).forGetter(MobEffectsPredicate.MobEffectInstancePredicate::amplifier), + MinMaxBounds.Ints.CODEC.optionalFieldOf("duration", MinMaxBounds.Ints.ANY).forGetter(MobEffectsPredicate.MobEffectInstancePredicate::duration), + Codec.BOOL.optionalFieldOf("ambient").forGetter(MobEffectsPredicate.MobEffectInstancePredicate::ambient), + Codec.BOOL.optionalFieldOf("visible").forGetter(MobEffectsPredicate.MobEffectInstancePredicate::visible) + ) + .apply(instance, MobEffectsPredicate.MobEffectInstancePredicate::new) + ); + + public MobEffectInstancePredicate() { + this(MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, Optional.empty(), Optional.empty()); + } + + public boolean matches(@Nullable MobEffectInstance effect) { + if (effect == null) { + return false; + } else if (!this.amplifier.matches(effect.getAmplifier())) { + return false; + } else if (!this.duration.matches(effect.getDuration())) { + return false; + } else { + return this.ambient.isPresent() && this.ambient.get() != effect.isAmbient() + ? false + : !this.visible.isPresent() || (Boolean)this.visible.get() == effect.isVisible(); + } + } + } +} diff --git a/net/minecraft/advancements/critereon/MovementPredicate.java b/net/minecraft/advancements/critereon/MovementPredicate.java new file mode 100644 index 00000000..6688ca43 --- /dev/null +++ b/net/minecraft/advancements/critereon/MovementPredicate.java @@ -0,0 +1,95 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.Mth; + +public record MovementPredicate( + MinMaxBounds.Doubles x, + MinMaxBounds.Doubles y, + MinMaxBounds.Doubles z, + MinMaxBounds.Doubles speed, + MinMaxBounds.Doubles horizontalSpeed, + MinMaxBounds.Doubles verticalSpeed, + MinMaxBounds.Doubles fallDistance +) { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + MinMaxBounds.Doubles.CODEC.optionalFieldOf("x", MinMaxBounds.Doubles.ANY).forGetter(MovementPredicate::x), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("y", MinMaxBounds.Doubles.ANY).forGetter(MovementPredicate::y), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("z", MinMaxBounds.Doubles.ANY).forGetter(MovementPredicate::z), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("speed", MinMaxBounds.Doubles.ANY).forGetter(MovementPredicate::speed), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("horizontal_speed", MinMaxBounds.Doubles.ANY).forGetter(MovementPredicate::horizontalSpeed), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("vertical_speed", MinMaxBounds.Doubles.ANY).forGetter(MovementPredicate::verticalSpeed), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("fall_distance", MinMaxBounds.Doubles.ANY).forGetter(MovementPredicate::fallDistance) + ) + .apply(instance, MovementPredicate::new) + ); + + public static MovementPredicate speed(MinMaxBounds.Doubles speed) { + return new MovementPredicate( + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + speed, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY + ); + } + + public static MovementPredicate horizontalSpeed(MinMaxBounds.Doubles horizontalSpeed) { + return new MovementPredicate( + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + horizontalSpeed, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY + ); + } + + public static MovementPredicate verticalSpeed(MinMaxBounds.Doubles verticalSpeed) { + return new MovementPredicate( + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + verticalSpeed, + MinMaxBounds.Doubles.ANY + ); + } + + public static MovementPredicate fallDistance(MinMaxBounds.Doubles fallDistance) { + return new MovementPredicate( + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + MinMaxBounds.Doubles.ANY, + fallDistance + ); + } + + public boolean matches(double x, double y, double z, double fallDistance) { + if (this.x.matches(x) && this.y.matches(y) && this.z.matches(z)) { + double d = Mth.lengthSquared(x, y, z); + if (!this.speed.matchesSqr(d)) { + return false; + } else { + double e = Mth.lengthSquared(x, z); + if (!this.horizontalSpeed.matchesSqr(e)) { + return false; + } else { + double f = Math.abs(y); + return !this.verticalSpeed.matches(f) ? false : this.fallDistance.matches(fallDistance); + } + } + } else { + return false; + } + } +} diff --git a/net/minecraft/advancements/critereon/NbtPredicate.java b/net/minecraft/advancements/critereon/NbtPredicate.java new file mode 100644 index 00000000..1b9c06dc --- /dev/null +++ b/net/minecraft/advancements/critereon/NbtPredicate.java @@ -0,0 +1,46 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import io.netty.buffer.ByteBuf; +import net.minecraft.core.component.DataComponents; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.nbt.Tag; +import net.minecraft.nbt.TagParser; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; +import org.jetbrains.annotations.Nullable; + +public record NbtPredicate(CompoundTag tag) { + public static final Codec CODEC = TagParser.LENIENT_CODEC.xmap(NbtPredicate::new, NbtPredicate::tag); + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.COMPOUND_TAG.map(NbtPredicate::new, NbtPredicate::tag); + + public boolean matches(ItemStack stack) { + CustomData customData = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY); + return customData.matchedBy(this.tag); + } + + public boolean matches(Entity entity) { + return this.matches(getEntityTagToCompare(entity)); + } + + public boolean matches(@Nullable Tag tag) { + return tag != null && NbtUtils.compareNbt(this.tag, tag, true); + } + + public static CompoundTag getEntityTagToCompare(Entity entity) { + CompoundTag compoundTag = entity.saveWithoutId(new CompoundTag()); + if (entity instanceof Player) { + ItemStack itemStack = ((Player)entity).getInventory().getSelected(); + if (!itemStack.isEmpty()) { + compoundTag.put("SelectedItem", itemStack.save(entity.registryAccess())); + } + } + + return compoundTag; + } +} diff --git a/net/minecraft/advancements/critereon/PickedUpItemTrigger.java b/net/minecraft/advancements/critereon/PickedUpItemTrigger.java new file mode 100644 index 00000000..73a0105c --- /dev/null +++ b/net/minecraft/advancements/critereon/PickedUpItemTrigger.java @@ -0,0 +1,60 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.storage.loot.LootContext; +import org.jetbrains.annotations.Nullable; + +public class PickedUpItemTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return PickedUpItemTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack stack, @Nullable Entity entity) { + LootContext lootContext = EntityPredicate.createContext(player, entity); + this.trigger(player, triggerInstance -> triggerInstance.matches(player, stack, lootContext)); + } + + public record TriggerInstance(Optional player, Optional item, Optional entity) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(PickedUpItemTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(PickedUpItemTrigger.TriggerInstance::item), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(PickedUpItemTrigger.TriggerInstance::entity) + ) + .apply(instance, PickedUpItemTrigger.TriggerInstance::new) + ); + + public static Criterion thrownItemPickedUpByEntity( + ContextAwarePredicate player, Optional item, Optional entity + ) { + return CriteriaTriggers.THROWN_ITEM_PICKED_UP_BY_ENTITY.createCriterion(new PickedUpItemTrigger.TriggerInstance(Optional.of(player), item, entity)); + } + + public static Criterion thrownItemPickedUpByPlayer( + Optional player, Optional item, Optional entity + ) { + return CriteriaTriggers.THROWN_ITEM_PICKED_UP_BY_PLAYER.createCriterion(new PickedUpItemTrigger.TriggerInstance(player, item, entity)); + } + + public boolean matches(ServerPlayer player, ItemStack stack, LootContext context) { + return this.item.isPresent() && !((ItemPredicate)this.item.get()).test(stack) + ? false + : !this.entity.isPresent() || ((ContextAwarePredicate)this.entity.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.entity, ".entity"); + } + } +} diff --git a/net/minecraft/advancements/critereon/PlayerHurtEntityTrigger.java b/net/minecraft/advancements/critereon/PlayerHurtEntityTrigger.java new file mode 100644 index 00000000..fdb28761 --- /dev/null +++ b/net/minecraft/advancements/critereon/PlayerHurtEntityTrigger.java @@ -0,0 +1,76 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.storage.loot.LootContext; + +public class PlayerHurtEntityTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return PlayerHurtEntityTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Entity entity, DamageSource source, float amountDealt, float amountTaken, boolean blocked) { + LootContext lootContext = EntityPredicate.createContext(player, entity); + this.trigger(player, triggerInstance -> triggerInstance.matches(player, lootContext, source, amountDealt, amountTaken, blocked)); + } + + public record TriggerInstance(Optional player, Optional damage, Optional entity) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(PlayerHurtEntityTrigger.TriggerInstance::player), + DamagePredicate.CODEC.optionalFieldOf("damage").forGetter(PlayerHurtEntityTrigger.TriggerInstance::damage), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(PlayerHurtEntityTrigger.TriggerInstance::entity) + ) + .apply(instance, PlayerHurtEntityTrigger.TriggerInstance::new) + ); + + public static Criterion playerHurtEntity() { + return CriteriaTriggers.PLAYER_HURT_ENTITY + .createCriterion(new PlayerHurtEntityTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty())); + } + + public static Criterion playerHurtEntityWithDamage(Optional damage) { + return CriteriaTriggers.PLAYER_HURT_ENTITY.createCriterion(new PlayerHurtEntityTrigger.TriggerInstance(Optional.empty(), damage, Optional.empty())); + } + + public static Criterion playerHurtEntityWithDamage(DamagePredicate.Builder damage) { + return CriteriaTriggers.PLAYER_HURT_ENTITY + .createCriterion(new PlayerHurtEntityTrigger.TriggerInstance(Optional.empty(), Optional.of(damage.build()), Optional.empty())); + } + + public static Criterion playerHurtEntity(Optional entity) { + return CriteriaTriggers.PLAYER_HURT_ENTITY + .createCriterion(new PlayerHurtEntityTrigger.TriggerInstance(Optional.empty(), Optional.empty(), EntityPredicate.wrap(entity))); + } + + public static Criterion playerHurtEntity(Optional damage, Optional entity) { + return CriteriaTriggers.PLAYER_HURT_ENTITY + .createCriterion(new PlayerHurtEntityTrigger.TriggerInstance(Optional.empty(), damage, EntityPredicate.wrap(entity))); + } + + public static Criterion playerHurtEntity(DamagePredicate.Builder damage, Optional entity) { + return CriteriaTriggers.PLAYER_HURT_ENTITY + .createCriterion(new PlayerHurtEntityTrigger.TriggerInstance(Optional.empty(), Optional.of(damage.build()), EntityPredicate.wrap(entity))); + } + + public boolean matches(ServerPlayer player, LootContext context, DamageSource damage, float dealt, float taken, boolean blocked) { + return this.damage.isPresent() && !((DamagePredicate)this.damage.get()).matches(player, damage, dealt, taken, blocked) + ? false + : !this.entity.isPresent() || ((ContextAwarePredicate)this.entity.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.entity, ".entity"); + } + } +} diff --git a/net/minecraft/advancements/critereon/PlayerInteractTrigger.java b/net/minecraft/advancements/critereon/PlayerInteractTrigger.java new file mode 100644 index 00000000..52084a3b --- /dev/null +++ b/net/minecraft/advancements/critereon/PlayerInteractTrigger.java @@ -0,0 +1,57 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.storage.loot.LootContext; + +public class PlayerInteractTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return PlayerInteractTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack item, Entity entity) { + LootContext lootContext = EntityPredicate.createContext(player, entity); + this.trigger(player, triggerInstance -> triggerInstance.matches(item, lootContext)); + } + + public record TriggerInstance(Optional player, Optional item, Optional entity) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(PlayerInteractTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(PlayerInteractTrigger.TriggerInstance::item), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(PlayerInteractTrigger.TriggerInstance::entity) + ) + .apply(instance, PlayerInteractTrigger.TriggerInstance::new) + ); + + public static Criterion itemUsedOnEntity( + Optional player, ItemPredicate.Builder item, Optional entity + ) { + return CriteriaTriggers.PLAYER_INTERACTED_WITH_ENTITY.createCriterion(new PlayerInteractTrigger.TriggerInstance(player, Optional.of(item.build()), entity)); + } + + public static Criterion itemUsedOnEntity(ItemPredicate.Builder item, Optional entity) { + return itemUsedOnEntity(Optional.empty(), item, entity); + } + + public boolean matches(ItemStack item, LootContext lootContext) { + return this.item.isPresent() && !((ItemPredicate)this.item.get()).test(item) + ? false + : this.entity.isEmpty() || ((ContextAwarePredicate)this.entity.get()).matches(lootContext); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.entity, ".entity"); + } + } +} diff --git a/net/minecraft/advancements/critereon/PlayerPredicate.java b/net/minecraft/advancements/critereon/PlayerPredicate.java new file mode 100644 index 00000000..00fecef0 --- /dev/null +++ b/net/minecraft/advancements/critereon/PlayerPredicate.java @@ -0,0 +1,245 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Maps; +import com.mojang.datafixers.util.Either; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import it.unimi.dsi.fastutil.objects.Object2BooleanMap; +import it.unimi.dsi.fastutil.objects.Object2BooleanMaps; +import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; +import it.unimi.dsi.fastutil.objects.Object2BooleanMap.Entry; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Predicate; +import java.util.function.Supplier; +import net.minecraft.advancements.AdvancementHolder; +import net.minecraft.advancements.AdvancementProgress; +import net.minecraft.advancements.CriterionProgress; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.PlayerAdvancements; +import net.minecraft.server.ServerAdvancementManager; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.stats.RecipeBook; +import net.minecraft.stats.Stat; +import net.minecraft.stats.StatType; +import net.minecraft.stats.StatsCounter; +import net.minecraft.util.ExtraCodecs; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.projectile.ProjectileUtil; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public record PlayerPredicate( + MinMaxBounds.Ints level, + GameTypePredicate gameType, + List> stats, + Object2BooleanMap recipes, + Map advancements, + Optional lookingAt +) implements EntitySubPredicate { + public static final int LOOKING_AT_RANGE = 100; + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group( + MinMaxBounds.Ints.CODEC.optionalFieldOf("level", MinMaxBounds.Ints.ANY).forGetter(PlayerPredicate::level), + GameTypePredicate.CODEC.optionalFieldOf("gamemode", GameTypePredicate.ANY).forGetter(PlayerPredicate::gameType), + PlayerPredicate.StatMatcher.CODEC.listOf().optionalFieldOf("stats", List.of()).forGetter(PlayerPredicate::stats), + ExtraCodecs.object2BooleanMap(ResourceLocation.CODEC).optionalFieldOf("recipes", Object2BooleanMaps.emptyMap()).forGetter(PlayerPredicate::recipes), + Codec.unboundedMap(ResourceLocation.CODEC, PlayerPredicate.AdvancementPredicate.CODEC) + .optionalFieldOf("advancements", Map.of()) + .forGetter(PlayerPredicate::advancements), + EntityPredicate.CODEC.optionalFieldOf("looking_at").forGetter(PlayerPredicate::lookingAt) + ) + .apply(instance, PlayerPredicate::new) + ); + + @Override + public boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position) { + if (!(entity instanceof ServerPlayer serverPlayer)) { + return false; + } else if (!this.level.matches(serverPlayer.experienceLevel)) { + return false; + } else if (!this.gameType.matches(serverPlayer.gameMode.getGameModeForPlayer())) { + return false; + } else { + StatsCounter statsCounter = serverPlayer.getStats(); + + for (PlayerPredicate.StatMatcher statMatcher : this.stats) { + if (!statMatcher.matches(statsCounter)) { + return false; + } + } + + RecipeBook recipeBook = serverPlayer.getRecipeBook(); + + for (Entry entry : this.recipes.object2BooleanEntrySet()) { + if (recipeBook.contains((ResourceLocation)entry.getKey()) != entry.getBooleanValue()) { + return false; + } + } + + if (!this.advancements.isEmpty()) { + PlayerAdvancements playerAdvancements = serverPlayer.getAdvancements(); + ServerAdvancementManager serverAdvancementManager = serverPlayer.getServer().getAdvancements(); + + for (java.util.Map.Entry entry2 : this.advancements.entrySet()) { + AdvancementHolder advancementHolder = serverAdvancementManager.get((ResourceLocation)entry2.getKey()); + if (advancementHolder == null || !((PlayerPredicate.AdvancementPredicate)entry2.getValue()).test(playerAdvancements.getOrStartProgress(advancementHolder)) + ) + { + return false; + } + } + } + + if (this.lookingAt.isPresent()) { + Vec3 vec3 = serverPlayer.getEyePosition(); + Vec3 vec32 = serverPlayer.getViewVector(1.0F); + Vec3 vec33 = vec3.add(vec32.x * 100.0, vec32.y * 100.0, vec32.z * 100.0); + EntityHitResult entityHitResult = ProjectileUtil.getEntityHitResult( + serverPlayer.level(), serverPlayer, vec3, vec33, new AABB(vec3, vec33).inflate(1.0), entityx -> !entityx.isSpectator(), 0.0F + ); + if (entityHitResult == null || entityHitResult.getType() != HitResult.Type.ENTITY) { + return false; + } + + Entity entity2 = entityHitResult.getEntity(); + if (!((EntityPredicate)this.lookingAt.get()).matches(serverPlayer, entity2) || !serverPlayer.hasLineOfSight(entity2)) { + return false; + } + } + + return true; + } + } + + @Override + public MapCodec codec() { + return EntitySubPredicates.PLAYER; + } + + record AdvancementCriterionsPredicate(Object2BooleanMap criterions) implements PlayerPredicate.AdvancementPredicate { + public static final Codec CODEC = ExtraCodecs.object2BooleanMap(Codec.STRING) + .xmap(PlayerPredicate.AdvancementCriterionsPredicate::new, PlayerPredicate.AdvancementCriterionsPredicate::criterions); + + public boolean test(AdvancementProgress progress) { + for (Entry entry : this.criterions.object2BooleanEntrySet()) { + CriterionProgress criterionProgress = progress.getCriterion((String)entry.getKey()); + if (criterionProgress == null || criterionProgress.isDone() != entry.getBooleanValue()) { + return false; + } + } + + return true; + } + } + + record AdvancementDonePredicate(boolean state) implements PlayerPredicate.AdvancementPredicate { + public static final Codec CODEC = Codec.BOOL + .xmap(PlayerPredicate.AdvancementDonePredicate::new, PlayerPredicate.AdvancementDonePredicate::state); + + public boolean test(AdvancementProgress progress) { + return progress.isDone() == this.state; + } + } + + interface AdvancementPredicate extends Predicate { + Codec CODEC = Codec.either( + PlayerPredicate.AdvancementDonePredicate.CODEC, PlayerPredicate.AdvancementCriterionsPredicate.CODEC + ) + .xmap(Either::unwrap, advancementPredicate -> { + if (advancementPredicate instanceof PlayerPredicate.AdvancementDonePredicate advancementDonePredicate) { + return Either.left(advancementDonePredicate); + } else if (advancementPredicate instanceof PlayerPredicate.AdvancementCriterionsPredicate advancementCriterionsPredicate) { + return Either.right(advancementCriterionsPredicate); + } else { + throw new UnsupportedOperationException(); + } + }); + } + + public static class Builder { + private MinMaxBounds.Ints level = MinMaxBounds.Ints.ANY; + private GameTypePredicate gameType = GameTypePredicate.ANY; + private final ImmutableList.Builder> stats = ImmutableList.builder(); + private final Object2BooleanMap recipes = new Object2BooleanOpenHashMap<>(); + private final Map advancements = Maps.newHashMap(); + private Optional lookingAt = Optional.empty(); + + public static PlayerPredicate.Builder player() { + return new PlayerPredicate.Builder(); + } + + public PlayerPredicate.Builder setLevel(MinMaxBounds.Ints level) { + this.level = level; + return this; + } + + public PlayerPredicate.Builder addStat(StatType type, Holder.Reference value, MinMaxBounds.Ints range) { + this.stats.add(new PlayerPredicate.StatMatcher<>(type, value, range)); + return this; + } + + public PlayerPredicate.Builder addRecipe(ResourceLocation recipe, boolean unlocked) { + this.recipes.put(recipe, unlocked); + return this; + } + + public PlayerPredicate.Builder setGameType(GameTypePredicate gameType) { + this.gameType = gameType; + return this; + } + + public PlayerPredicate.Builder setLookingAt(EntityPredicate.Builder lookingAt) { + this.lookingAt = Optional.of(lookingAt.build()); + return this; + } + + public PlayerPredicate.Builder checkAdvancementDone(ResourceLocation advancement, boolean done) { + this.advancements.put(advancement, new PlayerPredicate.AdvancementDonePredicate(done)); + return this; + } + + public PlayerPredicate.Builder checkAdvancementCriterions(ResourceLocation advancement, Map criterions) { + this.advancements.put(advancement, new PlayerPredicate.AdvancementCriterionsPredicate(new Object2BooleanOpenHashMap<>(criterions))); + return this; + } + + public PlayerPredicate build() { + return new PlayerPredicate(this.level, this.gameType, this.stats.build(), this.recipes, this.advancements, this.lookingAt); + } + } + + record StatMatcher(StatType type, Holder value, MinMaxBounds.Ints range, Supplier> stat) { + public static final Codec> CODEC = BuiltInRegistries.STAT_TYPE + .byNameCodec() + .dispatch(PlayerPredicate.StatMatcher::type, PlayerPredicate.StatMatcher::createTypedCodec); + + public StatMatcher(StatType type, Holder value, MinMaxBounds.Ints range) { + this(type, value, range, Suppliers.memoize(() -> type.get(value.value()))); + } + + private static MapCodec> createTypedCodec(StatType statType) { + return RecordCodecBuilder.mapCodec( + instance -> instance.group( + statType.getRegistry().holderByNameCodec().fieldOf("stat").forGetter(PlayerPredicate.StatMatcher::value), + MinMaxBounds.Ints.CODEC.optionalFieldOf("value", MinMaxBounds.Ints.ANY).forGetter(PlayerPredicate.StatMatcher::range) + ) + .apply(instance, (holder, ints) -> new PlayerPredicate.StatMatcher<>(statType, holder, ints)) + ); + } + + public boolean matches(StatsCounter statsCounter) { + return this.range.matches(statsCounter.getValue((Stat)this.stat.get())); + } + } +} diff --git a/net/minecraft/advancements/critereon/PlayerTrigger.java b/net/minecraft/advancements/critereon/PlayerTrigger.java new file mode 100644 index 00000000..8b7d53a9 --- /dev/null +++ b/net/minecraft/advancements/critereon/PlayerTrigger.java @@ -0,0 +1,65 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; + +public class PlayerTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return PlayerTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player) { + this.trigger(player, triggerInstance -> true); + } + + public record TriggerInstance(Optional player) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group(EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(PlayerTrigger.TriggerInstance::player)) + .apply(instance, PlayerTrigger.TriggerInstance::new) + ); + + public static Criterion located(LocationPredicate.Builder location) { + return CriteriaTriggers.LOCATION + .createCriterion(new PlayerTrigger.TriggerInstance(Optional.of(EntityPredicate.wrap(EntityPredicate.Builder.entity().located(location))))); + } + + public static Criterion located(EntityPredicate.Builder entity) { + return CriteriaTriggers.LOCATION.createCriterion(new PlayerTrigger.TriggerInstance(Optional.of(EntityPredicate.wrap(entity.build())))); + } + + public static Criterion located(Optional entity) { + return CriteriaTriggers.LOCATION.createCriterion(new PlayerTrigger.TriggerInstance(EntityPredicate.wrap(entity))); + } + + public static Criterion sleptInBed() { + return CriteriaTriggers.SLEPT_IN_BED.createCriterion(new PlayerTrigger.TriggerInstance(Optional.empty())); + } + + public static Criterion raidWon() { + return CriteriaTriggers.RAID_WIN.createCriterion(new PlayerTrigger.TriggerInstance(Optional.empty())); + } + + public static Criterion avoidVibration() { + return CriteriaTriggers.AVOID_VIBRATION.createCriterion(new PlayerTrigger.TriggerInstance(Optional.empty())); + } + + public static Criterion tick() { + return CriteriaTriggers.TICK.createCriterion(new PlayerTrigger.TriggerInstance(Optional.empty())); + } + + public static Criterion walkOnBlockWithEquipment(Block block, Item equipment) { + return located( + EntityPredicate.Builder.entity() + .equipment(EntityEquipmentPredicate.Builder.equipment().feet(ItemPredicate.Builder.item().of(equipment))) + .steppingOn(LocationPredicate.Builder.location().setBlock(BlockPredicate.Builder.block().of(block))) + ); + } + } +} diff --git a/net/minecraft/advancements/critereon/RaiderPredicate.java b/net/minecraft/advancements/critereon/RaiderPredicate.java new file mode 100644 index 00000000..2b06bdbc --- /dev/null +++ b/net/minecraft/advancements/critereon/RaiderPredicate.java @@ -0,0 +1,31 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.raid.Raider; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public record RaiderPredicate(boolean hasRaid, boolean isCaptain) implements EntitySubPredicate { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group( + Codec.BOOL.optionalFieldOf("has_raid", false).forGetter(RaiderPredicate::hasRaid), + Codec.BOOL.optionalFieldOf("is_captain", false).forGetter(RaiderPredicate::isCaptain) + ) + .apply(instance, RaiderPredicate::new) + ); + public static final RaiderPredicate CAPTAIN_WITHOUT_RAID = new RaiderPredicate(false, true); + + @Override + public MapCodec codec() { + return EntitySubPredicates.RAIDER; + } + + @Override + public boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position) { + return !(entity instanceof Raider raider) ? false : raider.hasRaid() == this.hasRaid && raider.isCaptain() == this.isCaptain; + } +} diff --git a/net/minecraft/advancements/critereon/RecipeCraftedTrigger.java b/net/minecraft/advancements/critereon/RecipeCraftedTrigger.java new file mode 100644 index 00000000..712f3327 --- /dev/null +++ b/net/minecraft/advancements/critereon/RecipeCraftedTrigger.java @@ -0,0 +1,76 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; + +public class RecipeCraftedTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return RecipeCraftedTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ResourceLocation recipeId, List items) { + this.trigger(player, triggerInstance -> triggerInstance.matches(recipeId, items)); + } + + public record TriggerInstance(Optional player, ResourceLocation recipeId, List ingredients) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(RecipeCraftedTrigger.TriggerInstance::player), + ResourceLocation.CODEC.fieldOf("recipe_id").forGetter(RecipeCraftedTrigger.TriggerInstance::recipeId), + ItemPredicate.CODEC.listOf().optionalFieldOf("ingredients", List.of()).forGetter(RecipeCraftedTrigger.TriggerInstance::ingredients) + ) + .apply(instance, RecipeCraftedTrigger.TriggerInstance::new) + ); + + public static Criterion craftedItem(ResourceLocation recipeId, List ingredients) { + return CriteriaTriggers.RECIPE_CRAFTED + .createCriterion(new RecipeCraftedTrigger.TriggerInstance(Optional.empty(), recipeId, ingredients.stream().map(ItemPredicate.Builder::build).toList())); + } + + public static Criterion craftedItem(ResourceLocation recipeId) { + return CriteriaTriggers.RECIPE_CRAFTED.createCriterion(new RecipeCraftedTrigger.TriggerInstance(Optional.empty(), recipeId, List.of())); + } + + public static Criterion crafterCraftedItem(ResourceLocation recipeId) { + return CriteriaTriggers.CRAFTER_RECIPE_CRAFTED.createCriterion(new RecipeCraftedTrigger.TriggerInstance(Optional.empty(), recipeId, List.of())); + } + + boolean matches(ResourceLocation recipeId, List items) { + if (!recipeId.equals(this.recipeId)) { + return false; + } else { + List list = new ArrayList(items); + + for (ItemPredicate itemPredicate : this.ingredients) { + boolean bl = false; + Iterator iterator = list.iterator(); + + while (iterator.hasNext()) { + if (itemPredicate.test((ItemStack)iterator.next())) { + iterator.remove(); + bl = true; + break; + } + } + + if (!bl) { + return false; + } + } + + return true; + } + } + } +} diff --git a/net/minecraft/advancements/critereon/RecipeUnlockedTrigger.java b/net/minecraft/advancements/critereon/RecipeUnlockedTrigger.java new file mode 100644 index 00000000..fe20bb84 --- /dev/null +++ b/net/minecraft/advancements/critereon/RecipeUnlockedTrigger.java @@ -0,0 +1,39 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.crafting.RecipeHolder; + +public class RecipeUnlockedTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return RecipeUnlockedTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, RecipeHolder recipe) { + this.trigger(player, triggerInstance -> triggerInstance.matches(recipe)); + } + + public static Criterion unlocked(ResourceLocation recipeId) { + return CriteriaTriggers.RECIPE_UNLOCKED.createCriterion(new RecipeUnlockedTrigger.TriggerInstance(Optional.empty(), recipeId)); + } + + public record TriggerInstance(Optional player, ResourceLocation recipe) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(RecipeUnlockedTrigger.TriggerInstance::player), + ResourceLocation.CODEC.fieldOf("recipe").forGetter(RecipeUnlockedTrigger.TriggerInstance::recipe) + ) + .apply(instance, RecipeUnlockedTrigger.TriggerInstance::new) + ); + + public boolean matches(RecipeHolder recipe) { + return this.recipe.equals(recipe.id()); + } + } +} diff --git a/net/minecraft/advancements/critereon/ShotCrossbowTrigger.java b/net/minecraft/advancements/critereon/ShotCrossbowTrigger.java new file mode 100644 index 00000000..c7c13ca0 --- /dev/null +++ b/net/minecraft/advancements/critereon/ShotCrossbowTrigger.java @@ -0,0 +1,44 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; + +public class ShotCrossbowTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return ShotCrossbowTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer shooter, ItemStack stack) { + this.trigger(shooter, triggerInstance -> triggerInstance.matches(stack)); + } + + public record TriggerInstance(Optional player, Optional item) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(ShotCrossbowTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(ShotCrossbowTrigger.TriggerInstance::item) + ) + .apply(instance, ShotCrossbowTrigger.TriggerInstance::new) + ); + + public static Criterion shotCrossbow(Optional item) { + return CriteriaTriggers.SHOT_CROSSBOW.createCriterion(new ShotCrossbowTrigger.TriggerInstance(Optional.empty(), item)); + } + + public static Criterion shotCrossbow(ItemLike item) { + return CriteriaTriggers.SHOT_CROSSBOW + .createCriterion(new ShotCrossbowTrigger.TriggerInstance(Optional.empty(), Optional.of(ItemPredicate.Builder.item().of(item).build()))); + } + + public boolean matches(ItemStack item) { + return this.item.isEmpty() || ((ItemPredicate)this.item.get()).test(item); + } + } +} diff --git a/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java b/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java new file mode 100644 index 00000000..bf85301e --- /dev/null +++ b/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java @@ -0,0 +1,78 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.function.Predicate; +import net.minecraft.advancements.CriterionTrigger; +import net.minecraft.advancements.CriterionTriggerInstance; +import net.minecraft.server.PlayerAdvancements; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.storage.loot.LootContext; + +public abstract class SimpleCriterionTrigger implements CriterionTrigger { + private final Map>> players = Maps.>>newIdentityHashMap(); + + @Override + public final void addPlayerListener(PlayerAdvancements playerAdvancements, CriterionTrigger.Listener listener) { + ((Set)this.players.computeIfAbsent(playerAdvancements, playerAdvancementsx -> Sets.newHashSet())).add(listener); + } + + @Override + public final void removePlayerListener(PlayerAdvancements playerAdvancements, CriterionTrigger.Listener listener) { + Set> set = (Set>)this.players.get(playerAdvancements); + if (set != null) { + set.remove(listener); + if (set.isEmpty()) { + this.players.remove(playerAdvancements); + } + } + } + + @Override + public final void removePlayerListeners(PlayerAdvancements playerAdvancements) { + this.players.remove(playerAdvancements); + } + + protected void trigger(ServerPlayer player, Predicate testTrigger) { + PlayerAdvancements playerAdvancements = player.getAdvancements(); + Set> set = (Set>)this.players.get(playerAdvancements); + if (set != null && !set.isEmpty()) { + LootContext lootContext = EntityPredicate.createContext(player, player); + List> list = null; + + for (CriterionTrigger.Listener listener : set) { + T simpleInstance = listener.trigger(); + if (testTrigger.test(simpleInstance)) { + Optional optional = simpleInstance.player(); + if (optional.isEmpty() || ((ContextAwarePredicate)optional.get()).matches(lootContext)) { + if (list == null) { + list = Lists.>newArrayList(); + } + + list.add(listener); + } + } + } + + if (list != null) { + for (CriterionTrigger.Listener listenerx : list) { + listenerx.run(playerAdvancements); + } + } + } + } + + public interface SimpleInstance extends CriterionTriggerInstance { + @Override + default void validate(CriterionValidator validator) { + validator.validateEntity(this.player(), ".player"); + } + + Optional player(); + } +} diff --git a/net/minecraft/advancements/critereon/SingleComponentItemPredicate.java b/net/minecraft/advancements/critereon/SingleComponentItemPredicate.java new file mode 100644 index 00000000..e4009c57 --- /dev/null +++ b/net/minecraft/advancements/critereon/SingleComponentItemPredicate.java @@ -0,0 +1,16 @@ +package net.minecraft.advancements.critereon; + +import net.minecraft.core.component.DataComponentType; +import net.minecraft.world.item.ItemStack; + +public interface SingleComponentItemPredicate extends ItemSubPredicate { + @Override + default boolean matches(ItemStack stack) { + T object = stack.get(this.componentType()); + return object != null && this.matches(stack, object); + } + + DataComponentType componentType(); + + boolean matches(ItemStack stack, T value); +} diff --git a/net/minecraft/advancements/critereon/SlideDownBlockTrigger.java b/net/minecraft/advancements/critereon/SlideDownBlockTrigger.java new file mode 100644 index 00000000..2d73286d --- /dev/null +++ b/net/minecraft/advancements/critereon/SlideDownBlockTrigger.java @@ -0,0 +1,58 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class SlideDownBlockTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return SlideDownBlockTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, BlockState state) { + this.trigger(player, triggerInstance -> triggerInstance.matches(state)); + } + + public record TriggerInstance(Optional player, Optional> block, Optional state) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(SlideDownBlockTrigger.TriggerInstance::player), + BuiltInRegistries.BLOCK.holderByNameCodec().optionalFieldOf("block").forGetter(SlideDownBlockTrigger.TriggerInstance::block), + StatePropertiesPredicate.CODEC.optionalFieldOf("state").forGetter(SlideDownBlockTrigger.TriggerInstance::state) + ) + .apply(instance, SlideDownBlockTrigger.TriggerInstance::new) + ) + .validate(SlideDownBlockTrigger.TriggerInstance::validate); + + private static DataResult validate(SlideDownBlockTrigger.TriggerInstance triggerInstance) { + return (DataResult)triggerInstance.block + .flatMap( + holder -> triggerInstance.state + .flatMap(statePropertiesPredicate -> statePropertiesPredicate.checkState(((Block)holder.value()).getStateDefinition())) + .map(string -> DataResult.error(() -> "Block" + holder + " has no property " + string)) + ) + .orElseGet(() -> DataResult.success(triggerInstance)); + } + + public static Criterion slidesDownBlock(Block block) { + return CriteriaTriggers.HONEY_BLOCK_SLIDE + .createCriterion(new SlideDownBlockTrigger.TriggerInstance(Optional.empty(), Optional.of(block.builtInRegistryHolder()), Optional.empty())); + } + + public boolean matches(BlockState state) { + return this.block.isPresent() && !state.is((Holder)this.block.get()) + ? false + : !this.state.isPresent() || ((StatePropertiesPredicate)this.state.get()).matches(state); + } + } +} diff --git a/net/minecraft/advancements/critereon/SlimePredicate.java b/net/minecraft/advancements/critereon/SlimePredicate.java new file mode 100644 index 00000000..0057120e --- /dev/null +++ b/net/minecraft/advancements/critereon/SlimePredicate.java @@ -0,0 +1,30 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.MapCodec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.monster.Slime; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +public record SlimePredicate(MinMaxBounds.Ints size) implements EntitySubPredicate { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group(MinMaxBounds.Ints.CODEC.optionalFieldOf("size", MinMaxBounds.Ints.ANY).forGetter(SlimePredicate::size)) + .apply(instance, SlimePredicate::new) + ); + + public static SlimePredicate sized(MinMaxBounds.Ints size) { + return new SlimePredicate(size); + } + + @Override + public boolean matches(Entity entity, ServerLevel level, @Nullable Vec3 position) { + return entity instanceof Slime slime ? this.size.matches(slime.getSize()) : false; + } + + @Override + public MapCodec codec() { + return EntitySubPredicates.SLIME; + } +} diff --git a/net/minecraft/advancements/critereon/SlotsPredicate.java b/net/minecraft/advancements/critereon/SlotsPredicate.java new file mode 100644 index 00000000..c7be825c --- /dev/null +++ b/net/minecraft/advancements/critereon/SlotsPredicate.java @@ -0,0 +1,36 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import it.unimi.dsi.fastutil.ints.IntList; +import java.util.Map; +import java.util.Map.Entry; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.SlotAccess; +import net.minecraft.world.inventory.SlotRange; +import net.minecraft.world.inventory.SlotRanges; + +public record SlotsPredicate(Map slots) { + public static final Codec CODEC = Codec.unboundedMap(SlotRanges.CODEC, ItemPredicate.CODEC).xmap(SlotsPredicate::new, SlotsPredicate::slots); + + public boolean matches(Entity entity) { + for (Entry entry : this.slots.entrySet()) { + if (!matchSlots(entity, (ItemPredicate)entry.getValue(), ((SlotRange)entry.getKey()).slots())) { + return false; + } + } + + return true; + } + + private static boolean matchSlots(Entity entity, ItemPredicate predicate, IntList slots) { + for (int i = 0; i < slots.size(); i++) { + int j = slots.getInt(i); + SlotAccess slotAccess = entity.getSlot(j); + if (predicate.test(slotAccess.get())) { + return true; + } + } + + return false; + } +} diff --git a/net/minecraft/advancements/critereon/StartRidingTrigger.java b/net/minecraft/advancements/critereon/StartRidingTrigger.java new file mode 100644 index 00000000..0eb8d499 --- /dev/null +++ b/net/minecraft/advancements/critereon/StartRidingTrigger.java @@ -0,0 +1,30 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; + +public class StartRidingTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return StartRidingTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player) { + this.trigger(player, triggerInstance -> true); + } + + public record TriggerInstance(Optional player) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group(EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(StartRidingTrigger.TriggerInstance::player)) + .apply(instance, StartRidingTrigger.TriggerInstance::new) + ); + + public static Criterion playerStartsRiding(EntityPredicate.Builder player) { + return CriteriaTriggers.START_RIDING_TRIGGER.createCriterion(new StartRidingTrigger.TriggerInstance(Optional.of(EntityPredicate.wrap(player)))); + } + } +} diff --git a/net/minecraft/advancements/critereon/StatePropertiesPredicate.java b/net/minecraft/advancements/critereon/StatePropertiesPredicate.java new file mode 100644 index 00000000..82545ffa --- /dev/null +++ b/net/minecraft/advancements/critereon/StatePropertiesPredicate.java @@ -0,0 +1,195 @@ +package net.minecraft.advancements.critereon; + +import com.google.common.collect.ImmutableList; +import com.mojang.datafixers.util.Either; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import io.netty.buffer.ByteBuf; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.StateHolder; +import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.material.FluidState; + +public record StatePropertiesPredicate(List properties) { + private static final Codec> PROPERTIES_CODEC = Codec.unboundedMap( + Codec.STRING, StatePropertiesPredicate.ValueMatcher.CODEC + ) + .xmap( + map -> map.entrySet() + .stream() + .map(entry -> new StatePropertiesPredicate.PropertyMatcher((String)entry.getKey(), (StatePropertiesPredicate.ValueMatcher)entry.getValue())) + .toList(), + list -> (Map)list.stream().collect(Collectors.toMap(StatePropertiesPredicate.PropertyMatcher::name, StatePropertiesPredicate.PropertyMatcher::valueMatcher)) + ); + public static final Codec CODEC = PROPERTIES_CODEC.xmap(StatePropertiesPredicate::new, StatePropertiesPredicate::properties); + public static final StreamCodec STREAM_CODEC = StatePropertiesPredicate.PropertyMatcher.STREAM_CODEC + .apply(ByteBufCodecs.list()) + .map(StatePropertiesPredicate::new, StatePropertiesPredicate::properties); + + public > boolean matches(StateDefinition properties, S targetProperty) { + for (StatePropertiesPredicate.PropertyMatcher propertyMatcher : this.properties) { + if (!propertyMatcher.match(properties, targetProperty)) { + return false; + } + } + + return true; + } + + public boolean matches(BlockState state) { + return this.matches(state.getBlock().getStateDefinition(), state); + } + + public boolean matches(FluidState state) { + return this.matches(state.getType().getStateDefinition(), state); + } + + public Optional checkState(StateDefinition state) { + for (StatePropertiesPredicate.PropertyMatcher propertyMatcher : this.properties) { + Optional optional = propertyMatcher.checkState(state); + if (optional.isPresent()) { + return optional; + } + } + + return Optional.empty(); + } + + public static class Builder { + private final ImmutableList.Builder matchers = ImmutableList.builder(); + + private Builder() { + } + + public static StatePropertiesPredicate.Builder properties() { + return new StatePropertiesPredicate.Builder(); + } + + public StatePropertiesPredicate.Builder hasProperty(Property property, String value) { + this.matchers.add(new StatePropertiesPredicate.PropertyMatcher(property.getName(), new StatePropertiesPredicate.ExactMatcher(value))); + return this; + } + + public StatePropertiesPredicate.Builder hasProperty(Property property, int value) { + return this.hasProperty(property, Integer.toString(value)); + } + + public StatePropertiesPredicate.Builder hasProperty(Property property, boolean value) { + return this.hasProperty(property, Boolean.toString(value)); + } + + public & StringRepresentable> StatePropertiesPredicate.Builder hasProperty(Property property, T value) { + return this.hasProperty(property, value.getSerializedName()); + } + + public Optional build() { + return Optional.of(new StatePropertiesPredicate(this.matchers.build())); + } + } + + record ExactMatcher(String value) implements StatePropertiesPredicate.ValueMatcher { + public static final Codec CODEC = Codec.STRING + .xmap(StatePropertiesPredicate.ExactMatcher::new, StatePropertiesPredicate.ExactMatcher::value); + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.STRING_UTF8 + .map(StatePropertiesPredicate.ExactMatcher::new, StatePropertiesPredicate.ExactMatcher::value); + + @Override + public > boolean match(StateHolder stateHolder, Property property) { + T comparable = stateHolder.getValue(property); + Optional optional = property.getValue(this.value); + return optional.isPresent() && comparable.compareTo((Comparable)optional.get()) == 0; + } + } + + record PropertyMatcher(String name, StatePropertiesPredicate.ValueMatcher valueMatcher) { + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.STRING_UTF8, + StatePropertiesPredicate.PropertyMatcher::name, + StatePropertiesPredicate.ValueMatcher.STREAM_CODEC, + StatePropertiesPredicate.PropertyMatcher::valueMatcher, + StatePropertiesPredicate.PropertyMatcher::new + ); + + public > boolean match(StateDefinition properties, S propertyToMatch) { + Property property = properties.getProperty(this.name); + return property != null && this.valueMatcher.match(propertyToMatch, property); + } + + public Optional checkState(StateDefinition state) { + Property property = state.getProperty(this.name); + return property != null ? Optional.empty() : Optional.of(this.name); + } + } + + record RangedMatcher(Optional minValue, Optional maxValue) implements StatePropertiesPredicate.ValueMatcher { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + Codec.STRING.optionalFieldOf("min").forGetter(StatePropertiesPredicate.RangedMatcher::minValue), + Codec.STRING.optionalFieldOf("max").forGetter(StatePropertiesPredicate.RangedMatcher::maxValue) + ) + .apply(instance, StatePropertiesPredicate.RangedMatcher::new) + ); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.optional(ByteBufCodecs.STRING_UTF8), + StatePropertiesPredicate.RangedMatcher::minValue, + ByteBufCodecs.optional(ByteBufCodecs.STRING_UTF8), + StatePropertiesPredicate.RangedMatcher::maxValue, + StatePropertiesPredicate.RangedMatcher::new + ); + + @Override + public > boolean match(StateHolder stateHolder, Property property) { + T comparable = stateHolder.getValue(property); + if (this.minValue.isPresent()) { + Optional optional = property.getValue((String)this.minValue.get()); + if (optional.isEmpty() || comparable.compareTo((Comparable)optional.get()) < 0) { + return false; + } + } + + if (this.maxValue.isPresent()) { + Optional optional = property.getValue((String)this.maxValue.get()); + if (optional.isEmpty() || comparable.compareTo((Comparable)optional.get()) > 0) { + return false; + } + } + + return true; + } + } + + interface ValueMatcher { + Codec CODEC = Codec.either(StatePropertiesPredicate.ExactMatcher.CODEC, StatePropertiesPredicate.RangedMatcher.CODEC) + .xmap(Either::unwrap, valueMatcher -> { + if (valueMatcher instanceof StatePropertiesPredicate.ExactMatcher exactMatcher) { + return Either.left(exactMatcher); + } else if (valueMatcher instanceof StatePropertiesPredicate.RangedMatcher rangedMatcher) { + return Either.right(rangedMatcher); + } else { + throw new UnsupportedOperationException(); + } + }); + StreamCodec STREAM_CODEC = ByteBufCodecs.either( + StatePropertiesPredicate.ExactMatcher.STREAM_CODEC, StatePropertiesPredicate.RangedMatcher.STREAM_CODEC + ) + .map(Either::unwrap, valueMatcher -> { + if (valueMatcher instanceof StatePropertiesPredicate.ExactMatcher exactMatcher) { + return Either.left(exactMatcher); + } else if (valueMatcher instanceof StatePropertiesPredicate.RangedMatcher rangedMatcher) { + return Either.right(rangedMatcher); + } else { + throw new UnsupportedOperationException(); + } + }); + + > boolean match(StateHolder stateHolder, Property property); + } +} diff --git a/net/minecraft/advancements/critereon/SummonedEntityTrigger.java b/net/minecraft/advancements/critereon/SummonedEntityTrigger.java new file mode 100644 index 00000000..222f2d38 --- /dev/null +++ b/net/minecraft/advancements/critereon/SummonedEntityTrigger.java @@ -0,0 +1,47 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.storage.loot.LootContext; + +public class SummonedEntityTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return SummonedEntityTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Entity entity) { + LootContext lootContext = EntityPredicate.createContext(player, entity); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext)); + } + + public record TriggerInstance(Optional player, Optional entity) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(SummonedEntityTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(SummonedEntityTrigger.TriggerInstance::entity) + ) + .apply(instance, SummonedEntityTrigger.TriggerInstance::new) + ); + + public static Criterion summonedEntity(EntityPredicate.Builder entity) { + return CriteriaTriggers.SUMMONED_ENTITY + .createCriterion(new SummonedEntityTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entity)))); + } + + public boolean matches(LootContext lootContext) { + return this.entity.isEmpty() || ((ContextAwarePredicate)this.entity.get()).matches(lootContext); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.entity, ".entity"); + } + } +} diff --git a/net/minecraft/advancements/critereon/TagPredicate.java b/net/minecraft/advancements/critereon/TagPredicate.java new file mode 100644 index 00000000..0b93bd90 --- /dev/null +++ b/net/minecraft/advancements/critereon/TagPredicate.java @@ -0,0 +1,31 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.tags.TagKey; + +public record TagPredicate(TagKey tag, boolean expected) { + public static Codec> codec(ResourceKey> registryKey) { + return RecordCodecBuilder.create( + instance -> instance.group( + TagKey.codec(registryKey).fieldOf("id").forGetter(TagPredicate::tag), Codec.BOOL.fieldOf("expected").forGetter(TagPredicate::expected) + ) + .apply(instance, TagPredicate::new) + ); + } + + public static TagPredicate is(TagKey tag) { + return new TagPredicate<>(tag, true); + } + + public static TagPredicate isNot(TagKey tag) { + return new TagPredicate<>(tag, false); + } + + public boolean matches(Holder value) { + return value.is(this.tag) == this.expected; + } +} diff --git a/net/minecraft/advancements/critereon/TameAnimalTrigger.java b/net/minecraft/advancements/critereon/TameAnimalTrigger.java new file mode 100644 index 00000000..fb6368cb --- /dev/null +++ b/net/minecraft/advancements/critereon/TameAnimalTrigger.java @@ -0,0 +1,50 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.level.storage.loot.LootContext; + +public class TameAnimalTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return TameAnimalTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Animal entity) { + LootContext lootContext = EntityPredicate.createContext(player, entity); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext)); + } + + public record TriggerInstance(Optional player, Optional entity) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TameAnimalTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("entity").forGetter(TameAnimalTrigger.TriggerInstance::entity) + ) + .apply(instance, TameAnimalTrigger.TriggerInstance::new) + ); + + public static Criterion tamedAnimal() { + return CriteriaTriggers.TAME_ANIMAL.createCriterion(new TameAnimalTrigger.TriggerInstance(Optional.empty(), Optional.empty())); + } + + public static Criterion tamedAnimal(EntityPredicate.Builder entity) { + return CriteriaTriggers.TAME_ANIMAL.createCriterion(new TameAnimalTrigger.TriggerInstance(Optional.empty(), Optional.of(EntityPredicate.wrap(entity)))); + } + + public boolean matches(LootContext lootContext) { + return this.entity.isEmpty() || ((ContextAwarePredicate)this.entity.get()).matches(lootContext); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.entity, ".entity"); + } + } +} diff --git a/net/minecraft/advancements/critereon/TargetBlockTrigger.java b/net/minecraft/advancements/critereon/TargetBlockTrigger.java new file mode 100644 index 00000000..dffe2f5e --- /dev/null +++ b/net/minecraft/advancements/critereon/TargetBlockTrigger.java @@ -0,0 +1,51 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.phys.Vec3; + +public class TargetBlockTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return TargetBlockTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, Entity projectile, Vec3 vector, int signalStrength) { + LootContext lootContext = EntityPredicate.createContext(player, projectile); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext, vector, signalStrength)); + } + + public record TriggerInstance(Optional player, MinMaxBounds.Ints signalStrength, Optional projectile) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TargetBlockTrigger.TriggerInstance::player), + MinMaxBounds.Ints.CODEC.optionalFieldOf("signal_strength", MinMaxBounds.Ints.ANY).forGetter(TargetBlockTrigger.TriggerInstance::signalStrength), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("projectile").forGetter(TargetBlockTrigger.TriggerInstance::projectile) + ) + .apply(instance, TargetBlockTrigger.TriggerInstance::new) + ); + + public static Criterion targetHit(MinMaxBounds.Ints signalStrength, Optional projectile) { + return CriteriaTriggers.TARGET_BLOCK_HIT.createCriterion(new TargetBlockTrigger.TriggerInstance(Optional.empty(), signalStrength, projectile)); + } + + public boolean matches(LootContext context, Vec3 vector, int signalStrength) { + return !this.signalStrength.matches(signalStrength) + ? false + : !this.projectile.isPresent() || ((ContextAwarePredicate)this.projectile.get()).matches(context); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.projectile, ".projectile"); + } + } +} diff --git a/net/minecraft/advancements/critereon/TradeTrigger.java b/net/minecraft/advancements/critereon/TradeTrigger.java new file mode 100644 index 00000000..85f929f0 --- /dev/null +++ b/net/minecraft/advancements/critereon/TradeTrigger.java @@ -0,0 +1,56 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.npc.AbstractVillager; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.storage.loot.LootContext; + +public class TradeTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return TradeTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, AbstractVillager villager, ItemStack stack) { + LootContext lootContext = EntityPredicate.createContext(player, villager); + this.trigger(player, triggerInstance -> triggerInstance.matches(lootContext, stack)); + } + + public record TriggerInstance(Optional player, Optional villager, Optional item) + implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TradeTrigger.TriggerInstance::player), + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("villager").forGetter(TradeTrigger.TriggerInstance::villager), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(TradeTrigger.TriggerInstance::item) + ) + .apply(instance, TradeTrigger.TriggerInstance::new) + ); + + public static Criterion tradedWithVillager() { + return CriteriaTriggers.TRADE.createCriterion(new TradeTrigger.TriggerInstance(Optional.empty(), Optional.empty(), Optional.empty())); + } + + public static Criterion tradedWithVillager(EntityPredicate.Builder villager) { + return CriteriaTriggers.TRADE + .createCriterion(new TradeTrigger.TriggerInstance(Optional.of(EntityPredicate.wrap(villager)), Optional.empty(), Optional.empty())); + } + + public boolean matches(LootContext context, ItemStack stack) { + return this.villager.isPresent() && !((ContextAwarePredicate)this.villager.get()).matches(context) + ? false + : !this.item.isPresent() || ((ItemPredicate)this.item.get()).test(stack); + } + + @Override + public void validate(CriterionValidator validator) { + SimpleCriterionTrigger.SimpleInstance.super.validate(validator); + validator.validateEntity(this.villager, ".villager"); + } + } +} diff --git a/net/minecraft/advancements/critereon/UsedEnderEyeTrigger.java b/net/minecraft/advancements/critereon/UsedEnderEyeTrigger.java new file mode 100644 index 00000000..119081ba --- /dev/null +++ b/net/minecraft/advancements/critereon/UsedEnderEyeTrigger.java @@ -0,0 +1,35 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; + +public class UsedEnderEyeTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return UsedEnderEyeTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, BlockPos pos) { + double d = player.getX() - pos.getX(); + double e = player.getZ() - pos.getZ(); + double f = d * d + e * e; + this.trigger(player, triggerInstance -> triggerInstance.matches(f)); + } + + public record TriggerInstance(Optional player, MinMaxBounds.Doubles distance) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(UsedEnderEyeTrigger.TriggerInstance::player), + MinMaxBounds.Doubles.CODEC.optionalFieldOf("distance", MinMaxBounds.Doubles.ANY).forGetter(UsedEnderEyeTrigger.TriggerInstance::distance) + ) + .apply(instance, UsedEnderEyeTrigger.TriggerInstance::new) + ); + + public boolean matches(double distanceSq) { + return this.distance.matchesSqr(distanceSq); + } + } +} diff --git a/net/minecraft/advancements/critereon/UsedTotemTrigger.java b/net/minecraft/advancements/critereon/UsedTotemTrigger.java new file mode 100644 index 00000000..4ce94eea --- /dev/null +++ b/net/minecraft/advancements/critereon/UsedTotemTrigger.java @@ -0,0 +1,44 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.ItemLike; + +public class UsedTotemTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return UsedTotemTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack item) { + this.trigger(player, triggerInstance -> triggerInstance.matches(item)); + } + + public record TriggerInstance(Optional player, Optional item) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(UsedTotemTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(UsedTotemTrigger.TriggerInstance::item) + ) + .apply(instance, UsedTotemTrigger.TriggerInstance::new) + ); + + public static Criterion usedTotem(ItemPredicate item) { + return CriteriaTriggers.USED_TOTEM.createCriterion(new UsedTotemTrigger.TriggerInstance(Optional.empty(), Optional.of(item))); + } + + public static Criterion usedTotem(ItemLike item) { + return CriteriaTriggers.USED_TOTEM + .createCriterion(new UsedTotemTrigger.TriggerInstance(Optional.empty(), Optional.of(ItemPredicate.Builder.item().of(item).build()))); + } + + public boolean matches(ItemStack item) { + return this.item.isEmpty() || ((ItemPredicate)this.item.get()).test(item); + } + } +} diff --git a/net/minecraft/advancements/critereon/UsingItemTrigger.java b/net/minecraft/advancements/critereon/UsingItemTrigger.java new file mode 100644 index 00000000..0a3273b0 --- /dev/null +++ b/net/minecraft/advancements/critereon/UsingItemTrigger.java @@ -0,0 +1,39 @@ +package net.minecraft.advancements.critereon; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import java.util.Optional; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.advancements.Criterion; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; + +public class UsingItemTrigger extends SimpleCriterionTrigger { + @Override + public Codec codec() { + return UsingItemTrigger.TriggerInstance.CODEC; + } + + public void trigger(ServerPlayer player, ItemStack item) { + this.trigger(player, triggerInstance -> triggerInstance.matches(item)); + } + + public record TriggerInstance(Optional player, Optional item) implements SimpleCriterionTrigger.SimpleInstance { + public static final Codec CODEC = RecordCodecBuilder.create( + instance -> instance.group( + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(UsingItemTrigger.TriggerInstance::player), + ItemPredicate.CODEC.optionalFieldOf("item").forGetter(UsingItemTrigger.TriggerInstance::item) + ) + .apply(instance, UsingItemTrigger.TriggerInstance::new) + ); + + public static Criterion lookingAt(EntityPredicate.Builder player, ItemPredicate.Builder item) { + return CriteriaTriggers.USING_ITEM + .createCriterion(new UsingItemTrigger.TriggerInstance(Optional.of(EntityPredicate.wrap(player)), Optional.of(item.build()))); + } + + public boolean matches(ItemStack item) { + return !this.item.isPresent() || ((ItemPredicate)this.item.get()).test(item); + } + } +} diff --git a/net/minecraft/advancements/critereon/WrappedMinMaxBounds.java b/net/minecraft/advancements/critereon/WrappedMinMaxBounds.java new file mode 100644 index 00000000..868f4858 --- /dev/null +++ b/net/minecraft/advancements/critereon/WrappedMinMaxBounds.java @@ -0,0 +1,158 @@ +package net.minecraft.advancements.critereon; + +import com.google.gson.JsonElement; +import com.google.gson.JsonNull; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import java.util.function.Function; +import net.minecraft.network.chat.Component; +import net.minecraft.util.GsonHelper; +import org.jetbrains.annotations.Nullable; + +public record WrappedMinMaxBounds(@Nullable Float min, @Nullable Float max) { + public static final WrappedMinMaxBounds ANY = new WrappedMinMaxBounds(null, null); + public static final SimpleCommandExceptionType ERROR_INTS_ONLY = new SimpleCommandExceptionType(Component.translatable("argument.range.ints")); + + public static WrappedMinMaxBounds exactly(float value) { + return new WrappedMinMaxBounds(value, value); + } + + public static WrappedMinMaxBounds between(float min, float max) { + return new WrappedMinMaxBounds(min, max); + } + + public static WrappedMinMaxBounds atLeast(float min) { + return new WrappedMinMaxBounds(min, null); + } + + public static WrappedMinMaxBounds atMost(float max) { + return new WrappedMinMaxBounds(null, max); + } + + public boolean matches(float value) { + if (this.min != null && this.max != null && this.min > this.max && this.min > value && this.max < value) { + return false; + } else { + return this.min != null && this.min > value ? false : this.max == null || !(this.max < value); + } + } + + public boolean matchesSqr(double value) { + if (this.min != null && this.max != null && this.min > this.max && this.min * this.min > value && this.max * this.max < value) { + return false; + } else { + return this.min != null && this.min * this.min > value ? false : this.max == null || !(this.max * this.max < value); + } + } + + public JsonElement serializeToJson() { + if (this == ANY) { + return JsonNull.INSTANCE; + } else if (this.min != null && this.max != null && this.min.equals(this.max)) { + return new JsonPrimitive(this.min); + } else { + JsonObject jsonObject = new JsonObject(); + if (this.min != null) { + jsonObject.addProperty("min", this.min); + } + + if (this.max != null) { + jsonObject.addProperty("max", this.min); + } + + return jsonObject; + } + } + + public static WrappedMinMaxBounds fromJson(@Nullable JsonElement json) { + if (json == null || json.isJsonNull()) { + return ANY; + } else if (GsonHelper.isNumberValue(json)) { + float f = GsonHelper.convertToFloat(json, "value"); + return new WrappedMinMaxBounds(f, f); + } else { + JsonObject jsonObject = GsonHelper.convertToJsonObject(json, "value"); + Float float_ = jsonObject.has("min") ? GsonHelper.getAsFloat(jsonObject, "min") : null; + Float float2 = jsonObject.has("max") ? GsonHelper.getAsFloat(jsonObject, "max") : null; + return new WrappedMinMaxBounds(float_, float2); + } + } + + public static WrappedMinMaxBounds fromReader(StringReader reader, boolean isFloatingPoint) throws CommandSyntaxException { + return fromReader(reader, isFloatingPoint, float_ -> float_); + } + + public static WrappedMinMaxBounds fromReader(StringReader reader, boolean isFloatingPoint, Function valueFactory) throws CommandSyntaxException { + if (!reader.canRead()) { + throw MinMaxBounds.ERROR_EMPTY.createWithContext(reader); + } else { + int i = reader.getCursor(); + Float float_ = optionallyFormat(readNumber(reader, isFloatingPoint), valueFactory); + Float float2; + if (reader.canRead(2) && reader.peek() == '.' && reader.peek(1) == '.') { + reader.skip(); + reader.skip(); + float2 = optionallyFormat(readNumber(reader, isFloatingPoint), valueFactory); + if (float_ == null && float2 == null) { + reader.setCursor(i); + throw MinMaxBounds.ERROR_EMPTY.createWithContext(reader); + } + } else { + if (!isFloatingPoint && reader.canRead() && reader.peek() == '.') { + reader.setCursor(i); + throw ERROR_INTS_ONLY.createWithContext(reader); + } + + float2 = float_; + } + + if (float_ == null && float2 == null) { + reader.setCursor(i); + throw MinMaxBounds.ERROR_EMPTY.createWithContext(reader); + } else { + return new WrappedMinMaxBounds(float_, float2); + } + } + } + + @Nullable + private static Float readNumber(StringReader reader, boolean isFloatingPoint) throws CommandSyntaxException { + int i = reader.getCursor(); + + while (reader.canRead() && isAllowedNumber(reader, isFloatingPoint)) { + reader.skip(); + } + + String string = reader.getString().substring(i, reader.getCursor()); + if (string.isEmpty()) { + return null; + } else { + try { + return Float.parseFloat(string); + } catch (NumberFormatException var5) { + if (isFloatingPoint) { + throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.readerInvalidDouble().createWithContext(reader, string); + } else { + throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.readerInvalidInt().createWithContext(reader, string); + } + } + } + } + + private static boolean isAllowedNumber(StringReader reader, boolean isFloatingPoint) { + char c = reader.peek(); + if ((c < '0' || c > '9') && c != '-') { + return isFloatingPoint && c == '.' ? !reader.canRead(2) || reader.peek(1) != '.' : false; + } else { + return true; + } + } + + @Nullable + private static Float optionallyFormat(@Nullable Float value, Function valueFactory) { + return value == null ? null : (Float)valueFactory.apply(value); + } +} diff --git a/net/minecraft/advancements/critereon/package-info.java b/net/minecraft/advancements/critereon/package-info.java new file mode 100644 index 00000000..ea892c4b --- /dev/null +++ b/net/minecraft/advancements/critereon/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +package net.minecraft.advancements.critereon; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/net/minecraft/advancements/package-info.java b/net/minecraft/advancements/package-info.java new file mode 100644 index 00000000..1596aed7 --- /dev/null +++ b/net/minecraft/advancements/package-info.java @@ -0,0 +1,8 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +package net.minecraft.advancements; + +import javax.annotation.ParametersAreNonnullByDefault; +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/net/minecraft/client/AttackIndicatorStatus.java b/net/minecraft/client/AttackIndicatorStatus.java new file mode 100644 index 00000000..94333071 --- /dev/null +++ b/net/minecraft/client/AttackIndicatorStatus.java @@ -0,0 +1,37 @@ +package net.minecraft.client; + +import java.util.function.IntFunction; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.ByIdMap; +import net.minecraft.util.OptionEnum; + +@Environment(EnvType.CLIENT) +public enum AttackIndicatorStatus implements OptionEnum { + OFF(0, "options.off"), + CROSSHAIR(1, "options.attack.crosshair"), + HOTBAR(2, "options.attack.hotbar"); + + private static final IntFunction BY_ID = ByIdMap.continuous(AttackIndicatorStatus::getId, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + private final int id; + private final String key; + + private AttackIndicatorStatus(final int id, final String key) { + this.id = id; + this.key = key; + } + + @Override + public int getId() { + return this.id; + } + + @Override + public String getKey() { + return this.key; + } + + public static AttackIndicatorStatus byId(int id) { + return (AttackIndicatorStatus)BY_ID.apply(id); + } +} diff --git a/net/minecraft/client/Camera.java b/net/minecraft/client/Camera.java new file mode 100644 index 00000000..e1de3c12 --- /dev/null +++ b/net/minecraft/client/Camera.java @@ -0,0 +1,254 @@ +package net.minecraft.client; + +import java.util.Arrays; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.tags.FluidTags; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.FogType; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +@Environment(EnvType.CLIENT) +public class Camera { + private static final float DEFAULT_CAMERA_DISTANCE = 4.0F; + private static final Vector3f FORWARDS = new Vector3f(0.0F, 0.0F, -1.0F); + private static final Vector3f UP = new Vector3f(0.0F, 1.0F, 0.0F); + private static final Vector3f LEFT = new Vector3f(-1.0F, 0.0F, 0.0F); + private boolean initialized; + private BlockGetter level; + private Entity entity; + private Vec3 position = Vec3.ZERO; + private final BlockPos.MutableBlockPos blockPosition = new BlockPos.MutableBlockPos(); + private final Vector3f forwards = new Vector3f(FORWARDS); + private final Vector3f up = new Vector3f(UP); + private final Vector3f left = new Vector3f(LEFT); + private float xRot; + private float yRot; + private final Quaternionf rotation = new Quaternionf(); + private boolean detached; + private float eyeHeight; + private float eyeHeightOld; + private float partialTickTime; + public static final float FOG_DISTANCE_SCALE = 0.083333336F; + + public void setup(BlockGetter level, Entity entity, boolean detached, boolean thirdPersonReverse, float partialTick) { + this.initialized = true; + this.level = level; + this.entity = entity; + this.detached = detached; + this.partialTickTime = partialTick; + this.setRotation(entity.getViewYRot(partialTick), entity.getViewXRot(partialTick)); + this.setPosition( + Mth.lerp((double)partialTick, entity.xo, entity.getX()), + Mth.lerp((double)partialTick, entity.yo, entity.getY()) + Mth.lerp(partialTick, this.eyeHeightOld, this.eyeHeight), + Mth.lerp((double)partialTick, entity.zo, entity.getZ()) + ); + if (detached) { + if (thirdPersonReverse) { + this.setRotation(this.yRot + 180.0F, -this.xRot); + } + + float f = entity instanceof LivingEntity livingEntity ? livingEntity.getScale() : 1.0F; + this.move(-this.getMaxZoom(4.0F * f), 0.0F, 0.0F); + } else if (entity instanceof LivingEntity && ((LivingEntity)entity).isSleeping()) { + Direction direction = ((LivingEntity)entity).getBedOrientation(); + this.setRotation(direction != null ? direction.toYRot() - 180.0F : 0.0F, 0.0F); + this.move(0.0F, 0.3F, 0.0F); + } + } + + public void tick() { + if (this.entity != null) { + this.eyeHeightOld = this.eyeHeight; + this.eyeHeight = this.eyeHeight + (this.entity.getEyeHeight() - this.eyeHeight) * 0.5F; + } + } + + private float getMaxZoom(float maxZoom) { + float f = 0.1F; + + for (int i = 0; i < 8; i++) { + float g = (i & 1) * 2 - 1; + float h = (i >> 1 & 1) * 2 - 1; + float j = (i >> 2 & 1) * 2 - 1; + Vec3 vec3 = this.position.add(g * 0.1F, h * 0.1F, j * 0.1F); + Vec3 vec32 = vec3.add(new Vec3(this.forwards).scale(-maxZoom)); + HitResult hitResult = this.level.clip(new ClipContext(vec3, vec32, ClipContext.Block.VISUAL, ClipContext.Fluid.NONE, this.entity)); + if (hitResult.getType() != HitResult.Type.MISS) { + float k = (float)hitResult.getLocation().distanceToSqr(this.position); + if (k < Mth.square(maxZoom)) { + maxZoom = Mth.sqrt(k); + } + } + } + + return maxZoom; + } + + protected void move(float zoom, float dy, float dx) { + Vector3f vector3f = new Vector3f(dx, dy, -zoom).rotate(this.rotation); + this.setPosition(new Vec3(this.position.x + vector3f.x, this.position.y + vector3f.y, this.position.z + vector3f.z)); + } + + protected void setRotation(float yRot, float xRot) { + this.xRot = xRot; + this.yRot = yRot; + this.rotation.rotationYXZ((float) Math.PI - yRot * (float) (Math.PI / 180.0), -xRot * (float) (Math.PI / 180.0), 0.0F); + FORWARDS.rotate(this.rotation, this.forwards); + UP.rotate(this.rotation, this.up); + LEFT.rotate(this.rotation, this.left); + } + + /** + * Sets the position and blockpos of the active render + */ + protected void setPosition(double x, double y, double z) { + this.setPosition(new Vec3(x, y, z)); + } + + protected void setPosition(Vec3 pos) { + this.position = pos; + this.blockPosition.set(pos.x, pos.y, pos.z); + } + + public Vec3 getPosition() { + return this.position; + } + + public BlockPos getBlockPosition() { + return this.blockPosition; + } + + public float getXRot() { + return this.xRot; + } + + public float getYRot() { + return this.yRot; + } + + public Quaternionf rotation() { + return this.rotation; + } + + public Entity getEntity() { + return this.entity; + } + + public boolean isInitialized() { + return this.initialized; + } + + public boolean isDetached() { + return this.detached; + } + + public Camera.NearPlane getNearPlane() { + Minecraft minecraft = Minecraft.getInstance(); + double d = (double)minecraft.getWindow().getWidth() / minecraft.getWindow().getHeight(); + double e = Math.tan(minecraft.options.fov().get().intValue() * (float) (Math.PI / 180.0) / 2.0) * 0.05F; + double f = e * d; + Vec3 vec3 = new Vec3(this.forwards).scale(0.05F); + Vec3 vec32 = new Vec3(this.left).scale(f); + Vec3 vec33 = new Vec3(this.up).scale(e); + return new Camera.NearPlane(vec3, vec32, vec33); + } + + public FogType getFluidInCamera() { + if (!this.initialized) { + return FogType.NONE; + } else { + FluidState fluidState = this.level.getFluidState(this.blockPosition); + if (fluidState.is(FluidTags.WATER) && this.position.y < this.blockPosition.getY() + fluidState.getHeight(this.level, this.blockPosition)) { + return FogType.WATER; + } else { + Camera.NearPlane nearPlane = this.getNearPlane(); + + for (Vec3 vec3 : Arrays.asList(nearPlane.forward, nearPlane.getTopLeft(), nearPlane.getTopRight(), nearPlane.getBottomLeft(), nearPlane.getBottomRight())) { + Vec3 vec32 = this.position.add(vec3); + BlockPos blockPos = BlockPos.containing(vec32); + FluidState fluidState2 = this.level.getFluidState(blockPos); + if (fluidState2.is(FluidTags.LAVA)) { + if (vec32.y <= fluidState2.getHeight(this.level, blockPos) + blockPos.getY()) { + return FogType.LAVA; + } + } else { + BlockState blockState = this.level.getBlockState(blockPos); + if (blockState.is(Blocks.POWDER_SNOW)) { + return FogType.POWDER_SNOW; + } + } + } + + return FogType.NONE; + } + } + } + + public final Vector3f getLookVector() { + return this.forwards; + } + + public final Vector3f getUpVector() { + return this.up; + } + + public final Vector3f getLeftVector() { + return this.left; + } + + public void reset() { + this.level = null; + this.entity = null; + this.initialized = false; + } + + public float getPartialTickTime() { + return this.partialTickTime; + } + + @Environment(EnvType.CLIENT) + public static class NearPlane { + final Vec3 forward; + private final Vec3 left; + private final Vec3 up; + + NearPlane(Vec3 forward, Vec3 left, Vec3 up) { + this.forward = forward; + this.left = left; + this.up = up; + } + + public Vec3 getTopLeft() { + return this.forward.add(this.up).add(this.left); + } + + public Vec3 getTopRight() { + return this.forward.add(this.up).subtract(this.left); + } + + public Vec3 getBottomLeft() { + return this.forward.subtract(this.up).add(this.left); + } + + public Vec3 getBottomRight() { + return this.forward.subtract(this.up).subtract(this.left); + } + + public Vec3 getPointOnPlane(float leftScale, float upScale) { + return this.forward.add(this.up.scale(upScale)).subtract(this.left.scale(leftScale)); + } + } +} diff --git a/net/minecraft/client/CameraType.java b/net/minecraft/client/CameraType.java new file mode 100644 index 00000000..245ed214 --- /dev/null +++ b/net/minecraft/client/CameraType.java @@ -0,0 +1,32 @@ +package net.minecraft.client; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public enum CameraType { + FIRST_PERSON(true, false), + THIRD_PERSON_BACK(false, false), + THIRD_PERSON_FRONT(false, true); + + private static final CameraType[] VALUES = values(); + private final boolean firstPerson; + private final boolean mirrored; + + private CameraType(final boolean firstPerson, final boolean mirrored) { + this.firstPerson = firstPerson; + this.mirrored = mirrored; + } + + public boolean isFirstPerson() { + return this.firstPerson; + } + + public boolean isMirrored() { + return this.mirrored; + } + + public CameraType cycle() { + return VALUES[(this.ordinal() + 1) % VALUES.length]; + } +} diff --git a/net/minecraft/client/ClientBrandRetriever.java b/net/minecraft/client/ClientBrandRetriever.java new file mode 100644 index 00000000..a251d2fb --- /dev/null +++ b/net/minecraft/client/ClientBrandRetriever.java @@ -0,0 +1,15 @@ +package net.minecraft.client; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.obfuscate.DontObfuscate; + +@Environment(EnvType.CLIENT) +public class ClientBrandRetriever { + public static final String VANILLA_NAME = "vanilla"; + + @DontObfuscate + public static String getClientModName() { + return "vanilla"; + } +} diff --git a/net/minecraft/client/ClientRecipeBook.java b/net/minecraft/client/ClientRecipeBook.java new file mode 100644 index 00000000..ba3e01d5 --- /dev/null +++ b/net/minecraft/client/ClientRecipeBook.java @@ -0,0 +1,136 @@ +package net.minecraft.client; + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Table; +import com.google.common.collect.ImmutableList.Builder; +import com.mojang.logging.LogUtils; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.screens.recipebook.RecipeCollection; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.stats.RecipeBook; +import net.minecraft.world.item.crafting.AbstractCookingRecipe; +import net.minecraft.world.item.crafting.CookingBookCategory; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.RecipeType; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class ClientRecipeBook extends RecipeBook { + private static final Logger LOGGER = LogUtils.getLogger(); + private Map> collectionsByTab = ImmutableMap.of(); + private List allCollections = ImmutableList.of(); + + public void setupCollections(Iterable> recipes, RegistryAccess registryAccess) { + Map>>> map = categorizeAndGroupRecipes(recipes); + Map> map2 = Maps.>newHashMap(); + Builder builder = ImmutableList.builder(); + map.forEach( + (recipeBookCategories, list) -> map2.put( + recipeBookCategories, + (List)list.stream().map(listx -> new RecipeCollection(registryAccess, listx)).peek(builder::add).collect(ImmutableList.toImmutableList()) + ) + ); + RecipeBookCategories.AGGREGATE_CATEGORIES + .forEach( + (recipeBookCategories, list) -> map2.put( + recipeBookCategories, + (List)list.stream() + .flatMap(recipeBookCategoriesx -> ((List)map2.getOrDefault(recipeBookCategoriesx, ImmutableList.of())).stream()) + .collect(ImmutableList.toImmutableList()) + ) + ); + this.collectionsByTab = ImmutableMap.copyOf(map2); + this.allCollections = builder.build(); + } + + private static Map>>> categorizeAndGroupRecipes(Iterable> recipes) { + Map>>> map = Maps.>>>newHashMap(); + Table>> table = HashBasedTable.create(); + + for (RecipeHolder recipeHolder : recipes) { + Recipe recipe = recipeHolder.value(); + if (!recipe.isSpecial() && !recipe.isIncomplete()) { + RecipeBookCategories recipeBookCategories = getCategory(recipeHolder); + String string = recipe.getGroup(); + if (string.isEmpty()) { + ((List)map.computeIfAbsent(recipeBookCategories, recipeBookCategoriesx -> Lists.newArrayList())).add(ImmutableList.of(recipeHolder)); + } else { + List> list = table.get(recipeBookCategories, string); + if (list == null) { + list = Lists.>newArrayList(); + table.put(recipeBookCategories, string, list); + ((List)map.computeIfAbsent(recipeBookCategories, recipeBookCategoriesx -> Lists.newArrayList())).add(list); + } + + list.add(recipeHolder); + } + } + } + + return map; + } + + private static RecipeBookCategories getCategory(RecipeHolder recipe) { + Recipe recipe2 = recipe.value(); + if (recipe2 instanceof CraftingRecipe craftingRecipe) { + return switch (craftingRecipe.category()) { + case BUILDING -> RecipeBookCategories.CRAFTING_BUILDING_BLOCKS; + case EQUIPMENT -> RecipeBookCategories.CRAFTING_EQUIPMENT; + case REDSTONE -> RecipeBookCategories.CRAFTING_REDSTONE; + case MISC -> RecipeBookCategories.CRAFTING_MISC; + }; + } else { + RecipeType recipeType = recipe2.getType(); + if (recipe2 instanceof AbstractCookingRecipe abstractCookingRecipe) { + CookingBookCategory cookingBookCategory = abstractCookingRecipe.category(); + if (recipeType == RecipeType.SMELTING) { + return switch (cookingBookCategory) { + case BLOCKS -> RecipeBookCategories.FURNACE_BLOCKS; + case FOOD -> RecipeBookCategories.FURNACE_FOOD; + case MISC -> RecipeBookCategories.FURNACE_MISC; + }; + } + + if (recipeType == RecipeType.BLASTING) { + return cookingBookCategory == CookingBookCategory.BLOCKS ? RecipeBookCategories.BLAST_FURNACE_BLOCKS : RecipeBookCategories.BLAST_FURNACE_MISC; + } + + if (recipeType == RecipeType.SMOKING) { + return RecipeBookCategories.SMOKER_FOOD; + } + + if (recipeType == RecipeType.CAMPFIRE_COOKING) { + return RecipeBookCategories.CAMPFIRE; + } + } + + if (recipeType == RecipeType.STONECUTTING) { + return RecipeBookCategories.STONECUTTER; + } else if (recipeType == RecipeType.SMITHING) { + return RecipeBookCategories.SMITHING; + } else { + LOGGER.warn("Unknown recipe category: {}/{}", LogUtils.defer(() -> BuiltInRegistries.RECIPE_TYPE.getKey(recipe2.getType())), LogUtils.defer(recipe::id)); + return RecipeBookCategories.UNKNOWN; + } + } + } + + public List getCollections() { + return this.allCollections; + } + + public List getCollection(RecipeBookCategories categories) { + return (List)this.collectionsByTab.getOrDefault(categories, Collections.emptyList()); + } +} diff --git a/net/minecraft/client/CloudStatus.java b/net/minecraft/client/CloudStatus.java new file mode 100644 index 00000000..453c2ddb --- /dev/null +++ b/net/minecraft/client/CloudStatus.java @@ -0,0 +1,40 @@ +package net.minecraft.client; + +import com.mojang.serialization.Codec; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.OptionEnum; +import net.minecraft.util.StringRepresentable; + +@Environment(EnvType.CLIENT) +public enum CloudStatus implements OptionEnum, StringRepresentable { + OFF(0, "false", "options.off"), + FAST(1, "fast", "options.clouds.fast"), + FANCY(2, "true", "options.clouds.fancy"); + + public static final Codec CODEC = StringRepresentable.fromEnum(CloudStatus::values); + private final int id; + private final String legacyName; + private final String key; + + private CloudStatus(final int id, final String legacyName, final String key) { + this.id = id; + this.legacyName = legacyName; + this.key = key; + } + + @Override + public String getSerializedName() { + return this.legacyName; + } + + @Override + public int getId() { + return this.id; + } + + @Override + public String getKey() { + return this.key; + } +} diff --git a/net/minecraft/client/CommandHistory.java b/net/minecraft/client/CommandHistory.java new file mode 100644 index 00000000..7baaf504 --- /dev/null +++ b/net/minecraft/client/CommandHistory.java @@ -0,0 +1,97 @@ +package net.minecraft.client; + +import com.google.common.base.Charsets; +import com.mojang.logging.LogUtils; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.util.Collection; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.ArrayListDeque; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class CommandHistory { + private static final Logger LOGGER = LogUtils.getLogger(); + private static final int MAX_PERSISTED_COMMAND_HISTORY = 50; + private static final String PERSISTED_COMMANDS_FILE_NAME = "command_history.txt"; + private final Path commandsPath; + private final ArrayListDeque lastCommands = new ArrayListDeque<>(50); + + public CommandHistory(Path path) { + this.commandsPath = path.resolve("command_history.txt"); + if (Files.exists(this.commandsPath, new LinkOption[0])) { + try { + BufferedReader bufferedReader = Files.newBufferedReader(this.commandsPath, Charsets.UTF_8); + + try { + this.lastCommands.addAll(bufferedReader.lines().toList()); + } catch (Throwable var6) { + if (bufferedReader != null) { + try { + bufferedReader.close(); + } catch (Throwable var5) { + var6.addSuppressed(var5); + } + } + + throw var6; + } + + if (bufferedReader != null) { + bufferedReader.close(); + } + } catch (Exception var7) { + LOGGER.error("Failed to read {}, command history will be missing", "command_history.txt", var7); + } + } + } + + public void addCommand(String command) { + if (!command.equals(this.lastCommands.peekLast())) { + if (this.lastCommands.size() >= 50) { + this.lastCommands.removeFirst(); + } + + this.lastCommands.addLast(command); + this.save(); + } + } + + private void save() { + try { + BufferedWriter bufferedWriter = Files.newBufferedWriter(this.commandsPath, Charsets.UTF_8); + + try { + for (String string : this.lastCommands) { + bufferedWriter.write(string); + bufferedWriter.newLine(); + } + } catch (Throwable var5) { + if (bufferedWriter != null) { + try { + bufferedWriter.close(); + } catch (Throwable var4) { + var5.addSuppressed(var4); + } + } + + throw var5; + } + + if (bufferedWriter != null) { + bufferedWriter.close(); + } + } catch (IOException var6) { + LOGGER.error("Failed to write {}, command history will be missing", "command_history.txt", var6); + } + } + + public Collection history() { + return this.lastCommands; + } +} diff --git a/net/minecraft/client/ComponentCollector.java b/net/minecraft/client/ComponentCollector.java new file mode 100644 index 00000000..2e563a52 --- /dev/null +++ b/net/minecraft/client/ComponentCollector.java @@ -0,0 +1,35 @@ +package net.minecraft.client; + +import com.google.common.collect.Lists; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.FormattedText; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class ComponentCollector { + private final List parts = Lists.newArrayList(); + + public void append(FormattedText part) { + this.parts.add(part); + } + + @Nullable + public FormattedText getResult() { + if (this.parts.isEmpty()) { + return null; + } else { + return this.parts.size() == 1 ? (FormattedText)this.parts.get(0) : FormattedText.composite(this.parts); + } + } + + public FormattedText getResultOrEmpty() { + FormattedText formattedText = this.getResult(); + return formattedText != null ? formattedText : FormattedText.EMPTY; + } + + public void reset() { + this.parts.clear(); + } +} diff --git a/net/minecraft/client/DebugQueryHandler.java b/net/minecraft/client/DebugQueryHandler.java new file mode 100644 index 00000000..3d00eee9 --- /dev/null +++ b/net/minecraft/client/DebugQueryHandler.java @@ -0,0 +1,48 @@ +package net.minecraft.client; + +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.protocol.game.ServerboundBlockEntityTagQueryPacket; +import net.minecraft.network.protocol.game.ServerboundEntityTagQueryPacket; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class DebugQueryHandler { + private final ClientPacketListener connection; + private int transactionId = -1; + @Nullable + private Consumer callback; + + public DebugQueryHandler(ClientPacketListener connection) { + this.connection = connection; + } + + public boolean handleResponse(int transactionId, @Nullable CompoundTag tag) { + if (this.transactionId == transactionId && this.callback != null) { + this.callback.accept(tag); + this.callback = null; + return true; + } else { + return false; + } + } + + private int startTransaction(Consumer callback) { + this.callback = callback; + return ++this.transactionId; + } + + public void queryEntityTag(int entId, Consumer tag) { + int i = this.startTransaction(tag); + this.connection.send(new ServerboundEntityTagQueryPacket(i, entId)); + } + + public void queryBlockEntityTag(BlockPos pos, Consumer tag) { + int i = this.startTransaction(tag); + this.connection.send(new ServerboundBlockEntityTagQueryPacket(i, pos)); + } +} diff --git a/net/minecraft/client/DeltaTracker.java b/net/minecraft/client/DeltaTracker.java new file mode 100644 index 00000000..d26f03ac --- /dev/null +++ b/net/minecraft/client/DeltaTracker.java @@ -0,0 +1,127 @@ +package net.minecraft.client; + +import it.unimi.dsi.fastutil.floats.FloatUnaryOperator; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public interface DeltaTracker { + DeltaTracker ZERO = new DeltaTracker.DefaultValue(0.0F); + DeltaTracker ONE = new DeltaTracker.DefaultValue(1.0F); + + float getGameTimeDeltaTicks(); + + float getGameTimeDeltaPartialTick(boolean runsNormally); + + float getRealtimeDeltaTicks(); + + @Environment(EnvType.CLIENT) + public static class DefaultValue implements DeltaTracker { + private final float value; + + DefaultValue(float value) { + this.value = value; + } + + @Override + public float getGameTimeDeltaTicks() { + return this.value; + } + + @Override + public float getGameTimeDeltaPartialTick(boolean runsNormally) { + return this.value; + } + + @Override + public float getRealtimeDeltaTicks() { + return this.value; + } + } + + @Environment(EnvType.CLIENT) + public static class Timer implements DeltaTracker { + private float deltaTicks; + private float deltaTickResidual; + private float realtimeDeltaTicks; + private float pausedDeltaTickResidual; + private long lastMs; + private long lastUiMs; + private final float msPerTick; + private final FloatUnaryOperator targetMsptProvider; + private boolean paused; + private boolean frozen; + + public Timer(float ticksPerSecond, long time, FloatUnaryOperator targetMsptProvider) { + this.msPerTick = 1000.0F / ticksPerSecond; + this.lastUiMs = this.lastMs = time; + this.targetMsptProvider = targetMsptProvider; + } + + public int advanceTime(long time, boolean advanceGameTime) { + this.advanceRealTime(time); + return advanceGameTime ? this.advanceGameTime(time) : 0; + } + + private int advanceGameTime(long time) { + this.deltaTicks = (float)(time - this.lastMs) / this.targetMsptProvider.apply(this.msPerTick); + this.lastMs = time; + this.deltaTickResidual = this.deltaTickResidual + this.deltaTicks; + int i = (int)this.deltaTickResidual; + this.deltaTickResidual -= i; + return i; + } + + private void advanceRealTime(long time) { + this.realtimeDeltaTicks = (float)(time - this.lastUiMs) / this.msPerTick; + this.lastUiMs = time; + } + + public void updatePauseState(boolean paused) { + if (paused) { + this.pause(); + } else { + this.unPause(); + } + } + + private void pause() { + if (!this.paused) { + this.pausedDeltaTickResidual = this.deltaTickResidual; + } + + this.paused = true; + } + + private void unPause() { + if (this.paused) { + this.deltaTickResidual = this.pausedDeltaTickResidual; + } + + this.paused = false; + } + + public void updateFrozenState(boolean frozen) { + this.frozen = frozen; + } + + @Override + public float getGameTimeDeltaTicks() { + return this.deltaTicks; + } + + @Override + public float getGameTimeDeltaPartialTick(boolean runsNormally) { + if (!runsNormally && this.frozen) { + return 1.0F; + } else { + return this.paused ? this.pausedDeltaTickResidual : this.deltaTickResidual; + } + } + + @Override + public float getRealtimeDeltaTicks() { + return this.realtimeDeltaTicks > 7.0F ? 0.5F : this.realtimeDeltaTicks; + } + } +} diff --git a/net/minecraft/client/GameNarrator.java b/net/minecraft/client/GameNarrator.java new file mode 100644 index 00000000..053e3ebe --- /dev/null +++ b/net/minecraft/client/GameNarrator.java @@ -0,0 +1,121 @@ +package net.minecraft.client; + +import com.mojang.logging.LogUtils; +import com.mojang.text2speech.Narrator; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.SharedConstants; +import net.minecraft.client.gui.components.toasts.SystemToast; +import net.minecraft.client.gui.components.toasts.ToastComponent; +import net.minecraft.client.main.SilentInitException; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import org.lwjgl.util.tinyfd.TinyFileDialogs; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class GameNarrator { + public static final Component NO_TITLE = CommonComponents.EMPTY; + private static final Logger LOGGER = LogUtils.getLogger(); + private final Minecraft minecraft; + private final Narrator narrator = Narrator.getNarrator(); + + public GameNarrator(Minecraft minecraft) { + this.minecraft = minecraft; + } + + public void sayChat(Component message) { + if (this.getStatus().shouldNarrateChat()) { + String string = message.getString(); + this.logNarratedMessage(string); + this.narrator.say(string, false); + } + } + + public void say(Component message) { + String string = message.getString(); + if (this.getStatus().shouldNarrateSystem() && !string.isEmpty()) { + this.logNarratedMessage(string); + this.narrator.say(string, false); + } + } + + public void sayNow(Component message) { + this.sayNow(message.getString()); + } + + public void sayNow(String message) { + if (this.getStatus().shouldNarrateSystem() && !message.isEmpty()) { + this.logNarratedMessage(message); + if (this.narrator.active()) { + this.narrator.clear(); + this.narrator.say(message, true); + } + } + } + + private NarratorStatus getStatus() { + return this.minecraft.options.narrator().get(); + } + + private void logNarratedMessage(String message) { + if (SharedConstants.IS_RUNNING_IN_IDE) { + LOGGER.debug("Narrating: {}", message.replaceAll("\n", "\\\\n")); + } + } + + public void updateNarratorStatus(NarratorStatus status) { + this.clear(); + this.narrator.say(Component.translatable("options.narrator").append(" : ").append(status.getName()).getString(), true); + ToastComponent toastComponent = Minecraft.getInstance().getToasts(); + if (this.narrator.active()) { + if (status == NarratorStatus.OFF) { + SystemToast.addOrUpdate(toastComponent, SystemToast.SystemToastId.NARRATOR_TOGGLE, Component.translatable("narrator.toast.disabled"), null); + } else { + SystemToast.addOrUpdate(toastComponent, SystemToast.SystemToastId.NARRATOR_TOGGLE, Component.translatable("narrator.toast.enabled"), status.getName()); + } + } else { + SystemToast.addOrUpdate( + toastComponent, + SystemToast.SystemToastId.NARRATOR_TOGGLE, + Component.translatable("narrator.toast.disabled"), + Component.translatable("options.narrator.notavailable") + ); + } + } + + public boolean isActive() { + return this.narrator.active(); + } + + public void clear() { + if (this.getStatus() != NarratorStatus.OFF && this.narrator.active()) { + this.narrator.clear(); + } + } + + public void destroy() { + this.narrator.destroy(); + } + + public void checkStatus(boolean narratorEnabled) { + if (narratorEnabled + && !this.isActive() + && !TinyFileDialogs.tinyfd_messageBox( + "Minecraft", + "Failed to initialize text-to-speech library. Do you want to continue?\nIf this problem persists, please report it at bugs.mojang.com", + "yesno", + "error", + true + )) { + throw new GameNarrator.NarratorInitException("Narrator library is not active"); + } + } + + @Environment(EnvType.CLIENT) + public static class NarratorInitException extends SilentInitException { + public NarratorInitException(String string) { + super(string); + } + } +} diff --git a/net/minecraft/client/GraphicsStatus.java b/net/minecraft/client/GraphicsStatus.java new file mode 100644 index 00000000..343765ef --- /dev/null +++ b/net/minecraft/client/GraphicsStatus.java @@ -0,0 +1,45 @@ +package net.minecraft.client; + +import java.util.function.IntFunction; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.ByIdMap; +import net.minecraft.util.OptionEnum; + +@Environment(EnvType.CLIENT) +public enum GraphicsStatus implements OptionEnum { + FAST(0, "options.graphics.fast"), + FANCY(1, "options.graphics.fancy"), + FABULOUS(2, "options.graphics.fabulous"); + + private static final IntFunction BY_ID = ByIdMap.continuous(GraphicsStatus::getId, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + private final int id; + private final String key; + + private GraphicsStatus(final int id, final String key) { + this.id = id; + this.key = key; + } + + @Override + public int getId() { + return this.id; + } + + @Override + public String getKey() { + return this.key; + } + + public String toString() { + return switch (this) { + case FAST -> "fast"; + case FANCY -> "fancy"; + case FABULOUS -> "fabulous"; + }; + } + + public static GraphicsStatus byId(int id) { + return (GraphicsStatus)BY_ID.apply(id); + } +} diff --git a/net/minecraft/client/GuiMessage.java b/net/minecraft/client/GuiMessage.java new file mode 100644 index 00000000..f502604b --- /dev/null +++ b/net/minecraft/client/GuiMessage.java @@ -0,0 +1,20 @@ +package net.minecraft.client; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MessageSignature; +import net.minecraft.util.FormattedCharSequence; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public record GuiMessage(int addedTime, Component content, @Nullable MessageSignature signature, @Nullable GuiMessageTag tag) { + @Nullable + public GuiMessageTag.Icon icon() { + return this.tag != null ? this.tag.icon() : null; + } + + @Environment(EnvType.CLIENT) + public record Line(int addedTime, FormattedCharSequence content, @Nullable GuiMessageTag tag, boolean endOfEntry) { + } +} diff --git a/net/minecraft/client/GuiMessageTag.java b/net/minecraft/client/GuiMessageTag.java new file mode 100644 index 00000000..b61b887b --- /dev/null +++ b/net/minecraft/client/GuiMessageTag.java @@ -0,0 +1,66 @@ +package net.minecraft.client; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public record GuiMessageTag(int indicatorColor, @Nullable GuiMessageTag.Icon icon, @Nullable Component text, @Nullable String logTag) { + private static final Component SYSTEM_TEXT = Component.translatable("chat.tag.system"); + private static final Component SYSTEM_TEXT_SINGLE_PLAYER = Component.translatable("chat.tag.system_single_player"); + private static final Component CHAT_NOT_SECURE_TEXT = Component.translatable("chat.tag.not_secure"); + private static final Component CHAT_MODIFIED_TEXT = Component.translatable("chat.tag.modified"); + private static final Component CHAT_ERROR_TEXT = Component.translatable("chat.tag.error"); + private static final int CHAT_NOT_SECURE_INDICATOR_COLOR = 13684944; + private static final int CHAT_MODIFIED_INDICATOR_COLOR = 6316128; + private static final GuiMessageTag SYSTEM = new GuiMessageTag(13684944, null, SYSTEM_TEXT, "System"); + private static final GuiMessageTag SYSTEM_SINGLE_PLAYER = new GuiMessageTag(13684944, null, SYSTEM_TEXT_SINGLE_PLAYER, "System"); + private static final GuiMessageTag CHAT_NOT_SECURE = new GuiMessageTag(13684944, null, CHAT_NOT_SECURE_TEXT, "Not Secure"); + private static final GuiMessageTag CHAT_ERROR = new GuiMessageTag(16733525, null, CHAT_ERROR_TEXT, "Chat Error"); + + public static GuiMessageTag system() { + return SYSTEM; + } + + public static GuiMessageTag systemSinglePlayer() { + return SYSTEM_SINGLE_PLAYER; + } + + public static GuiMessageTag chatNotSecure() { + return CHAT_NOT_SECURE; + } + + public static GuiMessageTag chatModified(String originalText) { + Component component = Component.literal(originalText).withStyle(ChatFormatting.GRAY); + Component component2 = Component.empty().append(CHAT_MODIFIED_TEXT).append(CommonComponents.NEW_LINE).append(component); + return new GuiMessageTag(6316128, GuiMessageTag.Icon.CHAT_MODIFIED, component2, "Modified"); + } + + public static GuiMessageTag chatError() { + return CHAT_ERROR; + } + + @Environment(EnvType.CLIENT) + public static enum Icon { + CHAT_MODIFIED(ResourceLocation.withDefaultNamespace("icon/chat_modified"), 9, 9); + + public final ResourceLocation sprite; + public final int width; + public final int height; + + private Icon(final ResourceLocation sprite, final int width, final int height) { + this.sprite = sprite; + this.width = width; + this.height = height; + } + + public void draw(GuiGraphics guiGraphics, int x, int y) { + guiGraphics.blitSprite(this.sprite, x, y, this.width, this.height); + } + } +} diff --git a/net/minecraft/client/HotbarManager.java b/net/minecraft/client/HotbarManager.java new file mode 100644 index 00000000..38cd6e86 --- /dev/null +++ b/net/minecraft/client/HotbarManager.java @@ -0,0 +1,81 @@ +package net.minecraft.client; + +import com.mojang.datafixers.DataFixer; +import com.mojang.logging.LogUtils; +import com.mojang.serialization.DataResult; +import java.nio.file.Path; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.player.inventory.Hotbar; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtIo; +import net.minecraft.nbt.NbtOps; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.nbt.Tag; +import net.minecraft.util.datafix.DataFixTypes; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class HotbarManager { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final int NUM_HOTBAR_GROUPS = 9; + private final Path optionsFile; + private final DataFixer fixerUpper; + private final Hotbar[] hotbars = new Hotbar[9]; + private boolean loaded; + + public HotbarManager(Path gameDirectory, DataFixer fixerUpper) { + this.optionsFile = gameDirectory.resolve("hotbar.nbt"); + this.fixerUpper = fixerUpper; + + for (int i = 0; i < 9; i++) { + this.hotbars[i] = new Hotbar(); + } + } + + private void load() { + try { + CompoundTag compoundTag = NbtIo.read(this.optionsFile); + if (compoundTag == null) { + return; + } + + int i = NbtUtils.getDataVersion(compoundTag, 1343); + compoundTag = DataFixTypes.HOTBAR.updateToCurrentVersion(this.fixerUpper, compoundTag, i); + + for (int j = 0; j < 9; j++) { + this.hotbars[j] = (Hotbar)Hotbar.CODEC + .parse(NbtOps.INSTANCE, compoundTag.get(String.valueOf(j))) + .resultOrPartial(string -> LOGGER.warn("Failed to parse hotbar: {}", string)) + .orElseGet(Hotbar::new); + } + } catch (Exception var4) { + LOGGER.error("Failed to load creative mode options", (Throwable)var4); + } + } + + public void save() { + try { + CompoundTag compoundTag = NbtUtils.addCurrentDataVersion(new CompoundTag()); + + for (int i = 0; i < 9; i++) { + Hotbar hotbar = this.get(i); + DataResult dataResult = Hotbar.CODEC.encodeStart(NbtOps.INSTANCE, hotbar); + compoundTag.put(String.valueOf(i), dataResult.getOrThrow()); + } + + NbtIo.write(compoundTag, this.optionsFile); + } catch (Exception var5) { + LOGGER.error("Failed to save creative mode options", (Throwable)var5); + } + } + + public Hotbar get(int index) { + if (!this.loaded) { + this.load(); + this.loaded = true; + } + + return this.hotbars[index]; + } +} diff --git a/net/minecraft/client/InputType.java b/net/minecraft/client/InputType.java new file mode 100644 index 00000000..4136ab97 --- /dev/null +++ b/net/minecraft/client/InputType.java @@ -0,0 +1,20 @@ +package net.minecraft.client; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public enum InputType { + NONE, + MOUSE, + KEYBOARD_ARROW, + KEYBOARD_TAB; + + public boolean isMouse() { + return this == MOUSE; + } + + public boolean isKeyboard() { + return this == KEYBOARD_ARROW || this == KEYBOARD_TAB; + } +} diff --git a/net/minecraft/client/KeyMapping.java b/net/minecraft/client/KeyMapping.java new file mode 100644 index 00000000..b6ea5c18 --- /dev/null +++ b/net/minecraft/client/KeyMapping.java @@ -0,0 +1,203 @@ +package net.minecraft.client; + +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import com.mojang.blaze3d.platform.InputConstants; +import java.util.Map; +import java.util.Set; +import java.util.function.Supplier; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.network.chat.Component; + +@Environment(EnvType.CLIENT) +public class KeyMapping implements Comparable { + private static final Map ALL = Maps.newHashMap(); + private static final Map MAP = Maps.newHashMap(); + private static final Set CATEGORIES = Sets.newHashSet(); + public static final String CATEGORY_MOVEMENT = "key.categories.movement"; + public static final String CATEGORY_MISC = "key.categories.misc"; + public static final String CATEGORY_MULTIPLAYER = "key.categories.multiplayer"; + public static final String CATEGORY_GAMEPLAY = "key.categories.gameplay"; + public static final String CATEGORY_INVENTORY = "key.categories.inventory"; + public static final String CATEGORY_INTERFACE = "key.categories.ui"; + public static final String CATEGORY_CREATIVE = "key.categories.creative"; + private static final Map CATEGORY_SORT_ORDER = Util.make(Maps.newHashMap(), hashMap -> { + hashMap.put("key.categories.movement", 1); + hashMap.put("key.categories.gameplay", 2); + hashMap.put("key.categories.inventory", 3); + hashMap.put("key.categories.creative", 4); + hashMap.put("key.categories.multiplayer", 5); + hashMap.put("key.categories.ui", 6); + hashMap.put("key.categories.misc", 7); + }); + private final String name; + private final InputConstants.Key defaultKey; + private final String category; + private InputConstants.Key key; + private boolean isDown; + private int clickCount; + + public static void click(InputConstants.Key key) { + KeyMapping keyMapping = (KeyMapping)MAP.get(key); + if (keyMapping != null) { + keyMapping.clickCount++; + } + } + + public static void set(InputConstants.Key key, boolean held) { + KeyMapping keyMapping = (KeyMapping)MAP.get(key); + if (keyMapping != null) { + keyMapping.setDown(held); + } + } + + /** + * Completely recalculates whether any keybinds are held, from scratch. + */ + public static void setAll() { + for (KeyMapping keyMapping : ALL.values()) { + if (keyMapping.key.getType() == InputConstants.Type.KEYSYM && keyMapping.key.getValue() != InputConstants.UNKNOWN.getValue()) { + keyMapping.setDown(InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keyMapping.key.getValue())); + } + } + } + + public static void releaseAll() { + for (KeyMapping keyMapping : ALL.values()) { + keyMapping.release(); + } + } + + public static void resetToggleKeys() { + for (KeyMapping keyMapping : ALL.values()) { + if (keyMapping instanceof ToggleKeyMapping toggleKeyMapping) { + toggleKeyMapping.reset(); + } + } + } + + public static void resetMapping() { + MAP.clear(); + + for (KeyMapping keyMapping : ALL.values()) { + MAP.put(keyMapping.key, keyMapping); + } + } + + public KeyMapping(String name, int keyCode, String category) { + this(name, InputConstants.Type.KEYSYM, keyCode, category); + } + + public KeyMapping(String name, InputConstants.Type type, int keyCode, String category) { + this.name = name; + this.key = type.getOrCreate(keyCode); + this.defaultKey = this.key; + this.category = category; + ALL.put(name, this); + MAP.put(this.key, this); + CATEGORIES.add(category); + } + + /** + * Returns {@code true} if the key is pressed (used for continuous querying). Should be used in tickers. + */ + public boolean isDown() { + return this.isDown; + } + + public String getCategory() { + return this.category; + } + + /** + * Returns {@code true} on the initial key press. For continuous querying use {@link isKeyDown()}. Should be used in key events. + */ + public boolean consumeClick() { + if (this.clickCount == 0) { + return false; + } else { + this.clickCount--; + return true; + } + } + + private void release() { + this.clickCount = 0; + this.setDown(false); + } + + public String getName() { + return this.name; + } + + public InputConstants.Key getDefaultKey() { + return this.defaultKey; + } + + /** + * Binds a new KeyCode to this + */ + public void setKey(InputConstants.Key key) { + this.key = key; + } + + public int compareTo(KeyMapping keyMapping) { + return this.category.equals(keyMapping.category) + ? I18n.get(this.name).compareTo(I18n.get(keyMapping.name)) + : ((Integer)CATEGORY_SORT_ORDER.get(this.category)).compareTo((Integer)CATEGORY_SORT_ORDER.get(keyMapping.category)); + } + + /** + * Returns a supplier which gets a keybind's current binding (eg, key.forward returns W by default), or the keybind's name if no such keybind exists (eg, key.invalid returns key.invalid) + */ + public static Supplier createNameSupplier(String key) { + KeyMapping keyMapping = (KeyMapping)ALL.get(key); + return keyMapping == null ? () -> Component.translatable(key) : keyMapping::getTranslatedKeyMessage; + } + + /** + * Returns {@code true} if the supplied {@code KeyMapping} conflicts with this + */ + public boolean same(KeyMapping binding) { + return this.key.equals(binding.key); + } + + public boolean isUnbound() { + return this.key.equals(InputConstants.UNKNOWN); + } + + public boolean matches(int keysym, int scancode) { + return keysym == InputConstants.UNKNOWN.getValue() + ? this.key.getType() == InputConstants.Type.SCANCODE && this.key.getValue() == scancode + : this.key.getType() == InputConstants.Type.KEYSYM && this.key.getValue() == keysym; + } + + /** + * Returns {@code true} if the {@code KeyMapping} is set to a mouse key and the key matches. + */ + public boolean matchesMouse(int key) { + return this.key.getType() == InputConstants.Type.MOUSE && this.key.getValue() == key; + } + + public Component getTranslatedKeyMessage() { + return this.key.getDisplayName(); + } + + /** + * Returns {@code true} if the {@code KeyMapping} is using the default key and key modifier + */ + public boolean isDefault() { + return this.key.equals(this.defaultKey); + } + + public String saveString() { + return this.key.getName(); + } + + public void setDown(boolean value) { + this.isDown = value; + } +} diff --git a/net/minecraft/client/KeyboardHandler.java b/net/minecraft/client/KeyboardHandler.java new file mode 100644 index 00000000..5ea5b40b --- /dev/null +++ b/net/minecraft/client/KeyboardHandler.java @@ -0,0 +1,527 @@ +package net.minecraft.client; + +import com.google.common.base.MoreObjects; +import com.mojang.blaze3d.Blaze3D; +import com.mojang.blaze3d.platform.ClipboardManager; +import com.mojang.blaze3d.platform.InputConstants; +import com.mojang.blaze3d.platform.TextureUtil; +import java.nio.file.Path; +import java.text.MessageFormat; +import java.util.Locale; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; +import net.minecraft.CrashReport; +import net.minecraft.CrashReportCategory; +import net.minecraft.ReportedException; +import net.minecraft.Util; +import net.minecraft.client.gui.components.ChatComponent; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.gui.screens.PauseScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.debug.GameModeSwitcherScreen; +import net.minecraft.client.gui.screens.options.controls.KeyBindsScreen; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.commands.arguments.blocks.BlockStateParser; +import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.util.NativeModuleLister; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.GameType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class KeyboardHandler { + public static final int DEBUG_CRASH_TIME = 10000; + private final Minecraft minecraft; + private final ClipboardManager clipboardManager = new ClipboardManager(); + private long debugCrashKeyTime = -1L; + private long debugCrashKeyReportedTime = -1L; + private long debugCrashKeyReportedCount = -1L; + private boolean handledDebugKey; + + public KeyboardHandler(Minecraft minecraft) { + this.minecraft = minecraft; + } + + private boolean handleChunkDebugKeys(int keyCode) { + switch (keyCode) { + case 69: + this.minecraft.sectionPath = !this.minecraft.sectionPath; + this.debugFeedback("SectionPath: {0}", this.minecraft.sectionPath ? "shown" : "hidden"); + return true; + case 76: + this.minecraft.smartCull = !this.minecraft.smartCull; + this.debugFeedback("SmartCull: {0}", this.minecraft.smartCull ? "enabled" : "disabled"); + return true; + case 85: + if (Screen.hasShiftDown()) { + this.minecraft.levelRenderer.killFrustum(); + this.debugFeedback("Killed frustum"); + } else { + this.minecraft.levelRenderer.captureFrustum(); + this.debugFeedback("Captured frustum"); + } + + return true; + case 86: + this.minecraft.sectionVisibility = !this.minecraft.sectionVisibility; + this.debugFeedback("SectionVisibility: {0}", this.minecraft.sectionVisibility ? "enabled" : "disabled"); + return true; + case 87: + this.minecraft.wireframe = !this.minecraft.wireframe; + this.debugFeedback("WireFrame: {0}", this.minecraft.wireframe ? "enabled" : "disabled"); + return true; + default: + return false; + } + } + + private void debugComponent(ChatFormatting formatting, Component message) { + this.minecraft + .gui + .getChat() + .addMessage( + Component.empty().append(Component.translatable("debug.prefix").withStyle(formatting, ChatFormatting.BOLD)).append(CommonComponents.SPACE).append(message) + ); + } + + private void debugFeedbackComponent(Component message) { + this.debugComponent(ChatFormatting.YELLOW, message); + } + + private void debugFeedbackTranslated(String message, Object... args) { + this.debugFeedbackComponent(Component.translatableEscape(message, args)); + } + + private void debugWarningTranslated(String message, Object... args) { + this.debugComponent(ChatFormatting.RED, Component.translatableEscape(message, args)); + } + + private void debugFeedback(String message, Object... args) { + this.debugFeedbackComponent(Component.literal(MessageFormat.format(message, args))); + } + + private boolean handleDebugKeys(int key) { + if (this.debugCrashKeyTime > 0L && this.debugCrashKeyTime < Util.getMillis() - 100L) { + return true; + } else { + switch (key) { + case 49: + this.minecraft.getDebugOverlay().toggleProfilerChart(); + return true; + case 50: + this.minecraft.getDebugOverlay().toggleFpsCharts(); + return true; + case 51: + this.minecraft.getDebugOverlay().toggleNetworkCharts(); + return true; + case 65: + this.minecraft.levelRenderer.allChanged(); + this.debugFeedbackTranslated("debug.reload_chunks.message"); + return true; + case 66: + boolean bl = !this.minecraft.getEntityRenderDispatcher().shouldRenderHitBoxes(); + this.minecraft.getEntityRenderDispatcher().setRenderHitBoxes(bl); + this.debugFeedbackTranslated(bl ? "debug.show_hitboxes.on" : "debug.show_hitboxes.off"); + return true; + case 67: + if (this.minecraft.player.isReducedDebugInfo()) { + return false; + } else { + ClientPacketListener clientPacketListener = this.minecraft.player.connection; + if (clientPacketListener == null) { + return false; + } + + this.debugFeedbackTranslated("debug.copy_location.message"); + this.setClipboard( + String.format( + Locale.ROOT, + "/execute in %s run tp @s %.2f %.2f %.2f %.2f %.2f", + this.minecraft.player.level().dimension().location(), + this.minecraft.player.getX(), + this.minecraft.player.getY(), + this.minecraft.player.getZ(), + this.minecraft.player.getYRot(), + this.minecraft.player.getXRot() + ) + ); + return true; + } + case 68: + if (this.minecraft.gui != null) { + this.minecraft.gui.getChat().clearMessages(false); + } + + return true; + case 71: + boolean bl2 = this.minecraft.debugRenderer.switchRenderChunkborder(); + this.debugFeedbackTranslated(bl2 ? "debug.chunk_boundaries.on" : "debug.chunk_boundaries.off"); + return true; + case 72: + this.minecraft.options.advancedItemTooltips = !this.minecraft.options.advancedItemTooltips; + this.debugFeedbackTranslated(this.minecraft.options.advancedItemTooltips ? "debug.advanced_tooltips.on" : "debug.advanced_tooltips.off"); + this.minecraft.options.save(); + return true; + case 73: + if (!this.minecraft.player.isReducedDebugInfo()) { + this.copyRecreateCommand(this.minecraft.player.hasPermissions(2), !Screen.hasShiftDown()); + } + + return true; + case 76: + if (this.minecraft.debugClientMetricsStart(this::debugFeedbackComponent)) { + this.debugFeedbackTranslated("debug.profiling.start", 10); + } + + return true; + case 78: + if (!this.minecraft.player.hasPermissions(2)) { + this.debugFeedbackTranslated("debug.creative_spectator.error"); + } else if (!this.minecraft.player.isSpectator()) { + this.minecraft.player.connection.sendUnsignedCommand("gamemode spectator"); + } else { + this.minecraft + .player + .connection + .sendUnsignedCommand("gamemode " + MoreObjects.firstNonNull(this.minecraft.gameMode.getPreviousPlayerMode(), GameType.CREATIVE).getName()); + } + + return true; + case 80: + this.minecraft.options.pauseOnLostFocus = !this.minecraft.options.pauseOnLostFocus; + this.minecraft.options.save(); + this.debugFeedbackTranslated(this.minecraft.options.pauseOnLostFocus ? "debug.pause_focus.on" : "debug.pause_focus.off"); + return true; + case 81: + this.debugFeedbackTranslated("debug.help.message"); + ChatComponent chatComponent = this.minecraft.gui.getChat(); + chatComponent.addMessage(Component.translatable("debug.reload_chunks.help")); + chatComponent.addMessage(Component.translatable("debug.show_hitboxes.help")); + chatComponent.addMessage(Component.translatable("debug.copy_location.help")); + chatComponent.addMessage(Component.translatable("debug.clear_chat.help")); + chatComponent.addMessage(Component.translatable("debug.chunk_boundaries.help")); + chatComponent.addMessage(Component.translatable("debug.advanced_tooltips.help")); + chatComponent.addMessage(Component.translatable("debug.inspect.help")); + chatComponent.addMessage(Component.translatable("debug.profiling.help")); + chatComponent.addMessage(Component.translatable("debug.creative_spectator.help")); + chatComponent.addMessage(Component.translatable("debug.pause_focus.help")); + chatComponent.addMessage(Component.translatable("debug.help.help")); + chatComponent.addMessage(Component.translatable("debug.dump_dynamic_textures.help")); + chatComponent.addMessage(Component.translatable("debug.reload_resourcepacks.help")); + chatComponent.addMessage(Component.translatable("debug.pause.help")); + chatComponent.addMessage(Component.translatable("debug.gamemodes.help")); + return true; + case 83: + Path path = this.minecraft.gameDirectory.toPath().toAbsolutePath(); + Path path2 = TextureUtil.getDebugTexturePath(path); + this.minecraft.getTextureManager().dumpAllSheets(path2); + Component component = Component.literal(path.relativize(path2).toString()) + .withStyle(ChatFormatting.UNDERLINE) + .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_FILE, path2.toFile().toString()))); + this.debugFeedbackTranslated("debug.dump_dynamic_textures", component); + return true; + case 84: + this.debugFeedbackTranslated("debug.reload_resourcepacks.message"); + this.minecraft.reloadResourcePacks(); + return true; + case 293: + if (!this.minecraft.player.hasPermissions(2)) { + this.debugFeedbackTranslated("debug.gamemodes.error"); + } else { + this.minecraft.setScreen(new GameModeSwitcherScreen()); + } + + return true; + default: + return false; + } + } + } + + private void copyRecreateCommand(boolean privileged, boolean askServer) { + HitResult hitResult = this.minecraft.hitResult; + if (hitResult != null) { + switch (hitResult.getType()) { + case BLOCK: + BlockPos blockPos = ((BlockHitResult)hitResult).getBlockPos(); + Level level = this.minecraft.player.level(); + BlockState blockState = level.getBlockState(blockPos); + if (privileged) { + if (askServer) { + this.minecraft.player.connection.getDebugQueryHandler().queryBlockEntityTag(blockPos, compoundTagx -> { + this.copyCreateBlockCommand(blockState, blockPos, compoundTagx); + this.debugFeedbackTranslated("debug.inspect.server.block"); + }); + } else { + BlockEntity blockEntity = level.getBlockEntity(blockPos); + CompoundTag compoundTag = blockEntity != null ? blockEntity.saveWithoutMetadata(level.registryAccess()) : null; + this.copyCreateBlockCommand(blockState, blockPos, compoundTag); + this.debugFeedbackTranslated("debug.inspect.client.block"); + } + } else { + this.copyCreateBlockCommand(blockState, blockPos, null); + this.debugFeedbackTranslated("debug.inspect.client.block"); + } + break; + case ENTITY: + Entity entity = ((EntityHitResult)hitResult).getEntity(); + ResourceLocation resourceLocation = BuiltInRegistries.ENTITY_TYPE.getKey(entity.getType()); + if (privileged) { + if (askServer) { + this.minecraft.player.connection.getDebugQueryHandler().queryEntityTag(entity.getId(), compoundTagx -> { + this.copyCreateEntityCommand(resourceLocation, entity.position(), compoundTagx); + this.debugFeedbackTranslated("debug.inspect.server.entity"); + }); + } else { + CompoundTag compoundTag2 = entity.saveWithoutId(new CompoundTag()); + this.copyCreateEntityCommand(resourceLocation, entity.position(), compoundTag2); + this.debugFeedbackTranslated("debug.inspect.client.entity"); + } + } else { + this.copyCreateEntityCommand(resourceLocation, entity.position(), null); + this.debugFeedbackTranslated("debug.inspect.client.entity"); + } + } + } + } + + private void copyCreateBlockCommand(BlockState state, BlockPos pos, @Nullable CompoundTag compound) { + StringBuilder stringBuilder = new StringBuilder(BlockStateParser.serialize(state)); + if (compound != null) { + stringBuilder.append(compound); + } + + String string = String.format(Locale.ROOT, "/setblock %d %d %d %s", pos.getX(), pos.getY(), pos.getZ(), stringBuilder); + this.setClipboard(string); + } + + private void copyCreateEntityCommand(ResourceLocation entityId, Vec3 pos, @Nullable CompoundTag compound) { + String string2; + if (compound != null) { + compound.remove("UUID"); + compound.remove("Pos"); + compound.remove("Dimension"); + String string = NbtUtils.toPrettyComponent(compound).getString(); + string2 = String.format(Locale.ROOT, "/summon %s %.2f %.2f %.2f %s", entityId, pos.x, pos.y, pos.z, string); + } else { + string2 = String.format(Locale.ROOT, "/summon %s %.2f %.2f %.2f", entityId, pos.x, pos.y, pos.z); + } + + this.setClipboard(string2); + } + + public void keyPress(long windowPointer, int key, int scanCode, int action, int modifiers) { + if (windowPointer == this.minecraft.getWindow().getWindow()) { + boolean bl = InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), 292); + if (this.debugCrashKeyTime > 0L) { + if (!InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), 67) || !bl) { + this.debugCrashKeyTime = -1L; + } + } else if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), 67) && bl) { + this.handledDebugKey = true; + this.debugCrashKeyTime = Util.getMillis(); + this.debugCrashKeyReportedTime = Util.getMillis(); + this.debugCrashKeyReportedCount = 0L; + } + + Screen screen = this.minecraft.screen; + if (screen != null) { + switch (key) { + case 258: + this.minecraft.setLastInputType(InputType.KEYBOARD_TAB); + case 259: + case 260: + case 261: + default: + break; + case 262: + case 263: + case 264: + case 265: + this.minecraft.setLastInputType(InputType.KEYBOARD_ARROW); + } + } + + if (action == 1 && (!(this.minecraft.screen instanceof KeyBindsScreen) || ((KeyBindsScreen)screen).lastKeySelection <= Util.getMillis() - 20L)) { + if (this.minecraft.options.keyFullscreen.matches(key, scanCode)) { + this.minecraft.getWindow().toggleFullScreen(); + this.minecraft.options.fullscreen().set(this.minecraft.getWindow().isFullscreen()); + return; + } + + if (this.minecraft.options.keyScreenshot.matches(key, scanCode)) { + if (Screen.hasControlDown()) { + } + + Screenshot.grab( + this.minecraft.gameDirectory, + this.minecraft.getMainRenderTarget(), + component -> this.minecraft.execute(() -> this.minecraft.gui.getChat().addMessage(component)) + ); + return; + } + } + + if (action != 0) { + boolean bl2 = screen == null || !(screen.getFocused() instanceof EditBox) || !((EditBox)screen.getFocused()).canConsumeInput(); + if (bl2) { + if (Screen.hasControlDown() && key == 66 && this.minecraft.getNarrator().isActive() && this.minecraft.options.narratorHotkey().get()) { + boolean bl3 = this.minecraft.options.narrator().get() == NarratorStatus.OFF; + this.minecraft.options.narrator().set(NarratorStatus.byId(this.minecraft.options.narrator().get().getId() + 1)); + this.minecraft.options.save(); + if (screen != null) { + screen.updateNarratorStatus(bl3); + } + } + + LocalPlayer var16 = this.minecraft.player; + } + } + + if (screen != null) { + boolean[] bls = new boolean[]{false}; + Screen.wrapScreenError(() -> { + if (action == 1 || action == 2) { + screen.afterKeyboardAction(); + bls[0] = screen.keyPressed(key, scanCode, modifiers); + } else if (action == 0) { + bls[0] = screen.keyReleased(key, scanCode, modifiers); + } + }, "keyPressed event handler", screen.getClass().getCanonicalName()); + if (bls[0]) { + return; + } + } + + InputConstants.Key key2 = InputConstants.getKey(key, scanCode); + boolean bl3 = this.minecraft.screen == null; + boolean bl4 = bl3 || this.minecraft.screen instanceof PauseScreen pauseScreen && !pauseScreen.showsPauseMenu(); + if (action == 0) { + KeyMapping.set(key2, false); + if (bl4 && key == 292) { + if (this.handledDebugKey) { + this.handledDebugKey = false; + } else { + this.minecraft.getDebugOverlay().toggleOverlay(); + } + } + } else { + boolean bl5 = false; + if (bl4) { + if (key == 293 && this.minecraft.gameRenderer != null) { + this.minecraft.gameRenderer.togglePostEffect(); + } + + if (key == 256) { + this.minecraft.pauseGame(bl); + bl5 |= bl; + } + + bl5 |= bl && this.handleDebugKeys(key); + this.handledDebugKey |= bl5; + if (key == 290) { + this.minecraft.options.hideGui = !this.minecraft.options.hideGui; + } + + if (this.minecraft.getDebugOverlay().showProfilerChart() && !bl && key >= 48 && key <= 57) { + this.minecraft.debugFpsMeterKeyPress(key - 48); + } + } + + if (bl3) { + if (bl5) { + KeyMapping.set(key2, false); + } else { + KeyMapping.set(key2, true); + KeyMapping.click(key2); + } + } + } + } + } + + private void charTyped(long windowPointer, int codePoint, int modifiers) { + if (windowPointer == this.minecraft.getWindow().getWindow()) { + GuiEventListener guiEventListener = this.minecraft.screen; + if (guiEventListener != null && this.minecraft.getOverlay() == null) { + if (Character.charCount(codePoint) == 1) { + Screen.wrapScreenError( + () -> guiEventListener.charTyped((char)codePoint, modifiers), "charTyped event handler", guiEventListener.getClass().getCanonicalName() + ); + } else { + for (char c : Character.toChars(codePoint)) { + Screen.wrapScreenError(() -> guiEventListener.charTyped(c, modifiers), "charTyped event handler", guiEventListener.getClass().getCanonicalName()); + } + } + } + } + } + + public void setup(long window) { + InputConstants.setupKeyboardCallbacks( + window, (l, i, j, k, m) -> this.minecraft.execute(() -> this.keyPress(l, i, j, k, m)), (l, i, j) -> this.minecraft.execute(() -> this.charTyped(l, i, j)) + ); + } + + public String getClipboard() { + return this.clipboardManager.getClipboard(this.minecraft.getWindow().getWindow(), (i, l) -> { + if (i != 65545) { + this.minecraft.getWindow().defaultErrorCallback(i, l); + } + }); + } + + public void setClipboard(String string) { + if (!string.isEmpty()) { + this.clipboardManager.setClipboard(this.minecraft.getWindow().getWindow(), string); + } + } + + public void tick() { + if (this.debugCrashKeyTime > 0L) { + long l = Util.getMillis(); + long m = 10000L - (l - this.debugCrashKeyTime); + long n = l - this.debugCrashKeyReportedTime; + if (m < 0L) { + if (Screen.hasControlDown()) { + Blaze3D.youJustLostTheGame(); + } + + String string = "Manually triggered debug crash"; + CrashReport crashReport = new CrashReport("Manually triggered debug crash", new Throwable("Manually triggered debug crash")); + CrashReportCategory crashReportCategory = crashReport.addCategory("Manual crash details"); + NativeModuleLister.addCrashSection(crashReportCategory); + throw new ReportedException(crashReport); + } + + if (n >= 1000L) { + if (this.debugCrashKeyReportedCount == 0L) { + this.debugFeedbackTranslated("debug.crash.message"); + } else { + this.debugWarningTranslated("debug.crash.warning", Mth.ceil((float)m / 1000.0F)); + } + + this.debugCrashKeyReportedTime = l; + this.debugCrashKeyReportedCount++; + } + } + } +} diff --git a/net/minecraft/client/Minecraft.java b/net/minecraft/client/Minecraft.java new file mode 100644 index 00000000..63fe4699 --- /dev/null +++ b/net/minecraft/client/Minecraft.java @@ -0,0 +1,2984 @@ +package net.minecraft.client; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import com.google.common.collect.Queues; +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.exceptions.AuthenticationException; +import com.mojang.authlib.minecraft.BanDetails; +import com.mojang.authlib.minecraft.MinecraftSessionService; +import com.mojang.authlib.minecraft.UserApiService; +import com.mojang.authlib.minecraft.UserApiService.UserFlag; +import com.mojang.authlib.minecraft.UserApiService.UserProperties; +import com.mojang.authlib.yggdrasil.ProfileActionType; +import com.mojang.authlib.yggdrasil.ProfileResult; +import com.mojang.authlib.yggdrasil.ServicesKeyType; +import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; +import com.mojang.blaze3d.pipeline.MainTarget; +import com.mojang.blaze3d.pipeline.RenderTarget; +import com.mojang.blaze3d.pipeline.TextureTarget; +import com.mojang.blaze3d.platform.DisplayData; +import com.mojang.blaze3d.platform.GlDebug; +import com.mojang.blaze3d.platform.GlUtil; +import com.mojang.blaze3d.platform.IconSet; +import com.mojang.blaze3d.platform.Window; +import com.mojang.blaze3d.platform.WindowEventHandler; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.systems.TimerQuery; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.BufferUploader; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.MeshData; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.VertexSorting; +import com.mojang.datafixers.DataFixer; +import com.mojang.logging.LogUtils; +import com.mojang.realmsclient.client.RealmsClient; +import com.mojang.realmsclient.gui.RealmsDataFetcher; +import java.io.File; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.lang.management.ManagementFactory; +import java.net.Proxy; +import java.net.SocketAddress; +import java.nio.ByteBuffer; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.Queue; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; +import net.minecraft.CrashReport; +import net.minecraft.CrashReportCategory; +import net.minecraft.CrashReportDetail; +import net.minecraft.FileUtil; +import net.minecraft.Optionull; +import net.minecraft.ReportType; +import net.minecraft.ReportedException; +import net.minecraft.SharedConstants; +import net.minecraft.SystemReport; +import net.minecraft.Util; +import net.minecraft.client.color.block.BlockColors; +import net.minecraft.client.color.item.ItemColors; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiSpriteManager; +import net.minecraft.client.gui.components.DebugScreenOverlay; +import net.minecraft.client.gui.components.toasts.SystemToast; +import net.minecraft.client.gui.components.toasts.ToastComponent; +import net.minecraft.client.gui.components.toasts.TutorialToast; +import net.minecraft.client.gui.font.FontManager; +import net.minecraft.client.gui.font.providers.FreeTypeUtil; +import net.minecraft.client.gui.screens.AccessibilityOnboardingScreen; +import net.minecraft.client.gui.screens.BanNoticeScreens; +import net.minecraft.client.gui.screens.ChatScreen; +import net.minecraft.client.gui.screens.ConfirmLinkScreen; +import net.minecraft.client.gui.screens.DeathScreen; +import net.minecraft.client.gui.screens.GenericMessageScreen; +import net.minecraft.client.gui.screens.InBedChatScreen; +import net.minecraft.client.gui.screens.LevelLoadingScreen; +import net.minecraft.client.gui.screens.LoadingOverlay; +import net.minecraft.client.gui.screens.MenuScreens; +import net.minecraft.client.gui.screens.OutOfMemoryScreen; +import net.minecraft.client.gui.screens.Overlay; +import net.minecraft.client.gui.screens.PauseScreen; +import net.minecraft.client.gui.screens.ProgressScreen; +import net.minecraft.client.gui.screens.ReceivingLevelScreen; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.TitleScreen; +import net.minecraft.client.gui.screens.advancements.AdvancementsScreen; +import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen; +import net.minecraft.client.gui.screens.inventory.InventoryScreen; +import net.minecraft.client.gui.screens.social.PlayerSocialManager; +import net.minecraft.client.gui.screens.social.SocialInteractionsScreen; +import net.minecraft.client.gui.screens.worldselection.WorldOpenFlows; +import net.minecraft.client.main.GameConfig; +import net.minecraft.client.main.SilentInitException; +import net.minecraft.client.model.geom.EntityModelSet; +import net.minecraft.client.multiplayer.ClientHandshakePacketListenerImpl; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.multiplayer.MultiPlayerGameMode; +import net.minecraft.client.multiplayer.ProfileKeyPairManager; +import net.minecraft.client.multiplayer.ServerData; +import net.minecraft.client.multiplayer.chat.ChatListener; +import net.minecraft.client.multiplayer.chat.report.ReportEnvironment; +import net.minecraft.client.multiplayer.chat.report.ReportingContext; +import net.minecraft.client.particle.ParticleEngine; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.client.profiling.ClientMetricsSamplersProvider; +import net.minecraft.client.quickplay.QuickPlay; +import net.minecraft.client.quickplay.QuickPlayLog; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.client.renderer.FogRenderer; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.renderer.GpuWarnlistManager; +import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.client.renderer.RenderBuffers; +import net.minecraft.client.renderer.VirtualScreen; +import net.minecraft.client.renderer.block.BlockModelShaper; +import net.minecraft.client.renderer.block.BlockRenderDispatcher; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; +import net.minecraft.client.renderer.debug.DebugRenderer; +import net.minecraft.client.renderer.entity.EntityRenderDispatcher; +import net.minecraft.client.renderer.entity.EntityRenderers; +import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.client.renderer.texture.TextureAtlas; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.ClientPackSource; +import net.minecraft.client.resources.FoliageColorReloadListener; +import net.minecraft.client.resources.GrassColorReloadListener; +import net.minecraft.client.resources.MapDecorationTextureManager; +import net.minecraft.client.resources.MobEffectTextureManager; +import net.minecraft.client.resources.PaintingTextureManager; +import net.minecraft.client.resources.SkinManager; +import net.minecraft.client.resources.SplashManager; +import net.minecraft.client.resources.language.I18n; +import net.minecraft.client.resources.language.LanguageManager; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.client.resources.server.DownloadedPackSource; +import net.minecraft.client.server.IntegratedServer; +import net.minecraft.client.sounds.MusicManager; +import net.minecraft.client.sounds.SoundManager; +import net.minecraft.client.telemetry.ClientTelemetryManager; +import net.minecraft.client.telemetry.TelemetryProperty; +import net.minecraft.client.telemetry.events.GameLoadTimesEvent; +import net.minecraft.client.tutorial.Tutorial; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Holder; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.Connection; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.contents.KeybindResolver; +import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket; +import net.minecraft.network.protocol.login.ServerboundHelloPacket; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.Bootstrap; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.Services; +import net.minecraft.server.WorldStem; +import net.minecraft.server.level.progress.ProcessorChunkProgressListener; +import net.minecraft.server.level.progress.StoringChunkProgressListener; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.VanillaPackResources; +import net.minecraft.server.packs.repository.FolderRepositorySource; +import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.server.packs.repository.PackSource; +import net.minecraft.server.packs.repository.RepositorySource; +import net.minecraft.server.packs.resources.ReloadInstance; +import net.minecraft.server.packs.resources.ReloadableResourceManager; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.players.GameProfileCache; +import net.minecraft.sounds.Music; +import net.minecraft.sounds.Musics; +import net.minecraft.tags.BiomeTags; +import net.minecraft.util.CommonLinks; +import net.minecraft.util.FastColor; +import net.minecraft.util.FileZipper; +import net.minecraft.util.MemoryReserve; +import net.minecraft.util.ModCheck; +import net.minecraft.util.Mth; +import net.minecraft.util.SignatureValidator; +import net.minecraft.util.TimeUtil; +import net.minecraft.util.Unit; +import net.minecraft.util.datafix.DataFixers; +import net.minecraft.util.profiling.ContinuousProfiler; +import net.minecraft.util.profiling.EmptyProfileResults; +import net.minecraft.util.profiling.InactiveProfiler; +import net.minecraft.util.profiling.ProfileResults; +import net.minecraft.util.profiling.ProfilerFiller; +import net.minecraft.util.profiling.ResultField; +import net.minecraft.util.profiling.SingleTickProfiler; +import net.minecraft.util.profiling.metrics.profiling.ActiveMetricsRecorder; +import net.minecraft.util.profiling.metrics.profiling.InactiveMetricsRecorder; +import net.minecraft.util.profiling.metrics.profiling.MetricsRecorder; +import net.minecraft.util.profiling.metrics.storage.MetricsPersister; +import net.minecraft.util.thread.ReentrantBlockableEventLoop; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.TickRateManager; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.player.ChatVisiblity; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.SkullBlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.LevelStorageSource; +import net.minecraft.world.level.validation.DirectoryValidator; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; +import org.apache.commons.io.FileUtils; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; +import org.joml.Matrix4fStack; +import org.lwjgl.util.tinyfd.TinyFileDialogs; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class Minecraft extends ReentrantBlockableEventLoop implements WindowEventHandler { + static Minecraft instance; + private static final Logger LOGGER = LogUtils.getLogger(); + public static final boolean ON_OSX = Util.getPlatform() == Util.OS.OSX; + private static final int MAX_TICKS_PER_UPDATE = 10; + public static final ResourceLocation DEFAULT_FONT = ResourceLocation.withDefaultNamespace("default"); + public static final ResourceLocation UNIFORM_FONT = ResourceLocation.withDefaultNamespace("uniform"); + public static final ResourceLocation ALT_FONT = ResourceLocation.withDefaultNamespace("alt"); + private static final ResourceLocation REGIONAL_COMPLIANCIES = ResourceLocation.withDefaultNamespace("regional_compliancies.json"); + private static final CompletableFuture RESOURCE_RELOAD_INITIAL_TASK = CompletableFuture.completedFuture(Unit.INSTANCE); + private static final Component SOCIAL_INTERACTIONS_NOT_AVAILABLE = Component.translatable("multiplayer.socialInteractions.not_available"); + public static final String UPDATE_DRIVERS_ADVICE = "Please make sure you have up-to-date drivers (see aka.ms/mcdriver for instructions)."; + private final long canary = Double.doubleToLongBits(Math.PI); + private final Path resourcePackDirectory; + private final CompletableFuture profileFuture; + private final TextureManager textureManager; + private final DataFixer fixerUpper; + private final VirtualScreen virtualScreen; + private final Window window; + private final DeltaTracker.Timer timer = new DeltaTracker.Timer(20.0F, 0L, this::getTickTargetMillis); + private final RenderBuffers renderBuffers; + public final LevelRenderer levelRenderer; + private final EntityRenderDispatcher entityRenderDispatcher; + private final ItemRenderer itemRenderer; + public final ParticleEngine particleEngine; + private final User user; + public final Font font; + public final Font fontFilterFishy; + public final GameRenderer gameRenderer; + public final DebugRenderer debugRenderer; + private final AtomicReference progressListener = new AtomicReference(); + public final Gui gui; + public final Options options; + private final HotbarManager hotbarManager; + public final MouseHandler mouseHandler; + public final KeyboardHandler keyboardHandler; + private InputType lastInputType = InputType.NONE; + public final File gameDirectory; + private final String launchedVersion; + private final String versionType; + private final Proxy proxy; + private final LevelStorageSource levelSource; + private final boolean demo; + private final boolean allowsMultiplayer; + private final boolean allowsChat; + private final ReloadableResourceManager resourceManager; + private final VanillaPackResources vanillaPackResources; + private final DownloadedPackSource downloadedPackSource; + private final PackRepository resourcePackRepository; + private final LanguageManager languageManager; + private final BlockColors blockColors; + private final ItemColors itemColors; + private final RenderTarget mainRenderTarget; + private final SoundManager soundManager; + private final MusicManager musicManager; + private final FontManager fontManager; + private final SplashManager splashManager; + private final GpuWarnlistManager gpuWarnlistManager; + private final PeriodicNotificationManager regionalCompliancies = new PeriodicNotificationManager(REGIONAL_COMPLIANCIES, Minecraft::countryEqualsISO3); + private final YggdrasilAuthenticationService authenticationService; + private final MinecraftSessionService minecraftSessionService; + private final UserApiService userApiService; + private final CompletableFuture userPropertiesFuture; + private final SkinManager skinManager; + private final ModelManager modelManager; + /** + * The BlockRenderDispatcher instance that will be used based off gamesettings + */ + private final BlockRenderDispatcher blockRenderer; + private final PaintingTextureManager paintingTextures; + private final MobEffectTextureManager mobEffectTextures; + private final MapDecorationTextureManager mapDecorationTextures; + private final GuiSpriteManager guiSprites; + private final ToastComponent toast; + private final Tutorial tutorial; + private final PlayerSocialManager playerSocialManager; + private final EntityModelSet entityModels; + private final BlockEntityRenderDispatcher blockEntityRenderDispatcher; + private final ClientTelemetryManager telemetryManager; + private final ProfileKeyPairManager profileKeyPairManager; + private final RealmsDataFetcher realmsDataFetcher; + private final QuickPlayLog quickPlayLog; + @Nullable + public MultiPlayerGameMode gameMode; + @Nullable + public ClientLevel level; + @Nullable + public LocalPlayer player; + @Nullable + private IntegratedServer singleplayerServer; + @Nullable + private Connection pendingConnection; + private boolean isLocalServer; + @Nullable + public Entity cameraEntity; + @Nullable + public Entity crosshairPickEntity; + @Nullable + public HitResult hitResult; + private int rightClickDelay; + protected int missTime; + private volatile boolean pause; + /** + * Time in nanoseconds of when the class is loaded + */ + private long lastNanoTime = Util.getNanos(); + private long lastTime; + private int frames; + public boolean noRender; + @Nullable + public Screen screen; + @Nullable + private Overlay overlay; + private boolean clientLevelTeardownInProgress; + private Thread gameThread; + private volatile boolean running; + @Nullable + private Supplier delayedCrash; + private static int fps; + public String fpsString = ""; + private long frameTimeNs; + public boolean wireframe; + public boolean sectionPath; + public boolean sectionVisibility; + public boolean smartCull = true; + private boolean windowActive; + private final Queue progressTasks = Queues.newConcurrentLinkedQueue(); + @Nullable + private CompletableFuture pendingReload; + @Nullable + private TutorialToast socialInteractionsToast; + private ProfilerFiller profiler = InactiveProfiler.INSTANCE; + private int fpsPieRenderTicks; + private final ContinuousProfiler fpsPieProfiler = new ContinuousProfiler(Util.timeSource, () -> this.fpsPieRenderTicks); + @Nullable + private ProfileResults fpsPieResults; + private MetricsRecorder metricsRecorder = InactiveMetricsRecorder.INSTANCE; + private final ResourceLoadStateTracker reloadStateTracker = new ResourceLoadStateTracker(); + private long savedCpuDuration; + private double gpuUtilization; + @Nullable + private TimerQuery.FrameProfile currentFrameProfile; + private final GameNarrator narrator; + private final ChatListener chatListener; + private ReportingContext reportingContext; + private final CommandHistory commandHistory; + private final DirectoryValidator directoryValidator; + private boolean gameLoadFinished; + private final long clientStartTimeMs; + private long clientTickCount; + private String debugPath = "root"; + + public Minecraft(GameConfig gameConfig) { + super("Client"); + instance = this; + this.clientStartTimeMs = System.currentTimeMillis(); + this.gameDirectory = gameConfig.location.gameDirectory; + File file = gameConfig.location.assetDirectory; + this.resourcePackDirectory = gameConfig.location.resourcePackDirectory.toPath(); + this.launchedVersion = gameConfig.game.launchVersion; + this.versionType = gameConfig.game.versionType; + Path path = this.gameDirectory.toPath(); + this.directoryValidator = LevelStorageSource.parseValidator(path.resolve("allowed_symlinks.txt")); + ClientPackSource clientPackSource = new ClientPackSource(gameConfig.location.getExternalAssetSource(), this.directoryValidator); + this.downloadedPackSource = new DownloadedPackSource(this, path.resolve("downloads"), gameConfig.user); + RepositorySource repositorySource = new FolderRepositorySource( + this.resourcePackDirectory, PackType.CLIENT_RESOURCES, PackSource.DEFAULT, this.directoryValidator + ); + this.resourcePackRepository = new PackRepository(clientPackSource, this.downloadedPackSource.createRepositorySource(), repositorySource); + this.vanillaPackResources = clientPackSource.getVanillaPack(); + this.proxy = gameConfig.user.proxy; + this.authenticationService = new YggdrasilAuthenticationService(this.proxy); + this.minecraftSessionService = this.authenticationService.createMinecraftSessionService(); + this.user = gameConfig.user.user; + this.profileFuture = CompletableFuture.supplyAsync(() -> this.minecraftSessionService.fetchProfile(this.user.getProfileId(), true), Util.nonCriticalIoPool()); + this.userApiService = this.createUserApiService(this.authenticationService, gameConfig); + this.userPropertiesFuture = CompletableFuture.supplyAsync(() -> { + try { + return this.userApiService.fetchProperties(); + } catch (AuthenticationException var2x) { + LOGGER.error("Failed to fetch user properties", (Throwable)var2x); + return UserApiService.OFFLINE_PROPERTIES; + } + }, Util.nonCriticalIoPool()); + LOGGER.info("Setting user: {}", this.user.getName()); + LOGGER.debug("(Session ID is {})", this.user.getSessionId()); + this.demo = gameConfig.game.demo; + this.allowsMultiplayer = !gameConfig.game.disableMultiplayer; + this.allowsChat = !gameConfig.game.disableChat; + this.singleplayerServer = null; + KeybindResolver.setKeyResolver(KeyMapping::createNameSupplier); + this.fixerUpper = DataFixers.getDataFixer(); + this.toast = new ToastComponent(this); + this.gameThread = Thread.currentThread(); + this.options = new Options(this, this.gameDirectory); + RenderSystem.setShaderGlintAlpha(this.options.glintStrength().get()); + this.running = true; + this.tutorial = new Tutorial(this, this.options); + this.hotbarManager = new HotbarManager(path, this.fixerUpper); + LOGGER.info("Backend library: {}", RenderSystem.getBackendDescription()); + DisplayData displayData; + if (this.options.overrideHeight > 0 && this.options.overrideWidth > 0) { + displayData = new DisplayData( + this.options.overrideWidth, + this.options.overrideHeight, + gameConfig.display.fullscreenWidth, + gameConfig.display.fullscreenHeight, + gameConfig.display.isFullscreen + ); + } else { + displayData = gameConfig.display; + } + + Util.timeSource = RenderSystem.initBackendSystem(); + this.virtualScreen = new VirtualScreen(this); + this.window = this.virtualScreen.newWindow(displayData, this.options.fullscreenVideoModeString, this.createTitle()); + this.setWindowActive(true); + GameLoadTimesEvent.INSTANCE.endStep(TelemetryProperty.LOAD_TIME_PRE_WINDOW_MS); + + try { + this.window.setIcon(this.vanillaPackResources, SharedConstants.getCurrentVersion().isStable() ? IconSet.RELEASE : IconSet.SNAPSHOT); + } catch (IOException var13) { + LOGGER.error("Couldn't set icon", (Throwable)var13); + } + + this.window.setFramerateLimit(this.options.framerateLimit().get()); + this.mouseHandler = new MouseHandler(this); + this.mouseHandler.setup(this.window.getWindow()); + this.keyboardHandler = new KeyboardHandler(this); + this.keyboardHandler.setup(this.window.getWindow()); + RenderSystem.initRenderer(this.options.glDebugVerbosity, false); + this.mainRenderTarget = new MainTarget(this.window.getWidth(), this.window.getHeight()); + this.mainRenderTarget.setClearColor(0.0F, 0.0F, 0.0F, 0.0F); + this.mainRenderTarget.clear(ON_OSX); + this.resourceManager = new ReloadableResourceManager(PackType.CLIENT_RESOURCES); + this.resourcePackRepository.reload(); + this.options.loadSelectedResourcePacks(this.resourcePackRepository); + this.languageManager = new LanguageManager(this.options.languageCode, clientLanguage -> { + if (this.player != null) { + this.player.connection.updateSearchTrees(); + } + }); + this.resourceManager.registerReloadListener(this.languageManager); + this.textureManager = new TextureManager(this.resourceManager); + this.resourceManager.registerReloadListener(this.textureManager); + this.skinManager = new SkinManager(this.textureManager, file.toPath().resolve("skins"), this.minecraftSessionService, this); + this.levelSource = new LevelStorageSource(path.resolve("saves"), path.resolve("backups"), this.directoryValidator, this.fixerUpper); + this.commandHistory = new CommandHistory(path); + this.soundManager = new SoundManager(this.options); + this.resourceManager.registerReloadListener(this.soundManager); + this.splashManager = new SplashManager(this.user); + this.resourceManager.registerReloadListener(this.splashManager); + this.musicManager = new MusicManager(this); + this.fontManager = new FontManager(this.textureManager); + this.font = this.fontManager.createFont(); + this.fontFilterFishy = this.fontManager.createFontFilterFishy(); + this.resourceManager.registerReloadListener(this.fontManager); + this.updateFontOptions(); + this.resourceManager.registerReloadListener(new GrassColorReloadListener()); + this.resourceManager.registerReloadListener(new FoliageColorReloadListener()); + this.window.setErrorSection("Startup"); + RenderSystem.setupDefaultState(0, 0, this.window.getWidth(), this.window.getHeight()); + this.window.setErrorSection("Post startup"); + this.blockColors = BlockColors.createDefault(); + this.itemColors = ItemColors.createDefault(this.blockColors); + this.modelManager = new ModelManager(this.textureManager, this.blockColors, this.options.mipmapLevels().get()); + this.resourceManager.registerReloadListener(this.modelManager); + this.entityModels = new EntityModelSet(); + this.resourceManager.registerReloadListener(this.entityModels); + this.blockEntityRenderDispatcher = new BlockEntityRenderDispatcher( + this.font, this.entityModels, this::getBlockRenderer, this::getItemRenderer, this::getEntityRenderDispatcher + ); + this.resourceManager.registerReloadListener(this.blockEntityRenderDispatcher); + BlockEntityWithoutLevelRenderer blockEntityWithoutLevelRenderer = new BlockEntityWithoutLevelRenderer(this.blockEntityRenderDispatcher, this.entityModels); + this.resourceManager.registerReloadListener(blockEntityWithoutLevelRenderer); + this.itemRenderer = new ItemRenderer(this, this.textureManager, this.modelManager, this.itemColors, blockEntityWithoutLevelRenderer); + this.resourceManager.registerReloadListener(this.itemRenderer); + + try { + int i = Runtime.getRuntime().availableProcessors(); + Tesselator.init(); + this.renderBuffers = new RenderBuffers(i); + } catch (OutOfMemoryError var12) { + TinyFileDialogs.tinyfd_messageBox( + "Minecraft", + "Oh no! The game was unable to allocate memory off-heap while trying to start. You may try to free some memory by closing other applications on your computer, check that your system meets the minimum requirements, and try again. If the problem persists, please visit: " + + CommonLinks.GENERAL_HELP, + "ok", + "error", + true + ); + throw new SilentInitException("Unable to allocate render buffers", var12); + } + + this.playerSocialManager = new PlayerSocialManager(this, this.userApiService); + this.blockRenderer = new BlockRenderDispatcher(this.modelManager.getBlockModelShaper(), blockEntityWithoutLevelRenderer, this.blockColors); + this.resourceManager.registerReloadListener(this.blockRenderer); + this.entityRenderDispatcher = new EntityRenderDispatcher( + this, this.textureManager, this.itemRenderer, this.blockRenderer, this.font, this.options, this.entityModels + ); + this.resourceManager.registerReloadListener(this.entityRenderDispatcher); + this.particleEngine = new ParticleEngine(this.level, this.textureManager); + this.resourceManager.registerReloadListener(this.particleEngine); + this.paintingTextures = new PaintingTextureManager(this.textureManager); + this.resourceManager.registerReloadListener(this.paintingTextures); + this.mobEffectTextures = new MobEffectTextureManager(this.textureManager); + this.resourceManager.registerReloadListener(this.mobEffectTextures); + this.mapDecorationTextures = new MapDecorationTextureManager(this.textureManager); + this.resourceManager.registerReloadListener(this.mapDecorationTextures); + this.guiSprites = new GuiSpriteManager(this.textureManager); + this.resourceManager.registerReloadListener(this.guiSprites); + this.gameRenderer = new GameRenderer(this, this.entityRenderDispatcher.getItemInHandRenderer(), this.resourceManager, this.renderBuffers); + this.resourceManager.registerReloadListener(this.gameRenderer.createReloadListener()); + this.levelRenderer = new LevelRenderer(this, this.entityRenderDispatcher, this.blockEntityRenderDispatcher, this.renderBuffers); + this.resourceManager.registerReloadListener(this.levelRenderer); + this.gpuWarnlistManager = new GpuWarnlistManager(); + this.resourceManager.registerReloadListener(this.gpuWarnlistManager); + this.resourceManager.registerReloadListener(this.regionalCompliancies); + this.gui = new Gui(this); + this.debugRenderer = new DebugRenderer(this); + RealmsClient realmsClient = RealmsClient.create(this); + this.realmsDataFetcher = new RealmsDataFetcher(realmsClient); + RenderSystem.setErrorCallback(this::onFullscreenError); + if (this.mainRenderTarget.width != this.window.getWidth() || this.mainRenderTarget.height != this.window.getHeight()) { + StringBuilder stringBuilder = new StringBuilder( + "Recovering from unsupported resolution (" + + this.window.getWidth() + + "x" + + this.window.getHeight() + + ").\nPlease make sure you have up-to-date drivers (see aka.ms/mcdriver for instructions)." + ); + if (GlDebug.isDebugEnabled()) { + stringBuilder.append("\n\nReported GL debug messages:\n").append(String.join("\n", GlDebug.getLastOpenGlDebugMessages())); + } + + this.window.setWindowed(this.mainRenderTarget.width, this.mainRenderTarget.height); + TinyFileDialogs.tinyfd_messageBox("Minecraft", stringBuilder.toString(), "ok", "error", false); + } else if (this.options.fullscreen().get() && !this.window.isFullscreen()) { + this.window.toggleFullScreen(); + this.options.fullscreen().set(this.window.isFullscreen()); + } + + this.window.updateVsync(this.options.enableVsync().get()); + this.window.updateRawMouseInput(this.options.rawMouseInput().get()); + this.window.setDefaultErrorCallback(); + this.resizeDisplay(); + this.gameRenderer.preloadUiShader(this.vanillaPackResources.asProvider()); + this.telemetryManager = new ClientTelemetryManager(this, this.userApiService, this.user); + this.profileKeyPairManager = ProfileKeyPairManager.create(this.userApiService, this.user, path); + this.narrator = new GameNarrator(this); + this.narrator.checkStatus(this.options.narrator().get() != NarratorStatus.OFF); + this.chatListener = new ChatListener(this); + this.chatListener.setMessageDelay(this.options.chatDelay().get()); + this.reportingContext = ReportingContext.create(ReportEnvironment.local(), this.userApiService); + LoadingOverlay.registerTextures(this); + this.setScreen(new GenericMessageScreen(Component.translatable("gui.loadingMinecraft"))); + List list = this.resourcePackRepository.openAllSelected(); + this.reloadStateTracker.startReload(ResourceLoadStateTracker.ReloadReason.INITIAL, list); + ReloadInstance reloadInstance = this.resourceManager.createReload(Util.backgroundExecutor(), this, RESOURCE_RELOAD_INITIAL_TASK, list); + GameLoadTimesEvent.INSTANCE.beginStep(TelemetryProperty.LOAD_TIME_LOADING_OVERLAY_MS); + Minecraft.GameLoadCookie gameLoadCookie = new Minecraft.GameLoadCookie(realmsClient, gameConfig.quickPlay); + this.setOverlay( + new LoadingOverlay(this, reloadInstance, optional -> Util.ifElse(optional, throwable -> this.rollbackResourcePacks(throwable, gameLoadCookie), () -> { + if (SharedConstants.IS_RUNNING_IN_IDE) { + this.selfTest(); + } + + this.reloadStateTracker.finishReload(); + this.onResourceLoadFinished(gameLoadCookie); + }), false) + ); + this.quickPlayLog = QuickPlayLog.of(gameConfig.quickPlay.path()); + } + + private void onResourceLoadFinished(@Nullable Minecraft.GameLoadCookie gameLoadCookie) { + if (!this.gameLoadFinished) { + this.gameLoadFinished = true; + this.onGameLoadFinished(gameLoadCookie); + } + } + + private void onGameLoadFinished(@Nullable Minecraft.GameLoadCookie gameLoadCookie) { + Runnable runnable = this.buildInitialScreens(gameLoadCookie); + GameLoadTimesEvent.INSTANCE.endStep(TelemetryProperty.LOAD_TIME_LOADING_OVERLAY_MS); + GameLoadTimesEvent.INSTANCE.endStep(TelemetryProperty.LOAD_TIME_TOTAL_TIME_MS); + GameLoadTimesEvent.INSTANCE.send(this.telemetryManager.getOutsideSessionSender()); + runnable.run(); + } + + public boolean isGameLoadFinished() { + return this.gameLoadFinished; + } + + private Runnable buildInitialScreens(@Nullable Minecraft.GameLoadCookie gameLoadCookie) { + List> list = new ArrayList(); + this.addInitialScreens(list); + Runnable runnable = () -> { + if (gameLoadCookie != null && gameLoadCookie.quickPlayData().isEnabled()) { + QuickPlay.connect(this, gameLoadCookie.quickPlayData(), gameLoadCookie.realmsClient()); + } else { + this.setScreen(new TitleScreen(true)); + } + }; + + for (Function function : Lists.reverse(list)) { + Screen screen = (Screen)function.apply(runnable); + runnable = () -> this.setScreen(screen); + } + + return runnable; + } + + private void addInitialScreens(List> output) { + if (this.options.onboardAccessibility) { + output.add((Function)runnable -> new AccessibilityOnboardingScreen(this.options, runnable)); + } + + BanDetails banDetails = this.multiplayerBan(); + if (banDetails != null) { + output.add((Function)runnable -> BanNoticeScreens.create(bl -> { + if (bl) { + Util.getPlatform().openUri(CommonLinks.SUSPENSION_HELP); + } + + runnable.run(); + }, banDetails)); + } + + ProfileResult profileResult = (ProfileResult)this.profileFuture.join(); + if (profileResult != null) { + GameProfile gameProfile = profileResult.profile(); + Set set = profileResult.actions(); + if (set.contains(ProfileActionType.FORCED_NAME_CHANGE)) { + output.add((Function)runnable -> BanNoticeScreens.createNameBan(gameProfile.getName(), runnable)); + } + + if (set.contains(ProfileActionType.USING_BANNED_SKIN)) { + output.add(BanNoticeScreens::createSkinBan); + } + } + } + + private static boolean countryEqualsISO3(Object country) { + try { + return Locale.getDefault().getISO3Country().equals(country); + } catch (MissingResourceException var2) { + return false; + } + } + + public void updateTitle() { + this.window.setTitle(this.createTitle()); + } + + private String createTitle() { + StringBuilder stringBuilder = new StringBuilder("Minecraft"); + if (checkModStatus().shouldReportAsModified()) { + stringBuilder.append("*"); + } + + stringBuilder.append(" "); + stringBuilder.append(SharedConstants.getCurrentVersion().getName()); + ClientPacketListener clientPacketListener = this.getConnection(); + if (clientPacketListener != null && clientPacketListener.getConnection().isConnected()) { + stringBuilder.append(" - "); + ServerData serverData = this.getCurrentServer(); + if (this.singleplayerServer != null && !this.singleplayerServer.isPublished()) { + stringBuilder.append(I18n.get("title.singleplayer")); + } else if (serverData != null && serverData.isRealm()) { + stringBuilder.append(I18n.get("title.multiplayer.realms")); + } else if (this.singleplayerServer == null && (serverData == null || !serverData.isLan())) { + stringBuilder.append(I18n.get("title.multiplayer.other")); + } else { + stringBuilder.append(I18n.get("title.multiplayer.lan")); + } + } + + return stringBuilder.toString(); + } + + private UserApiService createUserApiService(YggdrasilAuthenticationService authenticationService, GameConfig gameConfig) { + return gameConfig.user.user.getType() != User.Type.MSA + ? UserApiService.OFFLINE + : authenticationService.createUserApiService(gameConfig.user.user.getAccessToken()); + } + + public static ModCheck checkModStatus() { + return ModCheck.identify("vanilla", ClientBrandRetriever::getClientModName, "Client", Minecraft.class); + } + + private void rollbackResourcePacks(Throwable throwable, @Nullable Minecraft.GameLoadCookie gameLoadCookie) { + if (this.resourcePackRepository.getSelectedIds().size() > 1) { + this.clearResourcePacksOnError(throwable, null, gameLoadCookie); + } else { + Util.throwAsRuntime(throwable); + } + } + + public void clearResourcePacksOnError(Throwable throwable, @Nullable Component errorMessage, @Nullable Minecraft.GameLoadCookie gameLoadCookie) { + LOGGER.info("Caught error loading resourcepacks, removing all selected resourcepacks", throwable); + this.reloadStateTracker.startRecovery(throwable); + this.downloadedPackSource.onRecovery(); + this.resourcePackRepository.setSelected(Collections.emptyList()); + this.options.resourcePacks.clear(); + this.options.incompatibleResourcePacks.clear(); + this.options.save(); + this.reloadResourcePacks(true, gameLoadCookie).thenRun(() -> this.addResourcePackLoadFailToast(errorMessage)); + } + + private void abortResourcePackRecovery() { + this.setOverlay(null); + if (this.level != null) { + this.level.disconnect(); + this.disconnect(); + } + + this.setScreen(new TitleScreen()); + this.addResourcePackLoadFailToast(null); + } + + private void addResourcePackLoadFailToast(@Nullable Component message) { + ToastComponent toastComponent = this.getToasts(); + SystemToast.addOrUpdate(toastComponent, SystemToast.SystemToastId.PACK_LOAD_FAILURE, Component.translatable("resourcePack.load_fail"), message); + } + + public void run() { + this.gameThread = Thread.currentThread(); + if (Runtime.getRuntime().availableProcessors() > 4) { + this.gameThread.setPriority(10); + } + + try { + boolean bl = false; + + while (this.running) { + this.handleDelayedCrash(); + + try { + SingleTickProfiler singleTickProfiler = SingleTickProfiler.createTickProfiler("Renderer"); + boolean bl2 = this.getDebugOverlay().showProfilerChart(); + this.profiler = this.constructProfiler(bl2, singleTickProfiler); + this.profiler.startTick(); + this.metricsRecorder.startTick(); + this.runTick(!bl); + this.metricsRecorder.endTick(); + this.profiler.endTick(); + this.finishProfilers(bl2, singleTickProfiler); + } catch (OutOfMemoryError var4) { + if (bl) { + throw var4; + } + + this.emergencySave(); + this.setScreen(new OutOfMemoryScreen()); + System.gc(); + LOGGER.error(LogUtils.FATAL_MARKER, "Out of memory", (Throwable)var4); + bl = true; + } + } + } catch (ReportedException var5) { + LOGGER.error(LogUtils.FATAL_MARKER, "Reported exception thrown!", (Throwable)var5); + this.emergencySaveAndCrash(var5.getReport()); + } catch (Throwable var6) { + LOGGER.error(LogUtils.FATAL_MARKER, "Unreported exception thrown!", var6); + this.emergencySaveAndCrash(new CrashReport("Unexpected error", var6)); + } + } + + void updateFontOptions() { + this.fontManager.updateOptions(this.options); + } + + private void onFullscreenError(int error, long description) { + this.options.enableVsync().set(false); + this.options.save(); + } + + public RenderTarget getMainRenderTarget() { + return this.mainRenderTarget; + } + + /** + * Gets the version that Minecraft was launched under (the name of a version JSON). Specified via the --version flag. + */ + public String getLaunchedVersion() { + return this.launchedVersion; + } + + /** + * Gets the type of version that Minecraft was launched under (as specified in the version JSON). Specified via the --versionType flag. + */ + public String getVersionType() { + return this.versionType; + } + + public void delayCrash(CrashReport report) { + this.delayedCrash = () -> this.fillReport(report); + } + + public void delayCrashRaw(CrashReport report) { + this.delayedCrash = () -> report; + } + + private void handleDelayedCrash() { + if (this.delayedCrash != null) { + crash(this, this.gameDirectory, (CrashReport)this.delayedCrash.get()); + } + } + + public void emergencySaveAndCrash(CrashReport crashReport) { + CrashReport crashReport2 = this.fillReport(crashReport); + this.emergencySave(); + crash(this, this.gameDirectory, crashReport2); + } + + public static void crash(@Nullable Minecraft minecraft, File gameDirectory, CrashReport crashReport) { + Path path = gameDirectory.toPath().resolve("crash-reports"); + Path path2 = path.resolve("crash-" + Util.getFilenameFormattedDateTime() + "-client.txt"); + Bootstrap.realStdoutPrintln(crashReport.getFriendlyReport(ReportType.CRASH)); + if (minecraft != null) { + minecraft.soundManager.emergencyShutdown(); + } + + if (crashReport.getSaveFile() != null) { + Bootstrap.realStdoutPrintln("#@!@# Game crashed! Crash report saved to: #@!@# " + crashReport.getSaveFile().toAbsolutePath()); + System.exit(-1); + } else if (crashReport.saveToFile(path2, ReportType.CRASH)) { + Bootstrap.realStdoutPrintln("#@!@# Game crashed! Crash report saved to: #@!@# " + path2.toAbsolutePath()); + System.exit(-1); + } else { + Bootstrap.realStdoutPrintln("#@?@# Game crashed! Crash report could not be saved. #@?@#"); + System.exit(-2); + } + } + + public boolean isEnforceUnicode() { + return this.options.forceUnicodeFont().get(); + } + + public CompletableFuture reloadResourcePacks() { + return this.reloadResourcePacks(false, null); + } + + private CompletableFuture reloadResourcePacks(boolean error, @Nullable Minecraft.GameLoadCookie gameLoadCookie) { + if (this.pendingReload != null) { + return this.pendingReload; + } else { + CompletableFuture completableFuture = new CompletableFuture(); + if (!error && this.overlay instanceof LoadingOverlay) { + this.pendingReload = completableFuture; + return completableFuture; + } else { + this.resourcePackRepository.reload(); + List list = this.resourcePackRepository.openAllSelected(); + if (!error) { + this.reloadStateTracker.startReload(ResourceLoadStateTracker.ReloadReason.MANUAL, list); + } + + this.setOverlay( + new LoadingOverlay( + this, + this.resourceManager.createReload(Util.backgroundExecutor(), this, RESOURCE_RELOAD_INITIAL_TASK, list), + optional -> Util.ifElse(optional, throwable -> { + if (error) { + this.downloadedPackSource.onRecoveryFailure(); + this.abortResourcePackRecovery(); + } else { + this.rollbackResourcePacks(throwable, gameLoadCookie); + } + }, () -> { + this.levelRenderer.allChanged(); + this.reloadStateTracker.finishReload(); + this.downloadedPackSource.onReloadSuccess(); + completableFuture.complete(null); + this.onResourceLoadFinished(gameLoadCookie); + }), + !error + ) + ); + return completableFuture; + } + } + } + + private void selfTest() { + boolean bl = false; + BlockModelShaper blockModelShaper = this.getBlockRenderer().getBlockModelShaper(); + BakedModel bakedModel = blockModelShaper.getModelManager().getMissingModel(); + + for (Block block : BuiltInRegistries.BLOCK) { + for (BlockState blockState : block.getStateDefinition().getPossibleStates()) { + if (blockState.getRenderShape() == RenderShape.MODEL) { + BakedModel bakedModel2 = blockModelShaper.getBlockModel(blockState); + if (bakedModel2 == bakedModel) { + LOGGER.debug("Missing model for: {}", blockState); + bl = true; + } + } + } + } + + TextureAtlasSprite textureAtlasSprite = bakedModel.getParticleIcon(); + + for (Block block2 : BuiltInRegistries.BLOCK) { + for (BlockState blockState2 : block2.getStateDefinition().getPossibleStates()) { + TextureAtlasSprite textureAtlasSprite2 = blockModelShaper.getParticleIcon(blockState2); + if (!blockState2.isAir() && textureAtlasSprite2 == textureAtlasSprite) { + LOGGER.debug("Missing particle icon for: {}", blockState2); + } + } + } + + for (Item item : BuiltInRegistries.ITEM) { + ItemStack itemStack = item.getDefaultInstance(); + String string = itemStack.getDescriptionId(); + String string2 = Component.translatable(string).getString(); + if (string2.toLowerCase(Locale.ROOT).equals(item.getDescriptionId())) { + LOGGER.debug("Missing translation for: {} {} {}", itemStack, string, item); + } + } + + bl |= MenuScreens.selfTest(); + bl |= EntityRenderers.validateRegistrations(); + if (bl) { + throw new IllegalStateException("Your game data is foobar, fix the errors above!"); + } + } + + /** + * Returns the save loader that is currently being used + */ + public LevelStorageSource getLevelSource() { + return this.levelSource; + } + + private void openChatScreen(String defaultText) { + Minecraft.ChatStatus chatStatus = this.getChatStatus(); + if (!chatStatus.isChatAllowed(this.isLocalServer())) { + if (this.gui.isShowingChatDisabledByPlayer()) { + this.gui.setChatDisabledByPlayerShown(false); + this.setScreen(new ConfirmLinkScreen(bl -> { + if (bl) { + Util.getPlatform().openUri(CommonLinks.ACCOUNT_SETTINGS); + } + + this.setScreen(null); + }, Minecraft.ChatStatus.INFO_DISABLED_BY_PROFILE, CommonLinks.ACCOUNT_SETTINGS, true)); + } else { + Component component = chatStatus.getMessage(); + this.gui.setOverlayMessage(component, false); + this.narrator.sayNow(component); + this.gui.setChatDisabledByPlayerShown(chatStatus == Minecraft.ChatStatus.DISABLED_BY_PROFILE); + } + } else { + this.setScreen(new ChatScreen(defaultText)); + } + } + + public void setScreen(@Nullable Screen guiScreen) { + if (SharedConstants.IS_RUNNING_IN_IDE && Thread.currentThread() != this.gameThread) { + LOGGER.error("setScreen called from non-game thread"); + } + + if (this.screen != null) { + this.screen.removed(); + } else { + this.setLastInputType(InputType.NONE); + } + + if (guiScreen == null && this.clientLevelTeardownInProgress) { + throw new IllegalStateException("Trying to return to in-game GUI during disconnection"); + } else { + if (guiScreen == null && this.level == null) { + guiScreen = new TitleScreen(); + } else if (guiScreen == null && this.player.isDeadOrDying()) { + if (this.player.shouldShowDeathScreen()) { + guiScreen = new DeathScreen(null, this.level.getLevelData().isHardcore()); + } else { + this.player.respawn(); + } + } + + this.screen = guiScreen; + if (this.screen != null) { + this.screen.added(); + } + + BufferUploader.reset(); + if (guiScreen != null) { + this.mouseHandler.releaseMouse(); + KeyMapping.releaseAll(); + guiScreen.init(this, this.window.getGuiScaledWidth(), this.window.getGuiScaledHeight()); + this.noRender = false; + } else { + this.soundManager.resume(); + this.mouseHandler.grabMouse(); + } + + this.updateTitle(); + } + } + + public void setOverlay(@Nullable Overlay loadingGui) { + this.overlay = loadingGui; + } + + /** + * Shuts down the minecraft applet by stopping the resource downloads, and clearing up GL stuff. Called when the application (or web page) is exited. + */ + public void destroy() { + try { + LOGGER.info("Stopping!"); + + try { + this.narrator.destroy(); + } catch (Throwable var7) { + } + + try { + if (this.level != null) { + this.level.disconnect(); + } + + this.disconnect(); + } catch (Throwable var6) { + } + + if (this.screen != null) { + this.screen.removed(); + } + + this.close(); + } finally { + Util.timeSource = System::nanoTime; + if (this.delayedCrash == null) { + System.exit(0); + } + } + } + + @Override + public void close() { + if (this.currentFrameProfile != null) { + this.currentFrameProfile.cancel(); + } + + try { + this.telemetryManager.close(); + this.regionalCompliancies.close(); + this.modelManager.close(); + this.fontManager.close(); + this.gameRenderer.close(); + this.levelRenderer.close(); + this.soundManager.destroy(); + this.particleEngine.close(); + this.mobEffectTextures.close(); + this.paintingTextures.close(); + this.mapDecorationTextures.close(); + this.guiSprites.close(); + this.textureManager.close(); + this.resourceManager.close(); + FreeTypeUtil.destroy(); + Util.shutdownExecutors(); + } catch (Throwable var5) { + LOGGER.error("Shutdown failure!", var5); + throw var5; + } finally { + this.virtualScreen.close(); + this.window.close(); + } + } + + private void runTick(boolean renderLevel) { + this.window.setErrorSection("Pre render"); + if (this.window.shouldClose()) { + this.stop(); + } + + if (this.pendingReload != null && !(this.overlay instanceof LoadingOverlay)) { + CompletableFuture completableFuture = this.pendingReload; + this.pendingReload = null; + this.reloadResourcePacks().thenRun(() -> completableFuture.complete(null)); + } + + Runnable runnable; + while ((runnable = (Runnable)this.progressTasks.poll()) != null) { + runnable.run(); + } + + int i = this.timer.advanceTime(Util.getMillis(), renderLevel); + if (renderLevel) { + this.profiler.push("scheduledExecutables"); + this.runAllTasks(); + this.profiler.pop(); + this.profiler.push("tick"); + + for (int j = 0; j < Math.min(10, i); j++) { + this.profiler.incrementCounter("clientTick"); + this.tick(); + } + + this.profiler.pop(); + } + + this.window.setErrorSection("Render"); + this.profiler.push("sound"); + this.soundManager.updateSource(this.gameRenderer.getMainCamera()); + this.profiler.pop(); + this.profiler.push("render"); + long l = Util.getNanos(); + boolean bl; + if (!this.getDebugOverlay().showDebugScreen() && !this.metricsRecorder.isRecording()) { + bl = false; + this.gpuUtilization = 0.0; + } else { + bl = this.currentFrameProfile == null || this.currentFrameProfile.isDone(); + if (bl) { + TimerQuery.getInstance().ifPresent(TimerQuery::beginProfile); + } + } + + RenderSystem.clear(16640, ON_OSX); + this.mainRenderTarget.bindWrite(true); + FogRenderer.setupNoFog(); + this.profiler.push("display"); + RenderSystem.enableCull(); + this.profiler.popPush("mouse"); + this.mouseHandler.handleAccumulatedMovement(); + this.profiler.pop(); + if (!this.noRender) { + this.profiler.popPush("gameRenderer"); + this.gameRenderer.render(this.timer, renderLevel); + this.profiler.pop(); + } + + if (this.fpsPieResults != null) { + this.profiler.push("fpsPie"); + GuiGraphics guiGraphics = new GuiGraphics(this, this.renderBuffers.bufferSource()); + this.renderFpsMeter(guiGraphics, this.fpsPieResults); + guiGraphics.flush(); + this.profiler.pop(); + } + + this.profiler.push("blit"); + this.mainRenderTarget.unbindWrite(); + this.mainRenderTarget.blitToScreen(this.window.getWidth(), this.window.getHeight()); + this.frameTimeNs = Util.getNanos() - l; + if (bl) { + TimerQuery.getInstance().ifPresent(timerQuery -> this.currentFrameProfile = timerQuery.endProfile()); + } + + this.profiler.popPush("updateDisplay"); + this.window.updateDisplay(); + int k = this.getFramerateLimit(); + if (k < 260) { + RenderSystem.limitDisplayFPS(k); + } + + this.profiler.popPush("yield"); + Thread.yield(); + this.profiler.pop(); + this.window.setErrorSection("Post render"); + this.frames++; + this.pause = this.hasSingleplayerServer() + && (this.screen != null && this.screen.isPauseScreen() || this.overlay != null && this.overlay.isPauseScreen()) + && !this.singleplayerServer.isPublished(); + this.timer.updatePauseState(this.pause); + this.timer.updateFrozenState(!this.isLevelRunningNormally()); + long m = Util.getNanos(); + long n = m - this.lastNanoTime; + if (bl) { + this.savedCpuDuration = n; + } + + this.getDebugOverlay().logFrameDuration(n); + this.lastNanoTime = m; + this.profiler.push("fpsUpdate"); + if (this.currentFrameProfile != null && this.currentFrameProfile.isDone()) { + this.gpuUtilization = this.currentFrameProfile.get() * 100.0 / this.savedCpuDuration; + } + + while (Util.getMillis() >= this.lastTime + 1000L) { + String string; + if (this.gpuUtilization > 0.0) { + string = " GPU: " + (this.gpuUtilization > 100.0 ? ChatFormatting.RED + "100%" : Math.round(this.gpuUtilization) + "%"); + } else { + string = ""; + } + + fps = this.frames; + this.fpsString = String.format( + Locale.ROOT, + "%d fps T: %s%s%s%s B: %d%s", + fps, + k == 260 ? "inf" : k, + this.options.enableVsync().get() ? " vsync " : " ", + this.options.graphicsMode().get(), + this.options.cloudStatus().get() == CloudStatus.OFF ? "" : (this.options.cloudStatus().get() == CloudStatus.FAST ? " fast-clouds" : " fancy-clouds"), + this.options.biomeBlendRadius().get(), + string + ); + this.lastTime += 1000L; + this.frames = 0; + } + + this.profiler.pop(); + } + + private ProfilerFiller constructProfiler(boolean renderFpsPie, @Nullable SingleTickProfiler singleTickProfiler) { + if (!renderFpsPie) { + this.fpsPieProfiler.disable(); + if (!this.metricsRecorder.isRecording() && singleTickProfiler == null) { + return InactiveProfiler.INSTANCE; + } + } + + ProfilerFiller profilerFiller; + if (renderFpsPie) { + if (!this.fpsPieProfiler.isEnabled()) { + this.fpsPieRenderTicks = 0; + this.fpsPieProfiler.enable(); + } + + this.fpsPieRenderTicks++; + profilerFiller = this.fpsPieProfiler.getFiller(); + } else { + profilerFiller = InactiveProfiler.INSTANCE; + } + + if (this.metricsRecorder.isRecording()) { + profilerFiller = ProfilerFiller.tee(profilerFiller, this.metricsRecorder.getProfiler()); + } + + return SingleTickProfiler.decorateFiller(profilerFiller, singleTickProfiler); + } + + private void finishProfilers(boolean renderFpsPie, @Nullable SingleTickProfiler profiler) { + if (profiler != null) { + profiler.endTick(); + } + + if (renderFpsPie) { + this.fpsPieResults = this.fpsPieProfiler.getResults(); + } else { + this.fpsPieResults = null; + } + + this.profiler = this.fpsPieProfiler.getFiller(); + } + + @Override + public void resizeDisplay() { + int i = this.window.calculateScale(this.options.guiScale().get(), this.isEnforceUnicode()); + this.window.setGuiScale(i); + if (this.screen != null) { + this.screen.resize(this, this.window.getGuiScaledWidth(), this.window.getGuiScaledHeight()); + } + + RenderTarget renderTarget = this.getMainRenderTarget(); + renderTarget.resize(this.window.getWidth(), this.window.getHeight(), ON_OSX); + this.gameRenderer.resize(this.window.getWidth(), this.window.getHeight()); + this.mouseHandler.setIgnoreFirstMove(); + } + + @Override + public void cursorEntered() { + this.mouseHandler.cursorEntered(); + } + + public int getFps() { + return fps; + } + + public long getFrameTimeNs() { + return this.frameTimeNs; + } + + private int getFramerateLimit() { + return this.level != null || this.screen == null && this.overlay == null ? this.window.getFramerateLimit() : 60; + } + + /** + * Attempts to free as much memory as possible, including leaving the world and running the garbage collector. + */ + private void emergencySave() { + try { + MemoryReserve.release(); + this.levelRenderer.clear(); + } catch (Throwable var3) { + } + + try { + System.gc(); + if (this.isLocalServer && this.singleplayerServer != null) { + this.singleplayerServer.halt(true); + } + + this.disconnect(new GenericMessageScreen(Component.translatable("menu.savingLevel"))); + } catch (Throwable var2) { + } + + System.gc(); + } + + public boolean debugClientMetricsStart(Consumer logger) { + if (this.metricsRecorder.isRecording()) { + this.debugClientMetricsStop(); + return false; + } else { + Consumer consumer = profileResults -> { + if (profileResults != EmptyProfileResults.EMPTY) { + int i = profileResults.getTickDuration(); + double d = (double)profileResults.getNanoDuration() / TimeUtil.NANOSECONDS_PER_SECOND; + this.execute( + () -> logger.accept(Component.translatable("commands.debug.stopped", String.format(Locale.ROOT, "%.2f", d), i, String.format(Locale.ROOT, "%.2f", i / d))) + ); + } + }; + Consumer consumer2 = path -> { + Component component = Component.literal(path.toString()) + .withStyle(ChatFormatting.UNDERLINE) + .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_FILE, path.toFile().getParent()))); + this.execute(() -> logger.accept(Component.translatable("debug.profiling.stop", component))); + }; + SystemReport systemReport = fillSystemReport(new SystemReport(), this, this.languageManager, this.launchedVersion, this.options); + Consumer> consumer3 = list -> { + Path path = this.archiveProfilingReport(systemReport, list); + consumer2.accept(path); + }; + Consumer consumer4; + if (this.singleplayerServer == null) { + consumer4 = path -> consumer3.accept(ImmutableList.of(path)); + } else { + this.singleplayerServer.fillSystemReport(systemReport); + CompletableFuture completableFuture = new CompletableFuture(); + CompletableFuture completableFuture2 = new CompletableFuture(); + CompletableFuture.allOf(completableFuture, completableFuture2) + .thenRunAsync(() -> consumer3.accept(ImmutableList.of((Path)completableFuture.join(), (Path)completableFuture2.join())), Util.ioPool()); + this.singleplayerServer.startRecordingMetrics(profileResults -> {}, completableFuture2::complete); + consumer4 = completableFuture::complete; + } + + this.metricsRecorder = ActiveMetricsRecorder.createStarted( + new ClientMetricsSamplersProvider(Util.timeSource, this.levelRenderer), Util.timeSource, Util.ioPool(), new MetricsPersister("client"), profileResults -> { + this.metricsRecorder = InactiveMetricsRecorder.INSTANCE; + consumer.accept(profileResults); + }, consumer4 + ); + return true; + } + } + + private void debugClientMetricsStop() { + this.metricsRecorder.end(); + if (this.singleplayerServer != null) { + this.singleplayerServer.finishRecordingMetrics(); + } + } + + private void debugClientMetricsCancel() { + this.metricsRecorder.cancel(); + if (this.singleplayerServer != null) { + this.singleplayerServer.cancelRecordingMetrics(); + } + } + + private Path archiveProfilingReport(SystemReport report, List paths) { + String string; + if (this.isLocalServer()) { + string = this.getSingleplayerServer().getWorldData().getLevelName(); + } else { + ServerData serverData = this.getCurrentServer(); + string = serverData != null ? serverData.name : "unknown"; + } + + Path path; + try { + String string2 = String.format(Locale.ROOT, "%s-%s-%s", Util.getFilenameFormattedDateTime(), string, SharedConstants.getCurrentVersion().getId()); + String string3 = FileUtil.findAvailableName(MetricsPersister.PROFILING_RESULTS_DIR, string2, ".zip"); + path = MetricsPersister.PROFILING_RESULTS_DIR.resolve(string3); + } catch (IOException var21) { + throw new UncheckedIOException(var21); + } + + try { + FileZipper fileZipper = new FileZipper(path); + + try { + fileZipper.add(Paths.get("system.txt"), report.toLineSeparatedString()); + fileZipper.add(Paths.get("client").resolve(this.options.getFile().getName()), this.options.dumpOptionsForReport()); + paths.forEach(fileZipper::add); + } catch (Throwable var20) { + try { + fileZipper.close(); + } catch (Throwable var19) { + var20.addSuppressed(var19); + } + + throw var20; + } + + fileZipper.close(); + } finally { + for (Path path3 : paths) { + try { + FileUtils.forceDelete(path3.toFile()); + } catch (IOException var18) { + LOGGER.warn("Failed to delete temporary profiling result {}", path3, var18); + } + } + } + + return path; + } + + /** + * Update debugProfilerName in response to number keys in debug screen + */ + public void debugFpsMeterKeyPress(int keyCount) { + if (this.fpsPieResults != null) { + List list = this.fpsPieResults.getTimes(this.debugPath); + if (!list.isEmpty()) { + ResultField resultField = (ResultField)list.remove(0); + if (keyCount == 0) { + if (!resultField.name.isEmpty()) { + int i = this.debugPath.lastIndexOf(30); + if (i >= 0) { + this.debugPath = this.debugPath.substring(0, i); + } + } + } else { + keyCount--; + if (keyCount < list.size() && !"unspecified".equals(((ResultField)list.get(keyCount)).name)) { + if (!this.debugPath.isEmpty()) { + this.debugPath = this.debugPath + "\u001e"; + } + + this.debugPath = this.debugPath + ((ResultField)list.get(keyCount)).name; + } + } + } + } + } + + private void renderFpsMeter(GuiGraphics guiGraphics, ProfileResults profileResults) { + List list = profileResults.getTimes(this.debugPath); + ResultField resultField = (ResultField)list.removeFirst(); + RenderSystem.clear(256, ON_OSX); + RenderSystem.setShader(GameRenderer::getPositionColorShader); + Matrix4f matrix4f = new Matrix4f().setOrtho(0.0F, this.window.getWidth(), this.window.getHeight(), 0.0F, 1000.0F, 3000.0F); + RenderSystem.setProjectionMatrix(matrix4f, VertexSorting.ORTHOGRAPHIC_Z); + Tesselator tesselator = Tesselator.getInstance(); + Matrix4fStack matrix4fStack = RenderSystem.getModelViewStack(); + matrix4fStack.pushMatrix(); + matrix4fStack.translation(0.0F, 0.0F, -2000.0F); + RenderSystem.applyModelViewMatrix(); + int i = 160; + int j = this.window.getWidth() - 160 - 10; + int k = this.window.getHeight() - 320; + double d = 0.0; + + for (ResultField resultField2 : list) { + int l = Mth.floor(resultField2.percentage / 4.0) + 1; + BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); + int m = FastColor.ARGB32.opaque(resultField2.getColor()); + int n = FastColor.ARGB32.multiply(m, -8355712); + bufferBuilder.addVertex(j, k, 0.0F).setColor(m); + + for (int o = l; o >= 0; o--) { + float f = (float)((d + resultField2.percentage * o / l) * (float) (Math.PI * 2) / 100.0); + float g = Mth.sin(f) * 160.0F; + float h = Mth.cos(f) * 160.0F * 0.5F; + bufferBuilder.addVertex(j + g, k - h, 0.0F).setColor(m); + } + + BufferUploader.drawWithShader(bufferBuilder.buildOrThrow()); + bufferBuilder = tesselator.begin(VertexFormat.Mode.TRIANGLE_STRIP, DefaultVertexFormat.POSITION_COLOR); + + for (int o = l; o >= 0; o--) { + float f = (float)((d + resultField2.percentage * o / l) * (float) (Math.PI * 2) / 100.0); + float g = Mth.sin(f) * 160.0F; + float h = Mth.cos(f) * 160.0F * 0.5F; + if (!(h > 0.0F)) { + bufferBuilder.addVertex(j + g, k - h, 0.0F).setColor(n); + bufferBuilder.addVertex(j + g, k - h + 10.0F, 0.0F).setColor(n); + } + } + + MeshData meshData = bufferBuilder.build(); + if (meshData != null) { + BufferUploader.drawWithShader(meshData); + } + + d += resultField2.percentage; + } + + DecimalFormat decimalFormat = new DecimalFormat("##0.00"); + decimalFormat.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ROOT)); + String string = ProfileResults.demanglePath(resultField.name); + String string2 = ""; + if (!"unspecified".equals(string)) { + string2 = string2 + "[0] "; + } + + if (string.isEmpty()) { + string2 = string2 + "ROOT "; + } else { + string2 = string2 + string + " "; + } + + int p = 16777215; + guiGraphics.drawString(this.font, string2, j - 160, k - 80 - 16, 16777215); + string2 = decimalFormat.format(resultField.globalPercentage) + "%"; + guiGraphics.drawString(this.font, string2, j + 160 - this.font.width(string2), k - 80 - 16, 16777215); + + for (int q = 0; q < list.size(); q++) { + ResultField resultField3 = (ResultField)list.get(q); + StringBuilder stringBuilder = new StringBuilder(); + if ("unspecified".equals(resultField3.name)) { + stringBuilder.append("[?] "); + } else { + stringBuilder.append("[").append(q + 1).append("] "); + } + + String string3 = stringBuilder.append(resultField3.name).toString(); + guiGraphics.drawString(this.font, string3, j - 160, k + 80 + q * 8 + 20, resultField3.getColor()); + string3 = decimalFormat.format(resultField3.percentage) + "%"; + guiGraphics.drawString(this.font, string3, j + 160 - 50 - this.font.width(string3), k + 80 + q * 8 + 20, resultField3.getColor()); + string3 = decimalFormat.format(resultField3.globalPercentage) + "%"; + guiGraphics.drawString(this.font, string3, j + 160 - this.font.width(string3), k + 80 + q * 8 + 20, resultField3.getColor()); + } + + matrix4fStack.popMatrix(); + RenderSystem.applyModelViewMatrix(); + } + + /** + * Called when the window is closing. Sets 'running' to false which allows the game loop to exit cleanly. + */ + public void stop() { + this.running = false; + } + + public boolean isRunning() { + return this.running; + } + + /** + * Displays the ingame menu + */ + public void pauseGame(boolean pauseOnly) { + if (this.screen == null) { + boolean bl = this.hasSingleplayerServer() && !this.singleplayerServer.isPublished(); + if (bl) { + this.setScreen(new PauseScreen(!pauseOnly)); + this.soundManager.pause(); + } else { + this.setScreen(new PauseScreen(true)); + } + } + } + + private void continueAttack(boolean leftClick) { + if (!leftClick) { + this.missTime = 0; + } + + if (this.missTime <= 0 && !this.player.isUsingItem()) { + if (leftClick && this.hitResult != null && this.hitResult.getType() == HitResult.Type.BLOCK) { + BlockHitResult blockHitResult = (BlockHitResult)this.hitResult; + BlockPos blockPos = blockHitResult.getBlockPos(); + if (!this.level.getBlockState(blockPos).isAir()) { + Direction direction = blockHitResult.getDirection(); + if (this.gameMode.continueDestroyBlock(blockPos, direction)) { + this.particleEngine.crack(blockPos, direction); + this.player.swing(InteractionHand.MAIN_HAND); + } + } + } else { + this.gameMode.stopDestroyBlock(); + } + } + } + + private boolean startAttack() { + if (this.missTime > 0) { + return false; + } else if (this.hitResult == null) { + LOGGER.error("Null returned as 'hitResult', this shouldn't happen!"); + if (this.gameMode.hasMissTime()) { + this.missTime = 10; + } + + return false; + } else if (this.player.isHandsBusy()) { + return false; + } else { + ItemStack itemStack = this.player.getItemInHand(InteractionHand.MAIN_HAND); + if (!itemStack.isItemEnabled(this.level.enabledFeatures())) { + return false; + } else { + boolean bl = false; + switch (this.hitResult.getType()) { + case ENTITY: + this.gameMode.attack(this.player, ((EntityHitResult)this.hitResult).getEntity()); + break; + case BLOCK: + BlockHitResult blockHitResult = (BlockHitResult)this.hitResult; + BlockPos blockPos = blockHitResult.getBlockPos(); + if (!this.level.getBlockState(blockPos).isAir()) { + this.gameMode.startDestroyBlock(blockPos, blockHitResult.getDirection()); + if (this.level.getBlockState(blockPos).isAir()) { + bl = true; + } + break; + } + case MISS: + if (this.gameMode.hasMissTime()) { + this.missTime = 10; + } + + this.player.resetAttackStrengthTicker(); + } + + this.player.swing(InteractionHand.MAIN_HAND); + return bl; + } + } + } + + /** + * Called when user clicked he's mouse right button (place) + */ + private void startUseItem() { + if (!this.gameMode.isDestroying()) { + this.rightClickDelay = 4; + if (!this.player.isHandsBusy()) { + if (this.hitResult == null) { + LOGGER.warn("Null returned as 'hitResult', this shouldn't happen!"); + } + + for (InteractionHand interactionHand : InteractionHand.values()) { + ItemStack itemStack = this.player.getItemInHand(interactionHand); + if (!itemStack.isItemEnabled(this.level.enabledFeatures())) { + return; + } + + if (this.hitResult != null) { + switch (this.hitResult.getType()) { + case ENTITY: + EntityHitResult entityHitResult = (EntityHitResult)this.hitResult; + Entity entity = entityHitResult.getEntity(); + if (!this.level.getWorldBorder().isWithinBounds(entity.blockPosition())) { + return; + } + + InteractionResult interactionResult = this.gameMode.interactAt(this.player, entity, entityHitResult, interactionHand); + if (!interactionResult.consumesAction()) { + interactionResult = this.gameMode.interact(this.player, entity, interactionHand); + } + + if (interactionResult.consumesAction()) { + if (interactionResult.shouldSwing()) { + this.player.swing(interactionHand); + } + + return; + } + break; + case BLOCK: + BlockHitResult blockHitResult = (BlockHitResult)this.hitResult; + int i = itemStack.getCount(); + InteractionResult interactionResult2 = this.gameMode.useItemOn(this.player, interactionHand, blockHitResult); + if (interactionResult2.consumesAction()) { + if (interactionResult2.shouldSwing()) { + this.player.swing(interactionHand); + if (!itemStack.isEmpty() && (itemStack.getCount() != i || this.gameMode.hasInfiniteItems())) { + this.gameRenderer.itemInHandRenderer.itemUsed(interactionHand); + } + } + + return; + } + + if (interactionResult2 == InteractionResult.FAIL) { + return; + } + } + } + + if (!itemStack.isEmpty()) { + InteractionResult interactionResult3 = this.gameMode.useItem(this.player, interactionHand); + if (interactionResult3.consumesAction()) { + if (interactionResult3.shouldSwing()) { + this.player.swing(interactionHand); + } + + this.gameRenderer.itemInHandRenderer.itemUsed(interactionHand); + return; + } + } + } + } + } + } + + /** + * Return the musicTicker's instance + */ + public MusicManager getMusicManager() { + return this.musicManager; + } + + /** + * Runs the current tick. + */ + public void tick() { + this.clientTickCount++; + if (this.level != null && !this.pause) { + this.level.tickRateManager().tick(); + } + + if (this.rightClickDelay > 0) { + this.rightClickDelay--; + } + + this.profiler.push("gui"); + this.chatListener.tick(); + this.gui.tick(this.pause); + this.profiler.pop(); + this.gameRenderer.pick(1.0F); + this.tutorial.onLookAt(this.level, this.hitResult); + this.profiler.push("gameMode"); + if (!this.pause && this.level != null) { + this.gameMode.tick(); + } + + this.profiler.popPush("textures"); + if (this.isLevelRunningNormally()) { + this.textureManager.tick(); + } + + if (this.screen != null || this.player == null) { + if (this.screen instanceof InBedChatScreen inBedChatScreen && !this.player.isSleeping()) { + inBedChatScreen.onPlayerWokeUp(); + } + } else if (this.player.isDeadOrDying() && !(this.screen instanceof DeathScreen)) { + this.setScreen(null); + } else if (this.player.isSleeping() && this.level != null) { + this.setScreen(new InBedChatScreen()); + } + + if (this.screen != null) { + this.missTime = 10000; + } + + if (this.screen != null) { + Screen.wrapScreenError(() -> this.screen.tick(), "Ticking screen", this.screen.getClass().getCanonicalName()); + } + + if (!this.getDebugOverlay().showDebugScreen()) { + this.gui.clearCache(); + } + + if (this.overlay == null && this.screen == null) { + this.profiler.popPush("Keybindings"); + this.handleKeybinds(); + if (this.missTime > 0) { + this.missTime--; + } + } + + if (this.level != null) { + this.profiler.popPush("gameRenderer"); + if (!this.pause) { + this.gameRenderer.tick(); + } + + this.profiler.popPush("levelRenderer"); + if (!this.pause) { + this.levelRenderer.tick(); + } + + this.profiler.popPush("level"); + if (!this.pause) { + this.level.tickEntities(); + } + } else if (this.gameRenderer.currentEffect() != null) { + this.gameRenderer.shutdownEffect(); + } + + if (!this.pause) { + this.musicManager.tick(); + } + + this.soundManager.tick(this.pause); + if (this.level != null) { + if (!this.pause) { + if (!this.options.joinedFirstServer && this.isMultiplayerServer()) { + Component component = Component.translatable("tutorial.socialInteractions.title"); + Component component2 = Component.translatable("tutorial.socialInteractions.description", Tutorial.key("socialInteractions")); + this.socialInteractionsToast = new TutorialToast(TutorialToast.Icons.SOCIAL_INTERACTIONS, component, component2, true); + this.tutorial.addTimedToast(this.socialInteractionsToast, 160); + this.options.joinedFirstServer = true; + this.options.save(); + } + + this.tutorial.tick(); + + try { + this.level.tick(() -> true); + } catch (Throwable var4) { + CrashReport crashReport = CrashReport.forThrowable(var4, "Exception in world tick"); + if (this.level == null) { + CrashReportCategory crashReportCategory = crashReport.addCategory("Affected level"); + crashReportCategory.setDetail("Problem", "Level is null!"); + } else { + this.level.fillReportDetails(crashReport); + } + + throw new ReportedException(crashReport); + } + } + + this.profiler.popPush("animateTick"); + if (!this.pause && this.isLevelRunningNormally()) { + this.level.animateTick(this.player.getBlockX(), this.player.getBlockY(), this.player.getBlockZ()); + } + + this.profiler.popPush("particles"); + if (!this.pause && this.isLevelRunningNormally()) { + this.particleEngine.tick(); + } + } else if (this.pendingConnection != null) { + this.profiler.popPush("pendingConnection"); + this.pendingConnection.tick(); + } + + this.profiler.popPush("keyboard"); + this.keyboardHandler.tick(); + this.profiler.pop(); + } + + private boolean isLevelRunningNormally() { + return this.level == null || this.level.tickRateManager().runsNormally(); + } + + private boolean isMultiplayerServer() { + return !this.isLocalServer || this.singleplayerServer != null && this.singleplayerServer.isPublished(); + } + + private void handleKeybinds() { + while (this.options.keyTogglePerspective.consumeClick()) { + CameraType cameraType = this.options.getCameraType(); + this.options.setCameraType(this.options.getCameraType().cycle()); + if (cameraType.isFirstPerson() != this.options.getCameraType().isFirstPerson()) { + this.gameRenderer.checkEntityPostEffect(this.options.getCameraType().isFirstPerson() ? this.getCameraEntity() : null); + } + + this.levelRenderer.needsUpdate(); + } + + while (this.options.keySmoothCamera.consumeClick()) { + this.options.smoothCamera = !this.options.smoothCamera; + } + + for (int i = 0; i < 9; i++) { + boolean bl = this.options.keySaveHotbarActivator.isDown(); + boolean bl2 = this.options.keyLoadHotbarActivator.isDown(); + if (this.options.keyHotbarSlots[i].consumeClick()) { + if (this.player.isSpectator()) { + this.gui.getSpectatorGui().onHotbarSelected(i); + } else if (!this.player.isCreative() || this.screen != null || !bl2 && !bl) { + this.player.getInventory().selected = i; + } else { + CreativeModeInventoryScreen.handleHotbarLoadOrSave(this, i, bl2, bl); + } + } + } + + while (this.options.keySocialInteractions.consumeClick()) { + if (!this.isMultiplayerServer()) { + this.player.displayClientMessage(SOCIAL_INTERACTIONS_NOT_AVAILABLE, true); + this.narrator.sayNow(SOCIAL_INTERACTIONS_NOT_AVAILABLE); + } else { + if (this.socialInteractionsToast != null) { + this.tutorial.removeTimedToast(this.socialInteractionsToast); + this.socialInteractionsToast = null; + } + + this.setScreen(new SocialInteractionsScreen()); + } + } + + while (this.options.keyInventory.consumeClick()) { + if (this.gameMode.isServerControlledInventory()) { + this.player.sendOpenInventory(); + } else { + this.tutorial.onOpenInventory(); + this.setScreen(new InventoryScreen(this.player)); + } + } + + while (this.options.keyAdvancements.consumeClick()) { + this.setScreen(new AdvancementsScreen(this.player.connection.getAdvancements())); + } + + while (this.options.keySwapOffhand.consumeClick()) { + if (!this.player.isSpectator()) { + this.getConnection().send(new ServerboundPlayerActionPacket(ServerboundPlayerActionPacket.Action.SWAP_ITEM_WITH_OFFHAND, BlockPos.ZERO, Direction.DOWN)); + } + } + + while (this.options.keyDrop.consumeClick()) { + if (!this.player.isSpectator() && this.player.drop(Screen.hasControlDown())) { + this.player.swing(InteractionHand.MAIN_HAND); + } + } + + while (this.options.keyChat.consumeClick()) { + this.openChatScreen(""); + } + + if (this.screen == null && this.overlay == null && this.options.keyCommand.consumeClick()) { + this.openChatScreen("/"); + } + + boolean bl3 = false; + if (this.player.isUsingItem()) { + if (!this.options.keyUse.isDown()) { + this.gameMode.releaseUsingItem(this.player); + } + + while (this.options.keyAttack.consumeClick()) { + } + + while (this.options.keyUse.consumeClick()) { + } + + while (this.options.keyPickItem.consumeClick()) { + } + } else { + while (this.options.keyAttack.consumeClick()) { + bl3 |= this.startAttack(); + } + + while (this.options.keyUse.consumeClick()) { + this.startUseItem(); + } + + while (this.options.keyPickItem.consumeClick()) { + this.pickBlock(); + } + } + + if (this.options.keyUse.isDown() && this.rightClickDelay == 0 && !this.player.isUsingItem()) { + this.startUseItem(); + } + + this.continueAttack(this.screen == null && !bl3 && this.options.keyAttack.isDown() && this.mouseHandler.isMouseGrabbed()); + } + + public ClientTelemetryManager getTelemetryManager() { + return this.telemetryManager; + } + + public double getGpuUtilization() { + return this.gpuUtilization; + } + + public ProfileKeyPairManager getProfileKeyPairManager() { + return this.profileKeyPairManager; + } + + public WorldOpenFlows createWorldOpenFlows() { + return new WorldOpenFlows(this, this.levelSource); + } + + public void doWorldLoad(LevelStorageSource.LevelStorageAccess levelStorage, PackRepository packRepository, WorldStem worldStem, boolean newWorld) { + this.disconnect(); + this.progressListener.set(null); + Instant instant = Instant.now(); + + try { + levelStorage.saveDataTag(worldStem.registries().compositeAccess(), worldStem.worldData()); + Services services = Services.create(this.authenticationService, this.gameDirectory); + services.profileCache().setExecutor(this); + SkullBlockEntity.setup(services, this); + GameProfileCache.setUsesAuthentication(false); + this.singleplayerServer = MinecraftServer.spin(thread -> new IntegratedServer(thread, this, levelStorage, packRepository, worldStem, services, i -> { + StoringChunkProgressListener storingChunkProgressListener = StoringChunkProgressListener.createFromGameruleRadius(i + 0); + this.progressListener.set(storingChunkProgressListener); + return ProcessorChunkProgressListener.createStarted(storingChunkProgressListener, this.progressTasks::add); + })); + this.isLocalServer = true; + this.updateReportEnvironment(ReportEnvironment.local()); + this.quickPlayLog.setWorldData(QuickPlayLog.Type.SINGLEPLAYER, levelStorage.getLevelId(), worldStem.worldData().getLevelName()); + } catch (Throwable var11) { + CrashReport crashReport = CrashReport.forThrowable(var11, "Starting integrated server"); + CrashReportCategory crashReportCategory = crashReport.addCategory("Starting integrated server"); + crashReportCategory.setDetail("Level ID", levelStorage.getLevelId()); + crashReportCategory.setDetail("Level Name", (CrashReportDetail)(() -> worldStem.worldData().getLevelName())); + throw new ReportedException(crashReport); + } + + while (this.progressListener.get() == null) { + Thread.yield(); + } + + LevelLoadingScreen levelLoadingScreen = new LevelLoadingScreen((StoringChunkProgressListener)this.progressListener.get()); + this.setScreen(levelLoadingScreen); + this.profiler.push("waitForServer"); + + for (; !this.singleplayerServer.isReady() || this.overlay != null; this.handleDelayedCrash()) { + levelLoadingScreen.tick(); + this.runTick(false); + + try { + Thread.sleep(16L); + } catch (InterruptedException var10) { + } + } + + this.profiler.pop(); + Duration duration = Duration.between(instant, Instant.now()); + SocketAddress socketAddress = this.singleplayerServer.getConnection().startMemoryChannel(); + Connection connection = Connection.connectToLocalServer(socketAddress); + connection.initiateServerboundPlayConnection( + socketAddress.toString(), 0, new ClientHandshakePacketListenerImpl(connection, this, null, null, newWorld, duration, component -> {}, null) + ); + connection.send(new ServerboundHelloPacket(this.getUser().getName(), this.getUser().getProfileId())); + this.pendingConnection = connection; + } + + public void setLevel(ClientLevel level, ReceivingLevelScreen.Reason reason) { + this.updateScreenAndTick(new ReceivingLevelScreen(() -> false, reason)); + this.level = level; + this.updateLevelInEngines(level); + if (!this.isLocalServer) { + Services services = Services.create(this.authenticationService, this.gameDirectory); + services.profileCache().setExecutor(this); + SkullBlockEntity.setup(services, this); + GameProfileCache.setUsesAuthentication(false); + } + } + + public void disconnect() { + this.disconnect(new ProgressScreen(true), false); + } + + public void disconnect(Screen nextScreen) { + this.disconnect(nextScreen, false); + } + + public void disconnect(Screen nextScreen, boolean keepResourcePacks) { + ClientPacketListener clientPacketListener = this.getConnection(); + if (clientPacketListener != null) { + this.dropAllTasks(); + clientPacketListener.close(); + if (!keepResourcePacks) { + this.clearDownloadedResourcePacks(); + } + } + + this.playerSocialManager.stopOnlineMode(); + if (this.metricsRecorder.isRecording()) { + this.debugClientMetricsCancel(); + } + + IntegratedServer integratedServer = this.singleplayerServer; + this.singleplayerServer = null; + this.gameRenderer.resetData(); + this.gameMode = null; + this.narrator.clear(); + this.clientLevelTeardownInProgress = true; + + try { + this.updateScreenAndTick(nextScreen); + if (this.level != null) { + if (integratedServer != null) { + this.profiler.push("waitForServer"); + + while (!integratedServer.isShutdown()) { + this.runTick(false); + } + + this.profiler.pop(); + } + + this.gui.onDisconnected(); + this.isLocalServer = false; + } + + this.level = null; + this.updateLevelInEngines(null); + this.player = null; + } finally { + this.clientLevelTeardownInProgress = false; + } + + SkullBlockEntity.clear(); + } + + public void clearDownloadedResourcePacks() { + this.downloadedPackSource.cleanupAfterDisconnect(); + this.runAllTasks(); + } + + public void clearClientLevel(Screen nextScreen) { + ClientPacketListener clientPacketListener = this.getConnection(); + if (clientPacketListener != null) { + clientPacketListener.clearLevel(); + } + + if (this.metricsRecorder.isRecording()) { + this.debugClientMetricsCancel(); + } + + this.gameRenderer.resetData(); + this.gameMode = null; + this.narrator.clear(); + this.clientLevelTeardownInProgress = true; + + try { + this.updateScreenAndTick(nextScreen); + this.gui.onDisconnected(); + this.level = null; + this.updateLevelInEngines(null); + this.player = null; + } finally { + this.clientLevelTeardownInProgress = false; + } + + SkullBlockEntity.clear(); + } + + private void updateScreenAndTick(Screen screen) { + this.profiler.push("forcedTick"); + this.soundManager.stop(); + this.cameraEntity = null; + this.pendingConnection = null; + this.setScreen(screen); + this.runTick(false); + this.profiler.pop(); + } + + public void forceSetScreen(Screen screen) { + this.profiler.push("forcedTick"); + this.setScreen(screen); + this.runTick(false); + this.profiler.pop(); + } + + private void updateLevelInEngines(@Nullable ClientLevel level) { + this.levelRenderer.setLevel(level); + this.particleEngine.setLevel(level); + this.blockEntityRenderDispatcher.setLevel(level); + this.updateTitle(); + } + + private UserProperties userProperties() { + return (UserProperties)this.userPropertiesFuture.join(); + } + + public boolean telemetryOptInExtra() { + return this.extraTelemetryAvailable() && this.options.telemetryOptInExtra().get(); + } + + public boolean extraTelemetryAvailable() { + return this.allowsTelemetry() && this.userProperties().flag(UserFlag.OPTIONAL_TELEMETRY_AVAILABLE); + } + + public boolean allowsTelemetry() { + return SharedConstants.IS_RUNNING_IN_IDE ? false : this.userProperties().flag(UserFlag.TELEMETRY_ENABLED); + } + + public boolean allowsMultiplayer() { + return this.allowsMultiplayer && this.userProperties().flag(UserFlag.SERVERS_ALLOWED) && this.multiplayerBan() == null && !this.isNameBanned(); + } + + public boolean allowsRealms() { + return this.userProperties().flag(UserFlag.REALMS_ALLOWED) && this.multiplayerBan() == null; + } + + @Nullable + public BanDetails multiplayerBan() { + return (BanDetails)this.userProperties().bannedScopes().get("MULTIPLAYER"); + } + + public boolean isNameBanned() { + ProfileResult profileResult = (ProfileResult)this.profileFuture.getNow(null); + return profileResult != null && profileResult.actions().contains(ProfileActionType.FORCED_NAME_CHANGE); + } + + public boolean isBlocked(UUID playerUUID) { + return this.getChatStatus().isChatAllowed(false) + ? this.playerSocialManager.shouldHideMessageFrom(playerUUID) + : (this.player == null || !playerUUID.equals(this.player.getUUID())) && !playerUUID.equals(Util.NIL_UUID); + } + + public Minecraft.ChatStatus getChatStatus() { + if (this.options.chatVisibility().get() == ChatVisiblity.HIDDEN) { + return Minecraft.ChatStatus.DISABLED_BY_OPTIONS; + } else if (!this.allowsChat) { + return Minecraft.ChatStatus.DISABLED_BY_LAUNCHER; + } else { + return !this.userProperties().flag(UserFlag.CHAT_ALLOWED) ? Minecraft.ChatStatus.DISABLED_BY_PROFILE : Minecraft.ChatStatus.ENABLED; + } + } + + /** + * Gets whether this is a demo or not. + */ + public final boolean isDemo() { + return this.demo; + } + + @Nullable + public ClientPacketListener getConnection() { + return this.player == null ? null : this.player.connection; + } + + public static boolean renderNames() { + return !instance.options.hideGui; + } + + public static boolean useFancyGraphics() { + return instance.options.graphicsMode().get().getId() >= GraphicsStatus.FANCY.getId(); + } + + public static boolean useShaderTransparency() { + return !instance.gameRenderer.isPanoramicMode() && instance.options.graphicsMode().get().getId() >= GraphicsStatus.FABULOUS.getId(); + } + + /** + * Returns if ambient occlusion is enabled + */ + public static boolean useAmbientOcclusion() { + return instance.options.ambientOcclusion().get(); + } + + /** + * Called when user clicked he's mouse middle button (pick block) + */ + private void pickBlock() { + if (this.hitResult != null && this.hitResult.getType() != HitResult.Type.MISS) { + boolean bl = this.player.getAbilities().instabuild; + BlockEntity blockEntity = null; + HitResult.Type type = this.hitResult.getType(); + ItemStack itemStack; + if (type == HitResult.Type.BLOCK) { + BlockPos blockPos = ((BlockHitResult)this.hitResult).getBlockPos(); + BlockState blockState = this.level.getBlockState(blockPos); + if (blockState.isAir()) { + return; + } + + Block block = blockState.getBlock(); + itemStack = block.getCloneItemStack(this.level, blockPos, blockState); + if (itemStack.isEmpty()) { + return; + } + + if (bl && Screen.hasControlDown() && blockState.hasBlockEntity()) { + blockEntity = this.level.getBlockEntity(blockPos); + } + } else { + if (type != HitResult.Type.ENTITY || !bl) { + return; + } + + Entity entity = ((EntityHitResult)this.hitResult).getEntity(); + itemStack = entity.getPickResult(); + if (itemStack == null) { + return; + } + } + + if (itemStack.isEmpty()) { + String string = ""; + if (type == HitResult.Type.BLOCK) { + string = BuiltInRegistries.BLOCK.getKey(this.level.getBlockState(((BlockHitResult)this.hitResult).getBlockPos()).getBlock()).toString(); + } else if (type == HitResult.Type.ENTITY) { + string = BuiltInRegistries.ENTITY_TYPE.getKey(((EntityHitResult)this.hitResult).getEntity().getType()).toString(); + } + + LOGGER.warn("Picking on: [{}] {} gave null item", type, string); + } else { + Inventory inventory = this.player.getInventory(); + if (blockEntity != null) { + this.addCustomNbtData(itemStack, blockEntity, this.level.registryAccess()); + } + + int i = inventory.findSlotMatchingItem(itemStack); + if (bl) { + inventory.setPickedItem(itemStack); + this.gameMode.handleCreativeModeItemAdd(this.player.getItemInHand(InteractionHand.MAIN_HAND), 36 + inventory.selected); + } else if (i != -1) { + if (Inventory.isHotbarSlot(i)) { + inventory.selected = i; + } else { + this.gameMode.handlePickItem(i); + } + } + } + } + } + + private void addCustomNbtData(ItemStack stack, BlockEntity blockEntity, RegistryAccess registryAccess) { + CompoundTag compoundTag = blockEntity.saveCustomAndMetadata(registryAccess); + blockEntity.removeComponentsFromTag(compoundTag); + BlockItem.setBlockEntityData(stack, blockEntity.getType(), compoundTag); + stack.applyComponents(blockEntity.collectComponents()); + } + + /** + * Adds core server Info (GL version, Texture pack, isModded, type), and the worldInfo to the crash report. + */ + public CrashReport fillReport(CrashReport theCrash) { + SystemReport systemReport = theCrash.getSystemReport(); + fillSystemReport(systemReport, this, this.languageManager, this.launchedVersion, this.options); + this.fillUptime(theCrash.addCategory("Uptime")); + if (this.level != null) { + this.level.fillReportDetails(theCrash); + } + + if (this.singleplayerServer != null) { + this.singleplayerServer.fillSystemReport(systemReport); + } + + this.reloadStateTracker.fillCrashReport(theCrash); + return theCrash; + } + + public static void fillReport( + @Nullable Minecraft minecraft, @Nullable LanguageManager languageManager, String launchVersion, @Nullable Options options, CrashReport report + ) { + SystemReport systemReport = report.getSystemReport(); + fillSystemReport(systemReport, minecraft, languageManager, launchVersion, options); + } + + private static String formatSeconds(double seconds) { + return String.format(Locale.ROOT, "%.3fs", seconds); + } + + private void fillUptime(CrashReportCategory category) { + category.setDetail("JVM uptime", (CrashReportDetail)(() -> formatSeconds(ManagementFactory.getRuntimeMXBean().getUptime() / 1000.0))); + category.setDetail("Wall uptime", (CrashReportDetail)(() -> formatSeconds((System.currentTimeMillis() - this.clientStartTimeMs) / 1000.0))); + category.setDetail("High-res time", (CrashReportDetail)(() -> formatSeconds(Util.getMillis() / 1000.0))); + category.setDetail( + "Client ticks", (CrashReportDetail)(() -> String.format(Locale.ROOT, "%d ticks / %.3fs", this.clientTickCount, this.clientTickCount / 20.0)) + ); + } + + private static SystemReport fillSystemReport( + SystemReport report, @Nullable Minecraft minecraft, @Nullable LanguageManager languageManager, String launchVersion, @Nullable Options options + ) { + report.setDetail("Launched Version", (Supplier)(() -> launchVersion)); + String string = getLauncherBrand(); + if (string != null) { + report.setDetail("Launcher name", string); + } + + report.setDetail("Backend library", RenderSystem::getBackendDescription); + report.setDetail("Backend API", RenderSystem::getApiDescription); + report.setDetail( + "Window size", (Supplier)(() -> minecraft != null ? minecraft.window.getWidth() + "x" + minecraft.window.getHeight() : "") + ); + report.setDetail("GFLW Platform", Window::getPlatform); + report.setDetail("GL Caps", RenderSystem::getCapsString); + report.setDetail( + "GL debug messages", (Supplier)(() -> GlDebug.isDebugEnabled() ? String.join("\n", GlDebug.getLastOpenGlDebugMessages()) : "") + ); + report.setDetail("Is Modded", (Supplier)(() -> checkModStatus().fullDescription())); + report.setDetail("Universe", (Supplier)(() -> minecraft != null ? Long.toHexString(minecraft.canary) : "404")); + report.setDetail("Type", "Client (map_client.txt)"); + if (options != null) { + if (minecraft != null) { + String string2 = minecraft.getGpuWarnlistManager().getAllWarnings(); + if (string2 != null) { + report.setDetail("GPU Warnings", string2); + } + } + + report.setDetail("Graphics mode", options.graphicsMode().get().toString()); + report.setDetail("Render Distance", options.getEffectiveRenderDistance() + "/" + options.renderDistance().get() + " chunks"); + } + + if (minecraft != null) { + report.setDetail("Resource Packs", (Supplier)(() -> PackRepository.displayPackList(minecraft.getResourcePackRepository().getSelectedPacks()))); + } + + if (languageManager != null) { + report.setDetail("Current Language", (Supplier)(() -> languageManager.getSelected())); + } + + report.setDetail("Locale", String.valueOf(Locale.getDefault())); + report.setDetail("System encoding", (Supplier)(() -> System.getProperty("sun.jnu.encoding", ""))); + report.setDetail("File encoding", (Supplier)(() -> System.getProperty("file.encoding", ""))); + report.setDetail("CPU", GlUtil::getCpuInfo); + return report; + } + + /** + * Return the singleton Minecraft instance for the game + */ + public static Minecraft getInstance() { + return instance; + } + + public CompletableFuture delayTextureReload() { + return this.submit(this::reloadResourcePacks).thenCompose(completableFuture -> completableFuture); + } + + public void updateReportEnvironment(ReportEnvironment reportEnvironment) { + if (!this.reportingContext.matches(reportEnvironment)) { + this.reportingContext = ReportingContext.create(reportEnvironment, this.userApiService); + } + } + + @Nullable + public ServerData getCurrentServer() { + return Optionull.map(this.getConnection(), ClientPacketListener::getServerData); + } + + public boolean isLocalServer() { + return this.isLocalServer; + } + + /** + * Returns {@code true} if there is only one player playing, and the current server is the integrated one. + */ + public boolean hasSingleplayerServer() { + return this.isLocalServer && this.singleplayerServer != null; + } + + /** + * Returns the currently running integrated server + */ + @Nullable + public IntegratedServer getSingleplayerServer() { + return this.singleplayerServer; + } + + public boolean isSingleplayer() { + IntegratedServer integratedServer = this.getSingleplayerServer(); + return integratedServer != null && !integratedServer.isPublished(); + } + + public boolean isLocalPlayer(UUID uuid) { + return uuid.equals(this.getUser().getProfileId()); + } + + public User getUser() { + return this.user; + } + + public GameProfile getGameProfile() { + ProfileResult profileResult = (ProfileResult)this.profileFuture.join(); + return profileResult != null ? profileResult.profile() : new GameProfile(this.user.getProfileId(), this.user.getName()); + } + + public Proxy getProxy() { + return this.proxy; + } + + public TextureManager getTextureManager() { + return this.textureManager; + } + + public ResourceManager getResourceManager() { + return this.resourceManager; + } + + public PackRepository getResourcePackRepository() { + return this.resourcePackRepository; + } + + public VanillaPackResources getVanillaPackResources() { + return this.vanillaPackResources; + } + + public DownloadedPackSource getDownloadedPackSource() { + return this.downloadedPackSource; + } + + public Path getResourcePackDirectory() { + return this.resourcePackDirectory; + } + + public LanguageManager getLanguageManager() { + return this.languageManager; + } + + public Function getTextureAtlas(ResourceLocation location) { + return this.modelManager.getAtlas(location)::getSprite; + } + + public boolean isPaused() { + return this.pause; + } + + public GpuWarnlistManager getGpuWarnlistManager() { + return this.gpuWarnlistManager; + } + + public SoundManager getSoundManager() { + return this.soundManager; + } + + public Music getSituationalMusic() { + Music music = Optionull.map(this.screen, Screen::getBackgroundMusic); + if (music != null) { + return music; + } else if (this.player != null) { + if (this.player.level().dimension() == Level.END) { + return this.gui.getBossOverlay().shouldPlayMusic() ? Musics.END_BOSS : Musics.END; + } else { + Holder holder = this.player.level().getBiome(this.player.blockPosition()); + if (!this.musicManager.isPlayingMusic(Musics.UNDER_WATER) && (!this.player.isUnderWater() || !holder.is(BiomeTags.PLAYS_UNDERWATER_MUSIC))) { + return this.player.level().dimension() != Level.NETHER && this.player.getAbilities().instabuild && this.player.getAbilities().mayfly + ? Musics.CREATIVE + : (Music)holder.value().getBackgroundMusic().orElse(Musics.GAME); + } else { + return Musics.UNDER_WATER; + } + } + } else { + return Musics.MENU; + } + } + + public MinecraftSessionService getMinecraftSessionService() { + return this.minecraftSessionService; + } + + public SkinManager getSkinManager() { + return this.skinManager; + } + + @Nullable + public Entity getCameraEntity() { + return this.cameraEntity; + } + + public void setCameraEntity(Entity viewingEntity) { + this.cameraEntity = viewingEntity; + this.gameRenderer.checkEntityPostEffect(viewingEntity); + } + + public boolean shouldEntityAppearGlowing(Entity entity) { + return entity.isCurrentlyGlowing() + || this.player != null && this.player.isSpectator() && this.options.keySpectatorOutlines.isDown() && entity.getType() == EntityType.PLAYER; + } + + @Override + protected Thread getRunningThread() { + return this.gameThread; + } + + @Override + protected Runnable wrapRunnable(Runnable runnable) { + return runnable; + } + + @Override + protected boolean shouldRun(Runnable runnable) { + return true; + } + + public BlockRenderDispatcher getBlockRenderer() { + return this.blockRenderer; + } + + public EntityRenderDispatcher getEntityRenderDispatcher() { + return this.entityRenderDispatcher; + } + + public BlockEntityRenderDispatcher getBlockEntityRenderDispatcher() { + return this.blockEntityRenderDispatcher; + } + + public ItemRenderer getItemRenderer() { + return this.itemRenderer; + } + + public DataFixer getFixerUpper() { + return this.fixerUpper; + } + + public DeltaTracker getTimer() { + return this.timer; + } + + public BlockColors getBlockColors() { + return this.blockColors; + } + + /** + * Whether to use reduced debug info + */ + public boolean showOnlyReducedInfo() { + return this.player != null && this.player.isReducedDebugInfo() || this.options.reducedDebugInfo().get(); + } + + public ToastComponent getToasts() { + return this.toast; + } + + public Tutorial getTutorial() { + return this.tutorial; + } + + public boolean isWindowActive() { + return this.windowActive; + } + + public HotbarManager getHotbarManager() { + return this.hotbarManager; + } + + public ModelManager getModelManager() { + return this.modelManager; + } + + /** + * Gets the sprite uploader used for paintings. + */ + public PaintingTextureManager getPaintingTextures() { + return this.paintingTextures; + } + + /** + * Gets the sprite uploader used for potions. + */ + public MobEffectTextureManager getMobEffectTextures() { + return this.mobEffectTextures; + } + + public MapDecorationTextureManager getMapDecorationTextures() { + return this.mapDecorationTextures; + } + + public GuiSpriteManager getGuiSprites() { + return this.guiSprites; + } + + @Override + public void setWindowActive(boolean windowActive) { + this.windowActive = windowActive; + } + + public Component grabPanoramixScreenshot(File gameDirectory, int width, int height) { + int i = this.window.getWidth(); + int j = this.window.getHeight(); + RenderTarget renderTarget = new TextureTarget(width, height, true, ON_OSX); + float f = this.player.getXRot(); + float g = this.player.getYRot(); + float h = this.player.xRotO; + float k = this.player.yRotO; + this.gameRenderer.setRenderBlockOutline(false); + + MutableComponent var12; + try { + this.gameRenderer.setPanoramicMode(true); + this.levelRenderer.graphicsChanged(); + this.window.setWidth(width); + this.window.setHeight(height); + + for (int l = 0; l < 6; l++) { + switch (l) { + case 0: + this.player.setYRot(g); + this.player.setXRot(0.0F); + break; + case 1: + this.player.setYRot((g + 90.0F) % 360.0F); + this.player.setXRot(0.0F); + break; + case 2: + this.player.setYRot((g + 180.0F) % 360.0F); + this.player.setXRot(0.0F); + break; + case 3: + this.player.setYRot((g - 90.0F) % 360.0F); + this.player.setXRot(0.0F); + break; + case 4: + this.player.setYRot(g); + this.player.setXRot(-90.0F); + break; + case 5: + default: + this.player.setYRot(g); + this.player.setXRot(90.0F); + } + + this.player.yRotO = this.player.getYRot(); + this.player.xRotO = this.player.getXRot(); + renderTarget.bindWrite(true); + this.gameRenderer.renderLevel(DeltaTracker.ONE); + + try { + Thread.sleep(10L); + } catch (InterruptedException var17) { + } + + Screenshot.grab(gameDirectory, "panorama_" + l + ".png", renderTarget, component -> {}); + } + + Component component = Component.literal(gameDirectory.getName()) + .withStyle(ChatFormatting.UNDERLINE) + .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_FILE, gameDirectory.getAbsolutePath()))); + return Component.translatable("screenshot.success", component); + } catch (Exception var18) { + LOGGER.error("Couldn't save image", (Throwable)var18); + var12 = Component.translatable("screenshot.failure", var18.getMessage()); + } finally { + this.player.setXRot(f); + this.player.setYRot(g); + this.player.xRotO = h; + this.player.yRotO = k; + this.gameRenderer.setRenderBlockOutline(true); + this.window.setWidth(i); + this.window.setHeight(j); + renderTarget.destroyBuffers(); + this.gameRenderer.setPanoramicMode(false); + this.levelRenderer.graphicsChanged(); + this.getMainRenderTarget().bindWrite(true); + } + + return var12; + } + + private Component grabHugeScreenshot(File gameDirectory, int columnWidth, int rowHeight, int width, int height) { + try { + ByteBuffer byteBuffer = GlUtil.allocateMemory(columnWidth * rowHeight * 3); + Screenshot screenshot = new Screenshot(gameDirectory, width, height, rowHeight); + float f = (float)width / columnWidth; + float g = (float)height / rowHeight; + float h = f > g ? f : g; + + for (int i = (height - 1) / rowHeight * rowHeight; i >= 0; i -= rowHeight) { + for (int j = 0; j < width; j += columnWidth) { + RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS); + float k = (width - columnWidth) / 2.0F * 2.0F - j * 2; + float l = (height - rowHeight) / 2.0F * 2.0F - i * 2; + k /= columnWidth; + l /= rowHeight; + this.gameRenderer.renderZoomed(h, k, l); + byteBuffer.clear(); + RenderSystem.pixelStore(3333, 1); + RenderSystem.pixelStore(3317, 1); + RenderSystem.readPixels(0, 0, columnWidth, rowHeight, 32992, 5121, byteBuffer); + screenshot.addRegion(byteBuffer, j, i, columnWidth, rowHeight); + } + + screenshot.saveRow(); + } + + File file = screenshot.close(); + GlUtil.freeMemory(byteBuffer); + Component component = Component.literal(file.getName()) + .withStyle(ChatFormatting.UNDERLINE) + .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_FILE, file.getAbsolutePath()))); + return Component.translatable("screenshot.success", component); + } catch (Exception var15) { + LOGGER.warn("Couldn't save screenshot", (Throwable)var15); + return Component.translatable("screenshot.failure", var15.getMessage()); + } + } + + public ProfilerFiller getProfiler() { + return this.profiler; + } + + @Nullable + public StoringChunkProgressListener getProgressListener() { + return (StoringChunkProgressListener)this.progressListener.get(); + } + + public SplashManager getSplashManager() { + return this.splashManager; + } + + @Nullable + public Overlay getOverlay() { + return this.overlay; + } + + public PlayerSocialManager getPlayerSocialManager() { + return this.playerSocialManager; + } + + public Window getWindow() { + return this.window; + } + + public DebugScreenOverlay getDebugOverlay() { + return this.gui.getDebugOverlay(); + } + + public RenderBuffers renderBuffers() { + return this.renderBuffers; + } + + public void updateMaxMipLevel(int mipMapLevel) { + this.modelManager.updateMaxMipLevel(mipMapLevel); + } + + public EntityModelSet getEntityModels() { + return this.entityModels; + } + + public boolean isTextFilteringEnabled() { + return this.userProperties().flag(UserFlag.PROFANITY_FILTER_ENABLED); + } + + public void prepareForMultiplayer() { + this.playerSocialManager.startOnlineMode(); + this.getProfileKeyPairManager().prepareKeyPair(); + } + + @Nullable + public SignatureValidator getProfileKeySignatureValidator() { + return SignatureValidator.from(this.authenticationService.getServicesKeySet(), ServicesKeyType.PROFILE_KEY); + } + + public boolean canValidateProfileKeys() { + return !this.authenticationService.getServicesKeySet().keys(ServicesKeyType.PROFILE_KEY).isEmpty(); + } + + public InputType getLastInputType() { + return this.lastInputType; + } + + public void setLastInputType(InputType lastInputType) { + this.lastInputType = lastInputType; + } + + public GameNarrator getNarrator() { + return this.narrator; + } + + public ChatListener getChatListener() { + return this.chatListener; + } + + public ReportingContext getReportingContext() { + return this.reportingContext; + } + + public RealmsDataFetcher realmsDataFetcher() { + return this.realmsDataFetcher; + } + + public QuickPlayLog quickPlayLog() { + return this.quickPlayLog; + } + + public CommandHistory commandHistory() { + return this.commandHistory; + } + + public DirectoryValidator directoryValidator() { + return this.directoryValidator; + } + + private float getTickTargetMillis(float defaultValue) { + if (this.level != null) { + TickRateManager tickRateManager = this.level.tickRateManager(); + if (tickRateManager.runsNormally()) { + return Math.max(defaultValue, tickRateManager.millisecondsPerTick()); + } + } + + return defaultValue; + } + + @Nullable + public static String getLauncherBrand() { + return System.getProperty("minecraft.launcher.brand"); + } + + @Environment(EnvType.CLIENT) + public static enum ChatStatus { + ENABLED(CommonComponents.EMPTY) { + @Override + public boolean isChatAllowed(boolean isLocalServer) { + return true; + } + }, + DISABLED_BY_OPTIONS(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED)) { + @Override + public boolean isChatAllowed(boolean isLocalServer) { + return false; + } + }, + DISABLED_BY_LAUNCHER(Component.translatable("chat.disabled.launcher").withStyle(ChatFormatting.RED)) { + @Override + public boolean isChatAllowed(boolean isLocalServer) { + return isLocalServer; + } + }, + DISABLED_BY_PROFILE( + Component.translatable("chat.disabled.profile", Component.keybind(Minecraft.instance.options.keyChat.getName())).withStyle(ChatFormatting.RED) + ) { + @Override + public boolean isChatAllowed(boolean isLocalServer) { + return isLocalServer; + } + }; + + static final Component INFO_DISABLED_BY_PROFILE = Component.translatable("chat.disabled.profile.moreInfo"); + private final Component message; + + ChatStatus(final Component message) { + this.message = message; + } + + public Component getMessage() { + return this.message; + } + + public abstract boolean isChatAllowed(boolean isLocalServer); + } + + @Environment(EnvType.CLIENT) + record GameLoadCookie(RealmsClient realmsClient, GameConfig.QuickPlayData quickPlayData) { + } +} diff --git a/net/minecraft/client/MouseHandler.java b/net/minecraft/client/MouseHandler.java new file mode 100644 index 00000000..206c3c00 --- /dev/null +++ b/net/minecraft/client/MouseHandler.java @@ -0,0 +1,372 @@ +package net.minecraft.client; + +import com.mojang.blaze3d.Blaze3D; +import com.mojang.blaze3d.platform.InputConstants; +import com.mojang.logging.LogUtils; +import java.nio.file.InvalidPathException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.components.toasts.SystemToast; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.util.Mth; +import net.minecraft.util.SmoothDouble; +import org.lwjgl.glfw.GLFWDropCallback; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class MouseHandler { + private static final Logger LOGGER = LogUtils.getLogger(); + private final Minecraft minecraft; + private boolean isLeftPressed; + private boolean isMiddlePressed; + private boolean isRightPressed; + private double xpos; + private double ypos; + private int fakeRightMouse; + private int activeButton = -1; + private boolean ignoreFirstMove = true; + private int clickDepth; + private double mousePressedTime; + private final SmoothDouble smoothTurnX = new SmoothDouble(); + private final SmoothDouble smoothTurnY = new SmoothDouble(); + private double accumulatedDX; + private double accumulatedDY; + private double accumulatedScrollX; + private double accumulatedScrollY; + private double lastHandleMovementTime = Double.MIN_VALUE; + private boolean mouseGrabbed; + + public MouseHandler(Minecraft minecraft) { + this.minecraft = minecraft; + } + + /** + * Will be called when a mouse button is pressed or released. + * + * @see GLFWMouseButtonCallbackI + */ + private void onPress(long windowPointer, int button, int action, int modifiers) { + if (windowPointer == this.minecraft.getWindow().getWindow()) { + if (this.minecraft.screen != null) { + this.minecraft.setLastInputType(InputType.MOUSE); + } + + boolean bl = action == 1; + if (Minecraft.ON_OSX && button == 0) { + if (bl) { + if ((modifiers & 2) == 2) { + button = 1; + this.fakeRightMouse++; + } + } else if (this.fakeRightMouse > 0) { + button = 1; + this.fakeRightMouse--; + } + } + + int i = button; + if (bl) { + if (this.minecraft.options.touchscreen().get() && this.clickDepth++ > 0) { + return; + } + + this.activeButton = i; + this.mousePressedTime = Blaze3D.getTime(); + } else if (this.activeButton != -1) { + if (this.minecraft.options.touchscreen().get() && --this.clickDepth > 0) { + return; + } + + this.activeButton = -1; + } + + boolean[] bls = new boolean[]{false}; + if (this.minecraft.getOverlay() == null) { + if (this.minecraft.screen == null) { + if (!this.mouseGrabbed && bl) { + this.grabMouse(); + } + } else { + double d = this.xpos * this.minecraft.getWindow().getGuiScaledWidth() / this.minecraft.getWindow().getScreenWidth(); + double e = this.ypos * this.minecraft.getWindow().getGuiScaledHeight() / this.minecraft.getWindow().getScreenHeight(); + Screen screen = this.minecraft.screen; + if (bl) { + screen.afterMouseAction(); + Screen.wrapScreenError(() -> bls[0] = screen.mouseClicked(d, e, i), "mouseClicked event handler", screen.getClass().getCanonicalName()); + } else { + Screen.wrapScreenError(() -> bls[0] = screen.mouseReleased(d, e, i), "mouseReleased event handler", screen.getClass().getCanonicalName()); + } + } + } + + if (!bls[0] && this.minecraft.screen == null && this.minecraft.getOverlay() == null) { + if (i == 0) { + this.isLeftPressed = bl; + } else if (i == 2) { + this.isMiddlePressed = bl; + } else if (i == 1) { + this.isRightPressed = bl; + } + + KeyMapping.set(InputConstants.Type.MOUSE.getOrCreate(i), bl); + if (bl) { + if (this.minecraft.player.isSpectator() && i == 2) { + this.minecraft.gui.getSpectatorGui().onMouseMiddleClick(); + } else { + KeyMapping.click(InputConstants.Type.MOUSE.getOrCreate(i)); + } + } + } + } + } + + /** + * Will be called when a scrolling device is used, such as a mouse wheel or scrolling area of a touchpad. + * + * @see GLFWScrollCallbackI + */ + private void onScroll(long windowPointer, double xOffset, double yOffset) { + if (windowPointer == Minecraft.getInstance().getWindow().getWindow()) { + boolean bl = this.minecraft.options.discreteMouseScroll().get(); + double d = this.minecraft.options.mouseWheelSensitivity().get(); + double e = (bl ? Math.signum(xOffset) : xOffset) * d; + double f = (bl ? Math.signum(yOffset) : yOffset) * d; + if (this.minecraft.getOverlay() == null) { + if (this.minecraft.screen != null) { + double g = this.xpos * this.minecraft.getWindow().getGuiScaledWidth() / this.minecraft.getWindow().getScreenWidth(); + double h = this.ypos * this.minecraft.getWindow().getGuiScaledHeight() / this.minecraft.getWindow().getScreenHeight(); + this.minecraft.screen.mouseScrolled(g, h, e, f); + this.minecraft.screen.afterMouseAction(); + } else if (this.minecraft.player != null) { + if (this.accumulatedScrollX != 0.0 && Math.signum(e) != Math.signum(this.accumulatedScrollX)) { + this.accumulatedScrollX = 0.0; + } + + if (this.accumulatedScrollY != 0.0 && Math.signum(f) != Math.signum(this.accumulatedScrollY)) { + this.accumulatedScrollY = 0.0; + } + + this.accumulatedScrollX += e; + this.accumulatedScrollY += f; + int i = (int)this.accumulatedScrollX; + int j = (int)this.accumulatedScrollY; + if (i == 0 && j == 0) { + return; + } + + this.accumulatedScrollX -= i; + this.accumulatedScrollY -= j; + int k = j == 0 ? -i : j; + if (this.minecraft.player.isSpectator()) { + if (this.minecraft.gui.getSpectatorGui().isMenuActive()) { + this.minecraft.gui.getSpectatorGui().onMouseScrolled(-k); + } else { + float l = Mth.clamp(this.minecraft.player.getAbilities().getFlyingSpeed() + j * 0.005F, 0.0F, 0.2F); + this.minecraft.player.getAbilities().setFlyingSpeed(l); + } + } else { + this.minecraft.player.getInventory().swapPaint(k); + } + } + } + } + } + + private void onDrop(long windowPointer, List files, int failedFiles) { + if (this.minecraft.screen != null) { + this.minecraft.screen.onFilesDrop(files); + } + + if (failedFiles > 0) { + SystemToast.onFileDropFailure(this.minecraft, failedFiles); + } + } + + public void setup(long windowPointer) { + InputConstants.setupMouseCallbacks( + windowPointer, + (l, d, e) -> this.minecraft.execute(() -> this.onMove(l, d, e)), + (l, i, j, k) -> this.minecraft.execute(() -> this.onPress(l, i, j, k)), + (l, d, e) -> this.minecraft.execute(() -> this.onScroll(l, d, e)), + (l, i, m) -> { + List list = new ArrayList(i); + int j = 0; + + for (int k = 0; k < i; k++) { + String string = GLFWDropCallback.getName(m, k); + + try { + list.add(Paths.get(string)); + } catch (InvalidPathException var11) { + j++; + LOGGER.error("Failed to parse path '{}'", string, var11); + } + } + + if (!list.isEmpty()) { + int k = j; + this.minecraft.execute(() -> this.onDrop(l, list, k)); + } + } + ); + } + + /** + * Will be called when the cursor is moved. + * + *

The callback function receives the cursor position, measured in screen coordinates but relative to the top-left corner of the window client area. On platforms that provide it, the full sub-pixel cursor position is passed on.

+ * + * @see GLFWCursorPosCallbackI + */ + private void onMove(long windowPointer, double xpos, double ypos) { + if (windowPointer == Minecraft.getInstance().getWindow().getWindow()) { + if (this.ignoreFirstMove) { + this.xpos = xpos; + this.ypos = ypos; + this.ignoreFirstMove = false; + } else { + if (this.minecraft.isWindowActive()) { + this.accumulatedDX = this.accumulatedDX + (xpos - this.xpos); + this.accumulatedDY = this.accumulatedDY + (ypos - this.ypos); + } + + this.xpos = xpos; + this.ypos = ypos; + } + } + } + + public void handleAccumulatedMovement() { + double d = Blaze3D.getTime(); + double e = d - this.lastHandleMovementTime; + this.lastHandleMovementTime = d; + if (this.minecraft.isWindowActive()) { + Screen screen = this.minecraft.screen; + if (screen != null && this.minecraft.getOverlay() == null && (this.accumulatedDX != 0.0 || this.accumulatedDY != 0.0)) { + double f = this.xpos * this.minecraft.getWindow().getGuiScaledWidth() / this.minecraft.getWindow().getScreenWidth(); + double g = this.ypos * this.minecraft.getWindow().getGuiScaledHeight() / this.minecraft.getWindow().getScreenHeight(); + Screen.wrapScreenError(() -> screen.mouseMoved(f, g), "mouseMoved event handler", screen.getClass().getCanonicalName()); + if (this.activeButton != -1 && this.mousePressedTime > 0.0) { + double h = this.accumulatedDX * this.minecraft.getWindow().getGuiScaledWidth() / this.minecraft.getWindow().getScreenWidth(); + double i = this.accumulatedDY * this.minecraft.getWindow().getGuiScaledHeight() / this.minecraft.getWindow().getScreenHeight(); + Screen.wrapScreenError(() -> screen.mouseDragged(f, g, this.activeButton, h, i), "mouseDragged event handler", screen.getClass().getCanonicalName()); + } + + screen.afterMouseMove(); + } + + if (this.isMouseGrabbed() && this.minecraft.player != null) { + this.turnPlayer(e); + } + } + + this.accumulatedDX = 0.0; + this.accumulatedDY = 0.0; + } + + private void turnPlayer(double movementTime) { + double d = this.minecraft.options.sensitivity().get() * 0.6F + 0.2F; + double e = d * d * d; + double f = e * 8.0; + double i; + double j; + if (this.minecraft.options.smoothCamera) { + double g = this.smoothTurnX.getNewDeltaValue(this.accumulatedDX * f, movementTime * f); + double h = this.smoothTurnY.getNewDeltaValue(this.accumulatedDY * f, movementTime * f); + i = g; + j = h; + } else if (this.minecraft.options.getCameraType().isFirstPerson() && this.minecraft.player.isScoping()) { + this.smoothTurnX.reset(); + this.smoothTurnY.reset(); + i = this.accumulatedDX * e; + j = this.accumulatedDY * e; + } else { + this.smoothTurnX.reset(); + this.smoothTurnY.reset(); + i = this.accumulatedDX * f; + j = this.accumulatedDY * f; + } + + int k = 1; + if (this.minecraft.options.invertYMouse().get()) { + k = -1; + } + + this.minecraft.getTutorial().onMouse(i, j); + if (this.minecraft.player != null) { + this.minecraft.player.turn(i, j * k); + } + } + + public boolean isLeftPressed() { + return this.isLeftPressed; + } + + public boolean isMiddlePressed() { + return this.isMiddlePressed; + } + + public boolean isRightPressed() { + return this.isRightPressed; + } + + public double xpos() { + return this.xpos; + } + + public double ypos() { + return this.ypos; + } + + public void setIgnoreFirstMove() { + this.ignoreFirstMove = true; + } + + /** + * Returns {@code true} if the mouse is grabbed. + */ + public boolean isMouseGrabbed() { + return this.mouseGrabbed; + } + + /** + * Will set the focus to ingame if the Minecraft window is the active with focus. Also clears any GUI screen currently displayed + */ + public void grabMouse() { + if (this.minecraft.isWindowActive()) { + if (!this.mouseGrabbed) { + if (!Minecraft.ON_OSX) { + KeyMapping.setAll(); + } + + this.mouseGrabbed = true; + this.xpos = this.minecraft.getWindow().getScreenWidth() / 2; + this.ypos = this.minecraft.getWindow().getScreenHeight() / 2; + InputConstants.grabOrReleaseMouse(this.minecraft.getWindow().getWindow(), 212995, this.xpos, this.ypos); + this.minecraft.setScreen(null); + this.minecraft.missTime = 10000; + this.ignoreFirstMove = true; + } + } + } + + /** + * Resets the player keystate, disables the ingame focus, and ungrabs the mouse cursor. + */ + public void releaseMouse() { + if (this.mouseGrabbed) { + this.mouseGrabbed = false; + this.xpos = this.minecraft.getWindow().getScreenWidth() / 2; + this.ypos = this.minecraft.getWindow().getScreenHeight() / 2; + InputConstants.grabOrReleaseMouse(this.minecraft.getWindow().getWindow(), 212993, this.xpos, this.ypos); + } + } + + public void cursorEntered() { + this.ignoreFirstMove = true; + } +} diff --git a/net/minecraft/client/NarratorStatus.java b/net/minecraft/client/NarratorStatus.java new file mode 100644 index 00000000..a5df242e --- /dev/null +++ b/net/minecraft/client/NarratorStatus.java @@ -0,0 +1,44 @@ +package net.minecraft.client; + +import java.util.function.IntFunction; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import net.minecraft.util.ByIdMap; + +@Environment(EnvType.CLIENT) +public enum NarratorStatus { + OFF(0, "options.narrator.off"), + ALL(1, "options.narrator.all"), + CHAT(2, "options.narrator.chat"), + SYSTEM(3, "options.narrator.system"); + + private static final IntFunction BY_ID = ByIdMap.continuous(NarratorStatus::getId, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + private final int id; + private final Component name; + + private NarratorStatus(final int id, final String name) { + this.id = id; + this.name = Component.translatable(name); + } + + public int getId() { + return this.id; + } + + public Component getName() { + return this.name; + } + + public static NarratorStatus byId(int id) { + return (NarratorStatus)BY_ID.apply(id); + } + + public boolean shouldNarrateChat() { + return this == ALL || this == CHAT; + } + + public boolean shouldNarrateSystem() { + return this == ALL || this == SYSTEM; + } +} diff --git a/net/minecraft/client/OptionInstance.java b/net/minecraft/client/OptionInstance.java new file mode 100644 index 00000000..eec3be47 --- /dev/null +++ b/net/minecraft/client/OptionInstance.java @@ -0,0 +1,502 @@ +package net.minecraft.client; + +import com.google.common.collect.ImmutableList; +import com.mojang.logging.LogUtils; +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.function.BooleanSupplier; +import java.util.function.Consumer; +import java.util.function.DoubleFunction; +import java.util.function.Function; +import java.util.function.IntFunction; +import java.util.function.IntSupplier; +import java.util.function.Supplier; +import java.util.function.ToDoubleFunction; +import java.util.function.ToIntFunction; +import java.util.stream.IntStream; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractOptionSliderButton; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.CycleButton; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.util.Mth; +import net.minecraft.util.OptionEnum; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public final class OptionInstance { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final OptionInstance.Enum BOOLEAN_VALUES = new OptionInstance.Enum<>(ImmutableList.of(Boolean.TRUE, Boolean.FALSE), Codec.BOOL); + public static final OptionInstance.CaptionBasedToString BOOLEAN_TO_STRING = (component, boolean_) -> boolean_ + ? CommonComponents.OPTION_ON + : CommonComponents.OPTION_OFF; + private final OptionInstance.TooltipSupplier tooltip; + final Function toString; + private final OptionInstance.ValueSet values; + private final Codec codec; + private final T initialValue; + private final Consumer onValueUpdate; + final Component caption; + T value; + + public static OptionInstance createBoolean(String key, boolean initialValue, Consumer onValueUpdate) { + return createBoolean(key, noTooltip(), initialValue, onValueUpdate); + } + + public static OptionInstance createBoolean(String key, boolean initialValue) { + return createBoolean(key, noTooltip(), initialValue, boolean_ -> {}); + } + + public static OptionInstance createBoolean(String caption, OptionInstance.TooltipSupplier tooltip, boolean initialValue) { + return createBoolean(caption, tooltip, initialValue, boolean_ -> {}); + } + + public static OptionInstance createBoolean( + String caption, OptionInstance.TooltipSupplier tooltip, boolean initialValue, Consumer onValueUpdate + ) { + return createBoolean(caption, tooltip, BOOLEAN_TO_STRING, initialValue, onValueUpdate); + } + + public static OptionInstance createBoolean( + String caption, + OptionInstance.TooltipSupplier tooltip, + OptionInstance.CaptionBasedToString valueStringifier, + boolean initialValue, + Consumer onValueUpdate + ) { + return new OptionInstance<>(caption, tooltip, valueStringifier, BOOLEAN_VALUES, initialValue, onValueUpdate); + } + + public OptionInstance( + String caption, + OptionInstance.TooltipSupplier tooltip, + OptionInstance.CaptionBasedToString valueStringifier, + OptionInstance.ValueSet values, + T initialValue, + Consumer onValueUpdate + ) { + this(caption, tooltip, valueStringifier, values, values.codec(), initialValue, onValueUpdate); + } + + public OptionInstance( + String caption, + OptionInstance.TooltipSupplier tooltip, + OptionInstance.CaptionBasedToString valueStringifier, + OptionInstance.ValueSet values, + Codec codec, + T initialValue, + Consumer onValueUpdate + ) { + this.caption = Component.translatable(caption); + this.tooltip = tooltip; + this.toString = object -> valueStringifier.toString(this.caption, (T)object); + this.values = values; + this.codec = codec; + this.initialValue = initialValue; + this.onValueUpdate = onValueUpdate; + this.value = this.initialValue; + } + + public static OptionInstance.TooltipSupplier noTooltip() { + return object -> null; + } + + public static OptionInstance.TooltipSupplier cachedConstantTooltip(Component message) { + return object -> Tooltip.create(message); + } + + public static OptionInstance.CaptionBasedToString forOptionEnum() { + return (component, optionEnum) -> optionEnum.getCaption(); + } + + public AbstractWidget createButton(Options options) { + return this.createButton(options, 0, 0, 150); + } + + public AbstractWidget createButton(Options options, int x, int y, int width) { + return this.createButton(options, x, y, width, object -> {}); + } + + public AbstractWidget createButton(Options options, int x, int y, int width, Consumer onValueChanged) { + return (AbstractWidget)this.values.createButton(this.tooltip, options, x, y, width, onValueChanged).apply(this); + } + + public T get() { + return this.value; + } + + public Codec codec() { + return this.codec; + } + + public String toString() { + return this.caption.getString(); + } + + public void set(T value) { + T object = (T)this.values.validateValue(value).orElseGet(() -> { + LOGGER.error("Illegal option value " + value + " for " + this.caption); + return this.initialValue; + }); + if (!Minecraft.getInstance().isRunning()) { + this.value = object; + } else { + if (!Objects.equals(this.value, object)) { + this.value = object; + this.onValueUpdate.accept(this.value); + } + } + } + + public OptionInstance.ValueSet values() { + return this.values; + } + + @Environment(EnvType.CLIENT) + public record AltEnum( + List values, List altValues, BooleanSupplier altCondition, OptionInstance.CycleableValueSet.ValueSetter valueSetter, Codec codec + ) implements OptionInstance.CycleableValueSet { + @Override + public CycleButton.ValueListSupplier valueListSupplier() { + return CycleButton.ValueListSupplier.create(this.altCondition, this.values, this.altValues); + } + + @Override + public Optional validateValue(T value) { + return (this.altCondition.getAsBoolean() ? this.altValues : this.values).contains(value) ? Optional.of(value) : Optional.empty(); + } + } + + @Environment(EnvType.CLIENT) + public interface CaptionBasedToString { + Component toString(Component component, T object); + } + + @Environment(EnvType.CLIENT) + public record ClampingLazyMaxIntRange(int minInclusive, IntSupplier maxSupplier, int encodableMaxInclusive) + implements OptionInstance.IntRangeBase, + OptionInstance.SliderableOrCyclableValueSet { + public Optional validateValue(Integer value) { + return Optional.of(Mth.clamp(value, this.minInclusive(), this.maxInclusive())); + } + + @Override + public int maxInclusive() { + return this.maxSupplier.getAsInt(); + } + + @Override + public Codec codec() { + return Codec.INT + .validate( + integer -> { + int i = this.encodableMaxInclusive + 1; + return integer.compareTo(this.minInclusive) >= 0 && integer.compareTo(i) <= 0 + ? DataResult.success(integer) + : DataResult.error(() -> "Value " + integer + " outside of range [" + this.minInclusive + ":" + i + "]", integer); + } + ); + } + + @Override + public boolean createCycleButton() { + return true; + } + + @Override + public CycleButton.ValueListSupplier valueListSupplier() { + return CycleButton.ValueListSupplier.create(IntStream.range(this.minInclusive, this.maxInclusive() + 1).boxed().toList()); + } + } + + @Environment(EnvType.CLIENT) + interface CycleableValueSet extends OptionInstance.ValueSet { + CycleButton.ValueListSupplier valueListSupplier(); + + default OptionInstance.CycleableValueSet.ValueSetter valueSetter() { + return OptionInstance::set; + } + + @Override + default Function, AbstractWidget> createButton( + OptionInstance.TooltipSupplier tooltipSupplier, Options options, int x, int y, int width, Consumer onValueChanged + ) { + return optionInstance -> CycleButton.builder(optionInstance.toString) + .withValues(this.valueListSupplier()) + .withTooltip(tooltipSupplier) + .withInitialValue(optionInstance.value) + .create(x, y, width, 20, optionInstance.caption, (cycleButton, object) -> { + this.valueSetter().set(optionInstance, object); + options.save(); + onValueChanged.accept(object); + }); + } + + @Environment(EnvType.CLIENT) + public interface ValueSetter { + void set(OptionInstance optionInstance, T object); + } + } + + @Environment(EnvType.CLIENT) + public record Enum(List values, Codec codec) implements OptionInstance.CycleableValueSet { + @Override + public Optional validateValue(T value) { + return this.values.contains(value) ? Optional.of(value) : Optional.empty(); + } + + @Override + public CycleButton.ValueListSupplier valueListSupplier() { + return CycleButton.ValueListSupplier.create(this.values); + } + } + + @Environment(EnvType.CLIENT) + public record IntRange(int minInclusive, int maxInclusive, boolean applyValueImmediately) implements OptionInstance.IntRangeBase { + public IntRange(int minInclusive, int maxInclusive) { + this(minInclusive, maxInclusive, true); + } + + public Optional validateValue(Integer value) { + return value.compareTo(this.minInclusive()) >= 0 && value.compareTo(this.maxInclusive()) <= 0 ? Optional.of(value) : Optional.empty(); + } + + @Override + public Codec codec() { + return Codec.intRange(this.minInclusive, this.maxInclusive + 1); + } + } + + @Environment(EnvType.CLIENT) + interface IntRangeBase extends OptionInstance.SliderableValueSet { + int minInclusive(); + + int maxInclusive(); + + default double toSliderValue(Integer value) { + if (value == this.minInclusive()) { + return 0.0; + } else { + return value == this.maxInclusive() ? 1.0 : Mth.map(value.intValue() + 0.5, (double)this.minInclusive(), this.maxInclusive() + 1.0, 0.0, 1.0); + } + } + + default Integer fromSliderValue(double value) { + if (value >= 1.0) { + value = 0.99999F; + } + + return Mth.floor(Mth.map(value, 0.0, 1.0, (double)this.minInclusive(), this.maxInclusive() + 1.0)); + } + + default OptionInstance.SliderableValueSet xmap(IntFunction to, ToIntFunction from) { + return new OptionInstance.SliderableValueSet() { + @Override + public Optional validateValue(R value) { + return IntRangeBase.this.validateValue(from.applyAsInt(value)).map(to::apply); + } + + @Override + public double toSliderValue(R value) { + return IntRangeBase.this.toSliderValue(from.applyAsInt(value)); + } + + @Override + public R fromSliderValue(double value) { + return (R)to.apply(IntRangeBase.this.fromSliderValue(value)); + } + + @Override + public Codec codec() { + return IntRangeBase.this.codec().xmap(to::apply, from::applyAsInt); + } + }; + } + } + + @Environment(EnvType.CLIENT) + public record LazyEnum(Supplier> values, Function> validateValue, Codec codec) implements OptionInstance.CycleableValueSet { + @Override + public Optional validateValue(T value) { + return (Optional)this.validateValue.apply(value); + } + + @Override + public CycleButton.ValueListSupplier valueListSupplier() { + return CycleButton.ValueListSupplier.create((Collection)this.values.get()); + } + } + + @Environment(EnvType.CLIENT) + public static final class OptionInstanceSliderButton extends AbstractOptionSliderButton { + private final OptionInstance instance; + private final OptionInstance.SliderableValueSet values; + private final OptionInstance.TooltipSupplier tooltipSupplier; + private final Consumer onValueChanged; + @Nullable + private Long delayedApplyAt; + private final boolean applyValueImmediately; + + OptionInstanceSliderButton( + Options options, + int x, + int y, + int width, + int height, + OptionInstance instance, + OptionInstance.SliderableValueSet values, + OptionInstance.TooltipSupplier tooltipSupplier, + Consumer onValueChanged, + boolean applyValueImmediately + ) { + super(options, x, y, width, height, values.toSliderValue(instance.get())); + this.instance = instance; + this.values = values; + this.tooltipSupplier = tooltipSupplier; + this.onValueChanged = onValueChanged; + this.applyValueImmediately = applyValueImmediately; + this.updateMessage(); + } + + @Override + protected void updateMessage() { + this.setMessage((Component)this.instance.toString.apply(this.values.fromSliderValue(this.value))); + this.setTooltip(this.tooltipSupplier.apply(this.values.fromSliderValue(this.value))); + } + + @Override + protected void applyValue() { + if (this.applyValueImmediately) { + this.applyUnsavedValue(); + } else { + this.delayedApplyAt = Util.getMillis() + 600L; + } + } + + public void applyUnsavedValue() { + N object = this.values.fromSliderValue(this.value); + if (!Objects.equals(object, this.instance.get())) { + this.instance.set(object); + this.options.save(); + this.onValueChanged.accept(this.instance.get()); + } + } + + @Override + public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + super.renderWidget(guiGraphics, mouseX, mouseY, partialTick); + if (this.delayedApplyAt != null && Util.getMillis() >= this.delayedApplyAt) { + this.delayedApplyAt = null; + this.applyUnsavedValue(); + } + } + } + + @Environment(EnvType.CLIENT) + interface SliderableOrCyclableValueSet extends OptionInstance.CycleableValueSet, OptionInstance.SliderableValueSet { + boolean createCycleButton(); + + @Override + default Function, AbstractWidget> createButton( + OptionInstance.TooltipSupplier tooltipSupplier, Options options, int x, int y, int width, Consumer onValueChanged + ) { + return this.createCycleButton() + ? OptionInstance.CycleableValueSet.super.createButton(tooltipSupplier, options, x, y, width, onValueChanged) + : OptionInstance.SliderableValueSet.super.createButton(tooltipSupplier, options, x, y, width, onValueChanged); + } + } + + @Environment(EnvType.CLIENT) + interface SliderableValueSet extends OptionInstance.ValueSet { + double toSliderValue(T value); + + T fromSliderValue(double value); + + default boolean applyValueImmediately() { + return true; + } + + @Override + default Function, AbstractWidget> createButton( + OptionInstance.TooltipSupplier tooltipSupplier, Options options, int x, int y, int width, Consumer onValueChanged + ) { + return optionInstance -> new OptionInstance.OptionInstanceSliderButton<>( + options, x, y, width, 20, optionInstance, this, tooltipSupplier, onValueChanged, this.applyValueImmediately() + ); + } + } + + @FunctionalInterface + @Environment(EnvType.CLIENT) + public interface TooltipSupplier { + @Nullable + Tooltip apply(T object); + } + + @Environment(EnvType.CLIENT) + public static enum UnitDouble implements OptionInstance.SliderableValueSet { + INSTANCE; + + public Optional validateValue(Double value) { + return value >= 0.0 && value <= 1.0 ? Optional.of(value) : Optional.empty(); + } + + public double toSliderValue(Double value) { + return value; + } + + public Double fromSliderValue(double value) { + return value; + } + + public OptionInstance.SliderableValueSet xmap(DoubleFunction encoder, ToDoubleFunction decoder) { + return new OptionInstance.SliderableValueSet() { + @Override + public Optional validateValue(R value) { + return UnitDouble.this.validateValue(decoder.applyAsDouble(value)).map(encoder::apply); + } + + @Override + public double toSliderValue(R value) { + return UnitDouble.this.toSliderValue(decoder.applyAsDouble(value)); + } + + @Override + public R fromSliderValue(double value) { + return (R)encoder.apply(UnitDouble.this.fromSliderValue(value)); + } + + @Override + public Codec codec() { + return UnitDouble.this.codec().xmap(encoder::apply, decoder::applyAsDouble); + } + }; + } + + @Override + public Codec codec() { + return Codec.withAlternative(Codec.doubleRange(0.0, 1.0), Codec.BOOL, boolean_ -> boolean_ ? 1.0 : 0.0); + } + } + + @Environment(EnvType.CLIENT) + interface ValueSet { + Function, AbstractWidget> createButton( + OptionInstance.TooltipSupplier tooltipSupplier, Options options, int x, int y, int width, Consumer onValueChanged + ); + + Optional validateValue(T value); + + Codec codec(); + } +} diff --git a/net/minecraft/client/Options.java b/net/minecraft/client/Options.java new file mode 100644 index 00000000..e4881184 --- /dev/null +++ b/net/minecraft/client/Options.java @@ -0,0 +1,1621 @@ +package net.minecraft.client; + +import com.google.common.base.Charsets; +import com.google.common.base.MoreObjects; +import com.google.common.base.Splitter; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import com.google.common.io.Files; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.mojang.blaze3d.pipeline.RenderTarget; +import com.mojang.blaze3d.platform.InputConstants; +import com.mojang.blaze3d.platform.VideoMode; +import com.mojang.blaze3d.platform.Window; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.datafixers.util.Pair; +import com.mojang.logging.LogUtils; +import com.mojang.serialization.Codec; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.JsonOps; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.io.StringReader; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; +import net.minecraft.SharedConstants; +import net.minecraft.Util; +import net.minecraft.client.gui.components.ChatComponent; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.renderer.GpuWarnlistManager; +import net.minecraft.client.resources.sounds.SimpleSoundInstance; +import net.minecraft.client.sounds.SoundEngine; +import net.minecraft.client.sounds.SoundManager; +import net.minecraft.client.tutorial.TutorialSteps; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.protocol.common.ServerboundClientInformationPacket; +import net.minecraft.server.level.ClientInformation; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.GsonHelper; +import net.minecraft.util.Mth; +import net.minecraft.util.datafix.DataFixTypes; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.entity.player.ChatVisiblity; +import net.minecraft.world.entity.player.PlayerModelPart; +import org.apache.commons.lang3.ArrayUtils; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class Options { + static final Logger LOGGER = LogUtils.getLogger(); + static final Gson GSON = new Gson(); + private static final TypeToken> LIST_OF_STRINGS_TYPE = new TypeToken>() {}; + public static final int RENDER_DISTANCE_TINY = 2; + public static final int RENDER_DISTANCE_SHORT = 4; + public static final int RENDER_DISTANCE_NORMAL = 8; + public static final int RENDER_DISTANCE_FAR = 12; + public static final int RENDER_DISTANCE_REALLY_FAR = 16; + public static final int RENDER_DISTANCE_EXTREME = 32; + private static final Splitter OPTION_SPLITTER = Splitter.on(':').limit(2); + public static final String DEFAULT_SOUND_DEVICE = ""; + private static final Component ACCESSIBILITY_TOOLTIP_DARK_MOJANG_BACKGROUND = Component.translatable("options.darkMojangStudiosBackgroundColor.tooltip"); + private final OptionInstance darkMojangStudiosBackground = OptionInstance.createBoolean( + "options.darkMojangStudiosBackgroundColor", OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_DARK_MOJANG_BACKGROUND), false + ); + private static final Component ACCESSIBILITY_TOOLTIP_HIDE_LIGHTNING_FLASHES = Component.translatable("options.hideLightningFlashes.tooltip"); + private final OptionInstance hideLightningFlash = OptionInstance.createBoolean( + "options.hideLightningFlashes", OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_HIDE_LIGHTNING_FLASHES), false + ); + private static final Component ACCESSIBILITY_TOOLTIP_HIDE_SPLASH_TEXTS = Component.translatable("options.hideSplashTexts.tooltip"); + private final OptionInstance hideSplashTexts = OptionInstance.createBoolean( + "options.hideSplashTexts", OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_HIDE_SPLASH_TEXTS), false + ); + private final OptionInstance sensitivity = new OptionInstance<>("options.sensitivity", OptionInstance.noTooltip(), (component, double_) -> { + if (double_ == 0.0) { + return genericValueLabel(component, Component.translatable("options.sensitivity.min")); + } else { + return double_ == 1.0 ? genericValueLabel(component, Component.translatable("options.sensitivity.max")) : percentValueLabel(component, 2.0 * double_); + } + }, OptionInstance.UnitDouble.INSTANCE, 0.5, double_ -> {}); + private final OptionInstance renderDistance; + private final OptionInstance simulationDistance; + private int serverRenderDistance = 0; + private final OptionInstance entityDistanceScaling = new OptionInstance<>( + "options.entityDistanceScaling", + OptionInstance.noTooltip(), + Options::percentValueLabel, + new OptionInstance.IntRange(2, 20).xmap(i -> i / 4.0, double_ -> (int)(double_ * 4.0)), + Codec.doubleRange(0.5, 5.0), + 1.0, + double_ -> {} + ); + public static final int UNLIMITED_FRAMERATE_CUTOFF = 260; + private final OptionInstance framerateLimit = new OptionInstance<>( + "options.framerateLimit", + OptionInstance.noTooltip(), + (component, integer) -> integer == 260 + ? genericValueLabel(component, Component.translatable("options.framerateLimit.max")) + : genericValueLabel(component, Component.translatable("options.framerate", integer)), + new OptionInstance.IntRange(1, 26).xmap(i -> i * 10, integer -> integer / 10), + Codec.intRange(10, 260), + 120, + integer -> Minecraft.getInstance().getWindow().setFramerateLimit(integer) + ); + private final OptionInstance cloudStatus = new OptionInstance<>( + "options.renderClouds", + OptionInstance.noTooltip(), + OptionInstance.forOptionEnum(), + new OptionInstance.Enum<>( + Arrays.asList(CloudStatus.values()), Codec.withAlternative(CloudStatus.CODEC, Codec.BOOL, boolean_ -> boolean_ ? CloudStatus.FANCY : CloudStatus.OFF) + ), + CloudStatus.FANCY, + cloudStatus -> { + if (Minecraft.useShaderTransparency()) { + RenderTarget renderTarget = Minecraft.getInstance().levelRenderer.getCloudsTarget(); + if (renderTarget != null) { + renderTarget.clear(Minecraft.ON_OSX); + } + } + } + ); + private static final Component GRAPHICS_TOOLTIP_FAST = Component.translatable("options.graphics.fast.tooltip"); + private static final Component GRAPHICS_TOOLTIP_FABULOUS = Component.translatable( + "options.graphics.fabulous.tooltip", Component.translatable("options.graphics.fabulous").withStyle(ChatFormatting.ITALIC) + ); + private static final Component GRAPHICS_TOOLTIP_FANCY = Component.translatable("options.graphics.fancy.tooltip"); + private final OptionInstance graphicsMode = new OptionInstance<>( + "options.graphics", + graphicsStatus -> { + return switch (graphicsStatus) { + case FANCY -> Tooltip.create(GRAPHICS_TOOLTIP_FANCY); + case FAST -> Tooltip.create(GRAPHICS_TOOLTIP_FAST); + case FABULOUS -> Tooltip.create(GRAPHICS_TOOLTIP_FABULOUS); + }; + }, + (component, graphicsStatus) -> { + MutableComponent mutableComponent = Component.translatable(graphicsStatus.getKey()); + return graphicsStatus == GraphicsStatus.FABULOUS ? mutableComponent.withStyle(ChatFormatting.ITALIC) : mutableComponent; + }, + new OptionInstance.AltEnum<>( + Arrays.asList(GraphicsStatus.values()), + (List)Stream.of(GraphicsStatus.values()).filter(graphicsStatus -> graphicsStatus != GraphicsStatus.FABULOUS).collect(Collectors.toList()), + () -> Minecraft.getInstance().isRunning() && Minecraft.getInstance().getGpuWarnlistManager().isSkippingFabulous(), + (optionInstance, graphicsStatus) -> { + Minecraft minecraftx = Minecraft.getInstance(); + GpuWarnlistManager gpuWarnlistManager = minecraftx.getGpuWarnlistManager(); + if (graphicsStatus == GraphicsStatus.FABULOUS && gpuWarnlistManager.willShowWarning()) { + gpuWarnlistManager.showWarning(); + } else { + optionInstance.set(graphicsStatus); + minecraftx.levelRenderer.allChanged(); + } + }, + Codec.INT.xmap(GraphicsStatus::byId, GraphicsStatus::getId) + ), + GraphicsStatus.FANCY, + graphicsStatus -> {} + ); + private final OptionInstance ambientOcclusion = OptionInstance.createBoolean( + "options.ao", true, boolean_ -> Minecraft.getInstance().levelRenderer.allChanged() + ); + private static final Component PRIORITIZE_CHUNK_TOOLTIP_NONE = Component.translatable("options.prioritizeChunkUpdates.none.tooltip"); + private static final Component PRIORITIZE_CHUNK_TOOLTIP_PLAYER_AFFECTED = Component.translatable("options.prioritizeChunkUpdates.byPlayer.tooltip"); + private static final Component PRIORITIZE_CHUNK_TOOLTIP_NEARBY = Component.translatable("options.prioritizeChunkUpdates.nearby.tooltip"); + private final OptionInstance prioritizeChunkUpdates = new OptionInstance<>( + "options.prioritizeChunkUpdates", + prioritizeChunkUpdates -> { + return switch (prioritizeChunkUpdates) { + case NONE -> Tooltip.create(PRIORITIZE_CHUNK_TOOLTIP_NONE); + case PLAYER_AFFECTED -> Tooltip.create(PRIORITIZE_CHUNK_TOOLTIP_PLAYER_AFFECTED); + case NEARBY -> Tooltip.create(PRIORITIZE_CHUNK_TOOLTIP_NEARBY); + }; + }, + OptionInstance.forOptionEnum(), + new OptionInstance.Enum<>(Arrays.asList(PrioritizeChunkUpdates.values()), Codec.INT.xmap(PrioritizeChunkUpdates::byId, PrioritizeChunkUpdates::getId)), + PrioritizeChunkUpdates.NONE, + prioritizeChunkUpdates -> {} + ); + public List resourcePacks = Lists.newArrayList(); + public List incompatibleResourcePacks = Lists.newArrayList(); + private final OptionInstance chatVisibility = new OptionInstance<>( + "options.chat.visibility", + OptionInstance.noTooltip(), + OptionInstance.forOptionEnum(), + new OptionInstance.Enum<>(Arrays.asList(ChatVisiblity.values()), Codec.INT.xmap(ChatVisiblity::byId, ChatVisiblity::getId)), + ChatVisiblity.FULL, + chatVisiblity -> {} + ); + private final OptionInstance chatOpacity = new OptionInstance<>( + "options.chat.opacity", + OptionInstance.noTooltip(), + (component, double_) -> percentValueLabel(component, double_ * 0.9 + 0.1), + OptionInstance.UnitDouble.INSTANCE, + 1.0, + double_ -> Minecraft.getInstance().gui.getChat().rescaleChat() + ); + private final OptionInstance chatLineSpacing = new OptionInstance<>( + "options.chat.line_spacing", OptionInstance.noTooltip(), Options::percentValueLabel, OptionInstance.UnitDouble.INSTANCE, 0.0, double_ -> {} + ); + private static final Component MENU_BACKGROUND_BLURRINESS_TOOLTIP = Component.translatable("options.accessibility.menu_background_blurriness.tooltip"); + private static final int BLURRINESS_DEFAULT_VALUE = 5; + private final OptionInstance menuBackgroundBlurriness = new OptionInstance<>( + "options.accessibility.menu_background_blurriness", + OptionInstance.cachedConstantTooltip(MENU_BACKGROUND_BLURRINESS_TOOLTIP), + Options::genericValueOrOffLabel, + new OptionInstance.IntRange(0, 10), + 5, + integer -> {} + ); + private final OptionInstance textBackgroundOpacity = new OptionInstance<>( + "options.accessibility.text_background_opacity", + OptionInstance.noTooltip(), + Options::percentValueLabel, + OptionInstance.UnitDouble.INSTANCE, + 0.5, + double_ -> Minecraft.getInstance().gui.getChat().rescaleChat() + ); + private final OptionInstance panoramaSpeed = new OptionInstance<>( + "options.accessibility.panorama_speed", OptionInstance.noTooltip(), Options::percentValueLabel, OptionInstance.UnitDouble.INSTANCE, 1.0, double_ -> {} + ); + private static final Component ACCESSIBILITY_TOOLTIP_CONTRAST_MODE = Component.translatable("options.accessibility.high_contrast.tooltip"); + private final OptionInstance highContrast = OptionInstance.createBoolean( + "options.accessibility.high_contrast", OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_CONTRAST_MODE), false, boolean_ -> { + PackRepository packRepository = Minecraft.getInstance().getResourcePackRepository(); + boolean blx = packRepository.getSelectedIds().contains("high_contrast"); + if (!blx && boolean_) { + if (packRepository.addPack("high_contrast")) { + this.updateResourcePacks(packRepository); + } + } else if (blx && !boolean_ && packRepository.removePack("high_contrast")) { + this.updateResourcePacks(packRepository); + } + } + ); + private final OptionInstance narratorHotkey = OptionInstance.createBoolean( + "options.accessibility.narrator_hotkey", + OptionInstance.cachedConstantTooltip( + Minecraft.ON_OSX + ? Component.translatable("options.accessibility.narrator_hotkey.mac.tooltip") + : Component.translatable("options.accessibility.narrator_hotkey.tooltip") + ), + true + ); + @Nullable + public String fullscreenVideoModeString; + public boolean hideServerAddress; + public boolean advancedItemTooltips; + public boolean pauseOnLostFocus = true; + private final Set modelParts = EnumSet.allOf(PlayerModelPart.class); + private final OptionInstance mainHand = new OptionInstance<>( + "options.mainHand", + OptionInstance.noTooltip(), + OptionInstance.forOptionEnum(), + new OptionInstance.Enum<>(Arrays.asList(HumanoidArm.values()), HumanoidArm.CODEC), + HumanoidArm.RIGHT, + humanoidArm -> this.broadcastOptions() + ); + public int overrideWidth; + public int overrideHeight; + private final OptionInstance chatScale = new OptionInstance<>( + "options.chat.scale", + OptionInstance.noTooltip(), + (component, double_) -> (Component)(double_ == 0.0 ? CommonComponents.optionStatus(component, false) : percentValueLabel(component, double_)), + OptionInstance.UnitDouble.INSTANCE, + 1.0, + double_ -> Minecraft.getInstance().gui.getChat().rescaleChat() + ); + private final OptionInstance chatWidth = new OptionInstance<>( + "options.chat.width", + OptionInstance.noTooltip(), + (component, double_) -> pixelValueLabel(component, ChatComponent.getWidth(double_)), + OptionInstance.UnitDouble.INSTANCE, + 1.0, + double_ -> Minecraft.getInstance().gui.getChat().rescaleChat() + ); + private final OptionInstance chatHeightUnfocused = new OptionInstance<>( + "options.chat.height.unfocused", + OptionInstance.noTooltip(), + (component, double_) -> pixelValueLabel(component, ChatComponent.getHeight(double_)), + OptionInstance.UnitDouble.INSTANCE, + ChatComponent.defaultUnfocusedPct(), + double_ -> Minecraft.getInstance().gui.getChat().rescaleChat() + ); + private final OptionInstance chatHeightFocused = new OptionInstance<>( + "options.chat.height.focused", + OptionInstance.noTooltip(), + (component, double_) -> pixelValueLabel(component, ChatComponent.getHeight(double_)), + OptionInstance.UnitDouble.INSTANCE, + 1.0, + double_ -> Minecraft.getInstance().gui.getChat().rescaleChat() + ); + private final OptionInstance chatDelay = new OptionInstance<>( + "options.chat.delay_instant", + OptionInstance.noTooltip(), + (component, double_) -> double_ <= 0.0 + ? Component.translatable("options.chat.delay_none") + : Component.translatable("options.chat.delay", String.format(Locale.ROOT, "%.1f", double_)), + new OptionInstance.IntRange(0, 60).xmap(i -> i / 10.0, double_ -> (int)(double_ * 10.0)), + Codec.doubleRange(0.0, 6.0), + 0.0, + double_ -> Minecraft.getInstance().getChatListener().setMessageDelay(double_) + ); + private static final Component ACCESSIBILITY_TOOLTIP_NOTIFICATION_DISPLAY_TIME = Component.translatable("options.notifications.display_time.tooltip"); + private final OptionInstance notificationDisplayTime = new OptionInstance<>( + "options.notifications.display_time", + OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_NOTIFICATION_DISPLAY_TIME), + (component, double_) -> genericValueLabel(component, Component.translatable("options.multiplier", double_)), + new OptionInstance.IntRange(5, 100).xmap(i -> i / 10.0, double_ -> (int)(double_ * 10.0)), + Codec.doubleRange(0.5, 10.0), + 1.0, + double_ -> {} + ); + private final OptionInstance mipmapLevels = new OptionInstance<>( + "options.mipmapLevels", + OptionInstance.noTooltip(), + (component, integer) -> (Component)(integer == 0 ? CommonComponents.optionStatus(component, false) : genericValueLabel(component, integer)), + new OptionInstance.IntRange(0, 4), + 4, + integer -> {} + ); + public boolean useNativeTransport = true; + private final OptionInstance attackIndicator = new OptionInstance<>( + "options.attackIndicator", + OptionInstance.noTooltip(), + OptionInstance.forOptionEnum(), + new OptionInstance.Enum<>(Arrays.asList(AttackIndicatorStatus.values()), Codec.INT.xmap(AttackIndicatorStatus::byId, AttackIndicatorStatus::getId)), + AttackIndicatorStatus.CROSSHAIR, + attackIndicatorStatus -> {} + ); + public TutorialSteps tutorialStep = TutorialSteps.MOVEMENT; + public boolean joinedFirstServer = false; + public boolean hideBundleTutorial = false; + private final OptionInstance biomeBlendRadius = new OptionInstance<>( + "options.biomeBlendRadius", OptionInstance.noTooltip(), (component, integer) -> { + int i = integer * 2 + 1; + return genericValueLabel(component, Component.translatable("options.biomeBlendRadius." + i)); + }, new OptionInstance.IntRange(0, 7, false), 2, integer -> Minecraft.getInstance().levelRenderer.allChanged() + ); + private final OptionInstance mouseWheelSensitivity = new OptionInstance<>( + "options.mouseWheelSensitivity", + OptionInstance.noTooltip(), + (component, double_) -> genericValueLabel(component, Component.literal(String.format(Locale.ROOT, "%.2f", double_))), + new OptionInstance.IntRange(-200, 100).xmap(Options::logMouse, Options::unlogMouse), + Codec.doubleRange(logMouse(-200), logMouse(100)), + logMouse(0), + double_ -> {} + ); + private final OptionInstance rawMouseInput = OptionInstance.createBoolean("options.rawMouseInput", true, boolean_ -> { + Window window = Minecraft.getInstance().getWindow(); + if (window != null) { + window.updateRawMouseInput(boolean_); + } + }); + public int glDebugVerbosity = 1; + private final OptionInstance autoJump = OptionInstance.createBoolean("options.autoJump", false); + private final OptionInstance operatorItemsTab = OptionInstance.createBoolean("options.operatorItemsTab", false); + private final OptionInstance autoSuggestions = OptionInstance.createBoolean("options.autoSuggestCommands", true); + private final OptionInstance chatColors = OptionInstance.createBoolean("options.chat.color", true); + private final OptionInstance chatLinks = OptionInstance.createBoolean("options.chat.links", true); + private final OptionInstance chatLinksPrompt = OptionInstance.createBoolean("options.chat.links.prompt", true); + private final OptionInstance enableVsync = OptionInstance.createBoolean("options.vsync", true, boolean_ -> { + if (Minecraft.getInstance().getWindow() != null) { + Minecraft.getInstance().getWindow().updateVsync(boolean_); + } + }); + private final OptionInstance entityShadows = OptionInstance.createBoolean("options.entityShadows", true); + private final OptionInstance forceUnicodeFont = OptionInstance.createBoolean("options.forceUnicodeFont", false, boolean_ -> updateFontOptions()); + private final OptionInstance japaneseGlyphVariants = OptionInstance.createBoolean( + "options.japaneseGlyphVariants", + OptionInstance.cachedConstantTooltip(Component.translatable("options.japaneseGlyphVariants.tooltip")), + japaneseGlyphVariantsDefault(), + boolean_ -> updateFontOptions() + ); + private final OptionInstance invertYMouse = OptionInstance.createBoolean("options.invertMouse", false); + private final OptionInstance discreteMouseScroll = OptionInstance.createBoolean("options.discrete_mouse_scroll", false); + private static final Component REALMS_NOTIFICATIONS_TOOLTIP = Component.translatable("options.realmsNotifications.tooltip"); + private final OptionInstance realmsNotifications = OptionInstance.createBoolean( + "options.realmsNotifications", OptionInstance.cachedConstantTooltip(REALMS_NOTIFICATIONS_TOOLTIP), true + ); + private static final Component ALLOW_SERVER_LISTING_TOOLTIP = Component.translatable("options.allowServerListing.tooltip"); + private final OptionInstance allowServerListing = OptionInstance.createBoolean( + "options.allowServerListing", OptionInstance.cachedConstantTooltip(ALLOW_SERVER_LISTING_TOOLTIP), true, boolean_ -> this.broadcastOptions() + ); + private final OptionInstance reducedDebugInfo = OptionInstance.createBoolean("options.reducedDebugInfo", false); + private final Map> soundSourceVolumes = Util.make(new EnumMap(SoundSource.class), enumMap -> { + for (SoundSource soundSource : SoundSource.values()) { + enumMap.put(soundSource, this.createSoundSliderOptionInstance("soundCategory." + soundSource.getName(), soundSource)); + } + }); + private final OptionInstance showSubtitles = OptionInstance.createBoolean("options.showSubtitles", false); + private static final Component DIRECTIONAL_AUDIO_TOOLTIP_ON = Component.translatable("options.directionalAudio.on.tooltip"); + private static final Component DIRECTIONAL_AUDIO_TOOLTIP_OFF = Component.translatable("options.directionalAudio.off.tooltip"); + private final OptionInstance directionalAudio = OptionInstance.createBoolean( + "options.directionalAudio", + boolean_ -> boolean_ ? Tooltip.create(DIRECTIONAL_AUDIO_TOOLTIP_ON) : Tooltip.create(DIRECTIONAL_AUDIO_TOOLTIP_OFF), + false, + boolean_ -> { + SoundManager soundManager = Minecraft.getInstance().getSoundManager(); + soundManager.reload(); + soundManager.play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + } + ); + private final OptionInstance backgroundForChatOnly = new OptionInstance<>( + "options.accessibility.text_background", + OptionInstance.noTooltip(), + (component, boolean_) -> boolean_ + ? Component.translatable("options.accessibility.text_background.chat") + : Component.translatable("options.accessibility.text_background.everywhere"), + OptionInstance.BOOLEAN_VALUES, + true, + boolean_ -> {} + ); + private final OptionInstance touchscreen = OptionInstance.createBoolean("options.touchscreen", false); + private final OptionInstance fullscreen = OptionInstance.createBoolean("options.fullscreen", false, boolean_ -> { + Minecraft minecraftx = Minecraft.getInstance(); + if (minecraftx.getWindow() != null && minecraftx.getWindow().isFullscreen() != boolean_) { + minecraftx.getWindow().toggleFullScreen(); + this.fullscreen().set(minecraftx.getWindow().isFullscreen()); + } + }); + private final OptionInstance bobView = OptionInstance.createBoolean("options.viewBobbing", true); + private static final Component MOVEMENT_TOGGLE = Component.translatable("options.key.toggle"); + private static final Component MOVEMENT_HOLD = Component.translatable("options.key.hold"); + private final OptionInstance toggleCrouch = new OptionInstance<>( + "key.sneak", + OptionInstance.noTooltip(), + (component, boolean_) -> boolean_ ? MOVEMENT_TOGGLE : MOVEMENT_HOLD, + OptionInstance.BOOLEAN_VALUES, + false, + boolean_ -> {} + ); + private final OptionInstance toggleSprint = new OptionInstance<>( + "key.sprint", + OptionInstance.noTooltip(), + (component, boolean_) -> boolean_ ? MOVEMENT_TOGGLE : MOVEMENT_HOLD, + OptionInstance.BOOLEAN_VALUES, + false, + boolean_ -> {} + ); + public boolean skipMultiplayerWarning; + private static final Component CHAT_TOOLTIP_HIDE_MATCHED_NAMES = Component.translatable("options.hideMatchedNames.tooltip"); + private final OptionInstance hideMatchedNames = OptionInstance.createBoolean( + "options.hideMatchedNames", OptionInstance.cachedConstantTooltip(CHAT_TOOLTIP_HIDE_MATCHED_NAMES), true + ); + private final OptionInstance showAutosaveIndicator = OptionInstance.createBoolean("options.autosaveIndicator", true); + private static final Component CHAT_TOOLTIP_ONLY_SHOW_SECURE = Component.translatable("options.onlyShowSecureChat.tooltip"); + private final OptionInstance onlyShowSecureChat = OptionInstance.createBoolean( + "options.onlyShowSecureChat", OptionInstance.cachedConstantTooltip(CHAT_TOOLTIP_ONLY_SHOW_SECURE), false + ); + public final KeyMapping keyUp = new KeyMapping("key.forward", 87, "key.categories.movement"); + public final KeyMapping keyLeft = new KeyMapping("key.left", 65, "key.categories.movement"); + public final KeyMapping keyDown = new KeyMapping("key.back", 83, "key.categories.movement"); + public final KeyMapping keyRight = new KeyMapping("key.right", 68, "key.categories.movement"); + public final KeyMapping keyJump = new KeyMapping("key.jump", 32, "key.categories.movement"); + public final KeyMapping keyShift = new ToggleKeyMapping("key.sneak", 340, "key.categories.movement", this.toggleCrouch::get); + public final KeyMapping keySprint = new ToggleKeyMapping("key.sprint", 341, "key.categories.movement", this.toggleSprint::get); + public final KeyMapping keyInventory = new KeyMapping("key.inventory", 69, "key.categories.inventory"); + public final KeyMapping keySwapOffhand = new KeyMapping("key.swapOffhand", 70, "key.categories.inventory"); + public final KeyMapping keyDrop = new KeyMapping("key.drop", 81, "key.categories.inventory"); + public final KeyMapping keyUse = new KeyMapping("key.use", InputConstants.Type.MOUSE, 1, "key.categories.gameplay"); + public final KeyMapping keyAttack = new KeyMapping("key.attack", InputConstants.Type.MOUSE, 0, "key.categories.gameplay"); + public final KeyMapping keyPickItem = new KeyMapping("key.pickItem", InputConstants.Type.MOUSE, 2, "key.categories.gameplay"); + public final KeyMapping keyChat = new KeyMapping("key.chat", 84, "key.categories.multiplayer"); + public final KeyMapping keyPlayerList = new KeyMapping("key.playerlist", 258, "key.categories.multiplayer"); + public final KeyMapping keyCommand = new KeyMapping("key.command", 47, "key.categories.multiplayer"); + public final KeyMapping keySocialInteractions = new KeyMapping("key.socialInteractions", 80, "key.categories.multiplayer"); + public final KeyMapping keyScreenshot = new KeyMapping("key.screenshot", 291, "key.categories.misc"); + public final KeyMapping keyTogglePerspective = new KeyMapping("key.togglePerspective", 294, "key.categories.misc"); + public final KeyMapping keySmoothCamera = new KeyMapping("key.smoothCamera", InputConstants.UNKNOWN.getValue(), "key.categories.misc"); + public final KeyMapping keyFullscreen = new KeyMapping("key.fullscreen", 300, "key.categories.misc"); + public final KeyMapping keySpectatorOutlines = new KeyMapping("key.spectatorOutlines", InputConstants.UNKNOWN.getValue(), "key.categories.misc"); + public final KeyMapping keyAdvancements = new KeyMapping("key.advancements", 76, "key.categories.misc"); + public final KeyMapping[] keyHotbarSlots = new KeyMapping[]{ + new KeyMapping("key.hotbar.1", 49, "key.categories.inventory"), + new KeyMapping("key.hotbar.2", 50, "key.categories.inventory"), + new KeyMapping("key.hotbar.3", 51, "key.categories.inventory"), + new KeyMapping("key.hotbar.4", 52, "key.categories.inventory"), + new KeyMapping("key.hotbar.5", 53, "key.categories.inventory"), + new KeyMapping("key.hotbar.6", 54, "key.categories.inventory"), + new KeyMapping("key.hotbar.7", 55, "key.categories.inventory"), + new KeyMapping("key.hotbar.8", 56, "key.categories.inventory"), + new KeyMapping("key.hotbar.9", 57, "key.categories.inventory") + }; + public final KeyMapping keySaveHotbarActivator = new KeyMapping("key.saveToolbarActivator", 67, "key.categories.creative"); + public final KeyMapping keyLoadHotbarActivator = new KeyMapping("key.loadToolbarActivator", 88, "key.categories.creative"); + public final KeyMapping[] keyMappings = ArrayUtils.addAll( + (KeyMapping[])(new KeyMapping[]{ + this.keyAttack, + this.keyUse, + this.keyUp, + this.keyLeft, + this.keyDown, + this.keyRight, + this.keyJump, + this.keyShift, + this.keySprint, + this.keyDrop, + this.keyInventory, + this.keyChat, + this.keyPlayerList, + this.keyPickItem, + this.keyCommand, + this.keySocialInteractions, + this.keyScreenshot, + this.keyTogglePerspective, + this.keySmoothCamera, + this.keyFullscreen, + this.keySpectatorOutlines, + this.keySwapOffhand, + this.keySaveHotbarActivator, + this.keyLoadHotbarActivator, + this.keyAdvancements + }), + (KeyMapping[])this.keyHotbarSlots + ); + protected Minecraft minecraft; + private final File optionsFile; + public boolean hideGui; + private CameraType cameraType = CameraType.FIRST_PERSON; + public String lastMpIp = ""; + public boolean smoothCamera; + private final OptionInstance fov = new OptionInstance<>( + "options.fov", + OptionInstance.noTooltip(), + (component, integer) -> { + return switch (integer) { + case 70 -> genericValueLabel(component, Component.translatable("options.fov.min")); + case 110 -> genericValueLabel(component, Component.translatable("options.fov.max")); + default -> genericValueLabel(component, integer); + }; + }, + new OptionInstance.IntRange(30, 110), + Codec.DOUBLE.xmap(double_ -> (int)(double_ * 40.0 + 70.0), integer -> (integer.intValue() - 70.0) / 40.0), + 70, + integer -> Minecraft.getInstance().levelRenderer.needsUpdate() + ); + private static final Component TELEMETRY_TOOLTIP = Component.translatable( + "options.telemetry.button.tooltip", Component.translatable("options.telemetry.state.minimal"), Component.translatable("options.telemetry.state.all") + ); + private final OptionInstance telemetryOptInExtra = OptionInstance.createBoolean( + "options.telemetry.button", + OptionInstance.cachedConstantTooltip(TELEMETRY_TOOLTIP), + (component, boolean_) -> { + Minecraft minecraftx = Minecraft.getInstance(); + if (!minecraftx.allowsTelemetry()) { + return Component.translatable("options.telemetry.state.none"); + } else { + return boolean_ && minecraftx.extraTelemetryAvailable() + ? Component.translatable("options.telemetry.state.all") + : Component.translatable("options.telemetry.state.minimal"); + } + }, + false, + boolean_ -> {} + ); + private static final Component ACCESSIBILITY_TOOLTIP_SCREEN_EFFECT = Component.translatable("options.screenEffectScale.tooltip"); + private final OptionInstance screenEffectScale = new OptionInstance<>( + "options.screenEffectScale", + OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_SCREEN_EFFECT), + Options::percentValueOrOffLabel, + OptionInstance.UnitDouble.INSTANCE, + 1.0, + double_ -> {} + ); + private static final Component ACCESSIBILITY_TOOLTIP_FOV_EFFECT = Component.translatable("options.fovEffectScale.tooltip"); + private final OptionInstance fovEffectScale = new OptionInstance<>( + "options.fovEffectScale", + OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_FOV_EFFECT), + Options::percentValueOrOffLabel, + OptionInstance.UnitDouble.INSTANCE.xmap(Mth::square, Math::sqrt), + Codec.doubleRange(0.0, 1.0), + 1.0, + double_ -> {} + ); + private static final Component ACCESSIBILITY_TOOLTIP_DARKNESS_EFFECT = Component.translatable("options.darknessEffectScale.tooltip"); + private final OptionInstance darknessEffectScale = new OptionInstance<>( + "options.darknessEffectScale", + OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_DARKNESS_EFFECT), + Options::percentValueOrOffLabel, + OptionInstance.UnitDouble.INSTANCE.xmap(Mth::square, Math::sqrt), + 1.0, + double_ -> {} + ); + private static final Component ACCESSIBILITY_TOOLTIP_GLINT_SPEED = Component.translatable("options.glintSpeed.tooltip"); + private final OptionInstance glintSpeed = new OptionInstance<>( + "options.glintSpeed", + OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_GLINT_SPEED), + Options::percentValueOrOffLabel, + OptionInstance.UnitDouble.INSTANCE, + 0.5, + double_ -> {} + ); + private static final Component ACCESSIBILITY_TOOLTIP_GLINT_STRENGTH = Component.translatable("options.glintStrength.tooltip"); + private final OptionInstance glintStrength = new OptionInstance<>( + "options.glintStrength", + OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_GLINT_STRENGTH), + Options::percentValueOrOffLabel, + OptionInstance.UnitDouble.INSTANCE, + 0.75, + RenderSystem::setShaderGlintAlpha + ); + private static final Component ACCESSIBILITY_TOOLTIP_DAMAGE_TILT_STRENGTH = Component.translatable("options.damageTiltStrength.tooltip"); + private final OptionInstance damageTiltStrength = new OptionInstance<>( + "options.damageTiltStrength", + OptionInstance.cachedConstantTooltip(ACCESSIBILITY_TOOLTIP_DAMAGE_TILT_STRENGTH), + Options::percentValueOrOffLabel, + OptionInstance.UnitDouble.INSTANCE, + 1.0, + double_ -> {} + ); + private final OptionInstance gamma = new OptionInstance<>("options.gamma", OptionInstance.noTooltip(), (component, double_) -> { + int i = (int)(double_ * 100.0); + if (i == 0) { + return genericValueLabel(component, Component.translatable("options.gamma.min")); + } else if (i == 50) { + return genericValueLabel(component, Component.translatable("options.gamma.default")); + } else { + return i == 100 ? genericValueLabel(component, Component.translatable("options.gamma.max")) : genericValueLabel(component, i); + } + }, OptionInstance.UnitDouble.INSTANCE, 0.5, double_ -> {}); + public static final int AUTO_GUI_SCALE = 0; + private static final int MAX_GUI_SCALE_INCLUSIVE = 2147483646; + private final OptionInstance guiScale = new OptionInstance<>( + "options.guiScale", + OptionInstance.noTooltip(), + (component, integer) -> integer == 0 ? Component.translatable("options.guiScale.auto") : Component.literal(Integer.toString(integer)), + new OptionInstance.ClampingLazyMaxIntRange(0, () -> { + Minecraft minecraftx = Minecraft.getInstance(); + return !minecraftx.isRunning() ? 2147483646 : minecraftx.getWindow().calculateScale(0, minecraftx.isEnforceUnicode()); + }, 2147483646), + 0, + integer -> this.minecraft.resizeDisplay() + ); + private final OptionInstance particles = new OptionInstance<>( + "options.particles", + OptionInstance.noTooltip(), + OptionInstance.forOptionEnum(), + new OptionInstance.Enum<>(Arrays.asList(ParticleStatus.values()), Codec.INT.xmap(ParticleStatus::byId, ParticleStatus::getId)), + ParticleStatus.ALL, + particleStatus -> {} + ); + private final OptionInstance narrator = new OptionInstance<>( + "options.narrator", + OptionInstance.noTooltip(), + (component, narratorStatus) -> (Component)(this.minecraft.getNarrator().isActive() + ? narratorStatus.getName() + : Component.translatable("options.narrator.notavailable")), + new OptionInstance.Enum<>(Arrays.asList(NarratorStatus.values()), Codec.INT.xmap(NarratorStatus::byId, NarratorStatus::getId)), + NarratorStatus.OFF, + narratorStatus -> this.minecraft.getNarrator().updateNarratorStatus(narratorStatus) + ); + public String languageCode = "en_us"; + private final OptionInstance soundDevice = new OptionInstance<>( + "options.audioDevice", + OptionInstance.noTooltip(), + (component, string) -> { + if ("".equals(string)) { + return Component.translatable("options.audioDevice.default"); + } else { + return string.startsWith("OpenAL Soft on ") ? Component.literal(string.substring(SoundEngine.OPEN_AL_SOFT_PREFIX_LENGTH)) : Component.literal(string); + } + }, + new OptionInstance.LazyEnum<>( + () -> Stream.concat(Stream.of(""), Minecraft.getInstance().getSoundManager().getAvailableSoundDevices().stream()).toList(), + string -> Minecraft.getInstance().isRunning() && string != "" && !Minecraft.getInstance().getSoundManager().getAvailableSoundDevices().contains(string) + ? Optional.empty() + : Optional.of(string), + Codec.STRING + ), + "", + string -> { + SoundManager soundManager = Minecraft.getInstance().getSoundManager(); + soundManager.reload(); + soundManager.play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + } + ); + public boolean onboardAccessibility = true; + public boolean syncWrites; + + public OptionInstance darkMojangStudiosBackground() { + return this.darkMojangStudiosBackground; + } + + public OptionInstance hideLightningFlash() { + return this.hideLightningFlash; + } + + public OptionInstance hideSplashTexts() { + return this.hideSplashTexts; + } + + public OptionInstance sensitivity() { + return this.sensitivity; + } + + public OptionInstance renderDistance() { + return this.renderDistance; + } + + public OptionInstance simulationDistance() { + return this.simulationDistance; + } + + public OptionInstance entityDistanceScaling() { + return this.entityDistanceScaling; + } + + public OptionInstance framerateLimit() { + return this.framerateLimit; + } + + public OptionInstance cloudStatus() { + return this.cloudStatus; + } + + public OptionInstance graphicsMode() { + return this.graphicsMode; + } + + public OptionInstance ambientOcclusion() { + return this.ambientOcclusion; + } + + public OptionInstance prioritizeChunkUpdates() { + return this.prioritizeChunkUpdates; + } + + public void updateResourcePacks(PackRepository packRepository) { + List list = ImmutableList.copyOf(this.resourcePacks); + this.resourcePacks.clear(); + this.incompatibleResourcePacks.clear(); + + for (Pack pack : packRepository.getSelectedPacks()) { + if (!pack.isFixedPosition()) { + this.resourcePacks.add(pack.getId()); + if (!pack.getCompatibility().isCompatible()) { + this.incompatibleResourcePacks.add(pack.getId()); + } + } + } + + this.save(); + List list2 = ImmutableList.copyOf(this.resourcePacks); + if (!list2.equals(list)) { + this.minecraft.reloadResourcePacks(); + } + } + + public OptionInstance chatVisibility() { + return this.chatVisibility; + } + + public OptionInstance chatOpacity() { + return this.chatOpacity; + } + + public OptionInstance chatLineSpacing() { + return this.chatLineSpacing; + } + + public OptionInstance menuBackgroundBlurriness() { + return this.menuBackgroundBlurriness; + } + + public int getMenuBackgroundBlurriness() { + return this.menuBackgroundBlurriness().get(); + } + + public OptionInstance textBackgroundOpacity() { + return this.textBackgroundOpacity; + } + + public OptionInstance panoramaSpeed() { + return this.panoramaSpeed; + } + + public OptionInstance highContrast() { + return this.highContrast; + } + + public OptionInstance narratorHotkey() { + return this.narratorHotkey; + } + + public OptionInstance mainHand() { + return this.mainHand; + } + + public OptionInstance chatScale() { + return this.chatScale; + } + + public OptionInstance chatWidth() { + return this.chatWidth; + } + + public OptionInstance chatHeightUnfocused() { + return this.chatHeightUnfocused; + } + + public OptionInstance chatHeightFocused() { + return this.chatHeightFocused; + } + + public OptionInstance chatDelay() { + return this.chatDelay; + } + + public OptionInstance notificationDisplayTime() { + return this.notificationDisplayTime; + } + + public OptionInstance mipmapLevels() { + return this.mipmapLevels; + } + + public OptionInstance attackIndicator() { + return this.attackIndicator; + } + + public OptionInstance biomeBlendRadius() { + return this.biomeBlendRadius; + } + + private static double logMouse(int input) { + return Math.pow(10.0, input / 100.0); + } + + private static int unlogMouse(double input) { + return Mth.floor(Math.log10(input) * 100.0); + } + + public OptionInstance mouseWheelSensitivity() { + return this.mouseWheelSensitivity; + } + + public OptionInstance rawMouseInput() { + return this.rawMouseInput; + } + + public OptionInstance autoJump() { + return this.autoJump; + } + + public OptionInstance operatorItemsTab() { + return this.operatorItemsTab; + } + + public OptionInstance autoSuggestions() { + return this.autoSuggestions; + } + + public OptionInstance chatColors() { + return this.chatColors; + } + + public OptionInstance chatLinks() { + return this.chatLinks; + } + + public OptionInstance chatLinksPrompt() { + return this.chatLinksPrompt; + } + + public OptionInstance enableVsync() { + return this.enableVsync; + } + + public OptionInstance entityShadows() { + return this.entityShadows; + } + + private static void updateFontOptions() { + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.getWindow() != null) { + minecraft.updateFontOptions(); + minecraft.resizeDisplay(); + } + } + + public OptionInstance forceUnicodeFont() { + return this.forceUnicodeFont; + } + + private static boolean japaneseGlyphVariantsDefault() { + return Locale.getDefault().getLanguage().equalsIgnoreCase("ja"); + } + + public OptionInstance japaneseGlyphVariants() { + return this.japaneseGlyphVariants; + } + + public OptionInstance invertYMouse() { + return this.invertYMouse; + } + + public OptionInstance discreteMouseScroll() { + return this.discreteMouseScroll; + } + + public OptionInstance realmsNotifications() { + return this.realmsNotifications; + } + + public OptionInstance allowServerListing() { + return this.allowServerListing; + } + + public OptionInstance reducedDebugInfo() { + return this.reducedDebugInfo; + } + + public final float getSoundSourceVolume(SoundSource category) { + return this.getSoundSourceOptionInstance(category).get().floatValue(); + } + + public final OptionInstance getSoundSourceOptionInstance(SoundSource soundSource) { + return (OptionInstance)Objects.requireNonNull((OptionInstance)this.soundSourceVolumes.get(soundSource)); + } + + private OptionInstance createSoundSliderOptionInstance(String text, SoundSource soundSource) { + return new OptionInstance<>( + text, + OptionInstance.noTooltip(), + Options::percentValueOrOffLabel, + OptionInstance.UnitDouble.INSTANCE, + 1.0, + double_ -> Minecraft.getInstance().getSoundManager().updateSourceVolume(soundSource, double_.floatValue()) + ); + } + + public OptionInstance showSubtitles() { + return this.showSubtitles; + } + + public OptionInstance directionalAudio() { + return this.directionalAudio; + } + + public OptionInstance backgroundForChatOnly() { + return this.backgroundForChatOnly; + } + + public OptionInstance touchscreen() { + return this.touchscreen; + } + + public OptionInstance fullscreen() { + return this.fullscreen; + } + + public OptionInstance bobView() { + return this.bobView; + } + + public OptionInstance toggleCrouch() { + return this.toggleCrouch; + } + + public OptionInstance toggleSprint() { + return this.toggleSprint; + } + + public OptionInstance hideMatchedNames() { + return this.hideMatchedNames; + } + + public OptionInstance showAutosaveIndicator() { + return this.showAutosaveIndicator; + } + + public OptionInstance onlyShowSecureChat() { + return this.onlyShowSecureChat; + } + + public OptionInstance fov() { + return this.fov; + } + + public OptionInstance telemetryOptInExtra() { + return this.telemetryOptInExtra; + } + + public OptionInstance screenEffectScale() { + return this.screenEffectScale; + } + + public OptionInstance fovEffectScale() { + return this.fovEffectScale; + } + + public OptionInstance darknessEffectScale() { + return this.darknessEffectScale; + } + + public OptionInstance glintSpeed() { + return this.glintSpeed; + } + + public OptionInstance glintStrength() { + return this.glintStrength; + } + + public OptionInstance damageTiltStrength() { + return this.damageTiltStrength; + } + + public OptionInstance gamma() { + return this.gamma; + } + + public OptionInstance guiScale() { + return this.guiScale; + } + + public OptionInstance particles() { + return this.particles; + } + + public OptionInstance narrator() { + return this.narrator; + } + + public OptionInstance soundDevice() { + return this.soundDevice; + } + + public void onboardingAccessibilityFinished() { + this.onboardAccessibility = false; + this.save(); + } + + public Options(Minecraft minecraft, File gameDirectory) { + this.minecraft = minecraft; + this.optionsFile = new File(gameDirectory, "options.txt"); + boolean bl = Runtime.getRuntime().maxMemory() >= 1000000000L; + this.renderDistance = new OptionInstance<>( + "options.renderDistance", + OptionInstance.noTooltip(), + (component, integer) -> genericValueLabel(component, Component.translatable("options.chunks", integer)), + new OptionInstance.IntRange(2, bl ? 32 : 16, false), + 12, + integer -> Minecraft.getInstance().levelRenderer.needsUpdate() + ); + this.simulationDistance = new OptionInstance<>( + "options.simulationDistance", + OptionInstance.noTooltip(), + (component, integer) -> genericValueLabel(component, Component.translatable("options.chunks", integer)), + new OptionInstance.IntRange(5, bl ? 32 : 16, false), + 12, + integer -> {} + ); + this.syncWrites = Util.getPlatform() == Util.OS.WINDOWS; + this.load(); + } + + public float getBackgroundOpacity(float opacity) { + return this.backgroundForChatOnly.get() ? opacity : this.textBackgroundOpacity().get().floatValue(); + } + + public int getBackgroundColor(float opacity) { + return (int)(this.getBackgroundOpacity(opacity) * 255.0F) << 24 & 0xFF000000; + } + + public int getBackgroundColor(int chatColor) { + return this.backgroundForChatOnly.get() ? chatColor : (int)(this.textBackgroundOpacity.get() * 255.0) << 24 & 0xFF000000; + } + + public void setKey(KeyMapping keyBinding, InputConstants.Key input) { + keyBinding.setKey(input); + this.save(); + } + + private void processDumpedOptions(Options.OptionAccess optionAccess) { + optionAccess.process("ao", this.ambientOcclusion); + optionAccess.process("biomeBlendRadius", this.biomeBlendRadius); + optionAccess.process("enableVsync", this.enableVsync); + optionAccess.process("entityDistanceScaling", this.entityDistanceScaling); + optionAccess.process("entityShadows", this.entityShadows); + optionAccess.process("forceUnicodeFont", this.forceUnicodeFont); + optionAccess.process("japaneseGlyphVariants", this.japaneseGlyphVariants); + optionAccess.process("fov", this.fov); + optionAccess.process("fovEffectScale", this.fovEffectScale); + optionAccess.process("darknessEffectScale", this.darknessEffectScale); + optionAccess.process("glintSpeed", this.glintSpeed); + optionAccess.process("glintStrength", this.glintStrength); + optionAccess.process("prioritizeChunkUpdates", this.prioritizeChunkUpdates); + optionAccess.process("fullscreen", this.fullscreen); + optionAccess.process("gamma", this.gamma); + optionAccess.process("graphicsMode", this.graphicsMode); + optionAccess.process("guiScale", this.guiScale); + optionAccess.process("maxFps", this.framerateLimit); + optionAccess.process("mipmapLevels", this.mipmapLevels); + optionAccess.process("narrator", this.narrator); + optionAccess.process("particles", this.particles); + optionAccess.process("reducedDebugInfo", this.reducedDebugInfo); + optionAccess.process("renderClouds", this.cloudStatus); + optionAccess.process("renderDistance", this.renderDistance); + optionAccess.process("simulationDistance", this.simulationDistance); + optionAccess.process("screenEffectScale", this.screenEffectScale); + optionAccess.process("soundDevice", this.soundDevice); + } + + private void processOptions(Options.FieldAccess accessor) { + this.processDumpedOptions(accessor); + accessor.process("autoJump", this.autoJump); + accessor.process("operatorItemsTab", this.operatorItemsTab); + accessor.process("autoSuggestions", this.autoSuggestions); + accessor.process("chatColors", this.chatColors); + accessor.process("chatLinks", this.chatLinks); + accessor.process("chatLinksPrompt", this.chatLinksPrompt); + accessor.process("discrete_mouse_scroll", this.discreteMouseScroll); + accessor.process("invertYMouse", this.invertYMouse); + accessor.process("realmsNotifications", this.realmsNotifications); + accessor.process("showSubtitles", this.showSubtitles); + accessor.process("directionalAudio", this.directionalAudio); + accessor.process("touchscreen", this.touchscreen); + accessor.process("bobView", this.bobView); + accessor.process("toggleCrouch", this.toggleCrouch); + accessor.process("toggleSprint", this.toggleSprint); + accessor.process("darkMojangStudiosBackground", this.darkMojangStudiosBackground); + accessor.process("hideLightningFlashes", this.hideLightningFlash); + accessor.process("hideSplashTexts", this.hideSplashTexts); + accessor.process("mouseSensitivity", this.sensitivity); + accessor.process("damageTiltStrength", this.damageTiltStrength); + accessor.process("highContrast", this.highContrast); + accessor.process("narratorHotkey", this.narratorHotkey); + this.resourcePacks = accessor.process("resourcePacks", this.resourcePacks, Options::readListOfStrings, GSON::toJson); + this.incompatibleResourcePacks = accessor.process("incompatibleResourcePacks", this.incompatibleResourcePacks, Options::readListOfStrings, GSON::toJson); + this.lastMpIp = accessor.process("lastServer", this.lastMpIp); + this.languageCode = accessor.process("lang", this.languageCode); + accessor.process("chatVisibility", this.chatVisibility); + accessor.process("chatOpacity", this.chatOpacity); + accessor.process("chatLineSpacing", this.chatLineSpacing); + accessor.process("textBackgroundOpacity", this.textBackgroundOpacity); + accessor.process("backgroundForChatOnly", this.backgroundForChatOnly); + this.hideServerAddress = accessor.process("hideServerAddress", this.hideServerAddress); + this.advancedItemTooltips = accessor.process("advancedItemTooltips", this.advancedItemTooltips); + this.pauseOnLostFocus = accessor.process("pauseOnLostFocus", this.pauseOnLostFocus); + this.overrideWidth = accessor.process("overrideWidth", this.overrideWidth); + this.overrideHeight = accessor.process("overrideHeight", this.overrideHeight); + accessor.process("chatHeightFocused", this.chatHeightFocused); + accessor.process("chatDelay", this.chatDelay); + accessor.process("chatHeightUnfocused", this.chatHeightUnfocused); + accessor.process("chatScale", this.chatScale); + accessor.process("chatWidth", this.chatWidth); + accessor.process("notificationDisplayTime", this.notificationDisplayTime); + this.useNativeTransport = accessor.process("useNativeTransport", this.useNativeTransport); + accessor.process("mainHand", this.mainHand); + accessor.process("attackIndicator", this.attackIndicator); + this.tutorialStep = accessor.process("tutorialStep", this.tutorialStep, TutorialSteps::getByName, TutorialSteps::getName); + accessor.process("mouseWheelSensitivity", this.mouseWheelSensitivity); + accessor.process("rawMouseInput", this.rawMouseInput); + this.glDebugVerbosity = accessor.process("glDebugVerbosity", this.glDebugVerbosity); + this.skipMultiplayerWarning = accessor.process("skipMultiplayerWarning", this.skipMultiplayerWarning); + accessor.process("hideMatchedNames", this.hideMatchedNames); + this.joinedFirstServer = accessor.process("joinedFirstServer", this.joinedFirstServer); + this.hideBundleTutorial = accessor.process("hideBundleTutorial", this.hideBundleTutorial); + this.syncWrites = accessor.process("syncChunkWrites", this.syncWrites); + accessor.process("showAutosaveIndicator", this.showAutosaveIndicator); + accessor.process("allowServerListing", this.allowServerListing); + accessor.process("onlyShowSecureChat", this.onlyShowSecureChat); + accessor.process("panoramaScrollSpeed", this.panoramaSpeed); + accessor.process("telemetryOptInExtra", this.telemetryOptInExtra); + this.onboardAccessibility = accessor.process("onboardAccessibility", this.onboardAccessibility); + accessor.process("menuBackgroundBlurriness", this.menuBackgroundBlurriness); + + for (KeyMapping keyMapping : this.keyMappings) { + String string = keyMapping.saveString(); + String string2 = accessor.process("key_" + keyMapping.getName(), string); + if (!string.equals(string2)) { + keyMapping.setKey(InputConstants.getKey(string2)); + } + } + + for (SoundSource soundSource : SoundSource.values()) { + accessor.process("soundCategory_" + soundSource.getName(), (OptionInstance)this.soundSourceVolumes.get(soundSource)); + } + + for (PlayerModelPart playerModelPart : PlayerModelPart.values()) { + boolean bl = this.modelParts.contains(playerModelPart); + boolean bl2 = accessor.process("modelPart_" + playerModelPart.getId(), bl); + if (bl2 != bl) { + this.setModelPart(playerModelPart, bl2); + } + } + } + + /** + * Loads the options from the options file. It appears that this has replaced the previous 'loadOptions' + */ + public void load() { + try { + if (!this.optionsFile.exists()) { + return; + } + + CompoundTag compoundTag = new CompoundTag(); + BufferedReader bufferedReader = Files.newReader(this.optionsFile, Charsets.UTF_8); + + try { + bufferedReader.lines().forEach(string -> { + try { + Iterator iterator = OPTION_SPLITTER.split(string).iterator(); + compoundTag.putString((String)iterator.next(), (String)iterator.next()); + } catch (Exception var3) { + LOGGER.warn("Skipping bad option: {}", string); + } + }); + } catch (Throwable var6) { + if (bufferedReader != null) { + try { + bufferedReader.close(); + } catch (Throwable var5) { + var6.addSuppressed(var5); + } + } + + throw var6; + } + + if (bufferedReader != null) { + bufferedReader.close(); + } + + final CompoundTag compoundTag2 = this.dataFix(compoundTag); + if (!compoundTag2.contains("graphicsMode") && compoundTag2.contains("fancyGraphics")) { + if (isTrue(compoundTag2.getString("fancyGraphics"))) { + this.graphicsMode.set(GraphicsStatus.FANCY); + } else { + this.graphicsMode.set(GraphicsStatus.FAST); + } + } + + this.processOptions(new Options.FieldAccess() { + @Nullable + private String getValueOrNull(String name) { + return compoundTag2.contains(name) ? compoundTag2.get(name).getAsString() : null; + } + + @Override + public void process(String name, OptionInstance value) { + String string = this.getValueOrNull(name); + if (string != null) { + JsonReader jsonReader = new JsonReader(new StringReader(string.isEmpty() ? "\"\"" : string)); + JsonElement jsonElement = JsonParser.parseReader(jsonReader); + DataResult dataResult = value.codec().parse(JsonOps.INSTANCE, jsonElement); + dataResult.error().ifPresent(error -> Options.LOGGER.error("Error parsing option value " + string + " for option " + value + ": " + error.message())); + dataResult.ifSuccess(value::set); + } + } + + @Override + public int process(String name, int value) { + String string = this.getValueOrNull(name); + if (string != null) { + try { + return Integer.parseInt(string); + } catch (NumberFormatException var5) { + Options.LOGGER.warn("Invalid integer value for option {} = {}", name, string, var5); + } + } + + return value; + } + + @Override + public boolean process(String name, boolean value) { + String string = this.getValueOrNull(name); + return string != null ? Options.isTrue(string) : value; + } + + @Override + public String process(String name, String value) { + return MoreObjects.firstNonNull(this.getValueOrNull(name), value); + } + + @Override + public float process(String name, float value) { + String string = this.getValueOrNull(name); + if (string == null) { + return value; + } else if (Options.isTrue(string)) { + return 1.0F; + } else if (Options.isFalse(string)) { + return 0.0F; + } else { + try { + return Float.parseFloat(string); + } catch (NumberFormatException var5) { + Options.LOGGER.warn("Invalid floating point value for option {} = {}", name, string, var5); + return value; + } + } + } + + @Override + public T process(String name, T value, Function stringValuefier, Function valueStringifier) { + String string = this.getValueOrNull(name); + return (T)(string == null ? value : stringValuefier.apply(string)); + } + }); + if (compoundTag2.contains("fullscreenResolution")) { + this.fullscreenVideoModeString = compoundTag2.getString("fullscreenResolution"); + } + + if (this.minecraft.getWindow() != null) { + this.minecraft.getWindow().setFramerateLimit(this.framerateLimit.get()); + } + + KeyMapping.resetMapping(); + } catch (Exception var7) { + LOGGER.error("Failed to load options", (Throwable)var7); + } + } + + static boolean isTrue(String value) { + return "true".equals(value); + } + + static boolean isFalse(String value) { + return "false".equals(value); + } + + private CompoundTag dataFix(CompoundTag nbt) { + int i = 0; + + try { + i = Integer.parseInt(nbt.getString("version")); + } catch (RuntimeException var4) { + } + + return DataFixTypes.OPTIONS.updateToCurrentVersion(this.minecraft.getFixerUpper(), nbt, i); + } + + /** + * Saves the options to the options file. + */ + public void save() { + try { + final PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(this.optionsFile), StandardCharsets.UTF_8)); + + try { + printWriter.println("version:" + SharedConstants.getCurrentVersion().getDataVersion().getVersion()); + this.processOptions( + new Options.FieldAccess() { + public void writePrefix(String prefix) { + printWriter.print(prefix); + printWriter.print(':'); + } + + @Override + public void process(String name, OptionInstance value) { + value.codec() + .encodeStart(JsonOps.INSTANCE, value.get()) + .ifError(error -> Options.LOGGER.error("Error saving option " + value + ": " + error)) + .ifSuccess(jsonElement -> { + this.writePrefix(name); + printWriter.println(Options.GSON.toJson(jsonElement)); + }); + } + + @Override + public int process(String name, int value) { + this.writePrefix(name); + printWriter.println(value); + return value; + } + + @Override + public boolean process(String name, boolean value) { + this.writePrefix(name); + printWriter.println(value); + return value; + } + + @Override + public String process(String name, String value) { + this.writePrefix(name); + printWriter.println(value); + return value; + } + + @Override + public float process(String name, float value) { + this.writePrefix(name); + printWriter.println(value); + return value; + } + + @Override + public T process(String name, T value, Function stringValuefier, Function valueStringifier) { + this.writePrefix(name); + printWriter.println((String)valueStringifier.apply(value)); + return value; + } + } + ); + if (this.minecraft.getWindow().getPreferredFullscreenVideoMode().isPresent()) { + printWriter.println("fullscreenResolution:" + ((VideoMode)this.minecraft.getWindow().getPreferredFullscreenVideoMode().get()).write()); + } + } catch (Throwable var5) { + try { + printWriter.close(); + } catch (Throwable var4) { + var5.addSuppressed(var4); + } + + throw var5; + } + + printWriter.close(); + } catch (Exception var6) { + LOGGER.error("Failed to save options", (Throwable)var6); + } + + this.broadcastOptions(); + } + + public ClientInformation buildPlayerInformation() { + int i = 0; + + for (PlayerModelPart playerModelPart : this.modelParts) { + i |= playerModelPart.getMask(); + } + + return new ClientInformation( + this.languageCode, + this.renderDistance.get(), + this.chatVisibility.get(), + this.chatColors.get(), + i, + this.mainHand.get(), + this.minecraft.isTextFilteringEnabled(), + this.allowServerListing.get() + ); + } + + /** + * Send a client info packet with settings information to the server + */ + public void broadcastOptions() { + if (this.minecraft.player != null) { + this.minecraft.player.connection.send(new ServerboundClientInformationPacket(this.buildPlayerInformation())); + } + } + + private void setModelPart(PlayerModelPart modelPart, boolean enable) { + if (enable) { + this.modelParts.add(modelPart); + } else { + this.modelParts.remove(modelPart); + } + } + + public boolean isModelPartEnabled(PlayerModelPart playerModelPart) { + return this.modelParts.contains(playerModelPart); + } + + public void toggleModelPart(PlayerModelPart playerModelPart, boolean enable) { + this.setModelPart(playerModelPart, enable); + this.broadcastOptions(); + } + + public CloudStatus getCloudsType() { + return this.getEffectiveRenderDistance() >= 4 ? this.cloudStatus.get() : CloudStatus.OFF; + } + + /** + * Returns {@code true} if the client connect to a server using the native transport system. + */ + public boolean useNativeTransport() { + return this.useNativeTransport; + } + + public void loadSelectedResourcePacks(PackRepository resourcePackList) { + Set set = Sets.newLinkedHashSet(); + Iterator iterator = this.resourcePacks.iterator(); + + while (iterator.hasNext()) { + String string = (String)iterator.next(); + Pack pack = resourcePackList.getPack(string); + if (pack == null && !string.startsWith("file/")) { + pack = resourcePackList.getPack("file/" + string); + } + + if (pack == null) { + LOGGER.warn("Removed resource pack {} from options because it doesn't seem to exist anymore", string); + iterator.remove(); + } else if (!pack.getCompatibility().isCompatible() && !this.incompatibleResourcePacks.contains(string)) { + LOGGER.warn("Removed resource pack {} from options because it is no longer compatible", string); + iterator.remove(); + } else if (pack.getCompatibility().isCompatible() && this.incompatibleResourcePacks.contains(string)) { + LOGGER.info("Removed resource pack {} from incompatibility list because it's now compatible", string); + this.incompatibleResourcePacks.remove(string); + } else { + set.add(pack.getId()); + } + } + + resourcePackList.setSelected(set); + } + + public CameraType getCameraType() { + return this.cameraType; + } + + public void setCameraType(CameraType pointOfView) { + this.cameraType = pointOfView; + } + + private static List readListOfStrings(String json) { + List list = GsonHelper.fromNullableJson(GSON, json, LIST_OF_STRINGS_TYPE); + return (List)(list != null ? list : Lists.newArrayList()); + } + + public File getFile() { + return this.optionsFile; + } + + public String dumpOptionsForReport() { + final List> list = new ArrayList(); + this.processDumpedOptions(new Options.OptionAccess() { + @Override + public void process(String name, OptionInstance value) { + list.add(Pair.of(name, value.get())); + } + }); + list.add(Pair.of("fullscreenResolution", String.valueOf(this.fullscreenVideoModeString))); + list.add(Pair.of("glDebugVerbosity", this.glDebugVerbosity)); + list.add(Pair.of("overrideHeight", this.overrideHeight)); + list.add(Pair.of("overrideWidth", this.overrideWidth)); + list.add(Pair.of("syncChunkWrites", this.syncWrites)); + list.add(Pair.of("useNativeTransport", this.useNativeTransport)); + list.add(Pair.of("resourcePacks", this.resourcePacks)); + return (String)list.stream() + .sorted(Comparator.comparing(Pair::getFirst)) + .map(pair -> (String)pair.getFirst() + ": " + pair.getSecond()) + .collect(Collectors.joining(System.lineSeparator())); + } + + public void setServerRenderDistance(int serverRenderDistance) { + this.serverRenderDistance = serverRenderDistance; + } + + public int getEffectiveRenderDistance() { + return this.serverRenderDistance > 0 ? Math.min(this.renderDistance.get(), this.serverRenderDistance) : this.renderDistance.get(); + } + + private static Component pixelValueLabel(Component text, int value) { + return Component.translatable("options.pixel_value", text, value); + } + + private static Component percentValueLabel(Component text, double value) { + return Component.translatable("options.percent_value", text, (int)(value * 100.0)); + } + + public static Component genericValueLabel(Component text, Component value) { + return Component.translatable("options.generic_value", text, value); + } + + public static Component genericValueLabel(Component text, int value) { + return genericValueLabel(text, Component.literal(Integer.toString(value))); + } + + public static Component genericValueOrOffLabel(Component text, int value) { + return value == 0 ? genericValueLabel(text, CommonComponents.OPTION_OFF) : genericValueLabel(text, value); + } + + private static Component percentValueOrOffLabel(Component text, double value) { + return value == 0.0 ? genericValueLabel(text, CommonComponents.OPTION_OFF) : percentValueLabel(text, value); + } + + @Environment(EnvType.CLIENT) + interface FieldAccess extends Options.OptionAccess { + int process(String name, int value); + + boolean process(String name, boolean value); + + String process(String name, String value); + + float process(String name, float value); + + T process(String name, T value, Function stringValuefier, Function valueStringifier); + } + + @Environment(EnvType.CLIENT) + interface OptionAccess { + void process(String name, OptionInstance value); + } +} diff --git a/net/minecraft/client/ParticleStatus.java b/net/minecraft/client/ParticleStatus.java new file mode 100644 index 00000000..a2d93403 --- /dev/null +++ b/net/minecraft/client/ParticleStatus.java @@ -0,0 +1,37 @@ +package net.minecraft.client; + +import java.util.function.IntFunction; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.ByIdMap; +import net.minecraft.util.OptionEnum; + +@Environment(EnvType.CLIENT) +public enum ParticleStatus implements OptionEnum { + ALL(0, "options.particles.all"), + DECREASED(1, "options.particles.decreased"), + MINIMAL(2, "options.particles.minimal"); + + private static final IntFunction BY_ID = ByIdMap.continuous(ParticleStatus::getId, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + private final int id; + private final String key; + + private ParticleStatus(final int id, final String key) { + this.id = id; + this.key = key; + } + + @Override + public String getKey() { + return this.key; + } + + @Override + public int getId() { + return this.id; + } + + public static ParticleStatus byId(int id) { + return (ParticleStatus)BY_ID.apply(id); + } +} diff --git a/net/minecraft/client/PeriodicNotificationManager.java b/net/minecraft/client/PeriodicNotificationManager.java new file mode 100644 index 00000000..028cbaa5 --- /dev/null +++ b/net/minecraft/client/PeriodicNotificationManager.java @@ -0,0 +1,199 @@ +package net.minecraft.client; + +import com.google.common.collect.ImmutableMap; +import com.google.common.math.LongMath; +import com.google.gson.JsonParser; +import com.mojang.logging.LogUtils; +import com.mojang.serialization.Codec; +import com.mojang.serialization.JsonOps; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import it.unimi.dsi.fastutil.objects.Object2BooleanFunction; +import java.io.Reader; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; +import java.util.Map.Entry; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.Util; +import net.minecraft.client.gui.components.toasts.SystemToast; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.packs.resources.SimplePreparableReloadListener; +import net.minecraft.util.profiling.ProfilerFiller; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class PeriodicNotificationManager + extends SimplePreparableReloadListener>> + implements AutoCloseable { + private static final Codec>> CODEC = Codec.unboundedMap( + Codec.STRING, + RecordCodecBuilder.create( + instance -> instance.group( + Codec.LONG.optionalFieldOf("delay", 0L).forGetter(PeriodicNotificationManager.Notification::delay), + Codec.LONG.fieldOf("period").forGetter(PeriodicNotificationManager.Notification::period), + Codec.STRING.fieldOf("title").forGetter(PeriodicNotificationManager.Notification::title), + Codec.STRING.fieldOf("message").forGetter(PeriodicNotificationManager.Notification::message) + ) + .apply(instance, PeriodicNotificationManager.Notification::new) + ) + .listOf() + ); + private static final Logger LOGGER = LogUtils.getLogger(); + private final ResourceLocation notifications; + private final Object2BooleanFunction selector; + @Nullable + private Timer timer; + @Nullable + private PeriodicNotificationManager.NotificationTask notificationTask; + + public PeriodicNotificationManager(ResourceLocation notifications, Object2BooleanFunction selector) { + this.notifications = notifications; + this.selector = selector; + } + + /** + * Performs any reloading that can be done off-thread, such as file IO + */ + protected Map> prepare(ResourceManager resourceManager, ProfilerFiller profiler) { + try { + Reader reader = resourceManager.openAsReader(this.notifications); + + Map var4; + try { + var4 = (Map)CODEC.parse(JsonOps.INSTANCE, JsonParser.parseReader(reader)).result().orElseThrow(); + } catch (Throwable var7) { + if (reader != null) { + try { + reader.close(); + } catch (Throwable var6) { + var7.addSuppressed(var6); + } + } + + throw var7; + } + + if (reader != null) { + reader.close(); + } + + return var4; + } catch (Exception var8) { + LOGGER.warn("Failed to load {}", this.notifications, var8); + return ImmutableMap.of(); + } + } + + protected void apply(Map> object, ResourceManager resourceManager, ProfilerFiller profiler) { + List list = (List)object.entrySet() + .stream() + .filter(entry -> this.selector.apply((String)entry.getKey())) + .map(Entry::getValue) + .flatMap(Collection::stream) + .collect(Collectors.toList()); + if (list.isEmpty()) { + this.stopTimer(); + } else if (list.stream().anyMatch(notification -> notification.period == 0L)) { + Util.logAndPauseIfInIde("A periodic notification in " + this.notifications + " has a period of zero minutes"); + this.stopTimer(); + } else { + long l = this.calculateInitialDelay(list); + long m = this.calculateOptimalPeriod(list, l); + if (this.timer == null) { + this.timer = new Timer(); + } + + if (this.notificationTask == null) { + this.notificationTask = new PeriodicNotificationManager.NotificationTask(list, l, m); + } else { + this.notificationTask = this.notificationTask.reset(list, m); + } + + this.timer.scheduleAtFixedRate(this.notificationTask, TimeUnit.MINUTES.toMillis(l), TimeUnit.MINUTES.toMillis(m)); + } + } + + public void close() { + this.stopTimer(); + } + + private void stopTimer() { + if (this.timer != null) { + this.timer.cancel(); + } + } + + private long calculateOptimalPeriod(List notifications, long delay) { + return notifications.stream().mapToLong(notification -> { + long m = notification.delay - delay; + return LongMath.gcd(m, notification.period); + }).reduce(LongMath::gcd).orElseThrow(() -> new IllegalStateException("Empty notifications from: " + this.notifications)); + } + + private long calculateInitialDelay(List notifications) { + return notifications.stream().mapToLong(notification -> notification.delay).min().orElse(0L); + } + + @Environment(EnvType.CLIENT) + public record Notification(long delay, long period, String title, String message) { + + public Notification(final long delay, final long period, final String title, final String message) { + this.delay = delay != 0L ? delay : period; + this.period = period; + this.title = title; + this.message = message; + } + } + + @Environment(EnvType.CLIENT) + static class NotificationTask extends TimerTask { + private final Minecraft minecraft = Minecraft.getInstance(); + private final List notifications; + private final long period; + private final AtomicLong elapsed; + + public NotificationTask(List notifications, long elapsed, long period) { + this.notifications = notifications; + this.period = period; + this.elapsed = new AtomicLong(elapsed); + } + + public PeriodicNotificationManager.NotificationTask reset(List notifications, long period) { + this.cancel(); + return new PeriodicNotificationManager.NotificationTask(notifications, this.elapsed.get(), period); + } + + public void run() { + long l = this.elapsed.getAndAdd(this.period); + long m = this.elapsed.get(); + + for (PeriodicNotificationManager.Notification notification : this.notifications) { + if (l >= notification.delay) { + long n = l / notification.period; + long o = m / notification.period; + if (n != o) { + this.minecraft + .execute( + () -> SystemToast.add( + Minecraft.getInstance().getToasts(), + SystemToast.SystemToastId.PERIODIC_NOTIFICATION, + Component.translatable(notification.title, n), + Component.translatable(notification.message, n) + ) + ); + return; + } + } + } + } + } +} diff --git a/net/minecraft/client/PrioritizeChunkUpdates.java b/net/minecraft/client/PrioritizeChunkUpdates.java new file mode 100644 index 00000000..6b98af74 --- /dev/null +++ b/net/minecraft/client/PrioritizeChunkUpdates.java @@ -0,0 +1,37 @@ +package net.minecraft.client; + +import java.util.function.IntFunction; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.util.ByIdMap; +import net.minecraft.util.OptionEnum; + +@Environment(EnvType.CLIENT) +public enum PrioritizeChunkUpdates implements OptionEnum { + NONE(0, "options.prioritizeChunkUpdates.none"), + PLAYER_AFFECTED(1, "options.prioritizeChunkUpdates.byPlayer"), + NEARBY(2, "options.prioritizeChunkUpdates.nearby"); + + private static final IntFunction BY_ID = ByIdMap.continuous(PrioritizeChunkUpdates::getId, values(), ByIdMap.OutOfBoundsStrategy.WRAP); + private final int id; + private final String key; + + private PrioritizeChunkUpdates(final int id, final String key) { + this.id = id; + this.key = key; + } + + @Override + public int getId() { + return this.id; + } + + @Override + public String getKey() { + return this.key; + } + + public static PrioritizeChunkUpdates byId(int id) { + return (PrioritizeChunkUpdates)BY_ID.apply(id); + } +} diff --git a/net/minecraft/client/RecipeBookCategories.java b/net/minecraft/client/RecipeBookCategories.java new file mode 100644 index 00000000..a02334f6 --- /dev/null +++ b/net/minecraft/client/RecipeBookCategories.java @@ -0,0 +1,69 @@ +package net.minecraft.client; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.Map; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.world.inventory.RecipeBookType; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Blocks; + +@Environment(EnvType.CLIENT) +public enum RecipeBookCategories { + CRAFTING_SEARCH(new ItemStack(Items.COMPASS)), + CRAFTING_BUILDING_BLOCKS(new ItemStack(Blocks.BRICKS)), + CRAFTING_REDSTONE(new ItemStack(Items.REDSTONE)), + CRAFTING_EQUIPMENT(new ItemStack(Items.IRON_AXE), new ItemStack(Items.GOLDEN_SWORD)), + CRAFTING_MISC(new ItemStack(Items.LAVA_BUCKET), new ItemStack(Items.APPLE)), + FURNACE_SEARCH(new ItemStack(Items.COMPASS)), + FURNACE_FOOD(new ItemStack(Items.PORKCHOP)), + FURNACE_BLOCKS(new ItemStack(Blocks.STONE)), + FURNACE_MISC(new ItemStack(Items.LAVA_BUCKET), new ItemStack(Items.EMERALD)), + BLAST_FURNACE_SEARCH(new ItemStack(Items.COMPASS)), + BLAST_FURNACE_BLOCKS(new ItemStack(Blocks.REDSTONE_ORE)), + BLAST_FURNACE_MISC(new ItemStack(Items.IRON_SHOVEL), new ItemStack(Items.GOLDEN_LEGGINGS)), + SMOKER_SEARCH(new ItemStack(Items.COMPASS)), + SMOKER_FOOD(new ItemStack(Items.PORKCHOP)), + STONECUTTER(new ItemStack(Items.CHISELED_STONE_BRICKS)), + SMITHING(new ItemStack(Items.NETHERITE_CHESTPLATE)), + CAMPFIRE(new ItemStack(Items.PORKCHOP)), + UNKNOWN(new ItemStack(Items.BARRIER)); + + public static final List SMOKER_CATEGORIES = ImmutableList.of(SMOKER_SEARCH, SMOKER_FOOD); + public static final List BLAST_FURNACE_CATEGORIES = ImmutableList.of(BLAST_FURNACE_SEARCH, BLAST_FURNACE_BLOCKS, BLAST_FURNACE_MISC); + public static final List FURNACE_CATEGORIES = ImmutableList.of(FURNACE_SEARCH, FURNACE_FOOD, FURNACE_BLOCKS, FURNACE_MISC); + public static final List CRAFTING_CATEGORIES = ImmutableList.of( + CRAFTING_SEARCH, CRAFTING_EQUIPMENT, CRAFTING_BUILDING_BLOCKS, CRAFTING_MISC, CRAFTING_REDSTONE + ); + public static final Map> AGGREGATE_CATEGORIES = ImmutableMap.of( + CRAFTING_SEARCH, + ImmutableList.of(CRAFTING_EQUIPMENT, CRAFTING_BUILDING_BLOCKS, CRAFTING_MISC, CRAFTING_REDSTONE), + FURNACE_SEARCH, + ImmutableList.of(FURNACE_FOOD, FURNACE_BLOCKS, FURNACE_MISC), + BLAST_FURNACE_SEARCH, + ImmutableList.of(BLAST_FURNACE_BLOCKS, BLAST_FURNACE_MISC), + SMOKER_SEARCH, + ImmutableList.of(SMOKER_FOOD) + ); + private final List itemIcons; + + private RecipeBookCategories(final ItemStack... itemIcons) { + this.itemIcons = ImmutableList.copyOf(itemIcons); + } + + public static List getCategories(RecipeBookType recipeBookType) { + return switch (recipeBookType) { + case CRAFTING -> CRAFTING_CATEGORIES; + case FURNACE -> FURNACE_CATEGORIES; + case BLAST_FURNACE -> BLAST_FURNACE_CATEGORIES; + case SMOKER -> SMOKER_CATEGORIES; + }; + } + + public List getIconItems() { + return this.itemIcons; + } +} diff --git a/net/minecraft/client/ResourceLoadStateTracker.java b/net/minecraft/client/ResourceLoadStateTracker.java new file mode 100644 index 00000000..636e1911 --- /dev/null +++ b/net/minecraft/client/ResourceLoadStateTracker.java @@ -0,0 +1,113 @@ +package net.minecraft.client; + +import com.google.common.collect.ImmutableList; +import com.mojang.logging.LogUtils; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.List; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.CrashReport; +import net.minecraft.CrashReportCategory; +import net.minecraft.CrashReportDetail; +import net.minecraft.server.packs.PackResources; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class ResourceLoadStateTracker { + private static final Logger LOGGER = LogUtils.getLogger(); + @Nullable + private ResourceLoadStateTracker.ReloadState reloadState; + private int reloadCount; + + public void startReload(ResourceLoadStateTracker.ReloadReason reloadReason, List packs) { + this.reloadCount++; + if (this.reloadState != null && !this.reloadState.finished) { + LOGGER.warn("Reload already ongoing, replacing"); + } + + this.reloadState = new ResourceLoadStateTracker.ReloadState( + reloadReason, (List)packs.stream().map(PackResources::packId).collect(ImmutableList.toImmutableList()) + ); + } + + public void startRecovery(Throwable error) { + if (this.reloadState == null) { + LOGGER.warn("Trying to signal reload recovery, but nothing was started"); + this.reloadState = new ResourceLoadStateTracker.ReloadState(ResourceLoadStateTracker.ReloadReason.UNKNOWN, ImmutableList.of()); + } + + this.reloadState.recoveryReloadInfo = new ResourceLoadStateTracker.RecoveryInfo(error); + } + + public void finishReload() { + if (this.reloadState == null) { + LOGGER.warn("Trying to finish reload, but nothing was started"); + } else { + this.reloadState.finished = true; + } + } + + public void fillCrashReport(CrashReport report) { + CrashReportCategory crashReportCategory = report.addCategory("Last reload"); + crashReportCategory.setDetail("Reload number", this.reloadCount); + if (this.reloadState != null) { + this.reloadState.fillCrashInfo(crashReportCategory); + } + } + + @Environment(EnvType.CLIENT) + static class RecoveryInfo { + private final Throwable error; + + RecoveryInfo(Throwable error) { + this.error = error; + } + + public void fillCrashInfo(CrashReportCategory crash) { + crash.setDetail("Recovery", "Yes"); + crash.setDetail("Recovery reason", (CrashReportDetail)(() -> { + StringWriter stringWriter = new StringWriter(); + this.error.printStackTrace(new PrintWriter(stringWriter)); + return stringWriter.toString(); + })); + } + } + + @Environment(EnvType.CLIENT) + public static enum ReloadReason { + INITIAL("initial"), + MANUAL("manual"), + UNKNOWN("unknown"); + + final String name; + + private ReloadReason(final String name) { + this.name = name; + } + } + + @Environment(EnvType.CLIENT) + static class ReloadState { + private final ResourceLoadStateTracker.ReloadReason reloadReason; + private final List packs; + @Nullable + ResourceLoadStateTracker.RecoveryInfo recoveryReloadInfo; + boolean finished; + + ReloadState(ResourceLoadStateTracker.ReloadReason reloadReason, List packs) { + this.reloadReason = reloadReason; + this.packs = packs; + } + + public void fillCrashInfo(CrashReportCategory crash) { + crash.setDetail("Reload reason", this.reloadReason.name); + crash.setDetail("Finished", this.finished ? "Yes" : "No"); + crash.setDetail("Packs", (CrashReportDetail)(() -> String.join(", ", this.packs))); + if (this.recoveryReloadInfo != null) { + this.recoveryReloadInfo.fillCrashInfo(crash); + } + } + } +} diff --git a/net/minecraft/client/Screenshot.java b/net/minecraft/client/Screenshot.java new file mode 100644 index 00000000..1a2fcb32 --- /dev/null +++ b/net/minecraft/client/Screenshot.java @@ -0,0 +1,161 @@ +package net.minecraft.client; + +import com.mojang.blaze3d.pipeline.RenderTarget; +import com.mojang.blaze3d.platform.NativeImage; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.logging.LogUtils; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.function.Consumer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormatting; +import net.minecraft.Util; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +@Environment(EnvType.CLIENT) +public class Screenshot { + private static final Logger LOGGER = LogUtils.getLogger(); + public static final String SCREENSHOT_DIR = "screenshots"; + private int rowHeight; + private final DataOutputStream outputStream; + private final byte[] bytes; + private final int width; + private final int height; + private File file; + + /** + * Saves a screenshot in the game directory with a time-stamped filename. + */ + public static void grab(File gameDirectory, RenderTarget buffer, Consumer messageConsumer) { + grab(gameDirectory, null, buffer, messageConsumer); + } + + /** + * Saves a screenshot in the game directory with the given file name (or null to generate a time-stamped name). + */ + public static void grab(File gameDirectory, @Nullable String screenshotName, RenderTarget buffer, Consumer messageConsumer) { + if (!RenderSystem.isOnRenderThread()) { + RenderSystem.recordRenderCall(() -> _grab(gameDirectory, screenshotName, buffer, messageConsumer)); + } else { + _grab(gameDirectory, screenshotName, buffer, messageConsumer); + } + } + + private static void _grab(File gameDirectory, @Nullable String screenshotName, RenderTarget buffer, Consumer messageConsumer) { + NativeImage nativeImage = takeScreenshot(buffer); + File file = new File(gameDirectory, "screenshots"); + file.mkdir(); + File file2; + if (screenshotName == null) { + file2 = getFile(file); + } else { + file2 = new File(file, screenshotName); + } + + Util.ioPool() + .execute( + () -> { + try { + nativeImage.writeToFile(file2); + Component component = Component.literal(file2.getName()) + .withStyle(ChatFormatting.UNDERLINE) + .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_FILE, file2.getAbsolutePath()))); + messageConsumer.accept(Component.translatable("screenshot.success", component)); + } catch (Exception var7) { + LOGGER.warn("Couldn't save screenshot", (Throwable)var7); + messageConsumer.accept(Component.translatable("screenshot.failure", var7.getMessage())); + } finally { + nativeImage.close(); + } + } + ); + } + + public static NativeImage takeScreenshot(RenderTarget framebuffer) { + int i = framebuffer.width; + int j = framebuffer.height; + NativeImage nativeImage = new NativeImage(i, j, false); + RenderSystem.bindTexture(framebuffer.getColorTextureId()); + nativeImage.downloadTexture(0, true); + nativeImage.flipY(); + return nativeImage; + } + + /** + * Creates a unique PNG file in the given directory named by a timestamp. Handles cases where the timestamp alone is not enough to create a uniquely named file, though it still might suffer from an unlikely race condition where the filename was unique when this method was called, but another process or thread created a file at the same path immediately after this method returned. + */ + private static File getFile(File gameDirectory) { + String string = Util.getFilenameFormattedDateTime(); + int i = 1; + + while (true) { + File file = new File(gameDirectory, string + (i == 1 ? "" : "_" + i) + ".png"); + if (!file.exists()) { + return file; + } + + i++; + } + } + + public Screenshot(File gameDirectory, int width, int height, int rowHeight) throws IOException { + this.width = width; + this.height = height; + this.rowHeight = rowHeight; + File file = new File(gameDirectory, "screenshots"); + file.mkdir(); + String string = "huge_" + Util.getFilenameFormattedDateTime(); + int i = 1; + + while ((this.file = new File(file, string + (i == 1 ? "" : "_" + i) + ".tga")).exists()) { + i++; + } + + byte[] bs = new byte[18]; + bs[2] = 2; + bs[12] = (byte)(width % 256); + bs[13] = (byte)(width / 256); + bs[14] = (byte)(height % 256); + bs[15] = (byte)(height / 256); + bs[16] = 24; + this.bytes = new byte[width * rowHeight * 3]; + this.outputStream = new DataOutputStream(new FileOutputStream(this.file)); + this.outputStream.write(bs); + } + + public void addRegion(ByteBuffer buffer, int width, int height, int rowWidth, int rowHeight) { + int i = rowWidth; + int j = rowHeight; + if (rowWidth > this.width - width) { + i = this.width - width; + } + + if (rowHeight > this.height - height) { + j = this.height - height; + } + + this.rowHeight = j; + + for (int k = 0; k < j; k++) { + buffer.position((rowHeight - j) * rowWidth * 3 + k * rowWidth * 3); + int l = (width + k * this.width) * 3; + buffer.get(this.bytes, l, i * 3); + } + } + + public void saveRow() throws IOException { + this.outputStream.write(this.bytes, 0, this.width * 3 * this.rowHeight); + } + + public File close() throws IOException { + this.outputStream.close(); + return this.file; + } +} diff --git a/net/minecraft/client/StringSplitter.java b/net/minecraft/client/StringSplitter.java new file mode 100644 index 00000000..a2ace887 --- /dev/null +++ b/net/minecraft/client/StringSplitter.java @@ -0,0 +1,469 @@ +package net.minecraft.client; + +import com.google.common.collect.Lists; +import java.util.List; +import java.util.ListIterator; +import java.util.Optional; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.FormattedText; +import net.minecraft.network.chat.Style; +import net.minecraft.util.FormattedCharSequence; +import net.minecraft.util.FormattedCharSink; +import net.minecraft.util.StringDecomposer; +import org.apache.commons.lang3.mutable.MutableFloat; +import org.apache.commons.lang3.mutable.MutableInt; +import org.apache.commons.lang3.mutable.MutableObject; +import org.jetbrains.annotations.Nullable; + +@Environment(EnvType.CLIENT) +public class StringSplitter { + final StringSplitter.WidthProvider widthProvider; + + public StringSplitter(StringSplitter.WidthProvider widthProvider) { + this.widthProvider = widthProvider; + } + + public float stringWidth(@Nullable String content) { + if (content == null) { + return 0.0F; + } else { + MutableFloat mutableFloat = new MutableFloat(); + StringDecomposer.iterateFormatted(content, Style.EMPTY, (i, style, j) -> { + mutableFloat.add(this.widthProvider.getWidth(j, style)); + return true; + }); + return mutableFloat.floatValue(); + } + } + + public float stringWidth(FormattedText content) { + MutableFloat mutableFloat = new MutableFloat(); + StringDecomposer.iterateFormatted(content, Style.EMPTY, (i, style, j) -> { + mutableFloat.add(this.widthProvider.getWidth(j, style)); + return true; + }); + return mutableFloat.floatValue(); + } + + public float stringWidth(FormattedCharSequence content) { + MutableFloat mutableFloat = new MutableFloat(); + content.accept((i, style, j) -> { + mutableFloat.add(this.widthProvider.getWidth(j, style)); + return true; + }); + return mutableFloat.floatValue(); + } + + public int plainIndexAtWidth(String content, int maxWidth, Style style) { + StringSplitter.WidthLimitedCharSink widthLimitedCharSink = new StringSplitter.WidthLimitedCharSink(maxWidth); + StringDecomposer.iterate(content, style, widthLimitedCharSink); + return widthLimitedCharSink.getPosition(); + } + + public String plainHeadByWidth(String content, int maxWidth, Style style) { + return content.substring(0, this.plainIndexAtWidth(content, maxWidth, style)); + } + + public String plainTailByWidth(String content, int maxWidth, Style style) { + MutableFloat mutableFloat = new MutableFloat(); + MutableInt mutableInt = new MutableInt(content.length()); + StringDecomposer.iterateBackwards(content, style, (j, stylex, k) -> { + float f = mutableFloat.addAndGet(this.widthProvider.getWidth(k, stylex)); + if (f > maxWidth) { + return false; + } else { + mutableInt.setValue(j); + return true; + } + }); + return content.substring(mutableInt.intValue()); + } + + public int formattedIndexByWidth(String content, int maxWidth, Style style) { + StringSplitter.WidthLimitedCharSink widthLimitedCharSink = new StringSplitter.WidthLimitedCharSink(maxWidth); + StringDecomposer.iterateFormatted(content, style, widthLimitedCharSink); + return widthLimitedCharSink.getPosition(); + } + + @Nullable + public Style componentStyleAtWidth(FormattedText content, int maxWidth) { + StringSplitter.WidthLimitedCharSink widthLimitedCharSink = new StringSplitter.WidthLimitedCharSink(maxWidth); + return (Style)content.visit( + (style, string) -> StringDecomposer.iterateFormatted(string, style, widthLimitedCharSink) ? Optional.empty() : Optional.of(style), Style.EMPTY + ) + .orElse(null); + } + + @Nullable + public Style componentStyleAtWidth(FormattedCharSequence content, int maxWidth) { + StringSplitter.WidthLimitedCharSink widthLimitedCharSink = new StringSplitter.WidthLimitedCharSink(maxWidth); + MutableObject